62 lines
3.2 KiB
JavaScript
62 lines
3.2 KiB
JavaScript
"use strict";
|
|
/**
|
|
* Created by Abhranil Naha on 7/10/2017.
|
|
*/
|
|
(function () {
|
|
'use strict';
|
|
angular.module('layoutConfigModule').service('layoutConfigurationService', ['$resource', '$http', '$q', function ($resource, $http, $q) {
|
|
var resource = $resource('/smartit/rest/customization', {}, {
|
|
loadLayout: {
|
|
url: '/smartit/rest/v2/customization/screenlayout',
|
|
method: 'GET',
|
|
transformResponse: [
|
|
$http.defaults.transformResponse[0],
|
|
function (data) {
|
|
return [].concat(data);
|
|
}
|
|
],
|
|
isArray: true
|
|
},
|
|
updateLayout: {
|
|
url: '/smartit/rest/customization/save/layout',
|
|
method: 'POST'
|
|
}
|
|
});
|
|
/**
|
|
* Public functions
|
|
*/
|
|
/**
|
|
* Loads screen layout
|
|
*
|
|
* @param {Object} params
|
|
* @returns {*}
|
|
*/
|
|
this.loadLayout = function (params) {
|
|
return resource.loadLayout(params).$promise.then(function (response) {
|
|
var layouts = response;
|
|
return layouts.map(function (layout) {
|
|
var layoutVO = new LayoutConfigurationVO().build(layout);
|
|
// Remove empty additional info section
|
|
var additionalInfo = _.find(layoutVO.panels, { name: "additionalInfo" });
|
|
if (additionalInfo) {
|
|
var additionalData1Index = _.findIndex(additionalInfo.panels, { name: "additionalData" });
|
|
var additionalData2Index = _.findIndex(additionalInfo.panels, { name: "additionalData2" });
|
|
var additionalData3Index = _.findIndex(additionalInfo.panels, { name: "additionalData3" });
|
|
var additionalData4Index = _.findIndex(additionalInfo.panels, { name: "additionalData4" });
|
|
if ((additionalData1Index === -1 || !additionalInfo.panels[additionalData1Index].children || additionalInfo.panels[additionalData1Index].children.length === 0)
|
|
&& (additionalData2Index === -1 || !additionalInfo.panels[additionalData2Index].children || additionalInfo.panels[additionalData2Index].children.length === 0)
|
|
&& (additionalData3Index === -1 || !additionalInfo.panels[additionalData3Index].children || additionalInfo.panels[additionalData3Index].children.length === 0)
|
|
&& (additionalData4Index === -1 || !additionalInfo.panels[additionalData4Index].children || additionalInfo.panels[additionalData4Index].children.length === 0)) {
|
|
additionalInfo.emptyPanel = true;
|
|
}
|
|
}
|
|
return layoutVO;
|
|
});
|
|
});
|
|
};
|
|
this.updateScreenLayout = function (screenName, layout) {
|
|
return resource.updateLayout({ screen: screenName }, layout).$promise;
|
|
};
|
|
}]);
|
|
})();
|