aboutsummaryrefslogtreecommitdiff
path: root/p
diff options
context:
space:
mode:
authorGravatar Inverle <inverle@proton.me> 2025-08-31 19:09:02 +0200
committerGravatar GitHub <noreply@github.com> 2025-08-31 19:09:02 +0200
commit87879e83927d66332d2d0794bc47eeb55f8c9b46 (patch)
tree2706ce65294feee9dd09375060d14914a9e6bfe9 /p
parent94d4f942d3bd604473c1acd4b07113890e0890e0 (diff)
Improve leave validation (#7830)
* Improve leave validation * array_key_exists -> isset Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'p')
-rw-r--r--p/scripts/extra.js29
-rw-r--r--p/scripts/main.js7
2 files changed, 25 insertions, 11 deletions
diff --git a/p/scripts/extra.js b/p/scripts/extra.js
index 457610b91..8d5b960c8 100644
--- a/p/scripts/extra.js
+++ b/p/scripts/extra.js
@@ -179,6 +179,10 @@ function init_update_feed() {
if (resetField) {
resetField.remove();
}
+ const extBtn = feed_update.querySelector('input#extBtn');
+ if (extBtn) {
+ extBtn.remove();
+ }
if (faviconExtBtn) {
faviconExtBtn.disabled = false;
extension.innerText = extension.dataset.initialExt ?? extension.innerText;
@@ -214,6 +218,10 @@ function init_update_feed() {
if (resetField) {
resetField.remove();
}
+ const extBtn = feed_update.querySelector('input#extBtn');
+ if (extBtn) {
+ extBtn.remove();
+ }
resetFavicon.disabled = false;
favicon.src = URL.createObjectURL(faviconUpload.files[0]);
};
@@ -231,19 +239,16 @@ function init_update_feed() {
faviconExt.classList.add('hidden');
faviconError.innerHTML = '';
clearUploadedIcon();
- resetFavicon.insertAdjacentHTML('afterend', '<input type="hidden" name="resetFavicon" value="1" />');
+ resetFavicon.insertAdjacentHTML('afterend', '<input type="hidden" name="resetFavicon" value="1" data-leave-validation="" />');
resetFavicon.disabled = true;
favicon.src = favicon.dataset.originalIcon;
};
- // Discard the icon change when the "Cancel" button is clicked
- feed_update.querySelectorAll('[type="reset"]').forEach(cancelBtn => {
- cancelBtn.addEventListener('click', () => {
- faviconExt.classList.remove('hidden');
- faviconError.innerHTML = '';
- discardIconChange();
- });
+ feed_update.querySelector('form').addEventListener('reset', () => {
+ faviconExt.classList.remove('hidden');
+ faviconError.innerHTML = '';
+ discardIconChange();
});
if (faviconExtBtn) {
@@ -272,6 +277,7 @@ function init_update_feed() {
if (resetField) {
resetField.remove();
}
+ faviconExtBtn.insertAdjacentHTML('afterend', '<input type="hidden" id="extBtn" value="1" data-leave-validation="" />');
resetFavicon.disabled = false;
faviconError.innerHTML = '';
faviconExt.classList.remove('hidden');
@@ -367,9 +373,12 @@ function close_slider_listener(ev) {
if (data_leave_validation(slider) || confirm(context.i18n.confirm_exit_slider)) {
slider.querySelectorAll('form').forEach(function (f) { f.reset(); });
document.documentElement.classList.remove('slider-active');
- return;
+ return true;
}
- ev.preventDefault();
+ if (ev) {
+ ev.preventDefault();
+ }
+ return false;
}
// </slider>
diff --git a/p/scripts/main.js b/p/scripts/main.js
index c9f856c73..813890e42 100644
--- a/p/scripts/main.js
+++ b/p/scripts/main.js
@@ -1185,6 +1185,7 @@ function init_shortcuts() {
}
return;
}
+ const hash = location.hash.substr(1);
if (k === s.skip_next_entry) { next_entry(true); ev.preventDefault(); return; }
if (k === s.skip_prev_entry) { prev_entry(true); ev.preventDefault(); return; }
if (k === s.collapse_entry) { collapse_entry(); ev.preventDefault(); return; }
@@ -1192,7 +1193,11 @@ function init_shortcuts() {
if (k === s.auto_share) { auto_share(); ev.preventDefault(); return; }
if (k === s.user_filter) { user_filter(); ev.preventDefault(); return; }
if (k === s.load_more) { load_more_posts(); ev.preventDefault(); return; }
- if (k === s.close_dropdown) { location.hash = null; ev.preventDefault(); return; }
+ /* globals close_slider_listener */
+ if (k === s.close_menus && (
+ (hash === 'slider' && close_slider_listener()) ||
+ hash.startsWith('dropdown')
+ )) { location.hash = ''; ev.preventDefault(); return; }
if (k === s.help) { window.open(context.urls.help); ev.preventDefault(); return; }
if (k === s.focus_search) { document.getElementById('search').focus(); ev.preventDefault(); return; }
if (k === s.normal_view) { delayedClick(document.querySelector('#nav_menu_views .view-normal')); ev.preventDefault(); return; }