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.

creategroup.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Dashboards;
  6. (function (Dashboards) {
  7. let Components;
  8. (function (Components) {
  9. class DashboardGroup extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.dashboardManager = Dashboards.Managers.DashboardManager.Instance();
  13. }
  14. cssFiles() {
  15. return [];
  16. }
  17. jsFiles() {
  18. return ["platform/dashboards/managers/dashboardmanager.js", "platform/dashboards/requests/dashboards.js", "platform/dashboards/components/dashboardgrouppermissions.js"];
  19. }
  20. html(id, containerid) {
  21. let html = `<form id="frm_Bizgazetransact_createdashboardGroup" method="post" data-validate="parsley" class="w-f bg-white">
  22. <div class="header b-b "><p class="h5 text-dark">Create Group</p></div><div class="scrollable"><div id="Bizgaze_EditGroupErrorMessages" class="clear"></div><div class="card"><div class="card-header">Details</div><div class="card-body"><div class="row"><div class="col-sm-6"><div class="floating-label-form-group floating-label-form-group-with-value" id="div_GroupName"><label for="txt_GroupName" id="lbl_GrpName">Group Name<span class="text-danger"> *</span></label><div class=""><input type="text" id="Txt_GrpName" class="form-control value-control floating-label-control" data-isdynamic="false" placeholder="Group Name *" data-placeholder="Enter Group Name" data-label="Group Name *" /></div></div></div><div class="col-sm-6"><div class="floating-label-form-group floating-label-form-group-with-value" id="div_Index"><label for="txt_DisplayIndex" id="lbl_PGIndex">Display index</label><div class=""><input type="number" min="0" onkeypress="return event.charCode != 45 && event.charCode!=101" id="Txt_DsplyIndex" class="form-control value-control floating-label-control" data-isdynamic="false" placeholder="Display Index" data-placeholder="Enter Display Index" data-label="Display Index" /></div></div></div></div></div><br /><br /></div>
  23. <div class="card"><div class="card-header">Permissions</div><div class="card-body"><div class="row"><div class="col-sm-12"><strong>Everyone can view?</strong><a href="javascript:;"><label class="switch pull-right"><input id="chkIsGroupViewable" type="checkbox" data-group="Viewable" checked><span class="slider round"></span></label></a></div></div><div class="row hidden mb-4" id="divGroupViewRoles"><div class="col-sm-12 m-b"><label>Roles that <strong>can</strong> view</label><input type="hidden" id="hfGroupViewRoles" /><select type="text" id="txtGroupViewRoles" style="width:100%" value="" multiple="multiple"></select></div></div><div class="row" id="divGroupExcludeViewRoles"><div class="col-sm-12 m-b"><label>Roles that <strong>can't</strong> view</label><input type="hidden" id="hfGroupExcludeViewRoles" /><select type="text" id="txtGroupExcludeViewRoles" style="width:100%" value="" multiple="multiple"></select></div></div></div></div>
  24. <div class="card" id="div_Choosedashboards"><div class="card-header">Choose Dashboards</div><div class="card-body"><div class="row"><div class="col-sm-12" style="overflow:auto"><!--<span style="font-size:20px"><i class="fa fa-file-text"></i>&nbsp;&nbsp;<b>Select dashboards</b></span>--><ul class="list-group" style="" id="UnGroupeddashboardItems"></ul></div></div></div></div></div>
  25. <div class="footer bg-white"><a href="javascript:;" id="btn_ClosedashboardGroup" class="pull-left btn btn-light btn-sm mr-auto">Close</a><a href="javascript:;" id="btn_SaveDashboardGroup" class="pull-right btn btn-primary btn-sm">Save</a></div></form>`;
  26. return html;
  27. }
  28. load(id, containerid, callback) {
  29. var instance = this;
  30. var selecteddashboards = [];
  31. var viewRoles = [];
  32. var ExcludeRoles = [];
  33. $('#chkIsGroupViewable').change(function () {
  34. if ($('#chkIsGroupViewable').prop('checked')) {
  35. viewRoles = [];
  36. $('#divGroupViewRoles').addClass('hidden');
  37. }
  38. else {
  39. viewRoles = [];
  40. $('#divGroupViewRoles').removeClass('hidden');
  41. }
  42. });
  43. var TotalGroups = $('li.RootGroup').length;
  44. $("#Txt_DsplyIndex").val(TotalGroups + 1);
  45. instance.loadUngroupedDashboards();
  46. let ViewRoleElementId = "txtGroupViewRoles";
  47. let ExcludeRoleElementId = "txtGroupExcludeViewRoles";
  48. let _Permission_ViewRoles = [];
  49. let _dashboardGroup_Excluderoles = [];
  50. let Ids = [];
  51. let ExludedIds = [];
  52. Unibase.Platform.Dashboards.Components.DashboardGroupPermissions.Instance().select2dashboardgroupDatabinding(_Permission_ViewRoles, _dashboardGroup_Excluderoles, Ids, ExludedIds, ViewRoleElementId, ExcludeRoleElementId);
  53. $('#txtGroupViewRoles').on("select2:select", function (e) {
  54. var result = e.params.data;
  55. if (Number(result.id) != 0) {
  56. var roleId = result.id;
  57. viewRoles.push(roleId);
  58. $(ExcludeRoles).each(function (i, value) {
  59. if (value == roleId) {
  60. var index = ExcludeRoles.indexOf(value);
  61. if (index > -1) {
  62. ExcludeRoles.splice(index, 1);
  63. }
  64. ExcludeRoles.splice(value, 1);
  65. $("#txtGroupExcludeViewRoles").val(ExcludeRoles).trigger('change');
  66. return false;
  67. }
  68. });
  69. }
  70. });
  71. $('#txtGroupViewRoles').on("select2:unselect", function (e) {
  72. var result = e.params.data;
  73. if (Number(result.id) != 0) {
  74. var roleId = result.id;
  75. viewRoles.pop(roleId);
  76. }
  77. });
  78. $('#txtGroupExcludeViewRoles').on("select2:select", function (e) {
  79. var result = e.params.data;
  80. if (Number(result.id) != 0) {
  81. var roleId = result.id;
  82. ExcludeRoles.push(roleId);
  83. $(viewRoles).each(function (i, value) {
  84. if (value == roleId) {
  85. var index = viewRoles.indexOf(value);
  86. if (index > -1) {
  87. viewRoles.splice(index, 1);
  88. }
  89. jQuery("#txtGroupViewRoles").val(viewRoles).trigger('change');
  90. return false;
  91. }
  92. });
  93. }
  94. });
  95. $('#txtGroupExcludeViewRoles').on("select2:unselect", function (e) {
  96. var result = e.params.data;
  97. if (Number(result.id) != 0) {
  98. var roleId = result.id;
  99. ExcludeRoles.pop(roleId);
  100. }
  101. });
  102. $("#btn_SaveDashboardGroup").click(function () {
  103. if ($("#Txt_GrpName").val() == "") {
  104. MessageHelper.Instance().showError('Group Name is required', 'Bizgaze_EditGroupErrorMessages');
  105. return false;
  106. }
  107. $("#UnGroupeddashboardItems li").each(function () {
  108. var cb = $(this).find(':checkbox');
  109. if (cb.prop("checked")) {
  110. var dashboardId = cb.parent('li').attr('id');
  111. selecteddashboards.push(Number(dashboardId));
  112. }
  113. });
  114. let reqObj = new Dashboards.Requests.DashboardGroup();
  115. reqObj.DashboardGroupName = String($("#Txt_GrpName").val());
  116. reqObj.DisplayIndex = Number($("#Txt_DsplyIndex").val());
  117. reqObj.ViewAll = Boolean($("#chkIsGroupViewable").is(":checked"));
  118. reqObj.ExcludeRoles = ExcludeRoles;
  119. reqObj.ViewRoles = viewRoles;
  120. reqObj.Dashboards = selecteddashboards;
  121. reqObj.InstalledAppId = 0;
  122. instance.dashboardManager.saveDashboardGroup(reqObj).then(function (response) {
  123. if (response.errors == null) {
  124. instance.navigationHelper.closePopUp();
  125. MessageHelper.Instance().showSuccess('Group Saved Successfully', '');
  126. Unibase.Platform.Dashboards.Components.ManageDashboard.Instance().loadDashboardGroups();
  127. }
  128. else
  129. MessageHelper.Instance().showError(response.errors[0], 'Bizgaze_EditGroupErrorMessages');
  130. });
  131. });
  132. $("#btn_ClosedashboardGroup").click(function () {
  133. instance.navigationHelper.closePopUp();
  134. });
  135. }
  136. loadUngroupedDashboards() {
  137. var instance = this;
  138. instance.dashboardManager.getUnGroupedDashboards().then(function (response) {
  139. var ungroupeddashboards = response.result;
  140. let html = "";
  141. if (ungroupeddashboards.length > 0) {
  142. $('#div_Choosedashboards').removeClass("hidden");
  143. for (var i = 0; i < ungroupeddashboards.length; i++) {
  144. html += '<li id="' + ungroupeddashboards[i].DashboardId + '" style="margin-top:3px;font-size:15px" class="list-group-item"><input type="checkbox" style="height:17px;width:17px"><span style="margin-left:5px">' + ungroupeddashboards[i].DashboardName + '</span></li>';
  145. }
  146. $('#UnGroupeddashboardItems').html(html);
  147. }
  148. else {
  149. $('#div_Choosedashboards').addClass("hidden");
  150. }
  151. });
  152. }
  153. static Instance() {
  154. return new DashboardGroup();
  155. }
  156. }
  157. Components.DashboardGroup = DashboardGroup;
  158. })(Components = Dashboards.Components || (Dashboards.Components = {}));
  159. })(Dashboards = Platform.Dashboards || (Platform.Dashboards = {}));
  160. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  161. })(Unibase || (Unibase = {}));