41 lines
1.1 KiB
JavaScript
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;
|
||
|
|
||
|
}());
|