123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- var App = require('app');
- /**
- * Small mixin for processing user preferences
- * Provide methods to save/load some values in <code>persist</code> storage
- * Save available only for admin users!
- * When using this mixin you should redeclare methods:
- * <ul>
- * <li>getUserPrefSuccessCallback</li>
- * <li>getUserPrefErrorCallback</li>
- * <li>postuserPrefSuccessCallback</li>
- * <li>postuserPrefErrorCallback</li>
- * </ul>
- * @type {Em.Mixin}
- */
- App.UserPref = Em.Mixin.create({
- /**
- * Additional to request data
- * @type {object}
- */
- additionalData: {},
- /**
- * Get persist value from server with persistKey
- * @param {String} key
- */
- getUserPref: function(key) {
- return App.ajax.send({
- name: 'settings.get.user_pref',
- sender: this,
- data: {
- key: key,
- data: this.get('additionalData')
- },
- success: 'getUserPrefSuccessCallback',
- error: 'getUserPrefErrorCallback'
- });
- },
- /**
- * Should be redeclared in objects that use this mixin
- * @param {*} response
- * @param {Object} request
- * @param {Object} data
- * @returns {*}
- */
- getUserPrefSuccessCallback: function (response, request, data) {},
- /**
- * Should be redeclared in objects that use this mixin
- * @param {Object} request
- * @param {Object} ajaxOptions
- * @param {String} error
- */
- getUserPrefErrorCallback: function (request, ajaxOptions, error) {},
- /**
- * Post persist key/value to server, value is object
- * Only for admin users!
- * @param {String} key
- * @param {Object} value
- */
- postUserPref: function (key, value) {
- if(!App.get('isAdmin')) return;
- var keyValuePair = {};
- keyValuePair[key] = JSON.stringify(value);
- App.ajax.send({
- 'name': 'settings.post.user_pref',
- 'sender': this,
- 'beforeSend': 'postUserPrefBeforeSend',
- 'data': {
- 'keyValuePair': keyValuePair
- },
- 'success': 'postUserPrefSuccessCallback',
- 'error': 'postUserPrefErrorCallback'
- });
- },
- /**
- * Should be redeclared in objects that use this mixin
- * @param {*} response
- * @param {Object} request
- * @param {Object} data
- * @returns {*}
- */
- postUserPrefSuccessCallback: function (response, request, data) {},
- /**
- * Should be redeclared in objects that use this mixin
- * @param {Object} request
- * @param {Object} ajaxOptions
- * @param {String} error
- */
- postUserPrefErrorCallback: function(request, ajaxOptions, error) {},
- /**
- * Little log before post request
- * @param {Object} request
- * @param {Object} ajaxOptions
- * @param {Object} data
- */
- postUserPrefBeforeSend: function(request, ajaxOptions, data){
- console.log('BeforeSend to persist: persistKeyValues', data.keyValuePair);
- }
- });
|