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.

apppermission.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Apps;
  6. (function (Apps) {
  7. let Components;
  8. (function (Components) {
  9. class AppPermission extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.appManager = Apps.Managers.AppManager.Instance();
  13. }
  14. jsFiles() {
  15. return ["platform/apps/managers/appmanager.js", "/platform/apps/enums/settingtype.js", "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'platform/core/infos/status.js'];
  16. }
  17. cssFiles() {
  18. return [];
  19. }
  20. html(id, containerid) {
  21. return `<form id="form_AppRoleSetting" data-validate="parsley" data-isdynamic="false">
  22. <div class="card bg-light">
  23. <div class="card-header bg-white"><strong class="title font-weight-bold">Add Role Setting</strong></div>
  24. <div class="card-body scrollable" id="div_AddAppRoleSetting" style="overflow-y: scroll; height: 477px;">
  25. <div id="div_apppermissionmessage" class="clear"></div>
  26. <div class="card bg-white">
  27. <div id="Unibase_ValidationSummary" class="clear"></div>
  28. <div class="card-body">
  29. <div class="row">
  30. <div class="col-sm-6">
  31. <div class="floating-label-form-group" id="div_AppRoleSettingName">
  32. <label for="AppRoleSettingName" id="lbl_SettingName" class="font-bold"> Setting Name<span class="text-danger"> *</span></label>
  33. <input type="text" id="txt_AppRoleSettingName" class="form-control value-control required" data-isdynamic="false" placeholder="Setting Name" data-placeholder="Enter Setting Name" data-label="Setting Name" autocomplete="off">
  34. </div></div>
  35. <div class="col-sm-6">
  36. <div class="input-group"><label for="permissiontype" class="font-bold">Permission Type <span class="text-danger"> *</span></label>
  37. <select id="autocomplete_PermissionType" class="form-control text-control required" style="width:100%;" placeholder = "RoleSetting Type" data-placeholder="Permission Type"></select>
  38. <input type="hidden" id="hfAutoComplete_PermissionType" class="hfAutoComplete_PermissionType' form-control value-control" data-isdynamic="true"/>
  39. </div></div>
  40. <div class="col-sm-6">
  41. <div class="floating-label-form-group floating-label-form-group-with-value focus">
  42. <label for="ApplicableValues" id="lbl_ApplicableValues" class="font-bold">Applicable Values<span class="text-danger"> *</span></label>
  43. <select id="sel_ApplicableValues" class="form-control value-control required" data-isdynamic="true">
  44. <option value="0">select</option>
  45. <option value="1|5">None,Allow</option><option value="1|2|3|4">None,Owner,Manager,Admin</option>
  46. </select></div></div>
  47. </div></div>
  48. </div>
  49. <div class="card bg-white">
  50. <div class="card-header"><p>Unique Key</p></div>
  51. <div class="card-body">
  52. <div class="row">
  53. <div class="col-sm-11"><div class="alert alert-primary" id="txt_UniqueId"></div></div>
  54. <div class="col-sm-1"><button id="Edit_UniqueKey" class="btn btn-secondary btn-sm mr-auto hidden">Edit</button></div></div></div></div>
  55. <div class="bg-white card"><div class="card-header">Description</div><div class="card-body"><div class="row"><div class="col-sm-12"><div class="floating-label-form-group"><label for="txtDescription" class="font-bold">Description <span class="text-danger"> *</span></label><input type="text" id="txt_AppRoleSettingDescription" class="form-control value-control floating-label-control" placeholder="Description" data-placeholder="Enter Description" data-label="Description" autocomplete="off"/></div></div>
  56. </div></div></div></div>
  57. </div></div>
  58. <div class="card-footer bg-white" id="div_Footer">
  59. <button id="btn_CloseAppRoleSetting" class="btn btn-secondary btn-sm mr-auto">Close</button>
  60. <button id="btn_SaveAppRoleSetting" class="btn btn-primary btn-sm pull-right">Save</button>
  61. </div></div></form>`;
  62. }
  63. load(id, containerid, callback) {
  64. $("#btn_CloseAppRoleSetting").click(function () {
  65. $('#' + containerid).modal('hide');
  66. $('#' + containerid).remove();
  67. });
  68. $("#btn_SaveAppRoleSetting").click(function () {
  69. let controlid = "form_AppRoleSetting";
  70. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(controlid);
  71. if (result == false) {
  72. MessageHelper.Instance().showError("Mandatory Fields are missing", "div_apppermissionmessage");
  73. return false;
  74. }
  75. AppPermission.Instance().saveAppRoleSettings(containerid, id);
  76. });
  77. var recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  78. this.loaddata(id);
  79. var UniqueId = '';
  80. var apptitle = "";
  81. if (recordid != 0) {
  82. Unibase.Platform.Apps.Managers.AppManager.Instance().getAppPermissions(recordid).then(function (response) {
  83. if (response.result.length > 0) {
  84. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallApp(recordid).then(function (appresponse) {
  85. if (appresponse.result != null) {
  86. apptitle = appresponse.result.AppTitle.replace(/ /g, '');
  87. UniqueId = response.result[0].SystemName.substring(0, response.result[0].SystemName.indexOf("_RoleSetting_"));
  88. UniqueId = UniqueId.replace(/ /g, '');
  89. if (id == 0) {
  90. $("#txt_UniqueId").text(UniqueId);
  91. }
  92. }
  93. });
  94. }
  95. else {
  96. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallApp(recordid).then(function (response) {
  97. if (response.result != null) {
  98. var apptitle = response.result.AppTitle.replace(/ /g, '');
  99. UniqueId = response.result.DevOrgName + "_" + response.result.ModuleTypeName + "_" + response.result.ModuleName + "_" + apptitle;
  100. UniqueId = UniqueId.replace(/ /g, '');
  101. if (id == 0) {
  102. $("#txt_UniqueId").text(UniqueId);
  103. }
  104. }
  105. });
  106. }
  107. });
  108. }
  109. $("#txt_AppRoleSettingName").keyup(function () {
  110. if (id == 0) {
  111. UniqueId = UniqueId.replace(/ /g, '');
  112. $("#txt_UniqueId").text(UniqueId + "_RoleSetting_" + $("#txt_AppRoleSettingName").val().toString().replace(/ /g, '') + apptitle);
  113. }
  114. });
  115. }
  116. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
  117. this.addRoleSetting(Pk_Value);
  118. }
  119. addRoleSetting(Pk_Value) {
  120. this.navigationHelper.popup(Pk_Value, '', Unibase.Platform.Apps.Components.AppPermission.Instance(), null, Platform.Helpers.Size.Large);
  121. }
  122. loaddata(id) {
  123. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/permissiontypes';
  124. AutoCompleteHelper.getHelper().Create("#autocomplete_PermissionType", "#hfAutoComplete_PermissionType", url, function (response) {
  125. var data = response;
  126. });
  127. if (id != 0) {
  128. $(".title").text('Edit Role Setting');
  129. this.appManager.getAppPermission(id).then(function (response) {
  130. var option = new Option(Unibase.Platform.Apps.Enums.SettingType[response.result.PermissionLevelId], response.result.PermissionLevelId.toString(), true);
  131. $("#autocomplete_PermissionType").append(option);
  132. var applValue = response.result.ApplicableValues;
  133. $('#sel_ApplicableValues option').map(function () { if ($(this).val() == applValue)
  134. return this; }).attr('selected', 'selected');
  135. $("#txt_AppRoleSettingName").val(response.result.SettingName);
  136. $("#txt_AppRoleSettingDescription").val(response.result.Description);
  137. $("#txt_UniqueId").text(response.result.SystemName);
  138. });
  139. }
  140. }
  141. saveAppRoleSettings(containerid, appRoleSettingId) {
  142. if ($("#txt_AppRoleSettingName").val() == "" || $("#sel_AppRoleSettingType option:selected").val() == 0 || $("#sel_ApplicableValues option:selected").val() == 0) {
  143. MessageHelper.Instance().showError("Mandatory fields are missing!", "div_apppermissionmessage");
  144. return false;
  145. }
  146. $("#div_apppermissionmessage").empty();
  147. var postData = {
  148. AppPermissionId: appRoleSettingId,
  149. InstalledAppId: Number(Unibase.Themes.Providers.DetailHelper.recordId),
  150. SettingName: $("#txt_AppRoleSettingName").val(),
  151. PermissionLevelId: Number($("#autocomplete_PermissionType").val()),
  152. ApplicableValues1: $("#sel_ApplicableValues option:selected").val().toString(),
  153. Description: $("#txt_AppRoleSettingDescription").val(),
  154. SystemName: $("#txt_UniqueId").text().replace(/ /g, ''),
  155. StageId: 0,
  156. };
  157. this.appManager.saveAppPermission(postData).then(function (response) {
  158. if (response.status == Unibase.Data.Status.Error) {
  159. MessageHelper.Instance().showError(response.message, "div_apppermissionmessage");
  160. }
  161. else {
  162. MessageHelper.Instance().showSuccess(response.message, "div_apppermissionmessage");
  163. $('#' + containerid).modal('hide');
  164. $('#' + containerid).remove();
  165. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  166. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  167. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  168. Unibase.Themes.Compact.Components.Details.Instance().loadPortlets(obj);
  169. }
  170. });
  171. }
  172. editRoleSetting(appRoleSettingId) {
  173. AppPermission.Instance().addRoleSetting(appRoleSettingId);
  174. }
  175. deleteRoleSetting(appRoleSettingId) {
  176. var instance = this;
  177. bootbox.confirm({
  178. message: "Are you sure you want to Delete",
  179. closeButton: false,
  180. buttons: {
  181. confirm: {
  182. label: 'Yes',
  183. className: 'btn-success'
  184. },
  185. cancel: {
  186. label: 'No',
  187. className: 'btn-defualt'
  188. }
  189. },
  190. callback: function (result) {
  191. if (result) {
  192. instance.appManager.deleteAppPermission(appRoleSettingId).then(function (response) {
  193. if (response.status == Unibase.Data.Status.Error) {
  194. MessageHelper.Instance().showError(response.message, "div_message");
  195. }
  196. else {
  197. MessageHelper.Instance().showSuccess(response.message, "div_message");
  198. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  199. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  200. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  201. Unibase.Themes.Compact.Components.Details.Instance().loadPortlets(obj);
  202. }
  203. });
  204. }
  205. }
  206. });
  207. }
  208. static Instance() {
  209. if (this.instance === undefined) {
  210. this.instance = new AppPermission();
  211. }
  212. return this.instance;
  213. }
  214. }
  215. Components.AppPermission = AppPermission;
  216. })(Components = Apps.Components || (Apps.Components = {}));
  217. })(Apps = Platform.Apps || (Platform.Apps = {}));
  218. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  219. })(Unibase || (Unibase = {}));