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.

templateprint.js 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Templates;
  6. (function (Templates) {
  7. let Components;
  8. (function (Components) {
  9. class TemplatePrint extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this.templateid = 0;
  13. }
  14. cssFiles() {
  15. return [];
  16. }
  17. jsFiles() {
  18. return ['platform/templates/managers/templatemanager.js', 'platform/core/helpers/html/htmlhelper.js'];
  19. }
  20. html(id, containerid) {
  21. let html = ``;
  22. return html;
  23. }
  24. load(id, containerid, callback) {
  25. }
  26. init(containerid) {
  27. var instance = this;
  28. instance.fileCacheHelper.loadJsFile("platform/templates/managers/templatemanager.js", function () {
  29. Unibase.Platform.Templates.Managers.TemplateManager.Instance();
  30. instance.render(containerid);
  31. });
  32. }
  33. render(containerid) {
  34. var instance = this;
  35. let html = `<form id="frmTemplate" class="p-2 px-3 rounded-4 bg-white h-100">
  36. <div class="panel-primary panel">
  37. <input type="hidden" id="hfCurrentPage" value="Orders" />
  38. <div class="panel-heading">
  39. <span class="h4" id="WidgetTitle"></span>
  40. </div><div class="clear" id="divMessage"></div>
  41. <div class="panel-body">
  42. <div class="row align-items-center">
  43. <div class="col-sm-6 my-1">
  44. <div class="input-group">
  45. <select class="form-control inline px-1 biz-highlight-bg-color" id="cmbtemplatelist" onchange="Unibase.Platform.Templates.Components.TemplatePrint.Instance().loadtemplatehtmldata(this.value, '${containerid}')"></select>
  46. <span class="input-group-btn">
  47. </span>
  48. </div>
  49. </div>
  50. <div class="col-sm-2 text-right "></div>
  51. <div class="col-sm-4 text-right ">
  52. <button class="btn btn-s-md btn-outline-primary btn-sm my-1" id="btnupdatetemplate" type="button">Update Template</button>
  53. <!--<a class="btn btn-s-md btn-outline-default btn-sm" id="btnGeneratePdf">Preview</a>-->
  54. <a href="javascript:;" class="btn btn-outline-primary btn-sm my-1" id="btnpreviewtemplate">Preview</a>
  55. </div>
  56. </div>
  57. <div class="col-sm-12 h-100 print-template-text" id="templateText" style="margin:1cm auto;border:solid 0.5px rgb(0,0,0,0.1)">
  58. </div>
  59. </div>
  60. </div>
  61. </form>`;
  62. $("." + containerid).append(html);
  63. instance.loadDetails(containerid);
  64. if (screen.width < 1198) {
  65. $("#" + containerid).find("#templateText").css({ "width": "100%", "padding": "2px" });
  66. }
  67. else {
  68. $("#" + containerid).find("#templateText").css({ "width": "1050px", "padding": "20px" });
  69. }
  70. }
  71. loadDetails(containerid) {
  72. let instance = this;
  73. var widgetid = $("#frmTemplate").parentsUntil(".portletwidget-addeditem").find("#hf_widgetId").val();
  74. if ($(window).width() <= 800) {
  75. $('#' + containerid).find("#cmbtemplatelist").addClass("mb-2");
  76. $('#' + containerid).find("#cmbtemplatelist").css('width', '250px');
  77. }
  78. var appproviderid = Unibase.Themes.Providers.DetailHelper.installedAppId;
  79. Unibase.Platform.Templates.Components.TemplatePrint.Instance().loadtemplatelist(appproviderid, containerid);
  80. $('#' + containerid).find("#btnupdatetemplate").click(function () {
  81. Unibase.Platform.Templates.Components.TemplatePrint.Instance().Updatetemplate(containerid);
  82. });
  83. $('#' + containerid).find('#btnpreviewtemplate').click(function () {
  84. if (($('#' + containerid).find("#cmbtemplatelist").val()) == 0) {
  85. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("/platform/core/helpers/printhelper/printhelper.js", function () {
  86. Unibase.Platform.Helpers.PrintHelper.Instance().showPrintErrorModal();
  87. return;
  88. });
  89. }
  90. else {
  91. instance.GeneratePdf(containerid);
  92. }
  93. });
  94. }
  95. loadtemplatelist(appproviderid, containerid) {
  96. var instance = this;
  97. instance.fileCacheHelper.loadJsFile("platform/templates/managers/templatemanager.js", function () {
  98. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplates(Number(appproviderid)).then(function (response) {
  99. if (response.result != null) {
  100. let html = "<option value=''>-- Select Template --</option>";
  101. for (let i = 0; i < response.result.length; i++) {
  102. var template = response.result[i];
  103. html += "<option value=" + template.TemplateId + " data-table=" + template.TemplateName + ">" + template.TemplateName + "</option>";
  104. }
  105. $('#' + containerid).find("#cmbtemplatelist").append(html);
  106. }
  107. let recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  108. Unibase.Platform.Templates.Components.TemplatePrint.Instance().getTemplate(appproviderid, recordid, containerid);
  109. });
  110. });
  111. }
  112. Updatetemplate(containerid) {
  113. var instance = this;
  114. if (($('#' + containerid).find("#cmbtemplatelist").val()) == 0) {
  115. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("/platform/core/helpers/printhelper/printhelper.js", function () {
  116. Unibase.Platform.Helpers.PrintHelper.Instance().showPrintErrorModal();
  117. return;
  118. });
  119. }
  120. else {
  121. let templateid = $('#' + containerid).find("#cmbtemplatelist").val();
  122. var appproviderid = Unibase.Themes.Providers.DetailHelper.installedAppId;
  123. let recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  124. instance.fileCacheHelper.loadJsFile("platform/templates/managers/templatemanager.js", function () {
  125. Unibase.Platform.Templates.Managers.TemplateManager.Instance().updateTemplate(Number(templateid), Number(appproviderid), Number(recordid)).then(function (response) {
  126. instance.getTemplate(appproviderid, Number(recordid), containerid);
  127. MessageHelper.Instance().showSuccess(response.message, '');
  128. });
  129. });
  130. }
  131. }
  132. getTemplate(appproviderid, id, containerid) {
  133. var instance = this;
  134. instance.fileCacheHelper.loadJsFile("platform/templates/managers/templatemanager.js", function () {
  135. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplate(Number(appproviderid), Number(id)).then(function (response) {
  136. if (response.result != "") {
  137. var data = response.result;
  138. if (data[0].templateid != 0) {
  139. instance.templateid = data[0].templateid;
  140. $('#' + containerid).find('#cmbtemplatelist').val(instance.templateid);
  141. instance.loadtemplatehtmldata(instance.templateid, containerid);
  142. }
  143. }
  144. });
  145. });
  146. }
  147. loadtemplatehtmldata(templateid, containerid) {
  148. var instance = this;
  149. let recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  150. instance.fileCacheHelper.loadJsFile("platform/templates/managers/templatemanager.js", function () {
  151. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateHtml(Number(templateid), false, recordid).then(function (response) {
  152. if (response.result != null) {
  153. if (response.result.TemplateText != "") {
  154. var templatetext = response.result.TemplateText;
  155. let containerid = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  156. $('#' + containerid).find("#templateText").html(templatetext);
  157. }
  158. else {
  159. }
  160. }
  161. });
  162. });
  163. }
  164. GeneratePdf(containerid) {
  165. function base64ToArrayBuffer(data) {
  166. var bString = window.atob(data);
  167. var bLength = bString.length;
  168. var bytes = new Uint8Array(bLength);
  169. for (var i = 0; i < bLength; i++) {
  170. var ascii = bString.charCodeAt(i);
  171. bytes[i] = ascii;
  172. }
  173. return bytes;
  174. }
  175. ;
  176. function base64toPDF(data1) {
  177. var bufferArray = base64ToArrayBuffer(data1);
  178. var blobStore = new Blob([bufferArray], { type: "application/pdf" });
  179. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  180. window.navigator.msSaveOrOpenBlob(blobStore);
  181. return;
  182. }
  183. var fileURL = URL.createObjectURL(blobStore);
  184. window.open(fileURL);
  185. }
  186. var instance = this;
  187. let templateid = $('#' + containerid).find("#cmbtemplatelist").val();
  188. let recordid = Unibase.Themes.Providers.DetailHelper.recordId;
  189. instance.fileCacheHelper.loadJsFile("platform/templates/managers/templatemanager.js", function () {
  190. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplatePdf(Number(templateid), recordid).then(function (response) {
  191. base64toPDF(response.result);
  192. });
  193. });
  194. }
  195. static Instance() {
  196. if (this.instance === undefined) {
  197. this.instance = new TemplatePrint();
  198. }
  199. return this.instance;
  200. }
  201. }
  202. Components.TemplatePrint = TemplatePrint;
  203. })(Components = Templates.Components || (Templates.Components = {}));
  204. })(Templates = Platform.Templates || (Platform.Templates = {}));
  205. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  206. })(Unibase || (Unibase = {}));