Просмотр исходного кода

Follow-up #9169 remove form IDs everywhere (#9205)

* Follow-up #9169 remove form IDs everywhere

* Add some `<form name>` alongside `class`
Inverle 1 неделя назад
Родитель
Сommit
0a44b7d017
39 измененных файлов с 91 добавлено и 97 удалено
  1. 1 2
      app/layout/aside_feed.phtml
  2. 4 8
      app/layout/nav_menu.phtml
  3. 1 1
      app/views/auth/formLogin.phtml
  4. 1 1
      app/views/auth/reauth.phtml
  5. 2 2
      app/views/configure/queries.phtml
  6. 1 1
      app/views/extension/index.phtml
  7. 2 2
      app/views/helpers/extension/configure.phtml
  8. 1 1
      app/views/helpers/extension/details.phtml
  9. 2 3
      app/views/helpers/stream-footer.phtml
  10. 1 1
      app/views/helpers/tag/update.phtml
  11. 1 1
      app/views/index/logs.phtml
  12. 1 1
      app/views/subscription/add.phtml
  13. 1 1
      app/views/tag/index.phtml
  14. 2 2
      app/views/user/profile.phtml
  15. 1 1
      docs/en/users/05_Configuration.md
  16. 4 4
      p/scripts/global_view.js
  17. 3 3
      p/scripts/main.js
  18. 3 3
      p/themes/Alternative-Dark/adark.css
  19. 3 3
      p/themes/Alternative-Dark/adark.rtl.css
  20. 2 2
      p/themes/Ansum/_mobile.css
  21. 2 2
      p/themes/Ansum/_mobile.rtl.css
  22. 1 1
      p/themes/Dark-pink/pinkdark.css
  23. 1 1
      p/themes/Dark-pink/pinkdark.rtl.css
  24. 1 1
      p/themes/Dark/dark.css
  25. 1 1
      p/themes/Dark/dark.rtl.css
  26. 1 1
      p/themes/Flat/flat.css
  27. 1 1
      p/themes/Flat/flat.rtl.css
  28. 2 2
      p/themes/Mapco/_mobile.css
  29. 2 2
      p/themes/Mapco/_mobile.rtl.css
  30. 6 6
      p/themes/Nord/nord.css
  31. 6 6
      p/themes/Nord/nord.rtl.css
  32. 2 2
      p/themes/Origine/origine.css
  33. 2 2
      p/themes/Origine/origine.rtl.css
  34. 1 1
      p/themes/Pafat/pafat.css
  35. 1 1
      p/themes/Pafat/pafat.rtl.css
  36. 6 6
      p/themes/Swage/swage.css
  37. 6 6
      p/themes/Swage/swage.rtl.css
  38. 6 6
      p/themes/base-theme/frss.css
  39. 6 6
      p/themes/base-theme/frss.rtl.css

+ 1 - 2
app/layout/aside_feed.phtml

@@ -37,7 +37,7 @@
 	<a href="<?= _url('index', 'about') ?>" class="about"><?= _t('index.menu.about') ?></a>
 	<?php } ?>
 
-	<form id="mark-read-aside" method="post">
+	<form name="mark_read_aside" class="mark-read-aside" method="post">
 	<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 	<ul id="sidebar" class="tree scrollbar-thin">
 		<li class="tree-folder category all<?= FreshRSS_Context::isCurrentGet('a') || FreshRSS_Context::isCurrentGet('A') || FreshRSS_Context::isCurrentGet('Z') ? ' active' : '' ?>">
@@ -218,7 +218,6 @@
 		<li class="item">
 			<?php $confirm = FreshRSS_Context::userConf()->reading_confirm ? 'confirm" disabled="disabled' : ''; ?>
 			<button class="read_all as-link <?= $confirm ?>"
-				form="mark-read-aside"
 				formaction="<?= _url('entry', 'read', 'get', 'f_------') ?>"
 				type="submit"><?= _t('index.menu.mark_feed_read') ?></button>
 		</li>

+ 4 - 8
app/layout/nav_menu.phtml

@@ -139,23 +139,22 @@
 		$mark_unread_url['params']['nextGet'] = $get;
 	?>
 
