openmedialibrary/static/js/Preferences.js

41 lines
1.1 KiB
JavaScript

'use strict';
oml.Preferences = (function() {
var that = {};
that.set = function() {
var args = Ox.isObject(arguments[0])
? args
: Ox.makeObject([arguments[0], arguments[1]]),
set = {},
preferences = oml.user.preferences,
previousPreferences = Ox.clone(preferences, true);
Ox.forEach(args, function(value, key) {
if (!Ox.isEqual(preferences[key], value)) {
preferences[key] = value;
set[key] = value;
}
});
if (Ox.len(set)) {
oml.api.setPreferences(set);
Ox.forEach(set, function(value, key) {
Ox.forEach(oml.$ui, function($element) {
if (Ox.UI.isElement($element)) {
$element.triggerEvent('oml_' + key.toLowerCase(), {
value: value,
previousValue: previousPreferences[key]
});
}
});
});
}
};
return that;
}());