sogo/UI/WebServerResources/js/Preferences.services.js.map
2015-08-07 10:37:36 -04:00

1 line
8.2 KiB
Plaintext

{"version":3,"file":"Preferences.services.js","sources":["Preferences/Preferences.service.js"],"names":["Preferences","_this","this","defaults","settings","defaultsPromise","$$resource","fetch","then","data","labels","_","object","map","SOGoMailLabelsColors","value","key","charAt","Vacation","autoReplyEmailAddresses","join","Forward","forwardAddress","angular","extend","settingsPromise","Calendar","PreventInvitationsWhitelist","match","exec","$User","uid","cn","c_email","$factory","$q","$timeout","$log","Settings","Resource","User","activeUser","module","e","factory","prototype","ready","all","$save","save","$omit","deep","preferences","forEach","copy","substring","split","h","each","user","$shortFormat"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Preferences\n * @constructor\n */\n function Preferences() {\n var _this = this;\n\n this.defaults = {};\n this.settings = {};\n\n this.defaultsPromise = Preferences.$$resource.fetch(\"jsonDefaults\").then(function(data) {\n // We swap $key -> _$key to avoid an Angular bug (https://github.com/angular/angular.js/issues/6266)\n var labels = _.object(_.map(data.SOGoMailLabelsColors, function(value, key) {\n if (key.charAt(0) == '$')\n return ['_' + key, value];\n return [key, value];\n }));\n\n data.SOGoMailLabelsColors = labels;\n\n // We convert our list of autoReplyEmailAddresses/forwardAddress into a string.\n if (data.Vacation && data.Vacation.autoReplyEmailAddresses)\n data.Vacation.autoReplyEmailAddresses = data.Vacation.autoReplyEmailAddresses.join(\",\");\n\n if (data.Forward && data.Forward.forwardAddress)\n data.Forward.forwardAddress = data.Forward.forwardAddress.join(\",\");\n\n angular.extend(_this.defaults, data);\n\n return _this.defaults;\n });\n\n this.settingsPromise = Preferences.$$resource.fetch(\"jsonSettings\").then(function(data) {\n // We convert our PreventInvitationsWhitelist hash into a array of user\n if (data.Calendar && data.Calendar.PreventInvitationsWhitelist)\n data.Calendar.PreventInvitationsWhitelist = _.map(data.Calendar.PreventInvitationsWhitelist, function(value, key) {\n var match = /^(.+)\\s<(\\S+)>$/.exec(value);\n return new Preferences.$User({uid: key, cn: match[1], c_email: match[2]});\n });\n else\n data.Calendar.PreventInvitationsWhitelist = [];\n\n angular.extend(_this.settings, data);\n\n return _this.settings;\n });\n }\n\n /**\n * @memberof Preferences\n * @desc The factory we'll use to register with Angular\n * @returns the Preferences constructor\n */\n Preferences.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'User', function($q, $timeout, $log, Settings, Resource, User) {\n angular.extend(Preferences, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n activeUser: Settings.activeUser(),\n $User: User\n });\n\n return new Preferences(); // return unique instance\n }];\n\n /* Initialize module if necessary */\n try {\n angular.module('SOGo.PreferencesUI');\n }\n catch(e) {\n angular.module('SOGo.PreferencesUI', ['SOGo.Common']);\n }\n\n /* Factory registration in Angular module */\n angular.module('SOGo.PreferencesUI')\n .factory('Preferences', Preferences.$factory);\n\n /**\n * @function ready\n * @memberof Preferences.prototype\n * @desc Combine promises used to load user's defaults and settings.\n * @return a combined promise\n */\n Preferences.prototype.ready = function() {\n return Preferences.$q.all([this.defaultsPromise, this.settingsPromise]);\n };\n\n /**\n * @function $save\n * @memberof Preferences.prototype\n * @desc Save the preferences to the server.\n */\n Preferences.prototype.$save = function() {\n var _this = this;\n\n return Preferences.$$resource.save(\"Preferences\", this.$omit(true))\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n //_this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $omit\n * @memberof Preferences.prototype\n * @desc Return a sanitized object used to send to the server.\n * @param {Boolean} [deep] - make a deep copy if true\n * @return an object literal copy of the Preferences instance\n */\n Preferences.prototype.$omit = function(deep) {\n var preferences = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n if (deep)\n preferences[key] = angular.copy(value);\n else\n preferences[key] = value;\n }\n });\n\n // We swap _$key -> $key to avoid an Angular bug (https://github.com/angular/angular.js/issues/6266)\n var labels = _.object(_.map(preferences.defaults.SOGoMailLabelsColors, function(value, key) {\n if (key.charAt(0) == '_' && key.charAt(1) == '$')\n return [key.substring(1), value];\n return [key, value];\n }));\n\n preferences.defaults.SOGoMailLabelsColors = labels;\n\n if (preferences.defaults.Vacation && preferences.defaults.Vacation.autoReplyEmailAddresses)\n preferences.defaults.Vacation.autoReplyEmailAddresses = preferences.defaults.Vacation.autoReplyEmailAddresses.split(\",\");\n\n if (preferences.defaults.Forward && preferences.defaults.Forward.forwardAddress)\n preferences.defaults.Forward.forwardAddress = preferences.defaults.Forward.forwardAddress.split(\",\");\n\n if (preferences.settings.Calendar && preferences.settings.Calendar.PreventInvitationsWhitelist) {\n var h = {};\n _.each(preferences.settings.Calendar.PreventInvitationsWhitelist, function(user) {\n h[user.uid] = user.$shortFormat();\n });\n preferences.settings.Calendar.PreventInvitationsWhitelist = h;\n }\n\n return preferences;\n };\n\n})();\n"]}