Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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 = {}));