123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var Unibase;
- (function (Unibase) {
- let Platform;
- (function (Platform) {
- let Automation;
- (function (Automation) {
- let Components;
- (function (Components) {
- class RuleProvider extends Platform.Core.BaseComponent {
- jsFiles() {
- var jsfiles = ["platform/automation/managers/rulemanager.js",
- "platform/datasources/managers/doctypemanager.js",
- "platform/automation/requests/ruleprovider.js",
- "platform/analytics/managers/reportmanager.js",
- "platform/forms/managers/formmanager.js",
- "platform/automation/components/rulebuilder/rulebuilder.ruleprovider.js",
- "platform/forms/components/formviewer/formviewer.js",
- "libs/parsley/parsley.min.js",
- "platform/apps/managers/appmanager.js"
- ];
- return jsfiles;
- }
- cssFiles() {
- return [];
- }
- html(id, containerid) {
- let html = `<form id="frmUnibase_RuleProvider" data-validate="parsley" data-isdynamic="false">
- <div id="Validate_RuleProvider" class="clear"></div>
- <div class="card bg-light">
- <div class="b-b bg-white card-header header">
- <strong class="text-dark title" id="Form_RuleProvider">Create RuleProvider</strong>
- </div>
- <div class="card-body scrollable" style="overflow-y: scroll;">
- <div class="bg-white card" id="divInstalledApp">
- <div id="unibase_ValidationSummary" class="clear"></div>
- <div class="card-body">
- <div class="row">
- <div class="col-sm-6">
- <div class="floating-label-form-group">
- <label for="txt_RuleProvider" id="lbl_RuleProvider">RuleProvider Name<span class="text-danger">*</span></label>
- <input type="text" id="txt_RuleProvider" class="form-control required value-control floating-label-control" data-isdynamic="false" placeholder="RuleProvider Name*" data-placeholder="Enter RuleProvider Name" data-label="RuleProvider Name*" />
- <input type="hidden" id="hf_RuleProvider" />
- <label for="Validation" id="lblValidation_RuleProvider"></label>
- </div>
- </div>
- <div class="col-sm-6">
- <div class="input-group">
- <label for="InstalledApp" class="font-bold">Installed App <span class="text-danger">*</span></label>
- <select id="txtAutocomplete_InstalledApp" class="form-control text-control required" style="width:100%;" placeholder="InstalledApp" data-placeholder="InstalledApp" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hf_Autocomplete_InstalledApp" class="form-control value-control" data-isdynamic="true" />
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card" id="divRuleProviderDetails">
- <div class="card-header">RuleProvider Details</div>
- <div class="card-body">
- <div class="row">
- <div class="col-sm-5">
- <div class="input-group">
- <label for="Doctype" class="font-bold">Doctype <span class="text-danger">*</span></label>
- <select id="txtAutoComplete_Doctypes" class="form-control text-control required" style="width:100%;" placeholder="Doctype" data-placeholder="Doctype" data-label="" data-istagselect="true"></select>
- <input type="hidden" id="hf_Autocomplete_Doctypes" class="form-control value-control" data-isdynamic="true" />
- </div>
- </div>
- <div class="col-sm-5 hidden" id="DoctypeColumn">
- <div class="input-group">
- <label for="DoctypeColumn" class="font-bold">Doctype Column</label>
- <select id="txtAutoComplete_DoctypeColumn" class="form-control text-control" style="width:100%;" placeholder="DoctypeColumn" data-placeholder="DoctypeColumn" data-label="" data-istagselect="true"><option value="0">Select</option></select>
- <input type="hidden" id="hf_AutoComplete_DoctypeColumn" class="form-control value-control" data-isdynamic="true" />
- </div>
- </div>
- <button type="button" class="col-sm-2 btn btn-primary mt-30" onclick="Unibase.Platform.Automation.Components.RuleProvider.Instance().ToggleReports()">Map Report</button>
- </div>
- <div class="row hidden" id="ReportDetailDiv">
- <div class="col-sm-6">
- <div class="input-group">
- <label for="Report" class="font-bold">Report</label>
- <select id="txtAutoComplete_Report" class="form-control text-control" style="width:100%;" placeholder="Report" data-placeholder="Report" data-label="" data-istagselect="true"><option value="0">Select</option></select>
- <input type="hidden" id="hf_AutoComplete_Report" class="form-control value-control" data-isdynamic="true" />
- </div>
- </div>
- <div class="col-sm-6">
- <div class="input-group">
- <label for="ReportColumn" class="font-bold">Report Column</label>
- <select id="txtAutoComplete_ReportColumn" class="form-control text-control" style="width:100%;" placeholder="ReportColumn" data-placeholder="ReportColumn" data-label="" data-istagselect="true"><option value="0">Select</option></select>
- <input type="hidden" id="hf_AutoComplete_ReportColumn" class="form-control value-control" data-isdynamic="true" />
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="bg-white card-footer footer" id="CreateRuleProviderFooter">
- <button id="btnCloseRuleProvider" class="btn btn-secondary btn-sm mr-auto">Close</button>
- <button id="btnSaveRuleProvider" class="btn btn-primary btn-sm pull-right">Save</button>
- </div>
- </div>
- </form>`;
- return html;
- }
- load(id, containerid, callback) {
- if (id != "") {
- Unibase.Platform.Automation.Components.RuleProvider.Instance().EditRuleProvider(id);
- }
- $("#btnCloseRuleProvider").click(function () {
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- });
- $("#btnSaveRuleProvider").click(function () {
- let appcontrolid = "frmUnibase_RuleProvider";
- let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
- if (result == false) {
- MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_RuleProvider");
- return false;
- }
- else {
- Unibase.Platform.Automation.Components.RuleProvider.Instance().SaveRuleProvider(id, containerid);
- }
- });
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/installedappautocomplete';
- AutoCompleteHelper.getHelper().Create("#txtAutocomplete_InstalledApp", "#hf_Autocomplete_InstalledApp", url, function (response) {
- var data = response;
- });
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports';
- AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Report", "#hf_AutoComplete_Report", url, function (response) {
- var data = response;
- });
- $("#txtAutocomplete_InstalledApp").change(function () {
- Unibase.Platform.Automation.Components.RuleProvider.Instance().OnChangeInstalledApp();
- });
- $("#txtAutoComplete_Report").change(function () {
- Unibase.Platform.Automation.Components.RuleProvider.Instance().OnChangeReport();
- });
- $("#txtAutoComplete_Doctypes").change(function () {
- Unibase.Platform.Automation.Components.RuleProvider.Instance().OnChangeDoctype();
- });
- }
- init(ruleproviderid, callback) {
- this.render(ruleproviderid, callback);
- }
- render(ruleproviderid, callback) {
- this.navigationHelper.popup(ruleproviderid, '', Unibase.Platform.Automation.Components.RuleProvider.Instance(), null, Platform.Helpers.Size.DockLeft);
- }
- loadRuleProviderForm(iscreate) {
- var Pk_Value = 0;
- if (!iscreate) {
- Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId;
- }
- this.navigationHelper.popup(Pk_Value, '', Unibase.Platform.Automation.Components.RuleProvider.Instance(), null, Platform.Helpers.Size.DockLeft);
- }
- ToggleReports() {
- $("#ReportDetailDiv").removeClass("hidden");
- $("#DoctypeColumn").removeClass("hidden");
- }
- EditRuleProvider(id) {
- let ruleproviderid = Number(id);
- $("#Form_RuleProvider").text("Edit RuleProvider");
- Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) {
- $("#txt_RuleProvider").val(response.RuleProviderName);
- var installedappoption = new Option(response.AppTitle, response.InstalledAppId.toString(), true, true);
- $("#txtAutocomplete_InstalledApp").append(installedappoption);
- Unibase.Platform.Automation.Components.RuleProvider.Instance().OnChangeInstalledApp().then(function () {
- var doctypeoption = new Option(response.DoctypeName, response.DoctypeId.toString(), true, true);
- $("#txtAutoComplete_Doctypes").append(doctypeoption);
- Unibase.Platform.Automation.Components.RuleProvider.Instance().OnChangeDoctype().then(function () {
- var doctypecolumnoption = new Option(response.DocPropertyName, response.DocPropertyId.toString(), true, true);
- $("#txtAutoComplete_DoctypeColumn").append(doctypecolumnoption);
- });
- });
- if (response.ReportId != 0) {
- $("#ReportDetailDiv").removeClass("hidden");
- $("#DoctypeColumn").removeClass("hidden");
- var reportoption = new Option(response.ReportName, response.ReportId.toString(), true, true);
- $("#txtAutoComplete_Report").append(reportoption);
- Unibase.Platform.Automation.Components.RuleProvider.Instance().OnChangeReport().then(function () {
- var reportcolumnoption = new Option(response.ReportColumnName, response.ReportColumnId.toString(), true, true);
- $("#txtAutoComplete_ReportColumn").append(reportcolumnoption);
- });
- }
- eval('_floatingLabelHelper.init();');
- });
- }
- OnChangeInstalledApp() {
- return __awaiter(this, void 0, void 0, function* () {
- $("#txtAutoComplete_Doctypes").val(0);
- if (Number($("#txtAutocomplete_InstalledApp option:selected").val() != 0)) {
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/appdoctypesautocomplete/installedappid/' + Number($("#txtAutocomplete_InstalledApp option:selected").val());
- return yield AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Doctypes", "#hf_Autocomplete_Doctypes", url, function (response) {
- var data = response;
- });
- }
- });
- }
- OnChangeDoctype() {
- return __awaiter(this, void 0, void 0, function* () {
- $("#txtAutoComplete_DoctypeColumn").val(0);
- if (Number($("#txtAutoComplete_Doctypes option:selected").val() != 0)) {
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/doctypes/docpropertiesautocomplete/doctypeid/' + Number($("#txtAutoComplete_Doctypes option:selected").val());
- return yield AutoCompleteHelper.getHelper().Create("#txtAutoComplete_DoctypeColumn", "#hf_AutoComplete_DoctypeColumn", url, function (response) {
- var data = response;
- });
- }
- });
- }
- OnChangeReport() {
- return __awaiter(this, void 0, void 0, function* () {
- $("#txtAutoComplete_ReportColumn").val(0);
- if (Number($("#txtAutoComplete_Report option:selected").val() != 0)) {
- var reportcolumnurl = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportcolumnsautocomplete/reportid/' + Number($("#txtAutoComplete_Report option:selected").val());
- return yield AutoCompleteHelper.getHelper().Create("#txtAutoComplete_ReportColumn", "#hf_AutoComplete_ReportColumn", reportcolumnurl, function (response) {
- var data = response;
- });
- }
- });
- }
- SaveRuleProvider(id, containerid) {
- let model = new Unibase.Platform.Automation.Requests.RuleProvider();
- model.RuleProviderId = Number(id);
- model.RuleProviderName = $("#txt_RuleProvider").val().toString();
- model.InstalledAppId = Number($("#txtAutocomplete_InstalledApp option:selected").val());
- model.DoctypeId = Number($("#txtAutoComplete_Doctypes option:selected").val());
- model.DocPropertyId = Number($("#txtAutoComplete_DoctypeColumn option:selected").val());
- model.ReportId = Number($("#txtAutoComplete_Report option:selected").val());
- model.ReportColumnId = Number($("#txtAutoComplete_ReportColumn option:selected").val());
- Automation.Managers.RuleManager.Instance().saveRuleProvider(model).then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- MessageHelper.Instance().showError(response.message, "Validate_RuleProvider");
- }
- else {
- MessageHelper.Instance().showSuccess(response.message, "Validate_RuleProvider");
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(Unibase.Platform.Automation.Components.RuleProvider.installedappid, null);
- }
- });
- }
- loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
- RuleProvider.Instance().init(Pk_Value, null);
- Unibase.Platform.Apps.Managers.AppManager.Instance().getAppConfiguration(AppConfigurationId).then(function (response) {
- Unibase.Platform.Automation.Components.RuleProvider.installedappid = response.result.InstalledAppId;
- });
- }
- exportsRuleProviders() {
- var instance = this;
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/automation/managers/rulemanager.js", function () {
- Unibase.Platform.Automation.Managers.RuleManager.Instance().exportRuleProiders().then(function (response) {
- var filename = "RuleProiders.xml";
- var xmltext = response.result;
- var pom = document.createElement('a');
- var bb = new Blob([xmltext], { type: 'text/plain' });
- pom.setAttribute('href', window.URL.createObjectURL(bb));
- pom.setAttribute('download', filename);
- pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
- pom.draggable = true;
- pom.classList.add('dragout');
- pom.click();
- });
- });
- }
- exportsSingleRuleProvider() {
- var ruleproviderid = 0;
- var instance = this;
- if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
- for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
- if (obj.Key === "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_recordid") {
- ruleproviderid = Number(obj.Value);
- }
- }
- }
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/automation/managers/rulemanager.js", function () {
- Unibase.Platform.Automation.Managers.RuleManager.Instance().exportSingleRuleProiders(ruleproviderid).then(function (response) {
- var filename = "RuleProiders.xml";
- var xmltext = response.result;
- var pom = document.createElement('a');
- var bb = new Blob([xmltext], { type: 'text/plain' });
- pom.setAttribute('href', window.URL.createObjectURL(bb));
- pom.setAttribute('download', filename);
- pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
- pom.draggable = true;
- pom.classList.add('dragout');
- pom.click();
- });
- });
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new RuleProvider();
- }
- return this.instance;
- }
- }
- Components.RuleProvider = RuleProvider;
- })(Components = Automation.Components || (Automation.Components = {}));
- })(Automation = Platform.Automation || (Platform.Automation = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|