Built files from Bizgaze WebServer
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

portability.js 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Portability;
  6. (function (Portability) {
  7. let Components;
  8. (function (Components) {
  9. class ImportAndExport extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. }
  13. cssFiles() {
  14. return [];
  15. }
  16. jsFiles() {
  17. return ['platform/portability/managers/portabilitymanager.js'];
  18. }
  19. html(id, containerid) {
  20. var html = '<form id="frmUnibase_Portability" data-validate="parsley" data-isdynamic="false"><div id="div_portabilitymessage"></div><div class="card bg-light"><div class="b-b bg-white card-header header"><strong class="text-dark title" id="lbl_title">Portability Providers</strong></div></header><div class="card-body scrollable"><div id="div_portability_' + containerid + '"></div></div><footer class="bg-white modal-footer ft_permissions"><a href = "javascript:;" id = "btn_Close_' + containerid + '" class="btn btn-light btn-sm mr-auto btn-close btn-portabilityClose"> Close </a></footer></div>';
  21. return html;
  22. }
  23. load(id, containerid, callback) {
  24. var instance = this;
  25. instance.loadProviders(containerid);
  26. instance.loadConnectedTenants(id);
  27. }
  28. init(containerid) {
  29. this.render(containerid);
  30. Unibase.Platform.Portability.Components.ImportAndExport.Instance().loadConnectedTenants("");
  31. $("#btn_Export").click(function () {
  32. $("#importexportsection").addClass("hidden");
  33. $("#div_Import").addClass("hidden");
  34. ImportAndExport.Instance().exportForm(Number(recordId));
  35. });
  36. $("#btn_Import").click(function () {
  37. $("#importexportsection").removeClass("hidden");
  38. $("#div_Import").removeClass("hidden");
  39. });
  40. $(".spn_CTenants").click(function () {
  41. if ($(".isAllTenants").hasClass("hidden")) {
  42. $(".isAllTenants").removeClass("hidden");
  43. Unibase.Platform.Portability.Components.ImportAndExport.Instance().isCheckbox();
  44. }
  45. else {
  46. $(".isAllTenants").addClass("hidden");
  47. $(".allTenants").addClass("hidden");
  48. }
  49. });
  50. $("#tnt_checkbox").click(function () {
  51. Unibase.Platform.Portability.Components.ImportAndExport.Instance().isCheckbox();
  52. });
  53. var recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  54. $("#fileExport").click(function () {
  55. });
  56. $("#btn_csvValidate").click(function () {
  57. if ($("#import_FileUpload").val() == undefined || $("#import_FileUpload").val() == "" && $("#import_ImageUpload").val() == "" || $("#import_ImageUpload").val() == undefined) {
  58. alert("Please Select File");
  59. return;
  60. }
  61. else {
  62. $("#import_FileUpload").val("");
  63. $("#import_ImageUpload").val("");
  64. var tenantids = $("#ddl_Tenant").select2('data');
  65. var selectedtenants = $("#ddl_Tenant").val().toString();
  66. var allTenants = $("#tnt_checkbox").prop("checked");
  67. var dateformat = $("#ddl_DateFormat").find("option:selected").val();
  68. if (dateformat == "Select")
  69. dateformat = "0";
  70. var dateFormat = dateformat.replace("/", "@").toString();
  71. ImportAndExport.Instance().validateUploadDocument(Number(recordId), selectedtenants, allTenants, dateFormat);
  72. }
  73. });
  74. $("#btn_imgValidates").click(function () {
  75. if ($("#import_FileUpload").val() == "" || $("#import_FileUpload").val() == undefined) {
  76. alert("Please Select File");
  77. return;
  78. }
  79. if (($("#import_ImageUpload").val() == "") || ($("#import_ImageUpload").val() == undefined)) {
  80. alert("Please Select Image File");
  81. return;
  82. }
  83. else {
  84. $("#import_FileUpload").val("");
  85. $("#import_ImageUpload").val("");
  86. var tenantids = $("#ddl_Tenant").select2('data');
  87. var selectedtenants = $("#ddl_Tenant").val().toString();
  88. var allTenants = $("#tnt_checkbox").prop("checked");
  89. var dateformat = $("#ddl_DateFormat").find("option:selected").val();
  90. if (dateformat == "Select")
  91. dateformat = "0";
  92. var dateFormat = dateformat.replace("/", "@").toString();
  93. ImportAndExport.Instance().validateUploadImgDocuments(Number(recordId), selectedtenants, allTenants, dateFormat);
  94. }
  95. });
  96. $("#btn_dateValidate").click(function () {
  97. if ($("#import_FileUpload").val() == undefined || $("#import_FileUpload").val() == "") {
  98. alert("Please Select File");
  99. return;
  100. }
  101. if ($("#ddl_DateFormat").find("option:selected").text() == "Select") {
  102. alert("Please Select Date Format");
  103. return;
  104. }
  105. else {
  106. $("#import_FileUpload").val("");
  107. $("#import_ImageUpload").val("");
  108. var tenantids = $("#ddl_Tenant").select2('data');
  109. var selectedtenants = $("#ddl_Tenant").val().toString();
  110. var allTenants = $("#tnt_checkbox").prop("checked");
  111. var dateformat = $("#ddl_DateFormat").find("option:selected").val();
  112. if (dateformat == "Select")
  113. dateformat = "0";
  114. var dateFormat = dateformat.replace("/", "@").toString();
  115. ImportAndExport.Instance().validateUploadDocument(Number(recordId), selectedtenants, allTenants, dateFormat);
  116. }
  117. });
  118. $("#import_FileUpload").change(function (e) {
  119. ImportAndExport.Instance().fileEvent(e, 1);
  120. });
  121. $("#import_ImageUpload").change(function (e) {
  122. ImportAndExport.Instance().fileEvent(e, 2);
  123. });
  124. $("#fileUpload").click(function () {
  125. if ($("#import_FileUpload").val() == undefined || $("#import_FileUpload").val() == "" && $("#import_ImageUpload").val() == "" || $("#import_ImageUpload").val() == undefined) {
  126. alert("Please Select File");
  127. return;
  128. }
  129. if ($("#ddl_DateFormat").find("option:selected").text() == "Select") {
  130. alert("Please Select Date Format");
  131. return;
  132. }
  133. else {
  134. $("#import_FileUpload").val("");
  135. $("#import_ImageUpload").val("");
  136. var tenantids = $("#ddl_Tenant").select2('data');
  137. var selectedtenants = $("#ddl_Tenant").val().toString();
  138. var allTenants = $("#tnt_checkbox").prop("checked");
  139. var dateformat = $("#ddl_DateFormat").find("option:selected").val();
  140. if (dateformat == "Select")
  141. dateformat = "0";
  142. var dateFormat = dateformat.replaceAll("/", "@").toString();
  143. ImportAndExport.Instance().upload(Number(recordId), selectedtenants, allTenants, dateFormat);
  144. }
  145. });
  146. }
  147. isCheckbox() {
  148. if (($("#tnt_checkbox").prop("checked") == true)) {
  149. $("#ddl_Tenant").val(null);
  150. $("#ddl_Tenant").text(null);
  151. $(".allTenants").addClass("hidden");
  152. }
  153. else {
  154. $(".allTenants").removeClass("hidden");
  155. }
  156. }
  157. fileEvent($event, type) {
  158. const fileSelected = $event.target.files[0];
  159. if (type == 1) {
  160. var validExtensions = ["csv"];
  161. var file = $(".import_FileUpload").val().toString().split('.').pop();
  162. if (validExtensions.indexOf(file.toLowerCase()) == -1) {
  163. $("#import_FileUpload").val("");
  164. alert("Please Select .csv File");
  165. return false;
  166. }
  167. else {
  168. if (ImportAndExport.fileData.has("csv")) {
  169. ImportAndExport.fileData.delete("csv");
  170. }
  171. ImportAndExport.fileData.append("csv", fileSelected);
  172. }
  173. }
  174. else {
  175. validExtensions = ["zip"];
  176. var file = $(".import_ImageUpload").val().toString().split('.').pop();
  177. if (validExtensions.indexOf(file.toLowerCase()) == -1) {
  178. $("#import_ImageUpload").val("");
  179. alert("Please Select .rar File");
  180. return false;
  181. }
  182. else {
  183. if (ImportAndExport.fileData.has("zip")) {
  184. ImportAndExport.fileData.delete("zip");
  185. }
  186. ImportAndExport.fileData.append("zip", fileSelected);
  187. }
  188. }
  189. }
  190. loadProviders(containerid) {
  191. var instance = this;
  192. var html = "";
  193. var installedappid = instance.appSettings.InstalledAppId;
  194. Unibase.Platform.Portability.Managers.PortabilityManager.Instance().getPortabilityProviders(installedappid).then(function (response) {
  195. var html = `<ul class="list-group">`;
  196. html += `<li class="list-group-item bg-light"><div class="row"><strong class="col-sm-6">Name</strong><strong class="col-sm-6">Description</strong></div></li>`;
  197. for (var i = 0; i < response.result.length; i++) {
  198. var data = response.result[i];
  199. var description = data.Description == null ? "NA" : HtmlHelper.getHelper().decode(data.Description);
  200. html += `<li class="list-group-item" id="li_` + data.PortabilityProviderId + `"><a href="javascript:;" onclick="Unibase.Platform.Portability.Components.ImportAndExport.Instance().loadPortabilityDetail(` + data.PortabilityProviderId + `,` + data.InstalledAppId + `); "><div class="row"><div class="col-sm-6"><span class="block"><span>` + data.PortabilityProviderName + `</span></span></div><div class="col-sm-6"><span>` + description + ` </span></div></div></a></li>`;
  201. }
  202. html += `</ul>`;
  203. $("#div_portability_" + containerid).html(html);
  204. });
  205. }
  206. loadPortabilityDetail(portabilityproviderid, installedappid) {
  207. Unibase.Platform.Helpers.NavigationHelper.IsListRefresh = true;
  208. this.navigationHelper.loadDetailPopup(portabilityproviderid, installedappid, null);
  209. }
  210. upload(id, selectedtenants, allTenants, dateFormat) {
  211. var url = "";
  212. if (selectedtenants == "" && !allTenants) {
  213. url = _appsettings.server_url() + '/apis/v4/unibase/platform/portability/import/id/' + id + '/dateformat/' + dateFormat;
  214. }
  215. else {
  216. if (selectedtenants == "")
  217. selectedtenants = "0";
  218. url = _appsettings.server_url() + '/apis/v4/unibase/platform/portability/importconnectedtenants/id/' + id + '/tenantids/' + selectedtenants + '/isallcts/' + allTenants;
  219. }
  220. Unibase.Platform.Helpers.FileHelper.Instance().upload(url, ImportAndExport.fileData).then(function (response) {
  221. if (response.errors != null) {
  222. MessageHelper.Instance().showSuccess(response.message, "Unibase_ValidationSummary");
  223. return false;
  224. }
  225. else {
  226. $("#import_FileUpload").val("");
  227. MessageHelper.Instance().showSuccess(response.message, "Unibase_ValidationSummary");
  228. }
  229. ImportAndExport.fileData = new FormData();
  230. });
  231. }
  232. validateUploadDocument(id, selectedtenants, allTenants, dateFormat) {
  233. var url = "";
  234. if (selectedtenants == "" && !allTenants) {
  235. url = _appsettings.server_url() + '/apis/v4/unibase/platform/portability/validate/id/' + id + '/dateformat/' + dateFormat;
  236. }
  237. else {
  238. if (selectedtenants == "")
  239. selectedtenants = "0";
  240. url = _appsettings.server_url() + '/apis/v4/unibase/platform/portability/importconnectedtenants/id/' + id + '/tenantids/' + selectedtenants + '/isallcts/' + allTenants;
  241. }
  242. Unibase.Platform.Helpers.FileHelper.Instance().upload(url, ImportAndExport.fileData).then(function (response) {
  243. if (response.errors != null) {
  244. MessageHelper.Instance().showSuccess(response.message, "Unibase_ValidationSummary");
  245. return false;
  246. }
  247. else {
  248. $("#import_FileUpload").val("");
  249. MessageHelper.Instance().showSuccess(response.message, "Unibase_ValidationSummary");
  250. }
  251. ImportAndExport.fileData = new FormData();
  252. });
  253. }
  254. validateUploadImgDocuments(id, selectedtenants, allTenants, dateFormat) {
  255. var url = "";
  256. if (selectedtenants == "" && !allTenants) {
  257. url = _appsettings.server_url() + '/apis/v4/unibase/platform/portability/validatedocuments/id/' + id + '/dateformat/' + dateFormat;
  258. }
  259. else {
  260. if (selectedtenants == "")
  261. selectedtenants = "0";
  262. url = _appsettings.server_url() + '/apis/v4/unibase/platform/portability/importconnectedtenants/id/' + id + '/tenantids/' + selectedtenants + '/isallcts/' + allTenants;
  263. }
  264. Unibase.Platform.Helpers.FileHelper.Instance().upload(url, ImportAndExport.fileData).then(function (response) {
  265. if (response.errors != null) {
  266. MessageHelper.Instance().showSuccess(response.message, "Unibase_ValidationSummary");
  267. return false;
  268. }
  269. else {
  270. $("#import_FileUpload").val("");
  271. MessageHelper.Instance().showSuccess(response.message, "Unibase_ValidationSummary");
  272. }
  273. ImportAndExport.fileData = new FormData();
  274. });
  275. }
  276. render(containerid) {
  277. $("." + containerid).empty();
  278. const html = '<div class="card import-export-body"><div class="card-header"><span class="h6 text-dark">Import/Export</span></div><div id="industry_validation" class="clear"></div><div class="card-body scrollable"><div id="div_importexport" class=""><div class="card"><div class="card-body"><span class="col-sm-6 pull-left border-right"><a href="javascript:;" id="btn_Import" class="btn btn-success col-sm-12">Import Data</a></span><span class="col-sm-6 pull-right"><a href="javascript:;" id="btn_Export" class="btn btn-primary col-sm-12">Download Template</a></span><br></div></div><div></div><div class="hidden" id="importexportsection"><div class="card floating-label-form-group-with-value"><div class="card-body"><label for="ddl_Tenant"><span class="spn_CTenants" style="font-weight:700"><a href="javascript:;" style="color:#000">Connected Tenants</a></span></label><div class="hidden isAllTenants" style="float:right"><label for="tnt_checkbox" style="font-weight:500">Is AllTenants&nbsp;</label><input type="checkbox" id="tnt_checkbox" class="chk_isAllTenants" data-isdynamic="false"></div><div class="hidden allTenants"><select class="form-control required" id="ddl_Tenant" multiple="multiple" style="width:439.987px"><option value="" disabled="disabled" selected="selected">Select</option></select></div><br></div></div><div class="card"><div class="card-body" id="div_Import"><div class="align-items-center d-flex"><span style="font-size:15px" class="w-40">Master Data (.csv)</span><div class="w-100"><input type="file" id="import_FileUpload" class="bg-light import_FileUpload w-70"></div><div class="w-20 hidden"><div class="pull-right"><a href="javascript:;" id="btn_csvValidate" class="btn btn-success">Validate</a></div></div></div><hr><div class="align-items-center d-flex"><span style="font-size:15px" class="w-40">Documents (.zip)</span><div class="w-100"><input type="file" id="import_ImageUpload" class="bg-light import_ImageUpload w-70"></div><div class="w-20 hidden"><div class="pull-right"><a href="javascript:;" id="btn_imgValidates" class="btn btn-success">Validate</a></div></div></div><hr><div class="d-flex align-items-center"><span for="txtDateFormat" class="w-45">Date Format&nbsp;</span><div class="w-100"><select id="ddl_DateFormat" class="w-80 p-2" data-isdynamic="false" placeholder="Select" data-placeholder="Select" data-label="Date Format "><option value="dd-MM-yyyy">DD-MM-YYYY</option><option value="MM-dd-yyyy">MM-DD-YYYY</option><option value="yyyy-MM-dd">YYYY-MM-DD</option><option value="dd-MM-yy">DD-MM-YY</option><option value="yy-MM-dd">YY-MM-DD</option><option value="MM-dd-yy">MM-DD-YY</option><option value="yyyy/MM/dd">YYYY/MM/DD</option><option value="MM/dd/yyyy">MM/DD/YYYY</option><option value="dd/MM/yyyy">DD/MM/YYYY</option><option value="yyyyMMdd">YYYYMMDD</option><option value="MMddyyyy">MMDDYYYY</option><option value="ddMMyyyy">DDMMYYYY</option><option value="yyyy-MM-dd H:mm:ss">YYYY-MM-DD H:MM:SS</option><option value="MM-dd-yyyy H:mm:ss">MM-DD-YYYY H:MM:SS</option><option value="dd-MM-yyyy H:mm:ss">DD-MM-YYYY H:MM:SS</option><option value="yyyy/MM/dd H:mm:ss">YYYYY/MM/DD H:MM:SS</option><option value="MM/dd/yyyy H:mm:ss">MM/DD/YYYY H:MM:SS</option><option value="dd/MM/yyyy H:mm:ss">DD/MM/YYYY H:MM:SS</option></select></div><div class="w-20"><div class="pull-right hidden"><a href="javascript:;" id="btn_dateValidate" class="btn btn-success" align="right">Validate</a></div></div></div><span class="input-group-addon mt-10"></span><hr><a href="javascript:;" id="fileUpload" class="btn btn-warning text-white">Upload</a></div></div></div></div><div class="hidden" id="div_Export"><span id="sp_formName"></span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download</a></div></div>';
  279. var portletwidgetid = Number($("#hf_PortletWidgetId").val());
  280. $("#divAppWidgets").empty();
  281. $("." + containerid).append(html);
  282. $("#btn_csvValidate").hide();
  283. }
  284. loadConnectedTenants(tenants) {
  285. if (tenants == "") {
  286. tenants += "0";
  287. }
  288. var selectdTenants = [];
  289. if ($("#ddl_Tenant").val() != undefined)
  290. selectdTenants = $("#ddl_Tenant").val().toString().split(',');
  291. var TenantIds = [];
  292. var ids = [];
  293. if (selectdTenants.length > 0) {
  294. for (var i = 0; i < selectdTenants.length; i++) {
  295. if (selectdTenants[i] != "" && selectdTenants[i] != "0") {
  296. TenantIds.push(selectdTenants[i]);
  297. }
  298. }
  299. }
  300. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  301. $("#ddl_Tenant").select2({
  302. placeholder: "Select",
  303. data: TenantIds,
  304. tags: true,
  305. ajax: {
  306. url: function (request) {
  307. var reqUrl = _appsettings.server_url() + "/apis/v4/unibase/platform/common/connectedtenantsautocomplete/";
  308. var term = request.term;
  309. if (term == undefined || term == "")
  310. reqUrl = reqUrl + "term/" + term + "/authtoken/" + userinfo.sessionId;
  311. else
  312. reqUrl = reqUrl + "term/" + term + "/authtoken/" + userinfo.sessionId;
  313. return reqUrl;
  314. },
  315. dataType: 'json',
  316. delay: 250,
  317. data: function (params) {
  318. var query = {
  319. term: params.term,
  320. type: 'GET'
  321. };
  322. return query;
  323. },
  324. beforeSend: function (xhr) {
  325. if (userinfo !== undefined && userinfo !== null) {
  326. xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId);
  327. xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId);
  328. }
  329. },
  330. processResults: function (data, params) {
  331. return {
  332. results: jQuery.map(JSON.parse(data.result), function (item) {
  333. return {
  334. id: item.Value,
  335. text: item.SelectText,
  336. addlInfo: item.addlData
  337. };
  338. })
  339. };
  340. }
  341. },
  342. templateSelection: function (result) {
  343. var $template = $('<span>' + result.text + '</span> <input type="hidden" id="hf_AutocompleteId" value="' + result.id + '">');
  344. return $template;
  345. }
  346. });
  347. $("#ddl_Tenant").val(ids).trigger('change');
  348. }
  349. exportForm(formId) {
  350. this.fileCacheHelper.loadJsFile("platform/portability/managers/portabilitymanager.js", function () {
  351. Unibase.Platform.Portability.Managers.PortabilityManager.Instance().downloadExcel(formId).then(function (response) {
  352. Unibase.Platform.Helpers.FileHelper.Instance().convertBase64tofile(response.result);
  353. });
  354. });
  355. }
  356. downloadExcelData(importid) {
  357. this.fileCacheHelper.loadJsFile("platform/portability/managers/portabilitymanager.js", function () {
  358. Unibase.Platform.Portability.Managers.PortabilityManager.Instance().downloadExcelData(importid).then(function (response) {
  359. Unibase.Platform.Helpers.FileHelper.Instance().convertBase64tofile(response.result);
  360. });
  361. });
  362. }
  363. loadProvidersById(portabilityproviderid) {
  364. var instance = this;
  365. this.fileCacheHelper.loadJsFile("platform/portability/managers/portabilitymanager.js", function () {
  366. Unibase.Platform.Portability.Managers.PortabilityManager.Instance().getPortabilityProvider(portabilityproviderid).then(function (response) {
  367. if (response.result != null) {
  368. var data = response.result;
  369. Unibase.Platform.Portability.Components.ImportAndExport.Instance().loadPortabilityDetail(data.PortabilityProviderId, data.InstalledAppId);
  370. }
  371. });
  372. });
  373. }
  374. static Instance() {
  375. return new ImportAndExport();
  376. }
  377. }
  378. ImportAndExport.fileData = new FormData();
  379. Components.ImportAndExport = ImportAndExport;
  380. })(Components = Portability.Components || (Portability.Components = {}));
  381. })(Portability = Platform.Portability || (Platform.Portability = {}));
  382. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  383. })(Unibase || (Unibase = {}));