aboutsummaryrefslogtreecommitdiff
path: root/p
diff options
context:
space:
mode:
Diffstat (limited to 'p')
-rw-r--r--p/scripts/category.js23
-rw-r--r--p/scripts/extra.js38
-rw-r--r--p/themes/base-theme/template.css3
3 files changed, 51 insertions, 13 deletions
diff --git a/p/scripts/category.js b/p/scripts/category.js
index c01b1fdd7..c5d36e900 100644
--- a/p/scripts/category.js
+++ b/p/scripts/category.js
@@ -137,11 +137,34 @@ function init_draggable() {
};
}
+function archiving() {
+ const slider = document.getElementById('slider');
+ slider.addEventListener('change', function (e) {
+ if (e.target.id === 'use_default_purge_options') {
+ slider.querySelectorAll('.archiving').forEach(function (element) {
+ element.hidden = e.target.checked;
+ });
+ }
+ });
+ slider.addEventListener('click', function (e) {
+ if (e.target.closest('button[type=reset]')) {
+ const archiving = document.getElementById('use_default_purge_options');
+ if (archiving) {
+ slider.querySelectorAll('.archiving').forEach(function (element) {
+ element.hidden = archiving.getAttribute('data-leave-validation') == 1;
+ });
+ }
+ }
+ });
+}
+
if (document.readyState && document.readyState !== 'loading') {
init_draggable();
+ archiving();
} else if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function () {
init_draggable();
+ archiving();
}, false);
}
// @license-end
diff --git a/p/scripts/extra.js b/p/scripts/extra.js
index bba2e8e2b..1fd8a19de 100644
--- a/p/scripts/extra.js
+++ b/p/scripts/extra.js
@@ -184,12 +184,32 @@ function init_slider_observers() {
};
closer.onclick = function (ev) {
- closer.classList.remove('active');
- slider.classList.remove('active');
- return false;
+ if (data_leave_validation() || confirm(context.i18n.confirmation_default)) {
+ slider.querySelectorAll('form').forEach(function (f) { f.reset(); });
+ closer.classList.remove('active');
+ slider.classList.remove('active');
+ return true;
+ } else {
+ return false;
+ }
};
}
+function data_leave_validation() {
+ const ds = document.querySelectorAll('[data-leave-validation]');
+ for (let i = ds.length - 1; i >= 0; i--) {
+ const input = ds[i];
+ if (input.type === 'checkbox' || input.type === 'radio') {
+ if (input.checked != input.getAttribute('data-leave-validation')) {
+ return false;
+ }
+ } else if (input.value != input.getAttribute('data-leave-validation')) {
+ return false;
+ }
+ }
+ return true;
+}
+
function init_configuration_alert() {
window.onsubmit = function (e) {
window.hasSubmit = true;
@@ -198,16 +218,8 @@ function init_configuration_alert() {
if (window.hasSubmit) {
return;
}
- const ds = document.querySelectorAll('[data-leave-validation]');
- for (let i = ds.length - 1; i >= 0; i--) {
- const input = ds[i];
- if (input.type === 'checkbox' || input.type === 'radio') {
- if (input.checked != input.getAttribute('data-leave-validation')) {
- return false;
- }
- } else if (input.value != input.getAttribute('data-leave-validation')) {
- return false;
- }
+ if (!data_leave_validation()) {
+ return false;
}
};
}
diff --git a/p/themes/base-theme/template.css b/p/themes/base-theme/template.css
index 889d33c4e..2d76c9b4d 100644
--- a/p/themes/base-theme/template.css
+++ b/p/themes/base-theme/template.css
@@ -101,6 +101,9 @@ label {
input {
width: 180px;
}
+input[type=number] {
+ width: 6em;
+}
textarea,
input[type="file"],