Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5.
// var npp_http; var npp_enabled; var npp_num_pages; var npp_refresh; var npp_num_idle_req; var npp_curr_idle_req; var npp_str_no_ajax = "Виникли проблеми зі скриптом NewPagePatrol. Ваш веб-оглядач не підтримується."; var npp_str_box_title = "Нові сторінки"; var npp_str_box_title_updating = "Нові сторінки (оновлення)"; var npp_str_box_title_failed = "Нові сторінки (оновлення не вдалося)"; var npp_str_enable = "Увімкнути"; var npp_str_disable = "Вимкнути"; $( document ).ready(function() { if (!(mw.config.get( 'wgCanonicalSpecialPageName' ) && mw.config.get( 'wgCanonicalSpecialPageName' ).match( /^ContentTranslation/ ) !== null)) npp_init(); }); /* initalise */ function npp_init() { // allow user settings through if (npp_enabled == null) { npp_enabled = false; } if (npp_num_pages == null) { npp_num_pages = 10; } if (npp_refresh == null) { npp_refresh = 30; } if (npp_num_idle_req == null) { npp_num_idle_req = 60; } // A few limits to be nice to the servers if (npp_num_pages > 50) { npp_num_pages = 50; } if (npp_num_pages < 1) { npp_num_pages = 1; } if (npp_refresh < 2) { npp_refresh = 2; } if (npp_num_idle_req > 1000) { npp_num_idle_req = 1000; } if (npp_num_idle_req < 5) { npp_num_idle_req = 5; } // get our cookie if (document.cookie.length > 0) { var c_start = document.cookie.indexOf("npp_show_box="); if (c_start != -1) { c_start = c_start + 13; var c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) { c_end = document.cookie.length; } if (document.cookie.substring(c_start, c_end) == "yes") { npp_enabled = true; } else { npp_enabled = false; } } } // Either make a request or show nothing npp_curr_idle_req = 0; if (npp_enabled == true) { npp_ajax_request(); } else { npp_draw_disabled_box(); } } /* init ajax */ function npp_create_request() { try { npp_http = new XMLHttpRequest(); } catch (e) { try { npp_http = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { npp_http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { return false; } } } npp_http.onreadystatechange = function() { if(npp_http.readyState == 4) npp_ajax_response(); } return true; } /* make a request */ function npp_ajax_request() { // if we have done too many requests, disable the box npp_curr_idle_req++; if (npp_curr_idle_req > npp_num_idle_req) { npp_disable_box(); } // check we are enabled if (npp_enabled == false) return; // firstly, inform the user var cur_box = document.getElementById('p-newpages'); if (cur_box != null) { cur_box.firstChild.firstChild.data = npp_str_box_title_updating; } if (npp_create_request () == false) { if (cur_box != null) { cur_box.firstChild.firstChild.data = npp_str_box_title_failed; } else { alert (npp_str_no_ajax); } } // Get the current time var dateobj = new Date(); var now = Math.floor(dateobj.getTime() / 1000.0); // Go back 30 seconds in time now -= (30); // Then make the request npp_http.open("GET", "/w/api.php?action=query&format=xml&list=recentchanges&rcshow=!bot|!redirect&rctype=new&rcnamespace=0&rcprop=title|timestamp|ids&rcstart=" + now + "&rclimit=" + npp_num_pages, true); npp_http.send(null); } function npp_draw_disabled_box() { if (mw.config.get('skin') == 'vector') { npp_draw_disabled_box_vector(); } else { npp_draw_disabled_box_monobook(); } } function npp_ajax_response() { if (mw.config.get('skin') == 'vector') { npp_ajax_response_vector(); } else { npp_ajax_response_monobook(); } // and do it again in 5 secs setTimeout("npp_ajax_request()", npp_refresh * 1000); } function npp_disable_box() { npp_enabled = false; npp_draw_disabled_box(); document.cookie = "npp_show_box=no; path=/"; } function npp_enable_box() { npp_enabled = true; npp_curr_idle_req = 0; document.cookie = "npp_show_box=yes; path=/"; npp_ajax_request(); } /* Draw disabled (monobook) */ function npp_draw_disabled_box_monobook() { // Container div var link_div = document.createElement('div'); link_div.className = 'pBody'; var div = document.createElement('div'); div.setAttribute('id', 'p-newpages'); div.className = 'portlet'; var heading = document.createElement('h5'); heading.appendChild(document.createTextNode(npp_str_box_title)); div.appendChild(heading); div.appendChild(link_div); // enable link var p = document.createElement('p'); p.style.fontSize = 'x-small'; p.style.margin = '0px'; var a = document.createElement('a'); a.appendChild(document.createTextNode(npp_str_enable)); a.onclick = npp_enable_box; p.appendChild(a); link_div.appendChild(p); // now replace the div var old_div = document.getElementById('p-newpages'); var side_col = document.getElementById('column-one'); if (old_div != null) { side_col.replaceChild(div, old_div); } else { var node = document.getElementById('p-tb'); side_col.insertBefore(div, node); } } /* Draw response (monobook) */ function npp_ajax_response_monobook() { var items = npp_http.responseXML.getElementsByTagName('rc'); // create the div that holds all the newpage links var link_div = document.createElement('div'); link_div.className = 'pBody'; var list = document.createElement('ul'); link_div.appendChild(list); // populate the list with 10 links. var item_names = []; for (var i = 0; i < items.length; i++) item_names.push(items[i].getAttribute('title')); var req = new mw.Api(); req.get({action:'query', prop:'flagged', titles:item_names.join('|')}, {async:false}) .done(function(data){window.nppPages = data.query.pages}).fail(function(err){window.nppPages = {}}); for (var i = 0; i < items.length; i++) { var item_name = items[i].getAttribute('title'); var rcid = items[i].getAttribute('rcid'); var page = getPage(i); var patrolled = page ? ((page.flagged) && !(page.flagged.pending_since)) : true; item_name = item_name.replace(/&/, "%26"); var item_url = '//uk.wikivoyage.org/w/index.php?title=' + item_name + '&rcid=' + rcid + '&redirect=no'; a = document.createElement('a'); a.setAttribute('href', item_url); a.appendChild(document.createTextNode(item_name)); var aa = document.createElement('nobr'); aa.appendChild(a); var li = document.createElement('li'); li.appendChild(aa); if (!patrolled) { li.setAttribute('class', 'not-patrolled'); } list.appendChild(li); } function getPage(index){if (window.nppPages) return window.nppPages[items[index].getAttribute('pageid')]}; // Container div var div = document.createElement('div'); div.setAttribute('id', 'p-newpages'); div.className = 'portlet'; var heading = document.createElement('h5'); heading.appendChild(document.createTextNode(npp_str_box_title)); div.appendChild(heading); div.appendChild(link_div); // disable link var p = document.createElement('p'); p.style.fontSize = 'x-small'; p.style.margin = '0px'; p.style.textAlign = 'right'; a = document.createElement('a'); a.appendChild(document.createTextNode(npp_str_disable)); a.onclick = npp_disable_box; p.appendChild(a); link_div.insertBefore(p, list); // now replace the div var old_div = document.getElementById('p-newpages'); var side_col = document.getElementById('column-one'); if (old_div != null) { side_col.replaceChild(div, old_div); } else { var node = document.getElementById('p-tb'); side_col.insertBefore(div, node); } } /* Draw disabled box (vector skin) */ function npp_draw_disabled_box_vector() { // Container div var link_div = document.createElement('div'); link_div.className = 'body'; link_div.style.display = "block"; var div = document.createElement('div'); div.setAttribute('id', 'p-newpages'); div.className = 'portal collapsed'; var heading = document.createElement('h3'); heading.appendChild(document.createTextNode(npp_str_box_title)); div.appendChild(heading); div.appendChild(link_div); // enable link var p = document.createElement('p'); p.style.fontSize = 'x-small'; p.style.margin = '0px'; var a = document.createElement('a'); a.appendChild(document.createTextNode(npp_str_enable)); a.onclick = npp_enable_box; p.appendChild(a); // add later // now replace the div var old_div = document.getElementById('p-newpages'); var side_col = document.getElementById('mw-panel'); if (old_div != null) { side_col.replaceChild(div, old_div); } else { var node = document.getElementById('p-interaction'); side_col.insertBefore(div, node); } if( typeof $ != 'undefined') { $('#p-newpages > h3').keydown( function( event ) { if ( event.which == 13 /* Enter */ || event.which == 32 /* Space */ ) { npp_toggle( $(this) ); } } ) .mousedown( function() { npp_toggle( $(this) ); $(this).blur(); return false; } ); } else { link_div.appendChild(p); } } /* Draw response (vector skin) */ function npp_ajax_response_vector() { var items = npp_http.responseXML.getElementsByTagName('rc'); // create the div that holds all the newpage links var link_div = document.createElement('div'); link_div.className = 'body'; link_div.style.display = "block"; var list = document.createElement('ul'); link_div.appendChild(list); // populate the list with 10 links. var item_names = []; for (var i = 0; i < items.length; i++) item_names.push(items[i].getAttribute('title')); var req = new mw.Api(); req.get({action:'query', prop:'flagged', titles:item_names.join('|')}, {async:false}) .done(function(data){window.nppPages = data.query.pages}).fail(function(err){window.nppPages = {}}); for (var i = 0; i < items.length; i++) { var item_name = items[i].getAttribute('title'); var rcid = items[i].getAttribute('rcid'); var page = getPage(i); var patrolled = page ? ((page.flagged) && !(page.flagged.pending_since)) : true; item_name = item_name.replace(/&/, "%26"); var item_url = '//uk.wikivoyage.org/w/index.php?title=' + item_name + '&rcid=' + rcid + '&redirect=no'; a = document.createElement('a'); a.setAttribute('href', item_url); //a.style.fontSize = 'x-small'; a.appendChild(document.createTextNode(item_name)); var li = document.createElement('li'); li.appendChild(a); list.appendChild(li); } function getPage(index){if (window.nppPages) return window.nppPages[items[index].getAttribute('pageid')]}; // Container div var div = document.createElement('div'); div.setAttribute('id', 'p-newpages'); div.className = 'portal expanded'; var heading = document.createElement('h3'); heading.appendChild(document.createTextNode(npp_str_box_title)); div.appendChild(heading); div.appendChild(link_div); // disable link var p = document.createElement('p'); p.style.fontSize = 'x-small'; p.style.margin = '0px'; p.style.textAlign = 'left'; a = document.createElement('a'); a.appendChild(document.createTextNode(npp_str_disable)); a.onclick = npp_disable_box; p.appendChild(a); // add later // now replace the div var old_div = document.getElementById('p-newpages'); var side_col = document.getElementById('mw-panel'); if (old_div != null) { side_col.replaceChild(div, old_div); } else { var node = document.getElementById('p-interaction'); side_col.insertBefore(div, node); } if( typeof $ != 'undefined') { $('#p-newpages > h3').keydown( function( event ) { if ( event.which == 13 /* Enter */ || event.which == 32 /* Space */ ) { npp_toggle( $(this) ); } } ) .mousedown( function() { npp_toggle( $(this) ); $(this).blur(); return false; } ); } else { link_div.appendChild(p); } } function npp_toggle( $element ) { $.cookie( 'vector-nav-' + $element.parent().attr( 'id' ), $element.parent().is( '.collapsed' ) ); if( $element.parent().is('.collapsed') ) { npp_enable_box(); } else { npp_disable_box(); } $element .parent() .toggleClass( 'expanded' ) .toggleClass( 'collapsed' ) .find( 'div.body' ) .slideToggle( 'fast' ); }