SmartIT_Extensions/BMC/smart-it-full/scripts/app/configuration/configuration-model.js

88 lines
5.6 KiB
JavaScript

"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;
}]);
}());