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.

dropdown.component.js 8.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Forms;
  13. (function (Forms) {
  14. let Controls;
  15. (function (Controls) {
  16. class Dropdown extends Unibase.Platform.Core.BaseComponent {
  17. constructor() {
  18. super(...arguments);
  19. this.loadCascading = true;
  20. }
  21. init(formpropertyid, prop, callback) {
  22. var instance = new Dropdown();
  23. instance.loadControlSettings(prop, prop.UniqueId).then(function () {
  24. if (callback != null)
  25. callback();
  26. });
  27. $('#ddl_' + prop.DocPropertyName + '').focusin(function () {
  28. $('#ddl_' + prop.DocPropertyName + '').attr('style', 'border:solid 2px rgb(0, 165, 230);border-radius:5px;border-shadow: 3px 3px 3px 3px;');
  29. });
  30. $('#ddl_' + prop.DocPropertyName + '').focusout(function () {
  31. $('#ddl_' + prop.DocPropertyName + '').attr('style', 'none');
  32. });
  33. }
  34. loadControl(containerid, prop) {
  35. var instance = this;
  36. var jsfiles = ["platform/controls/cascadingautocomplete/cascadingautocomplete.component.js", "platform/controls/cascadingautocomplete/cascadingautocomplete.settings.js"];
  37. var Isrequired = prop.IsRequired != true ? 'hidden' : '';
  38. var required = prop.IsRequired != true ? '' : 'required';
  39. var CurrentStageId = '';
  40. if (prop.IncludedStages != null && prop.IncludedStages != "") {
  41. var StagesForRequired = prop.IncludedStages.split('|');
  42. Isrequired = StagesForRequired.find(x => x == CurrentStageId) ? '' : 'hidden';
  43. required = StagesForRequired.find(x => x == CurrentStageId) ? 'required' : '';
  44. }
  45. var dropdownJson = JSON.parse(prop.ControlJsonText);
  46. const { helpTooltipHtml, helpTextHtml } = Unibase.Platform.Forms.Components.FormViewer.Instance().getControlHelpHtml(prop);
  47. var html = '<div id="div_' + prop.DocPropertyName + '_' + prop.FormPropertyId + '" class="div_' + prop.FormPropertyId + ' floating-label-form-group-with-value">' +
  48. '<label for="lbl" id="lbl_' + prop.DocPropertyName + '_' + prop.FormPropertyId + '">' + helpTooltipHtml + '<span class="label-name">' + prop.LabelName + '</span><span class="text-danger ' + Isrequired + '" id="spnIsRequired_' + prop.DocPropertyName + '_' + prop.FormPropertyId + '"> *</span></label>' +
  49. '<select id="ddl_' + prop.UniqueId + '" class="form-control type-control ' + required + ' value-control dropdown_' + prop.DocPropertyName + '" data-propertyname="" data-isdefault="' + prop.IsDefault + '" data-propdoctypename="' + prop.DocPropertyName + '" placeholder = "' + prop.Placeholder + '" data-placeholder="' + prop.Placeholder + '" data-label="' + prop.LabelName + '" data-isparent="false">';
  50. if (dropdownJson[0].EnableSelectOption == true) {
  51. if (prop.IsRequired) {
  52. html += '<option value="">--Select--</option>';
  53. }
  54. else {
  55. html += '<option value="0">--Select--</option>';
  56. }
  57. }
  58. html += '</select>' + helpTextHtml +
  59. '</div>';
  60. $("#" + containerid).html(html);
  61. $("#" + containerid).find("#ddl_" + prop.UniqueId).on('change', function () {
  62. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  63. if (instance.loadCascading) {
  64. Unibase.Forms.Controls.CascadingAutocomplete.Instance().ChildCascadingData(false, prop.FormPropertyId, 0, 0, '');
  65. }
  66. instance.loadCascading = true;
  67. });
  68. });
  69. }
  70. loadControlSettings(controlsettingjson, formpropertyid) {
  71. return __awaiter(this, void 0, void 0, function* () {
  72. if (controlsettingjson != "" && controlsettingjson != null && controlsettingjson != undefined) {
  73. var container = "control-container-" + formpropertyid;
  74. var response = JSON.parse(controlsettingjson.ControlJsonText);
  75. if (response != null) {
  76. if ((response.length == 1) && (response[0].ReportId != 0)) {
  77. yield Unibase.Platform.Forms.Managers.FormManager.Instance().dynamicDropDown(response[0].DropDownColumnId).then(function (res) {
  78. var drpDwnData = [];
  79. let result = res.result;
  80. for (let i = 0; i < result.length; i++) {
  81. var drpDwn = result[i];
  82. drpDwnData.push({ id: drpDwn.ColumnText, text: drpDwn.ColumnValue });
  83. }
  84. $('#' + container).find("#ddl_" + formpropertyid).select2({
  85. placeholder: 'Select',
  86. theme: "default select2ErrorClass",
  87. data: drpDwnData,
  88. width: '100%',
  89. });
  90. });
  91. }
  92. else {
  93. $('#' + container).find("#ddl_" + controlsettingjson.DocPropertyName).find('option').remove();
  94. var data = '';
  95. for (var i = 0; i < response.length; i++) {
  96. var columnvalue = controlsettingjson.datatypeid == 3 ? response[i].ColumnNumber : response[i].ColumnValue;
  97. if (response[i].IsParent == true) {
  98. $('#' + container).find("#ddl_" + controlsettingjson.DocPropertyName).data("isparent", response[i].IsParent);
  99. }
  100. data += '<option value="' + columnvalue + '" columnvalue="' + response[i].DropDownColumnId + '">' + response[i].ColumnText + '</option>';
  101. }
  102. $('#' + container).find("#ddl_" + formpropertyid).append(data);
  103. }
  104. }
  105. }
  106. });
  107. }
  108. loadPropertySettings(propertysettings, formpropertyid) {
  109. return null;
  110. }
  111. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  112. var instance = this;
  113. instance.loadCascading = false;
  114. $("#ddl_" + formpropertyid).val(propval).trigger('change');
  115. }
  116. static Instance() {
  117. if (this._instance === undefined)
  118. this._instance = new Dropdown();
  119. return this._instance;
  120. }
  121. }
  122. Controls.Dropdown = Dropdown;
  123. })(Controls = Forms.Controls || (Forms.Controls = {}));
  124. })(Forms = Unibase.Forms || (Unibase.Forms = {}));
  125. })(Unibase || (Unibase = {}));