فهرست منبع

Slider: close via shortcut (#4394)

* change close-slider behind slider

* open/close slider via anchor

* use shortcuts globaly

* deleted debugging console.log()
maTh 3 سال پیش
والد
کامیت
992b906062

+ 3 - 3
app/views/extension/index.phtml

@@ -80,9 +80,6 @@
 </main>
 
 <?php $class = isset($this->extension) ? ' active' : ''; ?>
-<a href="#" id="close-slider" class="<?= $class ?>">
-	<?= _i('close') ?>
-</a>
 <aside id="slider" class="scrollbar-thin<?= $class ?>">
 	<?php
 		if (isset($this->extension)) {
@@ -90,3 +87,6 @@
 		}
 	?>
 </aside>
+<a href="#" id="close-slider" class="<?= $class ?>">
+	<?= _i('close') ?>
+</a>

+ 2 - 2
app/views/index/normal.phtml

@@ -135,10 +135,10 @@ $today = @strtotime('today');
 <?php endif; ?>
 
 <?php $class = $this->displaySlider ? ' active' : ''; ?>
+<aside id="slider" class="scrollbar-thin<?= $class ?>">
+</aside>
 <a href="#" id="close-slider" class="<?= $class ?>">
 	<?= _i('close') ?>
 </a>
-<aside id="slider" class="scrollbar-thin<?= $class ?>">
-</aside>
 
 <?php if ($nbEntries > 0 && FreshRSS_Context::$user_conf->show_nav_buttons) $this->partial('nav_entries'); ?>

+ 3 - 3
app/views/stats/idle.phtml

@@ -51,9 +51,6 @@
 </main>
 
 <?php $class = $this->displaySlider ? ' active' : ''; ?>
-<a href="#" id="close-slider" class="<?= $class ?>">
-	<?= _i('close') ?>
-</a>
 <aside id="slider" class="scrollbar-thin<?= $class ?>">
 	<?php
 		if (isset($this->feed)) {
@@ -61,3 +58,6 @@
 		}
 	?>
 </aside>
+<a href="#" id="close-slider" class="<?= $class ?>">
+	<?= _i('close') ?>
+</a>

+ 3 - 3
app/views/subscription/index.phtml

@@ -76,9 +76,6 @@
 </main>
 
 <?php $class = $this->displaySlider ? ' active' : ''; ?>
-<a href="#" id="close-slider" class="<?= $class ?>">
-	<?= _i('close') ?>
-</a>
 <aside id="slider" class="scrollbar-thin<?= $class ?>">
 	<?php
 		if (isset($this->feed)) {
@@ -88,3 +85,6 @@
 		}
 	?>
 </aside>
+<a href="#" id="close-slider" class="<?= $class ?>">
+	<?= _i('close') ?>
+</a>

+ 1 - 6
p/scripts/extra.js

@@ -148,7 +148,7 @@ function open_slider_listener(ev) {
 	const a = ev.target.closest('.open-slider');
 	if (a) {
 		if (!context.ajax_loading) {
-			location.href = '#'; // close menu/dropdown
+			location.href = '#slider'; // close menu/dropdown
 			context.ajax_loading = true;
 
 			const req = new XMLHttpRequest();
@@ -156,11 +156,8 @@ function open_slider_listener(ev) {
 			req.responseType = 'document';
 			req.onload = function (e) {
 				const slider = document.getElementById('slider');
-				const closer = document.getElementById('close-slider');
 				slider.scrollTop = 0;
 				slider.innerHTML = this.response.body.innerHTML;
-				slider.classList.add('active');
-				closer.classList.add('active');
 				context.ajax_loading = false;
 				slider.dispatchEvent(freshrssSliderLoadEvent);
 			};
@@ -177,8 +174,6 @@ function init_slider(slider) {
 	closer.addEventListener('click', function (ev) {
 		if (data_leave_validation(slider) || 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;

+ 1 - 1
p/scripts/main.js

@@ -1721,7 +1721,6 @@ function init_normal() {
 	}
 	init_column_categories();
 	init_stream(stream);
-	init_shortcuts();
 	init_actualize();
 	faviconNbUnread();
 
@@ -1738,6 +1737,7 @@ function init_normal() {
 
 function init_main_beforeDOM() {
 	document.scrollingElement.scrollTop = 0;
+	init_shortcuts();
 	if (['normal', 'reader', 'global'].indexOf(context.current_view) >= 0) {
 		init_normal();
 	}

+ 3 - 3
p/themes/base-theme/template.css

@@ -1444,7 +1444,7 @@ br {
 	z-index: 100;
 }
 
-#slider.active {
+#slider:target {
 	width: 750px;
 }
 
@@ -1455,7 +1455,7 @@ br {
 	cursor: pointer;
 }
 
-#close-slider.active {
+#slider:target + #close-slider {
 	background: rgba(0, 0, 0, 0.2);
 	font-size: 0;
 	left: 0;
@@ -1466,7 +1466,7 @@ br {
 	display: none;
 }
 
-#close-slider.active img {
+#slider:target + #close-slider img {
 	padding: 0.5rem;
 	display: inline-block;
 	position: absolute;

+ 3 - 3
p/themes/base-theme/template.rtl.css

@@ -1444,7 +1444,7 @@ br {
 	z-index: 100;
 }
 
-#slider.active {
+#slider:target {
 	width: 750px;
 }
 
@@ -1455,7 +1455,7 @@ br {
 	cursor: pointer;
 }
 
-#close-slider.active {
+#slider:target + #close-slider {
 	background: rgba(0, 0, 0, 0.2);
 	font-size: 0;
 	right: 0;
@@ -1466,7 +1466,7 @@ br {
 	display: none;
 }
 
-#close-slider.active img {
+#slider:target + #close-slider img {
 	padding: 0.5rem;
 	display: inline-block;
 	position: absolute;