-	<div id="nav_menu_read_all" class="group stick">
-		<form id="mark-read-menu" method="post">
+	<div class="nav_menu_read_all group stick">
+		<form name="mark_read_menu" class="mark-read-menu" method="post">
 		<?php $confirm = FreshRSS_Context::userConf()->reading_confirm ? 'confirm" disabled="disabled' : ''; ?>
+		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
+
 		<button class="read_all btn <?= $confirm ?>"
-			form="mark-read-menu"
 			formaction="<?= Minz_Url::display($mark_read_url) ?>"
 			type="submit"><?= _t('gen.action.mark_read') ?></button>
 
 		<div id="nav_menu_read" class="dropdown">
-			<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 			<div id="dropdown-read" class="dropdown-target"></div>
 
 			<a class="dropdown-toggle btn" href="#dropdown-read"><?= _i('down') ?></a>
 			<ul class="dropdown-menu">
 				<li class="item">
 					<button class="as-link <?= $confirm ?>"
-						form="mark-read-menu"
 						formaction="<?= Minz_Url::display($mark_read_url) ?>"
 						type="submit"><?= $string_mark ?></button>
 				</li>
@@ -179,19 +178,16 @@
 ?>
 				<li class="item separator">
 					<button class="as-link <?= $mark_read_enabled ? $confirm : '" disabled="disabled' ?>"
-						form="mark-read-menu"
 						formaction="<?= Minz_Url::display($mark_before_today) ?>"
 						type="submit"><?= _t('index.menu.before_one_day') ?></button>
 				</li>
 				<li class="item">
 					<button class="as-link <?= $mark_read_enabled ? $confirm : '" disabled="disabled' ?>"
-						form="mark-read-menu"
 						formaction="<?= Minz_Url::display($mark_before_one_week) ?>"
 						type="submit"><?= _t('index.menu.before_one_week') ?></button>
 				</li>
 				<li class="item separator">
 					<button class="as-link <?= $mark_unread_enabled ? $confirm : '" disabled="disabled' ?>"
-						form="mark-read-menu"
 						formaction="<?= Minz_Url::display($mark_unread_url) ?>"
 						type="submit"><?= $string_unmark ?></button>
 				</li>

+ 1 - 1
app/views/auth/formLogin.phtml

@@ -18,7 +18,7 @@
 		<?php endif; ?>
 	<?php endif; ?>
 
-	<form class="crypto-form" method="post" action="<?= _url('auth', 'login') ?>">
+	<form name="crypto_form" class="crypto-form" method="post" action="<?= _url('auth', 'login') ?>">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<input type="hidden" name="original_request" value="<?= Minz_Url::serialize(Minz_Request::originalRequest())?>" />
 

+ 1 - 1
app/views/auth/reauth.phtml

@@ -6,7 +6,7 @@
 <main class="prompt">
 	<h1><?= _t('gen.auth.reauth.header') ?></h1>
 
-	<form class="crypto-form" method="post">
+	<form name="crypto_form" class="crypto-form" method="post">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<input type="hidden" id="username" value="<?= Minz_User::name() ?>" />
 		<div class="form-group">

+ 2 - 2
app/views/configure/queries.phtml

@@ -6,7 +6,7 @@
 <main class="post">
 	<h1><?= _t('conf.query') ?></h1>
 	<h2><?= _t('conf.query.create') ?></h2>
-	<form method="post" action="<?= _url('configure', 'bookmarkQuery') ?>" autocomplete="off" data-auto-leave-validation="1">
+	<form name="bookmark_query" method="post" action="<?= _url('configure', 'bookmarkQuery') ?>" autocomplete="off" data-auto-leave-validation="1">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 
 		<div class="form-group">
@@ -157,7 +157,7 @@
 		15 => _t('conf.query.state_all'),
 	];
 	?>
