94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
angular
|
|
.module("webui.ctrls.props", [
|
|
"webui.services.utils",
|
|
"webui.services.settings",
|
|
"webui.services.deps",
|
|
"webui.services.rpc",
|
|
"webui.services.configuration"
|
|
])
|
|
.controller("StarredPropsCtrl", [
|
|
"$scope",
|
|
"$_",
|
|
"$utils",
|
|
"$rpc",
|
|
"$globalSettings",
|
|
"$fileSettings",
|
|
"$starredProps",
|
|
function(scope, _, utils, rpc, gsettings, fsettings, starredProps) {
|
|
scope._props = [];
|
|
scope.dirty = true;
|
|
scope.properties = [];
|
|
scope.getProps = function() {
|
|
var props = utils.getCookie("aria2props");
|
|
if (!props || !props.indexOf) props = starredProps; // default properties starred in the global configuration file
|
|
|
|
return props;
|
|
};
|
|
|
|
scope.enabled = function() {
|
|
for (var i = 0; i < scope.properties.length; i++) {
|
|
if (scope.properties[i]._val != scope.properties[i].val) return true;
|
|
}
|
|
|
|
return false;
|
|
};
|
|
|
|
scope.save = function() {
|
|
var sets = {};
|
|
var found = false;
|
|
for (var i = 0; i < scope.properties.length; i++) {
|
|
if (scope.properties[i]._val != scope.properties[i].val) {
|
|
sets[scope.properties[i].name] = scope.properties[i].val;
|
|
found = true;
|
|
}
|
|
}
|
|
|
|
if (found) {
|
|
rpc.once("changeGlobalOption", [sets]);
|
|
}
|
|
};
|
|
|
|
rpc.subscribe("getGlobalOption", [], function(data) {
|
|
var vals = data[0];
|
|
var props = scope.getProps();
|
|
var arr = [];
|
|
|
|
for (var i = 0; i < props.length; i++) {
|
|
var set = {};
|
|
if (props[i] in gsettings) {
|
|
set = gsettings[props[i]];
|
|
if (props[i] in vals) {
|
|
set.val = vals[props[i]];
|
|
}
|
|
set.name = props[i];
|
|
arr.push(set);
|
|
} else if (props[i] in fsettings) {
|
|
set = fsettings[props[i]];
|
|
if (props[i] in vals) {
|
|
set.val = vals[props[i]];
|
|
}
|
|
set.name = props[i];
|
|
arr.push(set);
|
|
} else if (props[i] in vals) {
|
|
arr.push({ name: props[i], val: vals[props[i]] });
|
|
}
|
|
}
|
|
|
|
utils.mergeMap(arr, scope.properties, function(prop, nprop) {
|
|
nprop = nprop || {};
|
|
nprop.name = prop.name;
|
|
nprop.options = prop.options;
|
|
nprop.multiline = prop.multiline;
|
|
if (nprop._val == nprop.val || nprop.val == prop.val) {
|
|
nprop._val = prop.val;
|
|
nprop.val = prop.val;
|
|
} else {
|
|
nprop._val = prop.val;
|
|
}
|
|
nprop.desc = prop.desc;
|
|
return nprop;
|
|
});
|
|
});
|
|
}
|
|
]);
|