Mercurial
diff .cms/js/rss.js @ 0:78edf6b517a0 draft
24.10
author | Coffee CMS <info@coffee-cms.ru> |
---|---|
date | Fri, 11 Oct 2024 22:40:23 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.cms/js/rss.js Fri Oct 11 22:40:23 2024 +0000 @@ -0,0 +1,43 @@ +document.addEventListener( "DOMContentLoaded", function( event ) { + + let select = document.querySelector( "#rss .xml-wrapper-hidden .select-dropdown" ); + let page_input = select.querySelector( "input" ); + + // Поиск при каждом нажатии кнопки + page_input.addEventListener( "keyup", function( e ) { + api( { fn: "get_search_pages_list", search: this.value }, function( r ) { + select.classList.add( "open" ); + if ( r.html ) { + select.querySelector( ".list-search" ).innerHTML = r.html; + select.querySelector( ".list-search li[data-id='0']" ).remove(); + select.querySelectorAll( ".list-search li" ).forEach( function( li ) { + li.addEventListener( "click", li_click ); + } ); + } + } ); + } ); + + // Щелчок по выбранной странице + function li_click() { + let url = this.getAttribute( "data-url" ); + + let textarea = document.querySelector( "#rss textarea[name='exclude']" ); + let val = textarea.value.trim(); + let n = val ? "\n" : ""; + textarea.value = val + n + url; + + select.classList.remove( "open" ); + } + + page_input.addEventListener( "click", function( e ) { + e.stopPropagation(); + page_input.dispatchEvent( new Event( "keyup" ) ); + select.classList.add( "open" ); + } ); + + // collapse select dropdown + document.body.addEventListener( "click", function( e ) { + select.classList.remove( "open" ); + } ); + +} ); \ No newline at end of file