"use strict"; (function () { 'use strict'; angular.module('myitsmApp') .factory('configurationModel', ['appConfiguration', '$rootScope', 'metadataModel', 'AUTH_EVENTS', function (appConfiguration, $rootScope, metadataModel, AUTH_EVENTS) { var configurationModel = {}, enabledServerApplications, config = appConfiguration; configurationModel.get = function (segment) { return $rootScope.$eval('config.' + segment, { config: config }) || {}; }; configurationModel.set = function (segment, data) { //creating shotcurt if (segment === 'enabledServerApplications') { enabledServerApplications = data; } appConfiguration[segment] = data; }; configurationModel.getWeekStartingDay = function () { return (!window.isRtl) ? 1 : 0; }; configurationModel.isServerApplicationEnabled = function (appName) { return _.contains(enabledServerApplications, appName); }; configurationModel.isFileExtensionAllowed = function (fileExt) { var asc = configurationModel.get('attachmentSecurityConfiguration'); if (asc) { if (asc.ruleType === 'whiteListExtensions' && _.contains(asc.fileExtensions, fileExt)) { return true; } var fileExtensions = _(asc.fileExtensions).map(function (val) { return val.toLowerCase(); }).value(); if (asc.ruleType === 'blackListExtensions' && !_.contains(fileExtensions, fileExt.toLowerCase())) { return true; } if (asc.ruleType === 'allowAll') { return true; } if (asc.ruleType === 'allowNone') { return false; } } return false; }; function loadGlobalMetadata() { metadataModel.getMetadataByType(EntityVO.TYPE_GLOBAL).then(function (metadata) { if (metadata.configurationParameters) { var cp = metadata.configurationParameters; configurationModel.companyChunkSize = cp.assignmentCompanyChunkSize ? parseInt(cp.assignmentCompanyChunkSize) : 80; configurationModel.organizationChunkSize = cp.assignmentSupportOrganizationChunkSize ? parseInt(cp.assignmentSupportOrganizationChunkSize) : 80; configurationModel.supportGroupChunkSize = cp.assignmentSupportGroupChunkSize ? parseInt(cp.assignmentSupportGroupChunkSize) : 80; configurationModel.supportPersonChunkSize = cp.assignmentSupportPersonChunkSize ? parseInt(cp.assignmentSupportPersonChunkSize) : 80; configurationModel.locationSiteChunkSize = cp.locationSiteChunkSize ? parseInt(cp.locationSiteChunkSize) : 80; if (cp.explicitStatsRefresh) { var explicitStatsRefresh = cp.explicitStatsRefresh; configurationModel.explicitStatsRefresh = typeof explicitStatsRefresh === 'string' ? explicitStatsRefresh === 'true' : explicitStatsRefresh; } if (cp.disableCollisionManagement) { var disableCollisionManagement = cp.disableCollisionManagement; configurationModel.disableCollisionManagement = typeof disableCollisionManagement === 'string' ? disableCollisionManagement === 'true' : disableCollisionManagement; } if (cp.disableImpactAnalysis) { var disableImpactAnalysis = cp.disableImpactAnalysis; configurationModel.disableImpactAnalysis = typeof disableImpactAnalysis === 'string' ? disableImpactAnalysis === 'true' : disableImpactAnalysis; } if (cp.showNameInSmartRecorderCreateTicket) { var showNameInSmartRecorderCreateTicket = cp.showNameInSmartRecorderCreateTicket; configurationModel.showNameInSmartRecorderCreateTicket = typeof showNameInSmartRecorderCreateTicket === 'string' ? showNameInSmartRecorderCreateTicket === 'true' : showNameInSmartRecorderCreateTicket; } if (cp.dateTimeStyleProperty) { configurationModel.dateTimeStyleProperty = cp.dateTimeStyleProperty; } if (cp.socialWorklogAccessSetting) { var socialWorklogAccessSetting = cp.socialWorklogAccessSetting; configurationModel.socialWorklogAccessSetting = typeof socialWorklogAccessSetting === 'string' ? socialWorklogAccessSetting === 'true' : (typeof socialWorklogAccessSetting === 'boolean') ? socialWorklogAccessSetting : false; } var searchByCompanyFlag = cp.smartRecorderSearchByCompany; configurationModel.smartRecorderSearchByCompany = typeof searchByCompanyFlag === 'string' ? searchByCompanyFlag === 'true' : searchByCompanyFlag; } }); } $rootScope.$on(AUTH_EVENTS.LOGIN_SUCCESS, function () { loadGlobalMetadata(); }); $rootScope.$on(AUTH_EVENTS.SESSION_ACTIVE, function () { loadGlobalMetadata(); }); return configurationModel; }]); }());