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.

docpropertyactionprovider.js 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  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 DocPropertyActionProvider extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.appManager = Apps.Managers.AppManager.Instance();
  13. this.stageManager = Apps.Managers.StageManager.Instance();
  14. this.doctypeManager = Platform.DataSources.Managers.DocTypeManager.Instance();
  15. }
  16. jsFiles() {
  17. return ['/platform/apps/components/stages/stages.js', '/platform/apps/components/stages/stagestatus.js', '/platform/apps/managers/stagemanager.js', '/platform/apps/managers/appmanager.js', '/platform/apps/components/stages/stagepermissions.js', "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'platform/core/infos/status.js', 'platform/datasources/managers/doctypemanager.js', '/platform/forms/enums/enums.js'];
  18. }
  19. cssFiles() {
  20. return [];
  21. }
  22. load(id, containerid, callback) {
  23. var instance = this;
  24. var installedappid = instance.appSettings.InstalledAppId;
  25. $("#doctype_Autocomplete").change(function () {
  26. var doctypeid = $("#doctype_Autocomplete").val();
  27. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/docpropertiesautocomplete/doctypeid/' + doctypeid;
  28. AutoCompleteHelper.getHelper().Create("#Autocomplete_DocProperty", "#hfAutocomplete_DocProperty", url, function (response) {
  29. });
  30. });
  31. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/appdoctypesautocomplete/installedappid/' + installedappid;
  32. AutoCompleteHelper.getHelper().Create("#doctype_Autocomplete", "#hfDocType_Autocomplete", url, function (response) {
  33. });
  34. $("#btn_CancelAP_" + containerid).click(function () {
  35. $('#' + containerid).modal('hide');
  36. $('#' + containerid).remove();
  37. });
  38. $("#Drp_ProviderType").on("change", function () {
  39. if ($("#Drp_ProviderType").val() == 1) {
  40. $("#AutoComplete_Onchanging").removeAttr("disabled");
  41. $("#AutoComplete_Onchanging").empty();
  42. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/docpropertyactionproviders/actiontype/' + Platform.Forms.Enums.DocPropertyActionProviderType.PreAction;
  43. AutoCompleteHelper.getHelper().Create("#AutoComplete_Onchanging", "#hfAutoComplete_Onchanging", url, function (response) {
  44. });
  45. }
  46. else if ($("#Drp_ProviderType").val() == 2) {
  47. $("#AutoComplete_Onchanging").removeAttr("disabled");
  48. $("#AutoComplete_Onchanging").empty();
  49. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/docpropertyactionproviders/actiontype/' + Platform.Forms.Enums.DocPropertyActionProviderType.PostAction;
  50. AutoCompleteHelper.getHelper().Create("#AutoComplete_Onchanging", "#hfAutoComplete_Onchanging", url, function (response) {
  51. });
  52. }
  53. else if ($("#Drp_ProviderType").val() == 3) {
  54. $("#AutoComplete_Onchanging").removeAttr("disabled");
  55. $("#AutoComplete_Onchanging").empty();
  56. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/docpropertyactionproviders/actiontype/' + Platform.Forms.Enums.DocPropertyActionProviderType.Both;
  57. AutoCompleteHelper.getHelper().Create("#AutoComplete_Onchanging", "#hfAutoComplete_Onchanging", url, function (response) {
  58. });
  59. }
  60. else {
  61. $("#AutoComplete_Onchanging").attr("disabled", "true");
  62. }
  63. });
  64. $("#btn_ActionProviderSave").on("click", function () {
  65. let controlid = "form_DocTypeActionProvider";
  66. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(controlid);
  67. if (result == false) {
  68. MessageHelper.Instance().showError("Mandatory Fields are missing", "div_APMessage");
  69. return false;
  70. }
  71. else {
  72. instance.Save(containerid, installedappid);
  73. }
  74. });
  75. }
  76. html(id, containerid) {
  77. return `<header class="header b-b bg-white" id="div_Header"> <strong>Create ActionProvider</strong> </header> <section data-simplebar class="simple-scroll-bar scrollable">
  78. <form id="form_DocTypeActionProvider" data-validate="parsley"><div class="clear" id="div_APMessage"> </div>
  79. <div class="card">
  80. <div class="card-body">
  81. <div class="row">
  82. <div class="col-sm-6"><div class="form-group"><label class="font-bold" id="lblWidth">Doc Type<span class="text-danger">*</span></label>
  83. <select id="doctype_Autocomplete" class="form-control text-control required" style="width:100%;" placeholder = "Stage Updated Table" data-placeholder="StageUpdated Table"></select>
  84. <input type="hidden" id="hfDocType_Autocomplete" class="hfDocType_Autocomplete' form-control value-control" data-isdynamic="true"/></div></div>
  85. <div class="col-sm-6"><div class="form-group"><label for="" class="font-bold" id="lblWidth">Doc Property</label>
  86. <select id="Autocomplete_DocProperty" class="form-control text-control required" style="width:100%;" placeholder = "Doc Property" data-placeholder="Select Doc Property" data-label="" data-istagselect="true" ></select>
  87. <input type="hidden" id="hfAutocomplete_DocProperty" class="hfAutocomplete_DocProperty' form-control value-control" data-isdynamic="true"/></div></div></div>
  88. <div class="row"><div class="col-sm-6"><label for="" class="font-bold">Provider Type</label><select id="Drp_ProviderType" class="form-control text-control" style="width:100%;" placeholder = "Provider Type" data-placeholder="Provider Type" data-label="" data-istagselect="true">
  89. <option value=0>-Select-</option><option value=1>PreAction</option><option value=2>PostAction</option><option value=3>Both</option></select></div>
  90. <div class="col-sm-6"><label for="" class="font-bold">Action Provider</label><select id="AutoComplete_Onchanging" disabled="true" class="form-control text-control required" style="width:100%;" placeholder = "On Change" data-placeholder="On Change" data-label="" data-istagselect="true"></select>
  91. <input type="hidden" id="hfAutoComplete_Onchanging" class="hfAutoComplete_Onchanging' form-control value-control" data-isdynamic="true"/></div>
  92. <div class="col-sm-4 hidden"><label for="" class="font-bold">On Changed</label><select id="AutoComplete_Onchanged" disabled="true" class="form-control text-control" style="width:100%;" placeholder = "On Changed" data-placeholder="On Changed" data-label="" data-istagselect="true"></select>
  93. <input type="hidden" id="hfAutoComplete_Onchanged" class="hfAutoComplete_Onchanged' form-control value-control" data-isdynamic="true"/></div></div>
  94. </div></div></form></section>
  95. <footer class="bg-white footer"><a href="javascript:;" id="btn_CancelAP_` + containerid + `" class="btn btn-light btn-sm mr-auto">Close</a> <a href="javascript:;" id="btn_ActionProviderSave" class="pull-right btn btn-primary btn-sm">Save</a> </footer>`;
  96. }
  97. loadActionProviders(containerid, installedappid) {
  98. $("#div_ActionProviders").empty();
  99. var instance = this;
  100. instance.appSettings.InstalledAppId = installedappid;
  101. var jsfiles = ["/platform/forms/enums/enums.js", "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'platform/core/infos/status.js'];
  102. instance.fileCacheHelper.loadJsFiles(jsfiles, function () { });
  103. instance.doctypeManager.getDocPropertyActionProviders(installedappid).then(function (response) {
  104. var html = `<ul class="list-group p-sm-0 p-md-4">
  105. <li class="list-group-item pa-10 mb-25 font-weight-600 text-dark-100">
  106. <div class="row">
  107. <div class="col-sm-4">
  108. <span>ActionProvider</span>
  109. </div>
  110. <div class="col-sm-3">
  111. <span>DocType</span>
  112. </div>
  113. <div class="col-sm-2">
  114. <span>DocProperty</span>
  115. </div>
  116. <div class="col-sm-2">
  117. <span>Actiontype</span></div>
  118. </div
  119. </div>
  120. </li>`;
  121. for (var i = 0; i < response.result.length; i++) {
  122. var data = response.result[i];
  123. var actiontype = "";
  124. if (data.ActionType == Number(Platform.Forms.Enums.DocPropertyActionProviderType.PreAction)) {
  125. actiontype = "PreAction";
  126. }
  127. else if (data.ActionType == Number(Platform.Forms.Enums.DocPropertyActionProviderType.PostAction)) {
  128. actiontype = "PostAction";
  129. }
  130. else if (data.ActionType == Number(Platform.Forms.Enums.DocPropertyActionProviderType.Both)) {
  131. actiontype = "Both";
  132. }
  133. html += `<li class="list-group-item border-0 p-1 px-2 mb-1">
  134. <div class="row">
  135. <input type="hidden" id="hfDocPropertyActionProviderId" value=${data.DocPropertyActionProviderId}>
  136. <div class="col-sm-4">
  137. <span>${data.ActionName}</span>
  138. </div>
  139. <div class="col-sm-3">
  140. <span>${data.DocTypeTableName}</span>
  141. </div>
  142. <div class="col-sm-2">
  143. <span>${data.DocPropertyUniqueId}</span>
  144. </div>
  145. <div class="col-sm-2">
  146. <span>${actiontype}</span>
  147. </div>
  148. <div class="col-sm-1 text-right">
  149. <a href="javascript:;" class="hidden mr-10" onclick="Unibase.Platform.Apps.Components.Stages.Instance().AddStage(${data.DocPropertyActionProviderId});"><i class="fa fa-pencil icon-muted fa-fw m-r-xs"></i></a>
  150. <a href="javascript:;" onclick="Unibase.Platform.Apps.Components.DocPropertyActionProvider.Instance().DeleteActionProvider(` + data.DocPropertyActionProviderId + `,'` + containerid + `',` + installedappid + `);"><i class="fa fa-trash"></i></a>
  151. </div>
  152. </li><br/>`;
  153. }
  154. html += '</ul>';
  155. $("#div_ActionProviders").append(html);
  156. if ($.fn.sortable) {
  157. $('.sortable').sortable();
  158. $('.sortable').on("sortupdate", function (event, ui) {
  159. instance.RefreshIndexes(containerid, installedappid);
  160. });
  161. }
  162. if (response.result.length == 0) {
  163. $("#div_ActionProviders").add("hidden");
  164. }
  165. });
  166. }
  167. RefreshIndexes(containerid, installedappid) {
  168. var instance = this;
  169. var ids = "";
  170. $("#div_ActionProviders").find(".list-group-item").each(function () {
  171. var id = $(this).find("#hfDocPropertyActionProviderId").val();
  172. if (id != 0) {
  173. ids += id + ",";
  174. }
  175. });
  176. if (ids != "") {
  177. instance.doctypeManager.updateIndexes(ids).then(function (response) {
  178. if (response.status == Unibase.Data.Status.Error) {
  179. MessageHelper.Instance().showError(response.message, "div_APMessage");
  180. }
  181. else {
  182. MessageHelper.Instance().showSuccess(response.message, "div_APMessage");
  183. }
  184. instance.loadActionProviders(containerid, installedappid);
  185. });
  186. }
  187. }
  188. AddActionProvider(id) {
  189. this.navigationHelper.popup(id, '', Unibase.Platform.Apps.Components.DocPropertyActionProvider.Instance(), null, Platform.Helpers.Size.Auto);
  190. }
  191. Save(containerid, installedappid) {
  192. var instance = this;
  193. var PostData = {
  194. InstalledAppId: Number(installedappid),
  195. DocPropertyId: Number($("#Autocomplete_DocProperty").val()),
  196. ActionType: Number($("#Drp_ProviderType").val()),
  197. ActionProviderId: Number($("#AutoComplete_Onchanging").val()),
  198. };
  199. instance.doctypeManager.save(PostData).then(function (response) {
  200. if (response.status == Unibase.Data.Status.Error) {
  201. MessageHelper.Instance().showError(response.message, "div_APMessage");
  202. }
  203. else {
  204. MessageHelper.Instance().showSuccess(response.message, "div_APMessage");
  205. $('#' + containerid).modal('hide');
  206. $('#' + containerid).remove();
  207. }
  208. instance.loadActionProviders(containerid, installedappid);
  209. });
  210. }
  211. DeleteActionProvider(id, containerid, installedappid) {
  212. var instance = this;
  213. instance.doctypeManager.deleteDoctype(id).then(function (response) {
  214. if (response.status == Unibase.Data.Status.Error) {
  215. MessageHelper.Instance().showError(response.message, "div_APMessage");
  216. }
  217. else {
  218. MessageHelper.Instance().showSuccess(response.message, "div_APMessage");
  219. }
  220. instance.loadActionProviders(containerid, installedappid);
  221. });
  222. }
  223. static Instance() {
  224. if (this.instance === undefined) {
  225. this.instance = new DocPropertyActionProvider();
  226. }
  227. return this.instance;
  228. }
  229. }
  230. DocPropertyActionProvider.StageReasons = [];
  231. Components.DocPropertyActionProvider = DocPropertyActionProvider;
  232. })(Components = Apps.Components || (Apps.Components = {}));
  233. })(Apps = Platform.Apps || (Platform.Apps = {}));
  234. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  235. })(Unibase || (Unibase = {}));