') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); feat: `spark filter:check` shows filter classnames by kenjis · Pull Request #8985 · codeigniter4/CodeIgniter4 · GitHub
Skip to content

feat: spark filter:check shows filter classnames - #8985

Merged
kenjis merged 9 commits into
codeigniter4:4.6from
kenjis:feat-spark-filter-check-show-filter-classes
Jun 27, 2024
Merged

feat: spark filter:check shows filter classnames#8985
kenjis merged 9 commits into
codeigniter4:4.6from
kenjis:feat-spark-filter-check-show-filter-classes

Conversation

@kenjis

@kenjiskenjis commented Jun 22, 2024

Copy link
Copy Markdown
Member

Needs #8977

Description
Before:

$ ./spark filter:check GET admin/users/listCodeIgniter v4.5.2 Command Line Tool - Server Time: 2024-06-24 00:57:28 UTC+00:00+--------+------------------+----------------------------------------------+-------------------------------------------------------+| Method | Route | Before Filters | After Filters |+--------+------------------+----------------------------------------------+-------------------------------------------------------+| GET | admin/users/list | forcehttps pagecache csrf:config csrf:region | csrf:region csrf:config pagecache performance toolbar |+--------+------------------+----------------------------------------------+-------------------------------------------------------+

After:

$ ./spark filter:check GET admin/users/listCodeIgniter v4.5.2 Command Line Tool - Server Time: 2024-06-22 02:52:05 UTC+00:00+--------+------------------+----------------------------------------------+-------------------------------------------------------+| Method | Route | Before Filters | After Filters |+--------+------------------+----------------------------------------------+-------------------------------------------------------+| GET | admin/users/list | forcehttps pagecache csrf:config csrf:region | csrf:region csrf:config pagecache performance toolbar |+--------+------------------+----------------------------------------------+-------------------------------------------------------+Before Filter Classes:CodeIgniter\Filters\ForceHTTPS → CodeIgniter\Filters\PageCache → CodeIgniter\Filters\CSRF:config → CodeIgniter\Filters\CSRF:regionAfter Filter Classes:CodeIgniter\Filters\CSRF:region → CodeIgniter\Filters\CSRF:config → CodeIgniter\Filters\PageCache → CodeIgniter\Filters\PerformanceMetrics → CodeIgniter\Filters\DebugToolbar
--- a/app/Config/Routes.php+++ b/app/Config/Routes.php@@ -6,3 +6,11 @@ use CodeIgniter\Router\RouteCollection;
* @var RouteCollection $routes
*/
$routes->get('/', 'Home::index');
++$routes->group('admin', ['filter' => 'csrf:config'], static function ($routes) {+ $routes->get('/', 'Admin\Admin::index');++ $routes->group('users', ['filter' => 'csrf:region'], static function ($routes) {+ $routes->get('list', 'Admin\Users::list');+ });+});

Checklist:

  • Securely signed commits
  • Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • User guide updated
  • Conforms to style guide

@kenjis
kenjis marked this pull request as draft June 22, 2024 02:53
@kenjiskenjis added enhancement PRs that improve existing functionalities 4.6 labels Jun 22, 2024
@kenjis
kenjisforce-pushed the feat-spark-filter-check-show-filter-classes branch from ee744a3 to e369260CompareJune 22, 2024 03:03
@kenjis
kenjisforce-pushed the feat-spark-filter-check-show-filter-classes branch from e369260 to a0219d7CompareJune 24, 2024 00:53
@kenjis
kenjis marked this pull request as ready for review June 24, 2024 01:00
@kenjis
kenjis marked this pull request as draft June 24, 2024 01:01
@kenjis
kenjis marked this pull request as ready for review June 24, 2024 01:12
@kenjis
kenjis merged commit adc6598 into codeigniter4:4.6Jun 27, 2024
@kenjis
kenjis deleted the feat-spark-filter-check-show-filter-classes branch June 27, 2024 01:38
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementPRs that improve existing functionalities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@kenjis@michalsn