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.

manageappgroup.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let AppGroups;
  6. (function (AppGroups) {
  7. let Components;
  8. (function (Components) {
  9. class ManageAppGroup extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this._appGroupManager = AppGroups.Managers.AppGroupManager.Instance();
  13. this._appManager = Platform.Apps.Managers.AppManager.Instance();
  14. }
  15. cssFiles() {
  16. return ["libs/nestable/JqueryminMenu.css"];
  17. }
  18. jsFiles() {
  19. return ["platform/bundle/index.appgroup.min.js"];
  20. }
  21. html(id, containerid) {
  22. let html = `<form id="frm_BizgazeNavigationAppGroup" method="post" data-validate="parsley" class="w-f bg-white"><div class="header b-b bg-white p-3" id="div_AppGroupSettingHeader"><h5>App Group Settings</h5><div class="btn-group pull-right"><a class="btn btn-sm btn-info" style="color:white" id="btn_CreateAppGroup"><i class="fa fa-plus"></i> App Group</a>&nbsp;</div></div><div data-simplebar class="simple-scroll-bar scrollable"><div id="Bizgaze_AppGroupErrorMessages" class="clear"></div><br /><div class="card"><div class="card-body"><div class="row"><div class="col-sm-12"><div class="dd" id="div_nestable3"><div><h5>Apps and Groups</h5></div><hr/><ol class="dd-list" id="ol_MainAppGroup"></ol></div><div class="dd" id="div_nestable2"><div><h5>Groupable Apps</h5></div><hr /><ol class="dd-list" id="ol_GrouplessApps"><li class="li_GroupItem"></li><li class="li_DisplayItem"></li></ol>Note: These Apps are groupable & draggable, AppGroup Settings will affect to all the Portals.</div></div></div></div></div></div><div class="footer bg-white"><a href="javascript:;" id="btn_CloseAppGroupSettings" class="pull-left btn btn-light btn-sm mr-auto">Close</a><a href="javascript:;" id="btn_SaveAppGroupSettings" class="pull-right btn btn-primary btn-sm">Save</a></div></form>`;
  23. return html;
  24. }
  25. load(id, containerid, callback) {
  26. Unibase.Platform.Helpers.FileCacheHelper.Instance().addCacheFiles(["platform/appgroups/components/createappgroup.js", "platform/appgroups/components/editappgroup.js", "platform/appgroups/components/appgroup.template.js", "platform/appgroups/requests/appgroup.js"]);
  27. var instance = this;
  28. $("#div_AppGroupSettingHeader").removeClass("pa-5");
  29. let x = $('#div_nestable3');
  30. x.nestable({
  31. group: 'categories',
  32. maxDepth: 2,
  33. scroll: true,
  34. scrollSpeed: 20,
  35. beforeDragStop: function (l, e, p) {
  36. var isGroup = $(e).hasClass('RootGroup');
  37. var Area = $(p).attr("id");
  38. if (isGroup == true) {
  39. if (Area !== 'ol_GrouplessApps') {
  40. let y = $('#ol_MainAppGroup');
  41. y.sortable({
  42. scrollSpeed: 20,
  43. });
  44. }
  45. else {
  46. return false;
  47. }
  48. setTimeout(function () {
  49. instance.saveAppGroupSettings();
  50. }, 300);
  51. }
  52. else {
  53. let Checkroot = $(p).parent().attr('data-type');
  54. let checkGroupable = $(p).parent().attr('id');
  55. if (Checkroot != 'root' || Checkroot.toString() == 'undefind') {
  56. if (checkGroupable == 'div_nestable2') {
  57. return true;
  58. }
  59. else {
  60. return false;
  61. }
  62. }
  63. }
  64. let z = $("#ol_MainAppGroup");
  65. z.sortable({
  66. disabled: true
  67. });
  68. },
  69. });
  70. let a = $('#div_nestable2');
  71. a.nestable({
  72. group: 'categories',
  73. maxDepth: 2,
  74. scroll: true,
  75. scrollSpeed: 20,
  76. beforeDragStop: function (l, e, p) {
  77. let AppId = $(e).attr('id');
  78. let AppGroupId = $(p).parents('li').attr('id');
  79. let Appindex = $(e).attr('appindex');
  80. if (AppGroupId == undefined || AppGroupId == "undefined")
  81. AppGroupId = "0";
  82. var isGroup = $(e).hasClass('RootGroup');
  83. var Area = $(p).attr("id");
  84. if (isGroup == true) {
  85. instance.saveAppGroupSettings();
  86. }
  87. else {
  88. }
  89. },
  90. });
  91. $('.dd-empty').remove();
  92. $("#btn_CreateAppGroup").click(function () {
  93. instance.navigationHelper.popup(0, "", Unibase.Platform.AppGroups.Components.CreateAppGroup.Instance(), null, Platform.Helpers.Size.DockLeft);
  94. });
  95. $("#btn_SaveAppGroupSettings").click(function () {
  96. instance.saveAppGroupSettings();
  97. instance.navigationHelper.closePopUp();
  98. });
  99. $("#btn_CloseAppGroupSettings").click(function () {
  100. instance.navigationHelper.closePopUp();
  101. });
  102. instance.loadAppGroups();
  103. }
  104. loadAppGroups() {
  105. var instance = this;
  106. jQuery("#ol_MainAppGroup").empty();
  107. var html = "";
  108. instance._appGroupManager.getAppGroups().then(function (response) {
  109. for (var i = 0; i < response.result.length; i++) {
  110. var groupData = response.result[i];
  111. var template = Unibase.Platform.AppGroups.Components.AppGroup_Template.Instance().AppGroups();
  112. var templateScript = Handlebars.compile(template);
  113. var context = { "AppGroupId": groupData.AppGroupId, "AppGroupName": groupData.AppGroupName };
  114. html = templateScript(context);
  115. $("#ol_MainAppGroup").append(html);
  116. }
  117. instance.loadApps();
  118. instance.loadUngroupedApps();
  119. });
  120. }
  121. loadApps() {
  122. var instance = this;
  123. instance._appManager.getActiveUserApps().then(function (response) {
  124. if (response.result.length > 0) {
  125. for (var i = 0; i < response.result.length; i++) {
  126. var appData = response.result[i];
  127. var html = "";
  128. var groupId = appData.AppGroupId;
  129. var template = Unibase.Platform.AppGroups.Components.AppGroup_Template.Instance().Apps();
  130. var templateScript = Handlebars.compile(template);
  131. var context = { "InstalledAppId": appData.MyAppId, "AppTitle": appData.AppTitle, "AppIndex": appData.AppIndex };
  132. html = templateScript(context);
  133. $('#GroupApps-' + groupId).find(".grpItem:last").after(html);
  134. }
  135. $(".AppGroupOl").each(function () {
  136. let element = $(this).children('li');
  137. $(this).html(element.sort(function (a, b) {
  138. return ($(b).attr('appindex')) < ($(a).attr('appindex')) ? 1 : -1;
  139. }));
  140. });
  141. }
  142. });
  143. }
  144. loadUngroupedApps() {
  145. var instance = this;
  146. $('#ol_GrouplessApps').empty();
  147. instance._appGroupManager.getUngroupedApps().then(function (response) {
  148. var appData = response.result;
  149. if (appData.length > 0) {
  150. appData = appData.filter(f => f.ParentAppId == 0);
  151. }
  152. var html = "";
  153. for (var i = 0; i < appData.length; i++) {
  154. var group = appData[i];
  155. var template = Unibase.Platform.AppGroups.Components.AppGroup_Template.Instance().UnGroupedApps();
  156. var templateScript = Handlebars.compile(template);
  157. var context = { "InstalledAppId": group.InstalledAppId, "AppTitle": group.AppTitle, "AppIndex": group.AppIndex };
  158. html += templateScript(context);
  159. }
  160. $('#ol_GrouplessApps').html(html + "<li class='li_DisplayItem dd-item'></li>");
  161. });
  162. }
  163. saveAppGroupSettings() {
  164. var instance = this;
  165. var Groups = [];
  166. $('#ol_MainAppGroup .RootGroup').each(function (index, el) {
  167. Groups.push(el);
  168. });
  169. let AppsAndGroups = [];
  170. for (var i = 0; i < Groups.length; i++) {
  171. var appIds = [];
  172. var currentGrp = Groups[i];
  173. var grpId = Number($(currentGrp).attr('id'));
  174. $(currentGrp).children('ol').find('li').each(function (index, el) {
  175. let id = $(el).attr('id');
  176. if (id > 0 || id != null) {
  177. appIds.push(Number(id));
  178. }
  179. });
  180. AppsAndGroups.push({ "GroupId": grpId, "AppIds": appIds });
  181. }
  182. instance._appGroupManager.saveAppGroupSettings(AppsAndGroups).then(function (response) {
  183. if (response.errors == null) {
  184. instance.loadAppGroups();
  185. MessageHelper.Instance().showSuccess('App Group Settings Saved Successfully', '');
  186. }
  187. else {
  188. MessageHelper.Instance().showError(response.errors[0], "Bizgaze_AppGroupErrorMessages");
  189. }
  190. });
  191. }
  192. updateAppGroup(app, appGroupId) {
  193. var instance = this;
  194. var DisplayIndex = $(app).attr('appindex');
  195. DisplayIndex = DisplayIndex.replace(/['"]+/g, '');
  196. var InstalledAppId = $(app).attr('id');
  197. let reqObj = new Unibase.Platform.AppGroups.Requests.AppGroup();
  198. reqObj.AppGroupId = Number(appGroupId);
  199. reqObj.InstalledAppId = Number(InstalledAppId);
  200. reqObj.DisplayIndex = Number(DisplayIndex);
  201. instance._appGroupManager.updateAppGroup(reqObj).then(function (response) {
  202. if (response.errors == null)
  203. MessageHelper.Instance().showSuccess('App Group Updated Successfully', '');
  204. else
  205. MessageHelper.Instance().showError(response.errors[0], "Bizgaze_AppGroupErrorMessages");
  206. });
  207. }
  208. editAppGroup(GroupId) {
  209. var instance = this;
  210. instance.navigationHelper.popup(GroupId, "", Unibase.Platform.AppGroups.Components.EditAppGroup.Instance(), null, Platform.Helpers.Size.DockLeft);
  211. }
  212. static Instance() {
  213. return new ManageAppGroup();
  214. }
  215. }
  216. Components.ManageAppGroup = ManageAppGroup;
  217. })(Components = AppGroups.Components || (AppGroups.Components = {}));
  218. })(AppGroups = Platform.AppGroups || (Platform.AppGroups = {}));
  219. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  220. })(Unibase || (Unibase = {}));