Pārlūkot izejas kodu

Fix extension settings cancel action (#9053)

Closes #3662. Closes the extension settings slider when its reset/cancel control is used while preserving unsaved-change confirmation.

---------

Co-authored-by: Gerard Alvear <gerard.alvear@logiqd.me>
Gerard Alvear Porras 1 nedēļu atpakaļ
vecāks
revīzija
9e92ace6f2
2 mainītis faili ar 6 papildinājumiem un 1 dzēšanām
  1. 1 1
      app/views/helpers/extension/configure.phtml
  2. 5 0
      p/scripts/extra.js

+ 1 - 1
app/views/helpers/extension/configure.phtml

@@ -8,7 +8,7 @@
 		throw new FreshRSS_Context_Exception('Extension not initialised!');
 	}
 ?>
-<div class="post">
+<div class="post extension-configure">
 	<h2>
 		<?= $this->extension->getName() ?> (<?= $this->extension->getVersion() ?>) —
 		<?= $this->extension->isEnabled() ? _t('admin.extensions.enabled') : _t('admin.extensions.disabled') ?>

+ 5 - 0
p/scripts/extra.js

@@ -387,6 +387,11 @@ function init_slider(slider) {
 
 	document.getElementById('close-slider').addEventListener('click', close_slider_listener);
 	document.querySelector('#slider .toggle_aside').addEventListener('click', close_slider_listener);
+	slider.addEventListener('click', ev => {
+		if (ev.target.closest('.extension-configure button[type="reset"], .extension-configure input[type="reset"]') && close_slider_listener(ev)) {
+			location.hash = 'close';
+		}
+	});
 
 	if (slider.children.length > 0) {
 		const slider_scrollTop = sessionStorage.getItem('FreshRSS_slider_scrollTop');