2 Commits

4 changed files with 68 additions and 75 deletions

View File

@ -1,38 +1,36 @@
(function(window) { const folder_selector = document.querySelectorAll('.pride_flags_server_settings .server-settings.folder-flavour select')[0];
const folder_selector = document.querySelectorAll('.pride_flags_server_settings .server-settings.folder-flavour select')[0]; const button_selector = document.querySelectorAll('.pride_flags_server_settings .server-settings.button-flavour select')[0];
const button_selector = document.querySelectorAll('.pride_flags_server_settings .server-settings.button-flavour select')[0]; const submit_button = document.querySelectorAll('.pride_flags_user_settings .settings-pride-submit');
const submit_button = document.querySelectorAll('.pride_flags_server_settings .settings-pride-submit'); const container = document.querySelector('.pride_flags_server_settings settings-section')
const container = document.querySelector('.pride_flags_server_settings .settings-section');
function load() { function load() {
fetch(OC.generateUrl('/apps/pride_flags/settings/global')) fetch(OC.generateUrl('/apps/pride_flags/settings/global'))
.then(res => res.json()) .then(res => res.json())
.then(({folderVariant, buttonVariant}) => { .then(({folderVariant, buttonVariant}) => {
folder_selector.value = folderVariant; folder_selector.value = folderVariant;
button_selector.value = buttonVariant; button_selector.value = buttonVariant;
container.classList.remove('hidden'); container.classList.remove('hidden');
}); });
}
function save() {
const payload = {
folderVariant: folder_selector.value,
buttonVariant: button_selector.value,
} }
fetch(OC.generateUrl('/apps/pride_flags/settings/global'), {
function save() { method: 'POST',
const payload = { body: JSON.stringify(payload),
folderVariant: folder_selector.value, headers: {
buttonVariant: button_selector.value, "Content-Type": "application/json",
"requesttoken": OC.requestToken,
} }
fetch(OC.generateUrl('/apps/pride_flags/settings/global'), { }).then(response => {
method: 'POST', if (response.ok) {
body: JSON.stringify(payload), window.location.reload();
headers: { }
"Content-Type": "application/json", })
"requesttoken": OC.requestToken, }
} submit_button.forEach(node => node.addEventListener('click', e => save()));
}).then(response => {
if (response.ok) {
window.location.reload();
}
})
}
submit_button.forEach(node => node.addEventListener('click', e => save()));
load(); load();
})(window);

View File

@ -1,38 +1,38 @@
(function(window) {
const folder_selector = document.querySelectorAll('.pride_flags_user_settings .user-settings.folder-flavour select')[0];
const button_selector = document.querySelectorAll('.pride_flags_user_settings .user-settings.button-flavour select')[0];
const submit_button = document.querySelectorAll('.pride_flags_user_settings .settings-pride-submit');
const container = document.querySelector('.pride_flags_user_settings .settings-section');
function load() {
fetch(OC.generateUrl('/apps/pride_flags/settings')) const folder_selector = document.querySelectorAll('.pride_flags_user_settings .user-settings.folder-flavour select')[0];
.then(res => res.json()) const button_selector = document.querySelectorAll('.pride_flags_user_settings .user-settings.button-flavour select')[0];
.then(({folderVariant, buttonVariant}) => { const submit_button = document.querySelectorAll('.pride_flags_user_settings .settings-pride-submit');
folder_selector.value = folderVariant; const container = document.querySelector('.pride_flags_user_settings settings-section')
button_selector.value = buttonVariant;
container.classList.remove('hidden'); function load() {
}); fetch(OC.generateUrl('/apps/pride_flags/settings'))
.then(res => res.json())
.then(({folderVariant, buttonVariant}) => {
folder_selector.value = folderVariant;
button_selector.value = buttonVariant;
container.classList.remove('hidden');
});
}
function save() {
const payload = {
folderVariant: folder_selector.value,
buttonVariant: button_selector.value,
} }
fetch(OC.generateUrl('/apps/pride_flags/settings'), {
function save() { method: 'POST',
const payload = { body: JSON.stringify(payload),
folderVariant: folder_selector.value, headers: {
buttonVariant: button_selector.value, "Content-Type": "application/json",
"requesttoken": OC.requestToken,
} }
fetch(OC.generateUrl('/apps/pride_flags/settings'), { }).then(response => {
method: 'POST', if (response.ok) {
body: JSON.stringify(payload), window.location.reload();
headers: { }
"Content-Type": "application/json", })
"requesttoken": OC.requestToken, }
} submit_button.forEach(node => node.addEventListener('click', e => save()));
}).then(response => {
if (response.ok) {
window.location.reload();
}
})
}
submit_button.forEach(node => node.addEventListener('click', e => save()));
load(); load();
})(window);

View File

@ -40,11 +40,6 @@ class SettingsController extends Controller {
return $this->makeJSONResponse(fn () => $this->appSettings->getGlobal()); return $this->makeJSONResponse(fn () => $this->appSettings->getGlobal());
} }
#[NoCSRFRequired]
public function getGlobal(): JSONResponse {
return $this->makeJSONResponse(fn () => $this->appSettings->getGlobal());
}
protected function makeJSONResponse(Closure $closure): JSONResponse { protected function makeJSONResponse(Closure $closure): JSONResponse {
try { try {
return new JSONResponse($closure(), HTTP::STATUS_OK); return new JSONResponse($closure(), HTTP::STATUS_OK);

View File

@ -34,8 +34,8 @@ class AppSettings {
public function getGlobal(): array { public function getGlobal(): array {
return [ return [
AppSettings::FOLDER_VARIANT => $this->config->getAppValue(AppConstants::APP_ID, AppSettings::FOLDER_VARIANT, 'pride'), AppSettings::FOLDER_VARIANT => $this->config->getAppValue(AppSettings::APP_ID, AppSettings::FOLDER_VARIANT, 'pride'),
AppSettings::BUTTON_VARIANT => $this->config->getAppValue(AppConstants::APP_ID, AppSettings::BUTTON_VARIANT, 'trans'), AppSettings::BUTTON_VARIANT => $this->config->getAppValue(AppSettings::APP_ID, AppSettings::BUTTON_VARIANT, 'trans'),
]; ];
} }