Built files from Bizgaze WebServer
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

managedashboards.js 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Dashboards;
  6. (function (Dashboards_1) {
  7. let Components;
  8. (function (Components) {
  9. class ManageDashboard extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this._dashboardManager = Dashboards_1.Managers.DashboardManager.Instance();
  13. }
  14. cssFiles() {
  15. return ["libs/nestable/JqueryminMenu.css"];
  16. }
  17. jsFiles() {
  18. return ["libs/nestable/jquery.nestable.js", "platform/dashboards/components/import.js", "platform/dashboards/requests/dashboards.js", "platform/dashboards/components/createdashboard.js", "platform/dashboards/components/editdashboard.js", "platform/dashboards/components/creategroup.js", "platform/dashboards/components/editgroup.js", "tenants/themes/compact/components/nav/nav.template.js", "platform/dashboards/components/dashboardpermissions.js", "platform/dashboards/components/dashboardgrouppermissions.js", "platform/dashboards/components/editgrouppermissions.js", "platform/dashboards/components/dashboard.template.js"];
  19. }
  20. html(id, containerid) {
  21. let html = `<form id="frm_BizgazeNavigationManageDashboard" method="post" data-validate="parsley" class="w-f bg-white"><div id="divBizgaze_MessagesPlaceholder" class="divBizgaze_MessagesPlaceholder"></div><div class="header navbar-header b-b bg-white"><h5>Dashboard Settings</h5><div class="btn-group align-items-center pull-right"><a href="javascript:;" class="btn btn-sm btn-light mr-10" id="btnAddNewGroup"><i class="fa fa-plus"></i> Group</a>&nbsp;<a href="javascript:;" class="btn btn-sm btn-info text-white mr-1" id="btnAddDashboard"><i class="fa fa-plus"></i> Dashboard</a><div class="dropdown"><a href="javascript:;" class="btn btn-sm fa fa-ellipsis-v divtag text-right text-dark-100" id="" type="" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></a><div class="dropdown-menu"><a href="javascript:;" class="dropdown-item" onclick="Unibase.Platform.Dashboards.Components.ManageDashboard.Instance().ImportDashBoard(` + id + `,` + containerid + `);">Import</a><a href="javascript:;" class="dropdown-item" onclick="Unibase.Platform.Dashboards.Components.ManageDashboard.Instance().ExportDashboard();">Export</a></div></div></div></div><div class="scrollable nicescroll-bar"><div class="card"><div class="card-body"><div class="row"><div class="col-sm-12"><div class="dd" id="nestable3"><div><h5>Dashboards and Groups</h5></div><hr /><ol class="dd-list" id="MainOlMenu"></ol></div><div class="dd" id="nestable2"><div><h5>Groupable Dashboards</h5></div><hr /><ol class="dd-list" id="GrouplessDashboards"><li class="grpItem"></li><li class="DisplayItm"></li></ol>Note: These dashboards are groupable & draggable,Dashboard settings will affect to all the Portals.</div></div></div></div></div></div><div class="footer bg-white"><a href="javascript:;" id="btn_CloseMenuSetting" class="pull-left btn btn-light btn-sm mr-auto">Close</a><a href="javascript:;" id="btn_SaveMenuSetting" class="pull-right btn btn-primary btn-sm">Save</a></div></form>`;
  22. return html;
  23. }
  24. load(id, containerid, callback) {
  25. var instance = this;
  26. let x = $('#nestable3');
  27. x.nestable({
  28. group: 'categories',
  29. maxDepth: 2,
  30. scroll: true,
  31. scrollSpeed: 20,
  32. beforeDragStop: function (l, e, p) {
  33. var isGroup = $(e).hasClass('RootGroup');
  34. var Area = $(p).attr("id");
  35. if (isGroup == true) {
  36. if (Area !== 'GrouplessDashboards') {
  37. let y = $('#MainOlMenu');
  38. y.sortable({
  39. scrollSpeed: 20,
  40. });
  41. }
  42. else {
  43. return false;
  44. }
  45. setTimeout(function () {
  46. instance.saveAllDashboardSettings();
  47. }, 300);
  48. }
  49. else {
  50. let Checkroot = $(p).parent().attr('data-type');
  51. let checkGroupable = $(p).parent().attr('id');
  52. if (Checkroot != 'root' || Checkroot.toString() == 'undefind') {
  53. if (checkGroupable == 'nestable2') {
  54. return true;
  55. }
  56. else {
  57. return false;
  58. }
  59. }
  60. }
  61. let z = $("#MainOlMenu");
  62. z.sortable({
  63. disabled: true
  64. });
  65. },
  66. });
  67. let a = $('#nestable2');
  68. a.nestable({
  69. group: 'categories',
  70. maxDepth: 2,
  71. scroll: true,
  72. scrollSpeed: 20,
  73. beforeDragStop: function (l, e, p) {
  74. let dashboardId = $(e).attr('id');
  75. let DashboardGroupId = $(p).parents('li').attr('id');
  76. if (DashboardGroupId == undefined || DashboardGroupId == "undefined")
  77. DashboardGroupId = "0";
  78. let dashboardIndex = $(e).attr('dashboardindex');
  79. var isGroup = $(e).hasClass('RootGroup');
  80. if (isGroup == true) {
  81. instance.saveAllDashboardSettings();
  82. }
  83. else {
  84. }
  85. },
  86. });
  87. $('.dd-empty').remove();
  88. $("#btnAddNewGroup").click(function () {
  89. instance.navigationHelper.popup(0, "", Unibase.Platform.Dashboards.Components.DashboardGroup.Instance(), null, Platform.Helpers.Size.DockLeft);
  90. });
  91. $("#btnAddDashboard").click(function () {
  92. instance.navigationHelper.popup(0, "", Unibase.Platform.Dashboards.Components.CreateDashboard.Instance(), null, Platform.Helpers.Size.DockLeft);
  93. });
  94. $("#btn_SaveMenuSetting").click(function () {
  95. instance.saveAllDashboardSettings();
  96. instance.navigationHelper.closePopUp();
  97. });
  98. $("#btn_CloseMenuSetting").click(function () {
  99. instance.navigationHelper.closePopUp();
  100. });
  101. instance.loadDashboardGroups();
  102. }
  103. loadDashboardGroups() {
  104. var instance = this;
  105. jQuery("#MainOlMenu").empty();
  106. var html = "";
  107. instance._dashboardManager.getDashboardGroups().then(function (response) {
  108. for (var i = 0; i < response.result.length; i++) {
  109. var group = response.result[i];
  110. var template = Unibase.Platform.Dashboards.Components.Dashboard_Template.Instance().DashboardGroups();
  111. var templateScript = Handlebars.compile(template);
  112. var context = { "DashboardGroupId": group.DashboardGroupId, "DashboardGroupName": group.DashboardGroupName };
  113. html = templateScript(context);
  114. $("#MainOlMenu").append(html);
  115. }
  116. instance.loadDashboards();
  117. instance.loadUngroupedDashboards();
  118. });
  119. }
  120. loadDashboards() {
  121. var instance = this;
  122. instance._dashboardManager.getDashboards().then(function (response) {
  123. for (var i = 0; i < response.result.length; i++) {
  124. var group = response.result[i];
  125. var html = "";
  126. var groupId = group.DashboardGroupId;
  127. var template = Unibase.Platform.Dashboards.Components.Dashboard_Template.Instance().Dashboards();
  128. var templateScript = Handlebars.compile(template);
  129. var context = { "DashboardId": group.DashboardId, "DashboardName": group.DashboardName, "DashboardIndex": group.DashboardIndex };
  130. html = templateScript(context);
  131. $('#GroupDashboards-' + groupId).find(".grpItem:last").after(html);
  132. }
  133. $(".DashboardOl").each(function () {
  134. let element = $(this).children('li');
  135. $(this).html(element.sort(function (a, b) {
  136. return ($(b).attr('dashboardindex')) > ($(a).attr('dashboardindex')) ? -1 : 1 || ($(a).attr('dashboardindex')) ? -10 : 1;
  137. }));
  138. });
  139. });
  140. }
  141. loadUngroupedDashboards() {
  142. var instance = this;
  143. $('#GrouplessDashboards').empty();
  144. instance._dashboardManager.getUnGroupedDashboards().then(function (response) {
  145. var Dashboards = response.result;
  146. var html = "";
  147. for (var i = 0; i < Dashboards.length; i++) {
  148. var group = Dashboards[i];
  149. var template = Unibase.Platform.Dashboards.Components.Dashboard_Template.Instance().UnGroupedDashboards();
  150. var templateScript = Handlebars.compile(template);
  151. var context = { "DashboardId": group.DashboardId, "DashboardName": group.DashboardName, "DashboardIndex": group.DashboardIndex };
  152. html += templateScript(context);
  153. }
  154. $('#GrouplessDashboards').html(html + "<li class='DisplayItm dd-item'></li>");
  155. });
  156. }
  157. saveAllDashboardSettings() {
  158. var instance = this;
  159. var Groups = [];
  160. $('#MainOlMenu .RootGroup').each(function (index, el) {
  161. Groups.push(el);
  162. });
  163. MessageHelper.Instance().hideMessage();
  164. let DashboardsAndGroups = [];
  165. for (var i = 0; i < Groups.length; i++) {
  166. var dashboardIds = [];
  167. var currentGrp = Groups[i];
  168. var grpId = Number($(currentGrp).attr('id'));
  169. $(currentGrp).children('ol').find('li').each(function (index, el) {
  170. let id = $(el).attr('id');
  171. if (id > 0 || id != null) {
  172. dashboardIds.push(Number(id));
  173. }
  174. });
  175. DashboardsAndGroups.push({ "GroupId": grpId, "DashboardIds": dashboardIds });
  176. }
  177. instance._dashboardManager.saveAllDashboardSetting(DashboardsAndGroups).then(function (response) {
  178. if (response.errors == null) {
  179. MessageHelper.Instance().showSuccess('Dashboard Settings Saved Successfully', '');
  180. }
  181. else {
  182. MessageHelper.Instance().showError(response.errors[0], '');
  183. }
  184. });
  185. }
  186. deleteDashboard(DashboardId) {
  187. var instance = this;
  188. MessageHelper.Instance().hideMessage();
  189. instance._dashboardManager.deleteDashboard(DashboardId).then(function (response) {
  190. if (response.errors == null) {
  191. MessageHelper.Instance().showSuccess('Dashboard Deleted Successfully', '');
  192. instance.loadDashboardGroups();
  193. }
  194. else
  195. MessageHelper.Instance().showError(response.errors[0], 'divBizgaze_MessagesPlaceholder');
  196. });
  197. }
  198. updateDashboardGroup(dashboard, dashboardGroupId) {
  199. var instance = this;
  200. MessageHelper.Instance().hideMessage();
  201. var DashboardIndex = $(dashboard).attr('dashboardindex');
  202. DashboardIndex = DashboardIndex.replace(/['"]+/g, '');
  203. var DashboardId = $(dashboard).attr('id');
  204. let reqObj = new Unibase.Platform.Dashboards.Requests.Dashboard();
  205. reqObj.DashboardGroupId = Number(dashboardGroupId);
  206. reqObj.DashboardId = Number(DashboardId);
  207. reqObj.DashboardIndex = Number(DashboardIndex);
  208. instance._dashboardManager.updateDashboardGroup(reqObj).then(function (response) {
  209. if (response.errors == null)
  210. MessageHelper.Instance().showSuccess('Group Saved Successfully', '');
  211. else
  212. MessageHelper.Instance().showError(response.errors[0], '');
  213. });
  214. }
  215. editDashboardGroup(GroupId) {
  216. var instance = this;
  217. MessageHelper.Instance().hideMessage();
  218. instance.navigationHelper.popup(GroupId, "", Unibase.Platform.Dashboards.Components.EditDashboardGroup.Instance(), null, Platform.Helpers.Size.DockLeft);
  219. }
  220. editDashboard(DashboardId) {
  221. var instance = this;
  222. MessageHelper.Instance().hideMessage();
  223. instance.editDashboardInfo(DashboardId);
  224. $('#card_dashboardPermissions').addClass("hidden");
  225. instance._dashboardManager.getDashboard(DashboardId).then(function (response) {
  226. const { DashboardName, DashboardIndex, DashboardId, DashboardGroupId, IsMandatory, IsTrackable, ViewAllStages, PinCommonFilters } = response.result;
  227. $('#Txt_EditDashboardName').val(DashboardName);
  228. $('#Txt_EditDashboardIndex').val(DashboardIndex);
  229. $("#EditDashboardId").val(DashboardId);
  230. $('#ddl_EditDashboardGroups').val(DashboardGroupId);
  231. $('#chkIsDashboardViewable').prop('checked', IsMandatory);
  232. $('#Ch_IsTrackable').prop('checked', IsTrackable);
  233. $("#div_DashboardName").addClass('floating-label-form-group-with-value');
  234. $("#hf_dashboardviewallstages").val(String(ViewAllStages));
  235. $("#pinCmnFiltersChk").prop('checked', PinCommonFilters);
  236. instance._dashboardManager.getDashboardGroups().then(function (groupresponse) {
  237. var html = '<option value="0">No Group</option>';
  238. var groups = groupresponse.result;
  239. for (var i = 0; i < groups.length; i++) {
  240. if (groups[i].DashboardGroupId == DashboardGroupId) {
  241. html += '<option value = "' + groups[i].DashboardGroupId + '" selected > ' + groups[i].DashboardGroupName + ' </option>';
  242. }
  243. else {
  244. html += '<option value = "' + groups[i].DashboardGroupId + '"> ' + groups[i].DashboardGroupName + ' </option>';
  245. }
  246. }
  247. $('#ddl_EditDashboardGroups').html(html);
  248. });
  249. });
  250. }
  251. editDashboardInfo(DashboardId) {
  252. var instance = this;
  253. instance.navigationHelper.popup(0, "", Unibase.Platform.Dashboards.Components.EditDashboard.Instance(), null, Platform.Helpers.Size.DockLeft);
  254. $("#div_EditDashboardHeader").removeClass("pa-5");
  255. }
  256. editDashboardPermissions(DashboardId) {
  257. var instance = this;
  258. MessageHelper.Instance().hideMessage();
  259. instance.editDashboardInfo(DashboardId);
  260. $('#EditDashboard').addClass("hidden");
  261. $('#card_dashboardPermissions').removeClass("hidden");
  262. $('#btn_UpdateDashboards').addClass("hidden");
  263. $('#EditDashboardId').val(DashboardId);
  264. Unibase.Platform.Dashboards.Components.DashboardPermissions.Instance().ShowPermissions(DashboardId);
  265. }
  266. editGroupPermissions(DashboardGroupId) {
  267. var instance = this;
  268. MessageHelper.Instance().hideMessage();
  269. instance.editGroupPermissionsinfo();
  270. Unibase.Platform.Dashboards.Components.DashboardGroupPermissions.Instance().loadallpermissions(DashboardGroupId);
  271. }
  272. editGroupPermissionsinfo() {
  273. var instance = this;
  274. instance.navigationHelper.popup(0, "", Unibase.Platform.Dashboards.Components.EditGroupPermissions.Instance(), null, Platform.Helpers.Size.DockLeft);
  275. }
  276. tracking() {
  277. var instance = this;
  278. if (Number($('#EditDashboardId').val()) != 0) {
  279. let reqObj = new Unibase.Platform.Dashboards.Requests.Dashboard();
  280. reqObj.IsTrackable = $("#Ch_IsTrackable").is(":checked");
  281. reqObj.DashboardId = Number($('#EditDashboardId').val());
  282. instance._dashboardManager.trackDashboard(reqObj);
  283. }
  284. }
  285. loadimport() {
  286. var instance = this;
  287. instance.navigationHelper.popup(0, "", Unibase.Platform.Dashboards.Components.Import.Instance(), null, Platform.Helpers.Size.DockLeft);
  288. }
  289. ImportDashBoard(DashboardId, containerid) {
  290. var instance = this;
  291. $(".biz-submenu").css({ "z-index": "" });
  292. $(".biz-layout-3-left-nav").css({ "z-index": "" });
  293. $(".toplayout-structures-panel").css({ "z-index": "1040" });
  294. instance.loadimport();
  295. }
  296. ExportDashboard() {
  297. var instance = this;
  298. Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
  299. instance._dashboardManager.exportDashboard().then(function (groupresponse) {
  300. if (groupresponse.result != null && groupresponse.result != undefined) {
  301. var filename = "Dashboard.xml";
  302. var xmltext = groupresponse.result;
  303. var pom = document.createElement('a');
  304. var bb = new Blob([xmltext], { type: 'text/plain' });
  305. pom.setAttribute('href', window.URL.createObjectURL(bb));
  306. pom.setAttribute('download', filename);
  307. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  308. pom.draggable = true;
  309. pom.classList.add('dragout');
  310. pom.click();
  311. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  312. }
  313. });
  314. }
  315. exportDashboardByDashboardId(dashBoardGroupId) {
  316. var instance = this;
  317. Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
  318. instance._dashboardManager.getDashboardGroup(dashBoardGroupId).then(function (dashboardGroupResponse) {
  319. instance._dashboardManager.exportDashboardByDashboardId(dashBoardGroupId).then(function (groupresponse) {
  320. if (groupresponse.status == Unibase.Data.Status.Error) {
  321. MessageHelper.Instance().showError(groupresponse.message, "divBizgaze_MessagesPlaceholder");
  322. instance.navigationHelper.hideLoading();
  323. }
  324. else if (dashboardGroupResponse.result != null && dashboardGroupResponse.result != undefined && groupresponse.result != null && groupresponse.result != undefined) {
  325. var filename = dashboardGroupResponse.result.DashboardGroupName + " - DashboardGroup.xml";
  326. var xmltext = groupresponse.result;
  327. var pom = document.createElement('a');
  328. var bb = new Blob([xmltext], { type: 'text/plain' });
  329. pom.setAttribute('href', window.URL.createObjectURL(bb));
  330. pom.setAttribute('download', filename);
  331. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  332. pom.draggable = true;
  333. pom.classList.add('dragout');
  334. pom.click();
  335. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  336. }
  337. });
  338. });
  339. }
  340. importPortlet(containerid, fileInfo) {
  341. var instance = this;
  342. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/portlets/importportlet/np';
  343. Platform.Helpers.FileHelper.Instance().upload(url, fileInfo).then(function (response) {
  344. if (response.status == Unibase.Data.Status.Error) {
  345. MessageHelper.Instance().showError(response.message, "div_importmessage");
  346. }
  347. else {
  348. MessageHelper.Instance().showSuccess(response.message, "div_importmessage");
  349. $('#' + containerid).modal('hide');
  350. $('#' + containerid).remove();
  351. }
  352. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  353. });
  354. }
  355. static Instance() {
  356. return new ManageDashboard();
  357. }
  358. }
  359. Components.ManageDashboard = ManageDashboard;
  360. })(Components = Dashboards_1.Components || (Dashboards_1.Components = {}));
  361. })(Dashboards = Platform.Dashboards || (Platform.Dashboards = {}));
  362. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  363. })(Unibase || (Unibase = {}));