mirror of
https://gitlab.com/ryzen-controller-team/ryzen-controller.git
synced 2024-12-22 18:13:28 +07:00
Regroup presets functions to a preset.js file.
This commit is contained in:
parent
81572aa960
commit
66654cb0cd
@ -237,7 +237,7 @@
|
|||||||
<div class="uk-margin">
|
<div class="uk-margin">
|
||||||
<input class="uk-input" type="text" id="new_preset_name" placeholder="Preset name: performance, low energy, unicorn power, ...">
|
<input class="uk-input" type="text" id="new_preset_name" placeholder="Preset name: performance, low energy, unicorn power, ...">
|
||||||
</div>
|
</div>
|
||||||
<button class="uk-button uk-button-primary uk-modal-close" type="button" onClick="saveToNewPreset()">Save</button>
|
<button class="uk-button uk-button-primary uk-modal-close" type="button" onClick="preset_createNewPreset()">Save</button>
|
||||||
<button class="uk-button uk-button-secondary uk-modal-close" type="button">Close</button>
|
<button class="uk-button uk-button-secondary uk-modal-close" type="button">Close</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -15,7 +15,7 @@ ready(function(){
|
|||||||
recreateShortcut();
|
recreateShortcut();
|
||||||
}
|
}
|
||||||
handlePlatformSpecificDisplay();
|
handlePlatformSpecificDisplay();
|
||||||
updatePresetList();
|
preset_updateList();
|
||||||
checkForNewRelease();
|
checkForNewRelease();
|
||||||
document.isStarting = false;
|
document.isStarting = false;
|
||||||
|
|
||||||
|
118
js/methods.js
118
js/methods.js
@ -439,124 +439,6 @@ function getCurrentSettings(keyType) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Will save the current settings to a new preset.
|
|
||||||
*/
|
|
||||||
function saveToNewPreset() {
|
|
||||||
const settingsToBeSaved = getCurrentSettings("inputId");
|
|
||||||
const currentPresets = require('electron-settings').get('presets') || {};
|
|
||||||
var newPresetName = document.getElementById('new_preset_name').value;
|
|
||||||
|
|
||||||
if (!newPresetName) {
|
|
||||||
notification('danger', 'You must provide a preset name.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof currentPresets[newPresetName] !== "undefined") {
|
|
||||||
newPresetName = findUnusedNewPresetName(newPresetName);
|
|
||||||
notification('warning', `This preset name already exist, your preset has been saved with the name "${newPresetName}".`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const newPresetList = Object.assign(
|
|
||||||
{},
|
|
||||||
currentPresets,
|
|
||||||
{ [newPresetName]: settingsToBeSaved }
|
|
||||||
);
|
|
||||||
|
|
||||||
require('electron-settings').set('presets', newPresetList);
|
|
||||||
appendLog(`saveToNewPreset(): Saved preset ${newPresetName}, ${JSON.stringify(newPresetList)}`);
|
|
||||||
updatePresetList();
|
|
||||||
if (newPresetName === document.getElementById('new_preset_name').value) {
|
|
||||||
notification('success', `The preset ${newPresetName} has been saved.`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This recursive function will return an available preset name to be used to save a preset.
|
|
||||||
*
|
|
||||||
* @param {string} newPresetName The preset name to be edited.
|
|
||||||
* @param {number} suffix The preset name suffix
|
|
||||||
*/
|
|
||||||
function findUnusedNewPresetName(newPresetName, suffix = 1) {
|
|
||||||
const currentPresets = require('electron-settings').get('presets') || {};
|
|
||||||
if (typeof currentPresets[`${newPresetName}${suffix}`] !== "undefined") {
|
|
||||||
suffix++;
|
|
||||||
return findUnusedNewPresetName(newPresetName, suffix);
|
|
||||||
}
|
|
||||||
return `${newPresetName}${suffix}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This will update the preset tab based on saved presets.
|
|
||||||
*/
|
|
||||||
function updatePresetList() {
|
|
||||||
var presetTab = document.getElementById('presetTab');
|
|
||||||
const currentPresets = require('electron-settings').get('presets') || {};
|
|
||||||
|
|
||||||
var content = '';
|
|
||||||
content += '<ul class="uk-list">';
|
|
||||||
|
|
||||||
if (Object.keys(currentPresets).length === 0) {
|
|
||||||
content += `<li>No preset has been created yet, use "Save to preset" button on Controller tab to create one.</li>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const presetName in currentPresets) {
|
|
||||||
if (currentPresets.hasOwnProperty(presetName)) {
|
|
||||||
const preset = currentPresets[presetName];
|
|
||||||
|
|
||||||
let valueSummary = [];
|
|
||||||
for (const key in preset) {
|
|
||||||
if (preset.hasOwnProperty(key) && key.indexOf('_range') !== -1 && key.indexOf('apply_') != 0) {
|
|
||||||
const value = preset[key];
|
|
||||||
valueSummary.push(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
valueSummary.join(', ');
|
|
||||||
|
|
||||||
content += `
|
|
||||||
<li class="uk-margin">
|
|
||||||
<span class="uk-text-lead">${presetName}</span>
|
|
||||||
<button class="uk-button uk-button-danger uk-align-right" type="button" onClick="presetDeletion('${presetName}')">
|
|
||||||
Delete
|
|
||||||
</button>
|
|
||||||
<button class="uk-button uk-button-primary uk-align-right" type="button" onClick="applyPreset('${presetName}')">
|
|
||||||
Apply
|
|
||||||
</button>
|
|
||||||
<i class="uk-text-small">${valueSummary}</i>
|
|
||||||
</li>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
content += '</ul>';
|
|
||||||
presetTab.innerHTML = content;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This will apply the preset you asked for.
|
|
||||||
* @param {string} presetName The preset name to be applied.
|
|
||||||
*/
|
|
||||||
function applyPreset(presetName) {
|
|
||||||
const presets = require('electron-settings').get(`presets.${presetName}`);
|
|
||||||
appendLog(`applyPreset(): preset ${presetName}: ${JSON.stringify(presets)}`);
|
|
||||||
var ret = require('electron-settings').set("latest_controller_tabs_settings", presets);
|
|
||||||
appendLog(`applyPreset(): saved preset: ${JSON.stringify(ret)}`);
|
|
||||||
loadLatestUsedSettings();
|
|
||||||
applyRyzenSettings();
|
|
||||||
toggleOptionDisplayBasedOnApplyCheckbox();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This will delete the preset you asked for.
|
|
||||||
* @param {string} presetName The preset name to be deleted.
|
|
||||||
*/
|
|
||||||
function presetDeletion(presetName) {
|
|
||||||
var presets = require('electron-settings').get(`presets`);
|
|
||||||
delete presets[presetName];
|
|
||||||
require('electron-settings').set(`presets`, presets);
|
|
||||||
notification('success', `The preset ${presetName} has been deleted.`);
|
|
||||||
updatePresetList();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will check for new release.
|
* Will check for new release.
|
||||||
*/
|
*/
|
||||||
|
120
js/preset.js
120
js/preset.js
@ -27,6 +27,124 @@ function preset_import() {
|
|||||||
presetsToBeImported
|
presetsToBeImported
|
||||||
);
|
);
|
||||||
settings.set('presets', updatedPresets);
|
settings.set('presets', updatedPresets);
|
||||||
updatePresetList();
|
preset_updateList();
|
||||||
modalTextArea.innerText = '';
|
modalTextArea.innerText = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will save the current settings to a new preset.
|
||||||
|
*/
|
||||||
|
function preset_createNewPreset() {
|
||||||
|
const settingsToBeSaved = getCurrentSettings("inputId");
|
||||||
|
const currentPresets = require('electron-settings').get('presets') || {};
|
||||||
|
var newPresetName = document.getElementById('new_preset_name').value;
|
||||||
|
|
||||||
|
if (!newPresetName) {
|
||||||
|
notification('danger', 'You must provide a preset name.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof currentPresets[newPresetName] !== "undefined") {
|
||||||
|
newPresetName = preset_findUnusedPresetName(newPresetName);
|
||||||
|
notification('warning', `This preset name already exist, your preset has been saved with the name "${newPresetName}".`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const newPresetList = Object.assign(
|
||||||
|
{},
|
||||||
|
currentPresets,
|
||||||
|
{ [newPresetName]: settingsToBeSaved }
|
||||||
|
);
|
||||||
|
|
||||||
|
require('electron-settings').set('presets', newPresetList);
|
||||||
|
appendLog(`preset_createNewPreset(): Saved preset ${newPresetName}, ${JSON.stringify(newPresetList)}`);
|
||||||
|
preset_updateList();
|
||||||
|
if (newPresetName === document.getElementById('new_preset_name').value) {
|
||||||
|
notification('success', `The preset ${newPresetName} has been saved.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This recursive function will return an available preset name to be used to save a preset.
|
||||||
|
*
|
||||||
|
* @param {string} newPresetName The preset name to be edited.
|
||||||
|
* @param {number} suffix The preset name suffix
|
||||||
|
*/
|
||||||
|
function preset_findUnusedPresetName(newPresetName, suffix = 1) {
|
||||||
|
const currentPresets = require('electron-settings').get('presets') || {};
|
||||||
|
if (typeof currentPresets[`${newPresetName}${suffix}`] !== "undefined") {
|
||||||
|
suffix++;
|
||||||
|
return preset_findUnusedPresetName(newPresetName, suffix);
|
||||||
|
}
|
||||||
|
return `${newPresetName}${suffix}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This will update the preset tab based on saved presets.
|
||||||
|
*/
|
||||||
|
function preset_updateList() {
|
||||||
|
var presetTab = document.getElementById('presetTab');
|
||||||
|
const currentPresets = require('electron-settings').get('presets') || {};
|
||||||
|
|
||||||
|
var content = '';
|
||||||
|
content += '<ul class="uk-list">';
|
||||||
|
|
||||||
|
if (Object.keys(currentPresets).length === 0) {
|
||||||
|
content += `<li>No preset has been created yet, import them or use the "Save to preset" button on Controller tab to create one.</li>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const presetName in currentPresets) {
|
||||||
|
if (currentPresets.hasOwnProperty(presetName)) {
|
||||||
|
const preset = currentPresets[presetName];
|
||||||
|
|
||||||
|
let valueSummary = [];
|
||||||
|
for (const key in preset) {
|
||||||
|
if (preset.hasOwnProperty(key) && key.indexOf('_range') !== -1 && key.indexOf('apply_') != 0) {
|
||||||
|
const value = preset[key];
|
||||||
|
valueSummary.push(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
valueSummary.join(', ');
|
||||||
|
|
||||||
|
content += `
|
||||||
|
<li class="uk-margin">
|
||||||
|
<span class="uk-text-lead">${presetName}</span>
|
||||||
|
<button class="uk-button uk-button-danger uk-align-right" type="button" onClick="preset_deletion('${presetName}')">
|
||||||
|
Delete
|
||||||
|
</button>
|
||||||
|
<button class="uk-button uk-button-primary uk-align-right" type="button" onClick="preset_apply('${presetName}')">
|
||||||
|
Apply
|
||||||
|
</button>
|
||||||
|
<i class="uk-text-small">${valueSummary}</i>
|
||||||
|
</li>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
content += '</ul>';
|
||||||
|
presetTab.innerHTML = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This will apply the preset you asked for.
|
||||||
|
* @param {string} presetName The preset name to be applied.
|
||||||
|
*/
|
||||||
|
function preset_apply(presetName) {
|
||||||
|
const presets = require('electron-settings').get(`presets.${presetName}`);
|
||||||
|
appendLog(`preset_apply(): preset ${presetName}: ${JSON.stringify(presets)}`);
|
||||||
|
var ret = require('electron-settings').set("latest_controller_tabs_settings", presets);
|
||||||
|
appendLog(`preset_apply(): saved preset: ${JSON.stringify(ret)}`);
|
||||||
|
loadLatestUsedSettings();
|
||||||
|
applyRyzenSettings();
|
||||||
|
toggleOptionDisplayBasedOnApplyCheckbox();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This will delete the preset you asked for.
|
||||||
|
* @param {string} presetName The preset name to be deleted.
|
||||||
|
*/
|
||||||
|
function preset_deletion(presetName) {
|
||||||
|
var presets = require('electron-settings').get(`presets`);
|
||||||
|
delete presets[presetName];
|
||||||
|
require('electron-settings').set(`presets`, presets);
|
||||||
|
notification('success', `The preset ${presetName} has been deleted.`);
|
||||||
|
preset_updateList();
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user