sogo/UI/WebServerResources/js/Preferences.services.js.map
2015-09-22 11:56:33 -04:00

1 line
9.3 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","endDate","Date","parseInt","endDateEnabled","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","getTime","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 // We also convert our date objects into real date, otherwise we'll have strings\n // or undefined values and the md-datepicker does NOT like this.\n if (data.Vacation) {\n if (data.Vacation.endDate)\n data.Vacation.endDate = new Date(parseInt(data.Vacation.endDate) * 1000);\n else {\n data.Vacation.endDateEnabled = 0;\n data.Vacation.endDate = new Date();\n }\n\n if (data.Vacation.autoReplyEmailAddresses)\n data.Vacation.autoReplyEmailAddresses = data.Vacation.autoReplyEmailAddresses.join(\",\");\n } else {\n data.Vacation = {};\n data.Vacation.endDateEnabled = 0;\n data.Vacation.endDate = new Date();\n }\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\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) {\n if (preferences.defaults.Vacation.endDateEnabled)\n preferences.defaults.Vacation.endDate = preferences.defaults.Vacation.endDate.getTime()/1000;\n else\n preferences.defaults.Vacation.endDate = 0;\n\n if (preferences.defaults.Vacation.autoReplyEmailAddresses)\n preferences.defaults.Vacation.autoReplyEmailAddresses = preferences.defaults.Vacation.autoReplyEmailAddresses.split(\",\");\n else\n preferences.defaults.Vacation.autoReplyEmailAddresses = [];\n }\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"]}