mirror of
https://gitlab.com/ryzen-controller-team/ryzen-controller.git
synced 2024-12-22 10:03: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">
|
||||
<input class="uk-input" type="text" id="new_preset_name" placeholder="Preset name: performance, low energy, unicorn power, ...">
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@ ready(function(){
|
||||
recreateShortcut();
|
||||
}
|
||||
handlePlatformSpecificDisplay();
|
||||
updatePresetList();
|
||||
preset_updateList();
|
||||
checkForNewRelease();
|
||||
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.
|
||||
*/
|
||||
|
120
js/preset.js
120
js/preset.js
@ -27,6 +27,124 @@ function preset_import() {
|
||||
presetsToBeImported
|
||||
);
|
||||
settings.set('presets', updatedPresets);
|
||||
updatePresetList();
|
||||
preset_updateList();
|
||||
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