UNPKG

dynamicsmobile

Version:

Allows development of off-line mobile and web business apps over the Dynamics Mobile platform. More info on https://www.dynamicsmobile.com

261 lines 14.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BackendDmsTask = void 0; const tslib_1 = require("tslib"); const task_1 = require("../lib-core/task"); const dms_root_container_1 = require("../ioc/dms-root-container"); const context_service_1 = require("../lib-core/context-service"); const device_service_1 = require("../lib-core/device-service"); const files_service_base_1 = require("../lib-core/files-service-base"); const userinterface_service_1 = require("../lib-core/userinterface-service"); const syncpacket_service_1 = require("../lib-core/syncpacket-service"); const docseries_service_1 = require("../lib-core/docseries-service"); const decorators_service_1 = require("../lib-core/decorators-service"); const application_context_service_1 = require("../lib-core/application-context-service"); const configuration_service_1 = require("../lib-core/configuration-service"); const print_service_1 = require("../lib-core/print-service"); const sql_query_service_1 = require("../lib-core/sql-query-service"); const backend_ui_service_1 = require("./backend-ui-service"); const backend_configuration_service_1 = require("./backend-configuration-service"); const backend_applicationcontext_service_1 = require("./backend-applicationcontext-service"); const backend_context_service_1 = require("./backend-context-service"); const backend_files_service_1 = require("./backend-files-service"); const backend_device_service_1 = require("./backend-device-service"); const backend_print_service_1 = require("./backend-print-service"); const backend_sqlquery_service_1 = require("./backend-sqlquery-service"); const backend_syncpacket_service_1 = require("./backend-syncpacket-service"); const backend_docseries_service_1 = require("./backend-docseries-service"); const metadata_service_1 = require("../lib-core/metadata-service"); const backend_metadata_service_1 = require("./backend-metadata-service"); const jquery_1 = tslib_1.__importDefault(require("jquery")); require("./datatables-import"); const querystring_1 = require("querystring"); const backend_keyvalue_service_1 = require("./backend-keyvalue-service"); const keyvalue_service_1 = require("../lib-core/keyvalue-service"); class BackendDmsTask extends task_1.DmsTask { setupInjectableServices() { this.domManager = jquery_1.default; this.dms = new backend_applicationcontext_service_1.BackendDmsApplicationService(this._appCode, "1.0", this._taskId); BackendDmsTask._setupInjectableServices(this.dms); } static _setupInjectableServices(dms) { dms_root_container_1.RootDIContainer.addProvider({ provide: application_context_service_1.DmsApplicationService, useValue: dms }); dms_root_container_1.RootDIContainer.addProvider({ provide: context_service_1.ContextService, useClass: backend_context_service_1.BackendContextService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: print_service_1.PrintService, useClass: backend_print_service_1.BackendPrintService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: device_service_1.DeviceService, useClass: backend_device_service_1.BackendDeviceService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: configuration_service_1.ConfigurationService, useClass: backend_configuration_service_1.BackendConfigurationService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: files_service_base_1.FileService, useClass: backend_files_service_1.BackendFileService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: userinterface_service_1.UserInterfaceService, useClass: backend_ui_service_1.BackendUserInterfaceService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: sql_query_service_1.SqlQueryService, useClass: backend_sqlquery_service_1.BackendSqlQueryService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: syncpacket_service_1.SyncPacketService, useClass: backend_syncpacket_service_1.BackendSyncPacketService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: docseries_service_1.DocumentSeriesService, useClass: backend_docseries_service_1.BackendDocumentSeriesService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: decorators_service_1.DecoratorsManager, useClass: decorators_service_1.DecoratorsManager, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: metadata_service_1.MetadataService, useClass: backend_metadata_service_1.BackendMetadataService, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: context_service_1.ContextPersister, useClass: backend_context_service_1.BackendContextPersister, singleton: true }); dms_root_container_1.RootDIContainer.addProvider({ provide: keyvalue_service_1.KeyValueService, useClass: backend_keyvalue_service_1.BackendKeyValueService, singleton: true }); } receiveParentMessage(event) { const me = this; const data = event.data; switch (data.type) { case "launchtask": if (data.data.taskId) { dms_root_container_1.RootDIContainer.inject(userinterface_service_1.UserInterfaceService).launchTask(data.data.taskId); } else if (data.data.routeId) { dms_root_container_1.RootDIContainer.inject(userinterface_service_1.UserInterfaceService).navigate(data.data.routeId); } else if (data.data.docId) { //$dms.uiManager.internalLaunchDoc(data.data); } break; case "cancel": dms_root_container_1.RootDIContainer.inject(userinterface_service_1.UserInterfaceService).cancel(); break; case "handleEsc": dms_root_container_1.RootDIContainer.inject(userinterface_service_1.UserInterfaceService).navigate('prior'); break; case "modalCallback": //handleModalCallback(data.confirm, data.callbackId); break; } } resizePage() { // var navBar = $(".topbar").height(); // var windowHeight = $("body").height(); // $('.page-wrapper').css("min-height", (windowHeight - navBar) + "px"); // $('.page-wrapper').css("height", (windowHeight - navBar) + "px"); } // private keyPresslisten(e) { // let evObj = window.event ? event : e; // if (evObj.keyCode == 90 && evObj.ctrlKey || evObj.keyCode == 114) { // var searchBox = $(this).parent().find('.search-box'), // btnOffset = $(this).offset(), // pageWidth = $(document).width(), // searchBoxes = $(document).find('.search-input .search-box'); // searchBoxes.each(function (index) { // $(this).addClass('hide'); // }); // if ((btnOffset.left + searchBox.width()) > pageWidth) { // searchBox.addClass('left'); // } else { // searchBox.addClass('right'); // } // if (searchBox.hasClass('hide')) { // searchBox.removeClass('hide'); // } // } // } onSelectDataTableRow() { //$('.action-btn').removeClass('d-none').removeClass('active'); } onDeselectDataTableRow() { //$('.action-btn').addClass('d-none'); //$('.action-menu').hide(); } initializeUIFramework({ theme, allTaskRoutes }) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const me = this; window.addEventListener("message", me.receiveParentMessage, false); (0, jquery_1.default)(document).on('click', '.accordion .toggle', function (e) { e.preventDefault(); var $this = (0, jquery_1.default)(this); if ($this.next().hasClass('show')) { $this.next().removeClass('show'); $this.next().slideUp(350); $this.removeClass('active'); } else { $this.parent().parent().find('.accordion-header').removeClass('active'); $this.addClass('active'); $this.parent().parent().find('.inner').removeClass('show'); $this.parent().parent().find('.inner').slideUp(350); $this.next().toggleClass('show'); $this.next().slideToggle(350); } }); (0, jquery_1.default)(document).on('click', '.main-nav .dropdown', function () { (0, jquery_1.default)('.main-nav').toggleClass('selected-item'); (0, jquery_1.default)(this).parent().toggleClass('active'); return false; }); (0, jquery_1.default)(document).on('click', '.dropdown-submenu .back', function () { (0, jquery_1.default)('.main-nav').toggleClass('selected-item'); (0, jquery_1.default)(this).closest('.active').removeClass(); }); // $('.action-nav .action-btn').on('click', function () { // $(this).toggleClass('active'); // $(".action-menu").toggle("fast"); // }); (0, jquery_1.default)('.dashboard-views .elements, .dashboard-views .close-btn').on('click', function () { (0, jquery_1.default)(this).closest('.dashboard-views').toggleClass('open'); }); (0, jquery_1.default)(window).on('resize', () => { this.resizePage(); }); //shows the record-related green drop-down Action button (0, jquery_1.default)(document).on('select.dt deselect.dt', '.dms-table', (event, dt) => { if (dt.rows({ selected: true }).data().length > 0) { this.onSelectDataTableRow(); } else { this.onDeselectDataTableRow(); } }); //hides the record-related green drop-down Action button (0, jquery_1.default)(document).on('click', (event) => { if (!(0, jquery_1.default)(event.target).closest(".dms-table, .navbar, .modal").length) { // even programmatic selection changes will trigger the above handler (0, jquery_1.default)('.dms-table').each((index, element) => { try { const dt = (0, jquery_1.default)(element).DataTable({ retrieve: true }); const rows = dt.rows(); if (rows.deselect) { rows.deselect(); } } catch (err) { //console.error('deselect err ', err); } }); } }); this.resizePage(); const cfg = dms_root_container_1.RootDIContainer.inject(configuration_service_1.ConfigurationService); cfg.synchronize(); }); } applyColorTheme() { return tslib_1.__awaiter(this, void 0, void 0, function* () { //return; }); } applyPlatformTheme() { return ''; } internalNavigate(routeObect) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (this._isTestMode) return; const ui = dms_root_container_1.RootDIContainer.inject(userinterface_service_1.UserInterfaceService); const allowed = yield ui.isTaskAllowed(this._taskId); if (!allowed) { ui.showError(`Task ${this._taskId} is blocked by the system administrator!`); return; } //$('.action-btn').addClass('d-none'); (0, jquery_1.default)('.action-menu').hide(); let isValid = true; const currentViewInstance = this.dms.app.data["_currentViewInstance"]; if (currentViewInstance) { isValid = yield this.validateView(currentViewInstance, routeObect); } if (isValid) { const viewId = routeObect.pageName.replace(/\//g, ''); const page = { el: this.domManager(`#${viewId}`) }; yield dms_root_container_1.RootDIContainer.inject(configuration_service_1.ConfigurationService).setNavigationState({ LastTaskId: this._taskId, LastStepId: page.el.id ? page.el.id : this.domManager(page.el).attr("id") }); //hide pervious this.domManager('[data-role=page]').removeClass('onScreen').addClass('offScreen'); this.domManager(`#${viewId}`).removeClass('offScreen').addClass('onScreen'); const ui = dms_root_container_1.RootDIContainer.inject(userinterface_service_1.UserInterfaceService); yield ui.hideLoading(); //run current view this.domManager(`#${viewId}page-preloader`).show(); this.domManager(`#${viewId}subcontent`).hide(); yield this.doCreateView(page, this.dms); this.domManager(`#${viewId}subcontent`).show(600); this.domManager(`#${viewId}page-preloader`).hide(); } }); } findRoute(stepId, routeId) { const viewClass = this.findViewClassByViewId(stepId); const name = `${stepId.name ? stepId.name : stepId}${routeId ? routeId : ''}`; let foundRoute = null; viewClass.__routes.forEach(r => { if (r.name == name) foundRoute = r; }); return foundRoute; } run(isTestMode) { return tslib_1.__awaiter(this, void 0, void 0, function* () { (0, jquery_1.default)(document).ready(() => { let language = 'en'; const urlTokens = window.parent ? window.parent.location.href.split('?') : window.location.href.split('?'); if (urlTokens.length > 1) { const lngTokens = urlTokens[1].split('#'); const parsed = (0, querystring_1.parse)(lngTokens[0]); language = parsed && parsed.language ? parsed.language : 'en'; } sessionStorage.setItem('language', language); this.internalRun(isTestMode); }); }); } } exports.BackendDmsTask = BackendDmsTask; //# sourceMappingURL=backend-task.js.map