Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

managedashboards.js 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  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 (dashboardGroupResponse.result != null && dashboardGroupResponse.result != undefined && groupresponse.result != null && groupresponse.result != undefined) {
  321. var filename = dashboardGroupResponse.result.DashboardGroupName + " - DashboardGroup.xml";
  322. var xmltext = groupresponse.result;
  323. var pom = document.createElement('a');
  324. var bb = new Blob([xmltext], { type: 'text/plain' });
  325. pom.setAttribute('href', window.URL.createObjectURL(bb));
  326. pom.setAttribute('download', filename);
  327. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  328. pom.draggable = true;
  329. pom.classList.add('dragout');
  330. pom.click();
  331. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  332. }
  333. });
  334. });
  335. }
  336. importPortlet(containerid, fileInfo) {
  337. var instance = this;
  338. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/portlets/importportlet/np';
  339. Platform.Helpers.FileHelper.Instance().upload(url, fileInfo).then(function (response) {
  340. if (response.status == Unibase.Data.Status.Error) {
  341. MessageHelper.Instance().showError(response.message, "div_importmessage");
  342. }
  343. else {
  344. MessageHelper.Instance().showSuccess(response.message, "div_importmessage");
  345. $('#' + containerid).modal('hide');
  346. $('#' + containerid).remove();
  347. }
  348. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  349. });
  350. }
  351. static Instance() {
  352. return new ManageDashboard();
  353. }
  354. }
  355. Components.ManageDashboard = ManageDashboard;
  356. })(Components = Dashboards_1.Components || (Dashboards_1.Components = {}));
  357. })(Dashboards = Platform.Dashboards || (Platform.Dashboards = {}));
  358. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  359. })(Unibase || (Unibase = {}));