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