Add more settings to the modal, including:

* Global upload/download throttles mirrored in modal and dropdown
* Max client memory usage
* Verify hash after downloading flag
This commit is contained in:
John Furrow
2016-06-18 00:47:52 -07:00
parent 542093269a
commit a72fb8acb4
10 changed files with 151 additions and 63 deletions

View File

@@ -71,14 +71,26 @@ var client = {
},
getSettings: (options, callback) => {
let properties = [];
let requestedSettingsKeys = [];
let request = new ClientRequest();
let response = {};
let outboundTransformation = {
throttleGlobalDownMax: (apiResponse) => {
return Number(apiResponse) / 1024;
},
throttleGlobalUpMax: (apiResponse) => {
return Number(apiResponse) / 1024;
},
piecesMemoryMax: (apiResponse) => {
return Number(apiResponse) / (1024 * 1024);
}
};
request.add('fetchSettings', {
options,
setPropertiesArr: (propertiesArr) => {
properties = propertiesArr;
setRequestedKeysArr: (requestedSettingsKeysArr) => {
requestedSettingsKeys = requestedSettingsKeysArr;
}
});
@@ -88,7 +100,14 @@ var client = {
}
data.forEach((datum, index) => {
response[clientSettingsMap[properties[index]]] = datum[0];
let value = datum[0];
let settingsKey = clientSettingsMap[requestedSettingsKeys[index]];
if (!!outboundTransformation[settingsKey]) {
value = outboundTransformation[settingsKey](value);
}
response[settingsKey] = value;
});
return response;
@@ -216,7 +235,36 @@ var client = {
return;
}
request.add('setSettings', {settings: payloads});
let inboundTransformation = {
throttleGlobalDownMax: (userInput) => {
return {
id: userInput.id,
data: Number(userInput.data) * 1024
};
},
throttleGlobalUpMax: (userInput) => {
return {
id: userInput.id,
data: Number(userInput.data) * 1024
};
},
piecesMemoryMax: (userInput) => {
return {
id: userInput.id,
data: Number(userInput.data) * 1024 * 1024
};
}
};
let transformedPayloads = payloads.map((payload) => {
if (!!inboundTransformation[payload.id]) {
return inboundTransformation[payload.id](payload);
}
return payload;
});
request.add('setSettings', {settings: transformedPayloads});
request.onComplete(callback);
request.send();
},