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.

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