-	<form method="post" action="<?= _url('configure', 'queries') ?>" class="draggableList">
+	<form name="drag_queries" method="post" action="<?= _url('configure', 'queries') ?>" class="draggableList">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<?php if (count($this->queries) < 1) { ?>
 			<div class="alert alert-warn">

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

@@ -5,7 +5,7 @@
 ?>
 <main class="post">
 	<h1><?= _t('admin.extensions.title') ?></h1>
-	<form id="form-extension" method="post">
+	<form method="post">
 	<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 	<?php if (!empty($this->extension_list['system'])) { ?>
 	<h2><?= _t('admin.extensions.system') ?></h2>

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

@@ -17,11 +17,11 @@
 	<p class="alert alert-warn"><?= $this->extension->getDescription() ?> — <?= _t('gen.short.by_author'), ' ', $this->extension->getAuthor() ?></p>
 
 	<?php if (FreshRSS_Auth::hasAccess('admin')) { ?>
-	<form id="form-extension" method="post">
+	<form method="post">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<div class="form-group form-actions">
 			<div class="group-controls">
-				<button class="btn btn-attention confirm" form="form-extension" formaction="<?= _url('extension', 'remove', 'e', urlencode($this->extension->getName())) ?>"><?= _t('gen.action.remove') ?></button>
+				<button class="btn btn-attention confirm" formaction="<?= _url('extension', 'remove', 'e', urlencode($this->extension->getName())) ?>"><?= _t('gen.action.remove') ?></button>
 			</div>
 		</div>
 	</form>

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

@@ -19,7 +19,7 @@
 		$title = _t('gen.action.enable');
 	}
 	if ($this->ext_details->getType() === 'user' || FreshRSS_Auth::hasAccess('admin')) {?>
-	<button class="switch<?= $button_class ?>" form="form-extension" formaction="<?= _url('extension', $action, 'e', $name_encoded) ?>" title="<?= _t('gen.action.enable') ?>"></button>
+	<button class="switch<?= $button_class ?>" formaction="<?= _url('extension', $action, 'e', $name_encoded) ?>" title="<?= _t('gen.action.enable') ?>"></button>
 	<a class="open-slider configure" title="<?= _t('gen.action.manage') ?>" href="<?= _url('extension', 'configure', 'e', $name_encoded) ?>"><?= _i('configure') ?></a>
 	<span class="ext_name<?= $name_class ?>"><?= $this->ext_details->getName() ?></span>
 <?php } else { ?>

+ 2 - 3
app/views/helpers/stream-footer.phtml

@@ -29,10 +29,10 @@
 	$hasAccess = FreshRSS_Auth::hasAccess();
 	if ($hasAccess) {
 ?>
-<form id="stream-footer" action="" method="post">
+<form name="stream_footer" class="stream-footer" action="" method="post">
 <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 <?php } else { ?>
-<div id="stream-footer">
+<div class="stream-footer">
 <?php }?>
 	<div class="stream-footer-inner">
 	<?php if (FreshRSS_Context::$continuation_id !== '0') { ?>
@@ -53,7 +53,6 @@
 			<br />
 			<button id="bigMarkAsRead"
 				class="<?= $css ?> <?= FreshRSS_Context::userConf()->reading_confirm ? 'confirm" disabled="disabled' : '' ?>"
-				form="stream-footer"
 				formaction="<?= Minz_Url::display($url_mark_read) ?>"
 				type="submit">
 				<span class="bigTick">✓</span><br />

+ 1 - 1
app/views/helpers/tag/update.phtml

@@ -62,7 +62,7 @@
 	</form>
 
 	<h3><?= _t('sub.title.delete_label') ?></h3>
-	<form id="delete_tag" method="post" action="<?= _url('tag', 'delete', 'id_tag', $this->tag->id()) ?>">
+	<form method="post" action="<?= _url('tag', 'delete', 'id_tag', $this->tag->id()) ?>">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<div class="form-group form-actions">
 			<div class="group-controls">

+ 1 - 1
app/views/index/logs.phtml

@@ -6,7 +6,7 @@
 <main class="post">
 	<h1><?= _t('index.log') ?></h1>
 
-	<form method="get" action="<?= _url('index', 'logs') ?>" class="form-inline">
+	<form name="log_search" method="get" action="<?= _url('index', 'logs') ?>" class="form-inline">
 		<input type="hidden" name="c" value="index" />
 		<input type="hidden" name="a" value="logs" />
 		<label for="log-search"><?= _t('gen.action.filter') ?></label>

+ 1 - 1
app/views/subscription/add.phtml

@@ -6,7 +6,7 @@
 <main class="post drop-section" data-auto-leave-validation="1">
 	<h1><?= _t('sub.menu.add') ?></h1>
 	<h2><?= _t('sub.title.add_feed') ?></h2>
-	<form id="add_rss" method="post" action="<?= _url('feed', 'add') ?>" autocomplete="off">
+	<form method="post" action="<?= _url('feed', 'add') ?>" autocomplete="off">
 
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 

+ 1 - 1
app/views/tag/index.phtml

@@ -7,7 +7,7 @@
 	<h1><?= _t('sub.menu.label_management') ?></h1>
 
 	<h2><?= _t('sub.title.add_label') ?></h2>
-	<form id="add_tag" method="post" action="<?= _url('tag', 'add') ?>" autocomplete="off" data-auto-leave-validation="1">
+	<form method="post" action="<?= _url('tag', 'add') ?>" autocomplete="off" data-auto-leave-validation="1">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<div class="form-group">
 			<label class="group-name" for="new_label_name"><?= _t('sub.tag.name') ?></label>

+ 2 - 2
app/views/user/profile.phtml

@@ -7,7 +7,7 @@
 ?>
 
 <main class="post">
-	<form class="crypto-form" method="post" action="<?= _url('user', 'profile') ?>" data-auto-leave-validation="1">
+	<form name="crypto_form" class="crypto-form" method="post" action="<?= _url('user', 'profile') ?>" data-auto-leave-validation="1">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 		<h1><?= _t('conf.profile') ?></h1>
 
@@ -149,7 +149,7 @@
 	<?php if (!FreshRSS_Auth::hasAccess('admin')) { ?>
 	<h2><?= _t('conf.profile.delete') ?></h2>
 
-	<form class="crypto-form" method="post" action="<?= _url('user', 'delete') ?>">
+	<form name="crypto_form" class="crypto-form" method="post" action="<?= _url('user', 'delete') ?>">
 		<input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
 
 		<p class="alert alert-warn"><span class="alert-head"><?= _t('gen.short.attention') ?></span> <?= _t('conf.profile.delete.warn') ?></p>

+ 1 - 1
docs/en/users/05_Configuration.md

@@ -224,7 +224,7 @@ The Top Menu within the mobile view might look a little bit cluttered, depending
     }
 
     /* Hides the Dropdown Menu Button next to the "Mark all read" Button in Mobile View */
-    #mark-read-menu .dropdown {
+    .mark-read-menu .dropdown {
         display: none;
     }
 }

+ 4 - 4
p/scripts/global_view.js

@@ -19,12 +19,12 @@ function load_panel(link) {
 			return;
 		}
 		const html = this.response;
-		const foreign = html.querySelectorAll('.nav_menu, #stream .day, #stream .flux, #stream-footer, #stream.prompt');
+		const foreign = html.querySelectorAll('.nav_menu, #stream .day, #stream .flux, .stream-footer, #stream.prompt');
 		const panel = document.getElementById('panel');
 		foreign.forEach(function (el) {
 			panel.appendChild(document.adoptNode(el));
 		});
-		panel.querySelectorAll('.nav_menu > :not([id="nav_menu_read_all"])').forEach(function (el) {
+		panel.querySelectorAll('.nav_menu > :not(.nav_menu_read_all)').forEach(function (el) {
 			el.remove();
 		});
 
@@ -44,7 +44,7 @@ function load_panel(link) {
 
 		// We already have a click listener in main.js
 		panel.addEventListener('click', function (ev) {
-			const b = ev.target.closest('#nav_menu_read_all button, #bigMarkAsRead');
+			const b = ev.target.closest('.nav_menu_read_all button, #bigMarkAsRead');
 			if (b) {
 				console.log(b.formAction);
 
@@ -92,7 +92,7 @@ function init_global_view() {
 		};
 	});
 
-	document.querySelectorAll('.nav_menu #nav_menu_read_all, .nav_menu .toggle_aside').forEach(function (el) {
+	document.querySelectorAll('.nav_menu .nav_menu_read_all, .nav_menu .toggle_aside').forEach(function (el) {
 		el.remove();
 	});
 

+ 3 - 3
p/scripts/main.js

@@ -958,7 +958,7 @@ function onScroll() {
 		});
 	}
 	let streamFooter;
-	if (context.auto_load_more && (streamFooter = document.getElementById('stream-footer'))) {
+	if (context.auto_load_more && (streamFooter = document.querySelector('.stream-footer'))) {
 		if (box_to_follow.offsetHeight > 0 &&
 			box_to_follow.scrollTop + box_to_follow.offsetHeight + (window.innerHeight / 2) >= streamFooter.offsetTop) {
 			// Too close to the last pre-loaded article
@@ -2249,7 +2249,7 @@ function load_more_posts() {
 		}
 
 		const html = this.response;
-		const streamFooter = document.getElementById('stream-footer');
+		const streamFooter = document.querySelector('.stream-footer');
 		const transitions = document.querySelectorAll('#stream > .transition');
 		let lastTransition = transitions.length > 0 ? transitions[transitions.length - 1] : null;
 
@@ -2270,7 +2270,7 @@ function load_more_posts() {
 		}
 
 		const bigMarkAsRead = document.getElementById('bigMarkAsRead');
-		const readAll = document.querySelector('#nav_menu_read_all .read_all');
+		const readAll = document.querySelector('.nav_menu_read_all .read_all');
 		if (readAll && bigMarkAsRead && bigMarkAsRead.formAction) {
 			if (context.display_order === 'ASC') {
 				readAll.formAction = bigMarkAsRead.formAction;

+ 3 - 3
p/themes/Alternative-Dark/adark.css

@@ -1015,7 +1015,7 @@ kbd {
 	color: var(--font-color-dark);
 }
 
-#stream-footer {
+.stream-footer {
 	border-top-color: var(--border-color-dark);
 }
 
@@ -1154,13 +1154,13 @@ kbd {
 		min-height: 0;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left: 1px solid var(--border-color-middle);
 		border-top-left-radius: 3px;
 		border-bottom-left-radius: 3px;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn:hover {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn:hover {
 		border-left-color: var(--contrast-border-color-hover);
 	}
 

+ 3 - 3
p/themes/Alternative-Dark/adark.rtl.css

@@ -1015,7 +1015,7 @@ kbd {
 	color: var(--font-color-dark);
 }
 
-#stream-footer {
+.stream-footer {
 	border-top-color: var(--border-color-dark);
 }
 
@@ -1154,13 +1154,13 @@ kbd {
 		min-height: 0;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right: 1px solid var(--border-color-middle);
 		border-top-right-radius: 3px;
 		border-bottom-right-radius: 3px;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn:hover {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn:hover {
 		border-right-color: var(--contrast-border-color-hover);
 	}
 

+ 2 - 2
p/themes/Ansum/_mobile.css

@@ -94,11 +94,11 @@
 		}
 	}
 
-	#nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
+	.nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
 		background-image: none;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left-width: 0;
 		border-radius: 5px;
 	}

+ 2 - 2
p/themes/Ansum/_mobile.rtl.css

@@ -94,11 +94,11 @@
 		}
 	}
 
-	#nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
+	.nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
 		background-image: none;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right-width: 0;
 		border-radius: 5px;
 	}

+ 1 - 1
p/themes/Dark-pink/pinkdark.css

@@ -170,7 +170,7 @@ input:focus {
 }
 
 @media (max-width: 840px) {
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn:hover {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn:hover {
 		border-left-color: #ff449a;
 	}
 }

+ 1 - 1
p/themes/Dark-pink/pinkdark.rtl.css

@@ -170,7 +170,7 @@ input:focus {
 }
 
 @media (max-width: 840px) {
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn:hover {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn:hover {
 		border-right-color: #ff449a;
 	}
 }

+ 1 - 1
p/themes/Dark/dark.css

@@ -662,7 +662,7 @@ kbd {
 		border-left: 1px solid var(--dark-border-color8);
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left: 1px solid var(--dark-border-color0);
 		border-top-left-radius: 3px;
 		border-bottom-left-radius: 3px;

+ 1 - 1
p/themes/Dark/dark.rtl.css

@@ -662,7 +662,7 @@ kbd {
 		border-right: 1px solid var(--dark-border-color8);
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right: 1px solid var(--dark-border-color0);
 		border-top-right-radius: 3px;
 		border-bottom-right-radius: 3px;

+ 1 - 1
p/themes/Flat/flat.css

@@ -976,7 +976,7 @@ th {
 		min-height: 0;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left-width: 0;
 		border-top-left-radius: 5px;
 		border-bottom-left-radius: 5px;

+ 1 - 1
p/themes/Flat/flat.rtl.css

@@ -976,7 +976,7 @@ th {
 		min-height: 0;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right-width: 0;
 		border-top-right-radius: 5px;
 		border-bottom-right-radius: 5px;

+ 2 - 2
p/themes/Mapco/_mobile.css

@@ -101,11 +101,11 @@
 		}
 	}
 
-	#nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
+	.nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
 		background-image: none;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left-width: 0;
 		border-radius: 5px;
 	}

+ 2 - 2
p/themes/Mapco/_mobile.rtl.css

@@ -101,11 +101,11 @@
 		}
 	}
 
-	#nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
+	.nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
 		background-image: none;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right-width: 0;
 		border-radius: 5px;
 	}

+ 6 - 6
p/themes/Nord/nord.css

@@ -241,13 +241,13 @@ a:hover .icon,
 	transition: .2s filter;
 }
 
-.btn-important, #nav_menu_read_all .read_all, #actualize {
+.btn-important, .nav_menu_read_all .read_all, #actualize {
 	font-weight: bold !important;
 	background-color: var(--accent) !important;
 	color: var(--main-background) !important;
 }
 
-.btn-important:hover, #nav_menu_read_all .read_all:hover, #actualize:hover {
+.btn-important:hover, .nav_menu_read_all .read_all:hover, #actualize:hover {
 	background-color: var(--highlight) !important;
 }
 
@@ -317,14 +317,14 @@ svg:hover {
 	border-right-width: 1px;
 }
 
-.nav_menu .stick #mark-read-menu .read_all.btn,
+.nav_menu .stick .mark-read-menu .read_all.btn,
 .nav_menu .dropdown-menu .stick.search input {
 	margin-right: 0;
 	border-top-right-radius: 0;
 	border-bottom-right-radius: 0;
 }
 
-.nav_menu .stick #mark-read-menu .dropdown-toggle.btn,
+.nav_menu .stick .mark-read-menu .dropdown-toggle.btn,
 .nav_menu .dropdown-menu .stick.search .btn {
 	margin-left: 0;
 	border-left: 0;
@@ -1179,7 +1179,7 @@ optgroup::before {
 }
 
 /*=== Navigation menu (for articles) */
-#stream-footer {
+.stream-footer {
 	border-top: 0;
 }
 
@@ -1274,7 +1274,7 @@ optgroup::before {
 		margin-bottom: .5rem;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left: 1px solid var(--border-elements);
 		border-top-left-radius: 6px;
 		border-bottom-left-radius: 6px;

+ 6 - 6
p/themes/Nord/nord.rtl.css

@@ -241,13 +241,13 @@ a:hover .icon,
 	transition: .2s filter;
 }
 
-.btn-important, #nav_menu_read_all .read_all, #actualize {
+.btn-important, .nav_menu_read_all .read_all, #actualize {
 	font-weight: bold !important;
 	background-color: var(--accent) !important;
 	color: var(--main-background) !important;
 }
 
-.btn-important:hover, #nav_menu_read_all .read_all:hover, #actualize:hover {
+.btn-important:hover, .nav_menu_read_all .read_all:hover, #actualize:hover {
 	background-color: var(--highlight) !important;
 }
 
@@ -317,14 +317,14 @@ svg:hover {
 	border-left-width: 1px;
 }
 
-.nav_menu .stick #mark-read-menu .read_all.btn,
+.nav_menu .stick .mark-read-menu .read_all.btn,
 .nav_menu .dropdown-menu .stick.search input {
 	margin-left: 0;
 	border-top-left-radius: 0;
 	border-bottom-left-radius: 0;
 }
 
-.nav_menu .stick #mark-read-menu .dropdown-toggle.btn,
+.nav_menu .stick .mark-read-menu .dropdown-toggle.btn,
 .nav_menu .dropdown-menu .stick.search .btn {
 	margin-right: 0;
 	border-right: 0;
@@ -1179,7 +1179,7 @@ optgroup::before {
 }
 
 /*=== Navigation menu (for articles) */
-#stream-footer {
+.stream-footer {
 	border-top: 0;
 }
 
@@ -1274,7 +1274,7 @@ optgroup::before {
 		margin-bottom: .5rem;
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right: 1px solid var(--border-elements);
 		border-top-right-radius: 6px;
 		border-bottom-right-radius: 6px;

+ 2 - 2
p/themes/Origine/origine.css

@@ -997,7 +997,7 @@ button:hover .icon,
 	margin: 0;
 }
 
-#stream-footer {
+.stream-footer {
 	border-top-color: var(--border-color);
 }
 
@@ -1208,7 +1208,7 @@ button:hover .icon,
 		border-radius: 0;
 	}
 
-	#nav_menu_read_all .btn {
+	.nav_menu_read_all .btn {
 		border-left: 1px solid var(--border-color-shadow-side);
 		border-radius: 3px;
 	}

+ 2 - 2
p/themes/Origine/origine.rtl.css

@@ -997,7 +997,7 @@ button:hover .icon,
 	margin: 0;
 }
 
-#stream-footer {
+.stream-footer {
 	border-top-color: var(--border-color);
 }
 
@@ -1208,7 +1208,7 @@ button:hover .icon,
 		border-radius: 0;
 	}
 
-	#nav_menu_read_all .btn {
+	.nav_menu_read_all .btn {
 		border-right: 1px solid var(--border-color-shadow-side);
 		border-radius: 3px;
 	}

+ 1 - 1
p/themes/Pafat/pafat.css

@@ -1121,7 +1121,7 @@ a.signin {
 		border-left: 1px solid var(--border-color-grey-dark);
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-left: 1px solid var(--border-color-grey-dark);
 		border-top-left-radius: 3px;
 		border-bottom-left-radius: 3px;

+ 1 - 1
p/themes/Pafat/pafat.rtl.css

@@ -1121,7 +1121,7 @@ a.signin {
 		border-right: 1px solid var(--border-color-grey-dark);
 	}
 
-	.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
+	.nav_menu .stick .mark-read-menu .dropdown-toggle.btn {
 		border-right: 1px solid var(--border-color-grey-dark);
 		border-top-right-radius: 3px;
 		border-bottom-right-radius: 3px;

+ 6 - 6
p/themes/Swage/swage.css

@@ -1298,14 +1298,14 @@ main.global {
 	}
 
 	#nav_menu_sort .dropdown-menu,
-	#nav_menu_read_all .dropdown-menu,
+	.nav_menu_read_all .dropdown-menu,
 	#dropdown-search-wrapper .dropdown-menu,
 	#nav_menu_queries .dropdown-menu {
 		top: 4.4rem;
 	}
 
 	#nav_menu_sort .dropdown-menu,
-	#nav_menu_read_all .dropdown-menu,
+	.nav_menu_read_all .dropdown-menu,
 	#nav_menu_actions .dropdown-menu {
 		position: fixed;
 	}
@@ -1542,14 +1542,14 @@ main.global {
 		top: 0;
 	}
 
-	form#mark-read-menu,
+	form.mark-read-menu,
 	a#actualize,
 	div#nav_menu_actions,
 	div#nav_menu_views {
 		position: absolute;
 	}
 
-	form#mark-read-menu {
+	form.mark-read-menu {
 		right: 38px;
 		top: 0;
 	}
@@ -1592,7 +1592,7 @@ main.global {
 			margin-left: 0;
 		}
 
-		.nav_menu form#mark-read-menu,
+		.nav_menu form.mark-read-menu,
 		.nav_menu a#actualize,
 		.nav_menu div#nav_menu_actions,
 		.nav_menu div#nav_menu_views,
@@ -1699,7 +1699,7 @@ button.as-link {
 	}
 }
 
-#nav_menu_read_all {
+.nav_menu_read_all {
 	ul.dropdown-menu {
 		&::after {
 			display: none;

+ 6 - 6
p/themes/Swage/swage.rtl.css

@@ -1298,14 +1298,14 @@ main.global {
 	}
 
 	#nav_menu_sort .dropdown-menu,
-	#nav_menu_read_all .dropdown-menu,
+	.nav_menu_read_all .dropdown-menu,
 	#dropdown-search-wrapper .dropdown-menu,
 	#nav_menu_queries .dropdown-menu {
 		top: 4.4rem;
 	}
 
 	#nav_menu_sort .dropdown-menu,
-	#nav_menu_read_all .dropdown-menu,
+	.nav_menu_read_all .dropdown-menu,
 	#nav_menu_actions .dropdown-menu {
 		position: fixed;
 	}
@@ -1542,14 +1542,14 @@ main.global {
 		top: 0;
 	}
 
-	form#mark-read-menu,
+	form.mark-read-menu,
 	a#actualize,
 	div#nav_menu_actions,
 	div#nav_menu_views {
 		position: absolute;
 	}
 
-	form#mark-read-menu {
+	form.mark-read-menu {
 		left: 38px;
 		top: 0;
 	}
@@ -1592,7 +1592,7 @@ main.global {
 			margin-right: 0;
 		}
 
-		.nav_menu form#mark-read-menu,
+		.nav_menu form.mark-read-menu,
 		.nav_menu a#actualize,
 		.nav_menu div#nav_menu_actions,
 		.nav_menu div#nav_menu_views,
@@ -1699,7 +1699,7 @@ button.as-link {
 	}
 }
 
-#nav_menu_read_all {
+.nav_menu_read_all {
 	ul.dropdown-menu {
 		&::after {
 			display: none;

+ 6 - 6
p/themes/base-theme/frss.css

@@ -555,7 +555,7 @@ td.numeric {
 }
 
 @supports (position: sticky) {
-	#mark-read-aside {
+	.mark-read-aside {
 		position: sticky;
 		top: 0;
 	}
@@ -608,7 +608,7 @@ button:disabled:hover, textarea:disabled:hover, input:disabled:hover {
 	flex-shrink: 0;
 }
 
-#nav_menu_read_all form {
+.nav_menu_read_all form {
 	display: inline-flex;
 }
 
@@ -980,7 +980,7 @@ input[type="checkbox"]:focus-visible {
 }
 
 /* === stream-footer **/
-#stream-footer {
+.stream-footer {
 	margin: 0 0 5em;
 	padding: 1em 0;
 	width: 100%;
@@ -2753,15 +2753,15 @@ html.slider-active {
 		box-shadow: -3px 0 3px var(--frss-box-shadow-color-transparent);
 	}
 
-	#nav_menu_read_all .dropdown-target ~ .dropdown-toggle .icon {
+	.nav_menu_read_all .dropdown-target ~ .dropdown-toggle .icon {
 		display: none;
 	}
 
-	#nav_menu_read_all .dropdown-target ~ .dropdown-toggle::before {
+	.nav_menu_read_all .dropdown-target ~ .dropdown-toggle::before {
 		content: '✓';
 	}
 
-	#nav_menu_read_all .read_all.btn {
+	.nav_menu_read_all .read_all.btn {
 		display: none;
 	}
 

+ 6 - 6
p/themes/base-theme/frss.rtl.css

@@ -555,7 +555,7 @@ td.numeric {
 }
 
 @supports (position: sticky) {
-	#mark-read-aside {
+	.mark-read-aside {
 		position: sticky;
 		top: 0;
 	}
@@ -608,7 +608,7 @@ button:disabled:hover, textarea:disabled:hover, input:disabled:hover {
 	flex-shrink: 0;
 }
 
-#nav_menu_read_all form {
+.nav_menu_read_all form {
 	display: inline-flex;
 }
 
@@ -980,7 +980,7 @@ input[type="checkbox"]:focus-visible {
 }
 
 /* === stream-footer **/
-#stream-footer {
+.stream-footer {
 	margin: 0 0 5em;
 	padding: 1em 0;
 	width: 100%;
@@ -2753,15 +2753,15 @@ html.slider-active {
 		box-shadow: 3px 0 3px var(--frss-box-shadow-color-transparent);
 	}
 
-	#nav_menu_read_all .dropdown-target ~ .dropdown-toggle .icon {
+	.nav_menu_read_all .dropdown-target ~ .dropdown-toggle .icon {
 		display: none;
 	}
 
-	#nav_menu_read_all .dropdown-target ~ .dropdown-toggle::before {
+	.nav_menu_read_all .dropdown-target ~ .dropdown-toggle::before {
 		content: '✓';
 	}
 
-	#nav_menu_read_all .read_all.btn {
+	.nav_menu_read_all .read_all.btn {
 		display: none;
 	}