Gebruiker:MakiBoy/Gadget-LogCounter.js: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(46 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 2: | Regel 2: | ||
// [[User:MakiBoy/Gadget-LogCounter.js]] gemaakt door [[User:MakiBoy]] en [[User:Rots61]], onderhouden door [[User:Rots61]] |
// [[User:MakiBoy/Gadget-LogCounter.js]] gemaakt door [[User:MakiBoy]] en [[User:Rots61]], onderhouden door [[User:Rots61]] |
||
− | var version = '3. |
+ | var version = '3.2'; |
var searchBarLC; |
var searchBarLC; |
||
+ | |||
− | function parseNumber(number) { |
||
+ | // Wordt gebruikt om de views op de juiste manier te formaten |
||
− | return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); |
||
+ | function parseNumber (number) { |
||
+ | return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); |
||
} |
} |
||
+ | // Wordt gebruikt om een nul toe te voegen bij de datum |
||
function addZero(number) { |
function addZero(number) { |
||
return number < 10 ? "0" + number : number; |
return number < 10 ? "0" + number : number; |
||
} |
} |
||
+ | /* |
||
− | function showProjectLogCounter(pages, zoekbalk) { |
||
+ | laat de speciale pagina uiteindelijk zien |
||
− | //Dit zorgt ervoor dat de kleur wordt weergegeven of de kleurcode. |
||
+ | pages = array met alle pagina's die getoont moeten worden |
||
− | var haakjesfilterkleur = /[G-Za-z]/.test(parameterLC['filterkleur']) ? '': '#'; |
||
+ | zoekbalk = de waarde die zichtbaar moet zijn in de zoekbalk |
||
− | console.log(pages); |
||
+ | */ |
||
− | document.getElementsByTagName("h1")[0].textContent = "Speciaal:Statistieken WikiKids"; |
||
− | document.title = "Statistieken WikiKids"; |
||
+ | function showProjectLogCounter (pages, zoekbalk) { |
||
− | searchBarLC = '<div><input type="text" id="lc-searchbar" value=' + zoekbalk +'> <button onclick="searchContainsLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9a/OOjs_UI_indicator_search-ltr.svg" title="Bevat (zoeken)" height="25"></button> <button onclick="searchExactLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/8/86/OOjs_UI_icon_articleSearch-ltr.svg" title="Exact (zoeken)" height="25"></button> <button onclick="gotoGeschiedenisVanPagina()"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/OOjs_UI_icon_history.svg" title="Geschiedenis" height="25">*</button> <small>*Gebruikt veel internetdata </small>' |
||
+ | // Dit zorgt ervoor dat de kleur wordt weergegeven of de kleurcode. |
||
+ | var haakjesfilterkleur = /[G-Za-z]/.test(parameterLC['filterkleur']) ? '' : '#'; |
||
+ | console.log(pages); |
||
+ | // Past de titel van de speciale pagina aan |
||
+ | document.getElementsByTagName("h1")[0].textContent = "Speciaal:" + mw.config.get('wgTitle'); |
||
+ | document.title = "Statistieken WikiKids"; |
||
+ | |||
+ | searchBarLC = '<div><input type="text" id="lc-searchbar" value=' + zoekbalk +'> <button onclick="searchContainsLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9a/OOjs_UI_indicator_search-ltr.svg" title="Bevat (zoeken)" height="25"></button> <button onclick="searchExactLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/8/86/OOjs_UI_icon_articleSearch-ltr.svg" title="Exact (zoeken)" height="25"></button> <button onclick="gotoGeschiedenisVanPagina()"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/OOjs_UI_icon_history.svg" title="Geschiedenis" height="25">*</button> <small>*Gebruikt veel internetdata </small>' |
||
+ '<div style="float:right;"><div id="reload1" style="display: ' + reload1LCx + ';"><a href="javascript:reload1LC();"><img title="Refresh de gegevens" src="https://upload.wikimedia.org/wikipedia/commons/f/ff/OOjs_UI_icon_reload_flipX.svg" width="50"></a></div><div id="reload2" style="display: ' + reload2LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/9/91/LoadingX.gif" width="50"></div><div id="reload3" style="display: ' + reload3LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/f/f6/OOjs_UI_icon_check-constructive.svg" width="50"></a></div></div></div>' |
+ '<div style="float:right;"><div id="reload1" style="display: ' + reload1LCx + ';"><a href="javascript:reload1LC();"><img title="Refresh de gegevens" src="https://upload.wikimedia.org/wikipedia/commons/f/ff/OOjs_UI_icon_reload_flipX.svg" width="50"></a></div><div id="reload2" style="display: ' + reload2LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/9/91/LoadingX.gif" width="50"></div><div id="reload3" style="display: ' + reload3LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/f/f6/OOjs_UI_icon_check-constructive.svg" width="50"></a></div></div></div>' |
||
− | + | + '<div><img src="https://upload.wikimedia.org/wikipedia/commons/8/8b/OOjs_UI_icon_download.svg" title="height="25"> <button onclick="downloadLogCounter(\';\');"><b>;</b></button> <button onclick="downloadLogCounter(\',\');"><b>,</b></button></button>'; |
|
+ | |||
− | var logCounterInfo = '<div id="logCounterInfo">Deze pagina laat zien hoeveel paginabezoeken er zijn geweest op een specifieke pagina. De rij "Views" bevat <b>alle</b> views. De rij daarachter laat alleen maar zien hoeveel views komen vanuit iets specifieks, bijvoorbeeld vanuit een categorie of van een mobiele telefoon. <a href="/Speciaal:Statistieken_WikiKids?action=tabel">Klik hier voor statistieken van vorige weken.</a> </div>'; |
||
+ | // Variabele die informatie geeft over de LogCounter. |
||
− | if (parameterLC['specialeweek']) { |
||
+ | var logCounterInfo = '<div id="logCounterInfo">Deze pagina laat zien hoeveel paginabezoeken er zijn geweest op een specifieke pagina. De rij "Views" bevat <b>alle</b> views. De rij daarachter laat alleen maar zien hoeveel views komen vanuit iets specifieks, bijvoorbeeld vanuit een categorie of van een mobiele telefoon. <a href="/Speciaal:Statistieken_WikiKids?action=tabel">Klik hier voor statistieken van vorige weken.</a> </div>'; |
||
− | logCounterInfo += '<span style="color:red;">Let op! De week die je nu bekijkt, is een speciale week. In deze week is gekeken naar de bezoeker op een andere manier dan de standaard manier (per pagina). </span><br>'; |
||
+ | // Controleert of het een speciale week is, als dat het geval is, dan wordt de informatie uitgebreid. |
||
− | } |
||
+ | if (parameterLC['specialeweek']) { |
||
− | var table = document.createElement('table'); |
||
+ | logCounterInfo += '<span style="color:red;">Let op! De week die je nu bekijkt, is een speciale week. In deze week is gekeken naar de bezoeker op een andere manier dan de standaard manier (per pagina). De gegevens die hier staan zijn dus niet eenvoudig te begrijpen. </span><br>'; |
||
− | table.classList.add('wikitable'); |
||
+ | } |
||
− | var tableHead = document.createElement('thead'); |
||
+ | // Het maken van een tabel |
||
− | var tableHeadRow = document.createElement('tr'); |
||
+ | var table = document.createElement('table'); |
||
− | var tableHeadTitles; |
||
+ | table.classList.add('wikitable'); |
||
− | if (infoHistory) { |
||
+ | var tableHead = document.createElement('thead'); |
||
− | tableHeadTitles = ['Paginatitel', 'Laatste bezoek', 'Views', infoHistory.Types, '%']; |
||
+ | var tableHeadRow = document.createElement('tr'); |
||
− | } else { |
||
+ | var tableBody = document.createElement('tbody'); |
||
− | tableHeadTitles = ['Paginatitel', 'Laatste bezoek', 'Views', 'Eerste bezoek pagina', '%']; |
||
− | } |
||
− | var tableBody = document.createElement('tbody'); |
||
+ | var tableHeadTitles; |
||
− | var currentPage = parameterLC['pagenr'] ? parseInt(parameterLC['pagenr']) : 1; |
||
+ | // Geeft de titels van de tabel weer. |
||
− | var rowsPerPage = parameterLC['rows'] ? parseInt(parameterLC['rows']) : 25; |
||
+ | tableHeadTitles = ['Titel', 'Laatste bezoek', 'Views', infoHistory.Types, '%']; |
||
− | var totalPages = Math.ceil(pages.length / rowsPerPage); |
||
+ | /* |
||
+ | Variabelen: |
||
+ | currentPage = de huidige pagina, deze informatie komt uit de parameters die megegeven zijn door de gebruiker |
||
+ | rowsPerPage = aantal rijen, krijgt de informatie uit de parameters die meegegeven zijn |
||
+ | totalPages = totaal aantal pagina's, gebaseerd op het aantal rijen. |
||
+ | */ |
||
+ | var currentPage = parseInt(parameterLC['pagenr']); |
||
+ | var rowsPerPage = parseInt(parameterLC['rows']); |
||
+ | var totalPages = Math.ceil(pages.length / rowsPerPage); |
||
+ | |||
+ | // Functie die een specifieke pagina laat zien, op basis van de parameter 'pageNumber' |
||
+ | function showPage(pageNumber) { |
||
+ | currentPage = pageNumber; |
||
+ | tableBody.innerHTML = ''; |
||
+ | var start = (currentPage - 1) * rowsPerPage; |
||
+ | var end = start + rowsPerPage; |
||
+ | var paginatedItems = pages.slice(start, end); |
||
+ | paginatedItems.forEach(function (page) { |
||
+ | var dateString; |
||
+ | var row = document.createElement('tr'); |
||
+ | // Definieert variabelen die later nodig zijn |
||
+ | var totalVisitors, mainPageVisited, pageTitle, pageLink, date, tempDate, filterShow, percentMainPage, percentStyle; |
||
+ | if (infoHistory.Doublerequest) { |
||
+ | totalVisitors = page.nV ? page.nV : page.mPV; |
||
+ | console.log(totalVisitors); |
||
+ | } else { |
||
+ | // Controleert of een gedeelte van de informatie leeg is gelaten. Dit is enkel voor normale versies |
||
+ | if (!page.nV) { |
||
+ | totalVisitors = page.mPV; |
||
+ | } else if (!page.mPV) { |
||
+ | totalVisitors = page.nV; |
||
+ | } else { |
||
+ | totalVisitors = page.nV + page.mPV; |
||
+ | } |
||
+ | } |
||
+ | mainPageVisited = page.mPV ? page.mPV : ""; |
||
+ | pageTitle = page.t.replace(/_/g, ' '); |
||
+ | pageLink = page.t; |
||
+ | if (parameterLC['specialeweek']) { |
||
+ | if (pageLink.includes('Zoeken:')) { |
||
+ | pageLink = 'https://wikikids.nl/Speciaal:Zoeken?search=' + pageTitle.replace(/Zoeken.?:/g,""); |
||
+ | pageTitle = pageTitle.replace(/Zoeken:/g,"Zoek:"); |
||
+ | } |
||
+ | if (pageLink.includes('Tijd')) { |
||
+ | tempDate = new Date((parseInt(pageTitle.replace(/Tijd.?:/g,"")) + 28026240) * 60 * 1000); |
||
+ | pageTitle = pageTitle.replace(/Tijd/g,"T").replace(/:.*/g, ":"); |
||
+ | dateString = addZero(tempDate.getDate()) + ' april ' + addZero(tempDate.getHours()) + ":" + addZero(tempDate.getMinutes()); |
||
+ | } |
||
+ | } |
||
+ | date = new Date(page.uA); |
||
+ | filterShow = page.filterShow ? page.filterShow : ""; |
||
+ | percentMainPage = Math.round((100/totalVisitors)*mainPageVisited*100)/100; |
||
+ | percentStyle = '>'; |
||
+ | if (filterShow === 'colored') { |
||
+ | percentStyle = ' style="background: ' + haakjesfilterkleur + parameterLC['filterkleur'] + '">'; |
||
+ | } |
||
+ | if (parameterLC['specialeweek'] && (pageLink.includes('Speciaal:Zoeken?') || pageLink.includes('Tijd'))) { |
||
+ | if (pageLink.includes('Speciaal:Zoeken?')) { |
||
+ | dateString = "-"; |
||
+ | } |
||
+ | } else if (!isNaN(date)) { |
||
+ | dateString = addZero(date.getDate()) + "-" + addZero((date.getMonth() + 1)) + "-" + date.getFullYear() + " " + addZero(date.getHours()) + ":" + addZero(date.getMinutes()); |
||
+ | } else { |
||
+ | dateString = "Niet beschikbaar"; |
||
+ | } |
||
+ | row.innerHTML = `<td><a href="/${pageLink}">${pageTitle}</a></td> |
||
+ | <td>${dateString}</td> |
||
+ | <td>${parseNumber(totalVisitors)}</td><td>${parseNumber(mainPageVisited)}</td> |
||
+ | <td ${percentStyle + percentMainPage}</td>`; |
||
+ | tableBody.appendChild(row); |
||
+ | }); |
||
+ | } |
||
+ | showPage(currentPage); |
||
+ | var pagination = document.createElement('div'); |
||
− | function showPage(pageNumber) { |
||
+ | pagination.classList.add('pagination'); |
||
− | currentPage = pageNumber; |
||
− | tableBody.innerHTML = ''; |
||
− | var start = (currentPage - 1) * rowsPerPage; |
||
− | var end = start + rowsPerPage; |
||
− | var paginatedItems = pages.slice(start, end); |
||
− | paginatedItems.forEach(function (page) { |
||
− | var dateString; |
||
− | var row = document.createElement('tr'); |
||
− | var totalVisitors, mainPageVisited, pageTitle, pageLink, date, tempDate; |
||
− | if (!page.nV) { // bij een gedeelte van de opgeslagen data, wordt nV of mPV leeggelaten, dit zorgt ervoor dat het juist wordt weergegeven. Dit is alleen nodig bij een voorgaande versie. Bij huidige versies worden alles gewoon doorgegeven. |
||
− | totalVisitors = page.mPV; |
||
− | } else if (!page.mPV) { |
||
− | totalVisitors = page.nV; |
||
− | } else { |
||
− | totalVisitors = page.nV + page.mPV; |
||
− | } |
||
− | mainPageVisited = page.mPV ? page.mPV : ""; |
||
− | pageTitle = page.t.replace(/_/g, ' '); |
||
− | pageLink = page.t; |
||
− | |||
− | if (pageLink.includes('Zoeken')) { |
||
− | pageLink = 'https://wikikids.nl/Speciaal:Zoeken?search=' + pageTitle.replace(/Zoeken.?:/g,""); |
||
− | pageTitle = pageTitle.replace(/Zoeken/g,"Zoek"); |
||
− | } |
||
− | if (pageLink.includes('Tijd')) { |
||
− | tempDate = new Date((parseInt(pageTitle.replace(/Tijd.?:/g,"")) + 28026240) * 60 * 1000); |
||
− | pageTitle = pageTitle.replace(/Tijd/g,"T").replace(/:.*/g, ":"); |
||
− | dateString = addZero(tempDate.getDate()) + ' april ' + addZero(tempDate.getHours()) + ":" + addZero(tempDate.getMinutes()); |
||
− | } |
||
− | date = new Date(page.uA); |
||
− | filterShow = page.filterShow ? page.filterShow : ""; |
||
− | var percentMainPage = Math.round((100/totalVisitors)*mainPageVisited*100)/100; |
||
− | var percentStyle = '>'; |
||
− | if (filterShow === 'colored') { |
||
− | percentStyle = ' style="background: ' + haakjesfilterkleur + parameterLC['filterkleur'] + '">'; |
||
− | } |
||
− | if (parameterLC['date'] === 'week16' && (pageLink.includes('Speciaal:Zoeken?') || pageLink.includes('Tijd'))) { |
||
− | if (pageLink.includes('Speciaal:Zoeken?')) { |
||
− | dateString = "-"; |
||
− | } |
||
− | } else if (!isNaN(date)) { |
||
− | dateString = addZero(date.getDate()) + "-" + addZero((date.getMonth() + 1)) + "-" + date.getFullYear() + " " + addZero(date.getHours()) + ":" + addZero(date.getMinutes()); |
||
− | } else { |
||
− | dateString = "Niet beschikbaar"; |
||
− | } |
||
− | row.innerHTML = `<td><a href="/${pageLink}">${pageTitle}</a></td> |
||
− | <td>${dateString}</td> |
||
− | <td>${parseNumber(totalVisitors)}</td><td>${parseNumber(mainPageVisited)}</td> |
||
− | <td ${percentStyle + percentMainPage}</td>`; |
||
− | tableBody.appendChild(row); |
||
− | }); |
||
− | } |
||
− | showPage(currentPage); |
||
− | + | var prevButton = document.createElement('button'); |
|
+ | prevButton.textContent = 'Vorige'; |
||
− | pagination.classList.add('pagination'); |
||
+ | prevButton.style = 'margin-right: 10px;'; |
||
− | |||
− | + | prevButton.addEventListener('click', function () { |
|
− | prevButton.textContent = 'Vorige'; |
||
− | prevButton.style = 'margin-right: 10px;'; |
||
− | prevButton.addEventListener('click', function () { |
||
if (currentPage > 1) { |
if (currentPage > 1) { |
||
parameterLC['pagenr'] = currentPage - 1; |
parameterLC['pagenr'] = currentPage - 1; |
||
− | + | showPage(currentPage - 1); |
|
changeURL(); |
changeURL(); |
||
− | + | // Manier waarop je kunt zien op welke pagina je bent |
|
− | + | document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`; |
|
+ | } |
||
− | } |
||
− | + | }); |
|
− | + | pagination.appendChild(prevButton); |
|
− | + | var pageCounter = document.createElement('span'); |
|
− | + | pageCounter.id = "pageCounter"; |
|
− | + | pageCounter.innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`; |
|
− | + | pagination.appendChild(pageCounter); |
|
− | + | var nextButton = document.createElement('button'); |
|
− | + | nextButton.textContent = 'Volgende'; |
|
− | + | nextButton.style = 'margin-left: 10px;'; |
|
− | + | nextButton.addEventListener('click', function () { |
|
− | + | if (currentPage < totalPages) { |
|
− | + | parameterLC['pagenr'] = currentPage + 1; |
|
− | + | showPage(currentPage + 1); |
|
changeURL(); |
changeURL(); |
||
− | + | // Manier waarop je kunt zien op welke pagina je bent |
|
− | + | document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`; |
|
+ | } |
||
− | } |
||
− | + | }); |
|
+ | |||
− | |||
− | + | var gotoButton = document.createElement('button'); |
|
− | + | gotoButton.textContent = 'Gaan'; |
|
− | + | gotoButton.style = 'margin-left: 10px;'; |
|
− | + | gotoButton.addEventListener('click', function () { |
|
− | + | if (document.getElementById('logcounternumberpage').value > totalPages || document.getElementById('logcounternumberpage').value < 1) { |
|
− | + | } else { |
|
− | + | parameterLC['pagenr'] = parseInt(document.getElementById('logcounternumberpage').value); |
|
showPage(parseInt(document.getElementById('logcounternumberpage').value)); |
showPage(parseInt(document.getElementById('logcounternumberpage').value)); |
||
changeURL(); |
changeURL(); |
||
document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`; |
document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`; |
||
− | + | } |
|
− | + | }); |
|
+ | |||
− | |||
− | + | pagination.appendChild(gotoButton); |
|
− | + | pagination.appendChild(nextButton); |
|
+ | |||
− | |||
− | + | tableHeadTitles.forEach(function (title) { |
|
− | + | var tableHeadCell = document.createElement('th'); |
|
− | + | tableHeadCell.textContent = title; |
|
− | + | tableHeadRow.appendChild(tableHeadCell); |
|
− | + | }); |
|
− | + | tableHead.appendChild(tableHeadRow); |
|
− | + | table.appendChild(tableHead); |
|
− | + | table.appendChild(tableBody); |
|
+ | |||
+ | var totalVisitors; |
||
+ | if (infoHistory.Doublerequest) { |
||
+ | totalVisitors = pages.reduce(function (total, page) { |
||
+ | return total + page.nV; |
||
+ | }, 0); |
||
+ | } else { |
||
+ | totalVisitors = pages.reduce(function (total, page) { |
||
+ | if (!page.nV) { |
||
+ | return total + page.mPV; |
||
+ | } else if (!page.mPV) { |
||
+ | return total + page.nV; |
||
+ | } else { |
||
+ | return total + page.nV + page.mPV; |
||
+ | } |
||
+ | }, 0); |
||
+ | } |
||
+ | var totalElement = document.createElement('div'); |
||
+ | totalElement.style = 'margin-top: 20px; display: flex; flex-direction: column;'; |
||
+ | var totalVisitorsElement = document.createElement('span'); |
||
− | var totalVisitors = pages.reduce(function (total, page) { |
||
+ | totalVisitorsElement.textContent = `Totaal aantal bezoeken: ${parseNumber(totalVisitors)}`; |
||
− | if (!page.nV) { |
||
+ | totalElement.appendChild(totalVisitorsElement); |
||
− | return total + page.mPV; |
||
− | } else if (!page.mPV) { |
||
− | return total + page.nV; |
||
− | } else { |
||
− | return total + page.nV + page.mPV; |
||
− | } |
||
− | }, 0); |
||
− | + | var totalPagesElement = document.createElement('span'); |
|
+ | totalPagesElement.textContent = `Totaal aantal pagina's: ${parseNumber(pages.length)}`; |
||
− | totalElement.style = 'margin-top: 20px; display: flex; flex-direction: column;'; |
||
+ | totalElement.appendChild(totalPagesElement); |
||
− | |||
+ | |||
− | var totalVisitorsElement = document.createElement('span'); |
||
+ | var moreInfoElement = document.createElement('span'); |
||
− | totalVisitorsElement.textContent = `Totaal aantal bezoeken: ${parseNumber(totalVisitors)}`; |
||
+ | if (!infoHistory.Live) { |
||
− | totalElement.appendChild(totalVisitorsElement); |
||
− | |||
− | var totalPagesElement = document.createElement('span'); |
||
− | totalPagesElement.textContent = `Totaal aantal pagina's: ${parseNumber(pages.length)}`; |
||
− | totalElement.appendChild(totalPagesElement); |
||
− | |||
− | if (infoHistory) { |
||
− | var moreInfoElement = document.createElement('span'); |
||
var xStarttime = new Date(infoHistory.Starttime); |
var xStarttime = new Date(infoHistory.Starttime); |
||
var xEndtime = new Date(infoHistory.Endtime); |
var xEndtime = new Date(infoHistory.Endtime); |
||
Regel 185: | Regel 217: | ||
var lastDateString = addZero(xEndtime.getDate()) + "-" + addZero((xEndtime.getMonth() + 1)) + "-" + xEndtime.getFullYear() + " " + addZero(xEndtime.getHours()) + ":" + addZero(xEndtime.getMinutes()); |
var lastDateString = addZero(xEndtime.getDate()) + "-" + addZero((xEndtime.getMonth() + 1)) + "-" + xEndtime.getFullYear() + " " + addZero(xEndtime.getHours()) + ":" + addZero(xEndtime.getMinutes()); |
||
moreInfoElement.textContent = `${firstDateString} tot ${lastDateString}`; |
moreInfoElement.textContent = `${firstDateString} tot ${lastDateString}`; |
||
+ | } else { |
||
− | totalElement.appendChild(moreInfoElement); |
||
+ | moreInfoElement.textContent = 'Live'; |
||
} |
} |
||
+ | totalElement.appendChild(moreInfoElement); |
||
− | document.getElementById('bodyContent').innerHTML = window.location.search.includes('&') ? terugnaarlogcounter : ''; |
||
+ | |||
− | document.getElementById('bodyContent').innerHTML += searchBarLC + logCounterInfo; |
||
− | + | document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + logCounterInfo; |
|
− | + | document.getElementById('bodyContent').appendChild(table); |
|
− | + | document.getElementById('bodyContent').appendChild(pagination); |
|
+ | document.getElementById('bodyContent').appendChild(totalElement); |
||
} |
} |
||
Regel 197: | Regel 231: | ||
var a = 'Paginatitel' + tss + 'Views' + tss + 'Speciale statistiek \n'; |
var a = 'Paginatitel' + tss + 'Views' + tss + 'Speciale statistiek \n'; |
||
for (var x = 0; x < allPages.length; x++){ |
for (var x = 0; x < allPages.length; x++){ |
||
− | + | if (!allPages[x].mPV) { |
|
− | + | a += allPages[x].t.replace(/,/g, '.') + tss + (allPages[x].nV) + tss + '0' + tss + '\n'; |
|
− | + | } else if (!allPages[x].nV) { |
|
− | + | a += allPages[x].t.replace(/,/g, '.') + tss + (allPages[x].mPV) + tss + allPages[x].mPV + tss + '\n'; |
|
− | + | } else { |
|
− | + | a += allPages[x].t.replace(/,/g, '.') + tss + (allPages[x].mPV + allPages[x].nV) + tss + allPages[x].mPV + tss + '\n'; |
|
− | + | } |
|
} |
} |
||
if (parameterLC['date']) { |
if (parameterLC['date']) { |
||
Regel 213: | Regel 247: | ||
function downloadfile(data, filename, type) { |
function downloadfile(data, filename, type) { |
||
− | + | var file = new Blob([data], {type: type}); |
|
− | + | if (window.navigator.msSaveOrOpenBlob) |
|
− | + | window.navigator.msSaveOrOpenBlob(file, filename+"." + type); |
|
− | + | else { |
|
− | + | var a = document.createElement("a"), |
|
url = URL.createObjectURL(file); |
url = URL.createObjectURL(file); |
||
− | + | a.href = url; |
|
− | + | a.download = filename; |
|
− | + | document.body.appendChild(a); |
|
− | + | a.click(); |
|
− | + | setTimeout(function() { |
|
− | + | document.body.removeChild(a); |
|
− | + | window.URL.revokeObjectURL(url); |
|
− | + | }, 0); |
|
+ | } |
||
− | } |
||
} |
} |
||
function statsPerPageLogCounter() { |
function statsPerPageLogCounter() { |
||
+ | document.title = "Statistieken van een specifiek artikel."; |
||
document.getElementById('bodyContent').innerHTML = 'Wacht... minimaal 10 seconden. Na 20 seconden zonder resultaat kan je deze pagina opnieuw laden. Problemen? <a href="/Overleg gebruiker:Rots61">Graag hier melden.</a> '; |
document.getElementById('bodyContent').innerHTML = 'Wacht... minimaal 10 seconden. Na 20 seconden zonder resultaat kan je deze pagina opnieuw laden. Problemen? <a href="/Overleg gebruiker:Rots61">Graag hier melden.</a> '; |
||
var allHistoryPages; |
var allHistoryPages; |
||
− | + | var request = new XMLHttpRequest(); |
|
− | + | // Geeft alle subpagina's van User:Rots/Statistieken/. /StatisiekenExtra doet dus niet mee |
|
− | + | request.open('GET', 'https://wikikids.nl/api.php?action=query&list=allpages&apminsize=100000&apnamespace=2&apprefix=Rots61/Statistieken/&aplimit=500&format=json', false); |
|
− | + | request.send(null); |
|
− | + | if (request.status === 200) { |
|
− | + | allHistoryPages = JSON.parse(request.responseText); |
|
+ | } |
||
− | } |
||
− | + | allHistoryPages = allHistoryPages.query.allpages; |
|
− | + | var tableoutputLC = `<table class="wikitable" id="LogCounterPerPage"><thead><tr><th onclick="sortTable('LogCounterPerPage',0, true)">Rank</th><th onclick="sortTable('LogCounterPerPage',1)">Datum</th><th onclick="sortTable('LogCounterPerPage',2, true)">Aantal bezoekers</th></thead><tbody>`; |
|
requests = new Array(allHistoryPages.length); |
requests = new Array(allHistoryPages.length); |
||
+ | |||
+ | searchBarLC = '<div><input type="text" id="lc-searchbar" value=' + parameterLC['page'] +'> <button onclick="searchContainsLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9a/OOjs_UI_indicator_search-ltr.svg" title="Bevat (zoeken)" height="25"></button> <button onclick="searchExactLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/8/86/OOjs_UI_icon_articleSearch-ltr.svg" title="Exact (zoeken)" height="25"></button> <button onclick="gotoGeschiedenisVanPagina()"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/OOjs_UI_icon_history.svg" title="Geschiedenis" height="25">*</button> <small>*Gebruikt veel internetdata </small>' |
||
+ | + '<div style="float:right;"><div id="reload1" style="display: ' + reload1LCx + ';"><a href="javascript:reload1LC();"><img title="Refresh de gegevens" src="https://upload.wikimedia.org/wikipedia/commons/f/ff/OOjs_UI_icon_reload_flipX.svg" width="50"></a></div><div id="reload2" style="display: ' + reload2LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/9/91/LoadingX.gif" width="50"></div><div id="reload3" style="display: ' + reload3LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/f/f6/OOjs_UI_icon_check-constructive.svg" width="50"></a></div></div></div>' |
||
+ | + '<div><img src="https://upload.wikimedia.org/wikipedia/commons/8/8b/OOjs_UI_icon_download.svg" title="height="25"> <button onclick="downloadLogCounter(\';\');"><b>;</b></button> <button onclick="downloadLogCounter(\',\');"><b>,</b></button></button>'; |
||
+ | |||
setTimeout(function () { |
setTimeout(function () { |
||
for (let i = 0; i < allHistoryPages.length; i++) { |
for (let i = 0; i < allHistoryPages.length; i++) { |
||
− | + | requests[i] = new XMLHttpRequest(); |
|
− | + | requests[i].open("GET", "https://wikikids.nl/" + allHistoryPages[i]['title'] + '?action=raw'); |
|
− | + | requests[i].onload = function() { |
|
− | + | var datainfo = JSON.parse(requests[i].responseText); |
|
− | + | var result; |
|
− | + | for (var y = 0; y < datainfo.length; y++) { |
|
− | + | if (datainfo[y]['t'].toLowerCase() === parameterLC['page'].replace(/ /g, '_').toLowerCase()) { |
|
− | + | result = datainfo[y]; |
|
− | + | result['Rank'] = y + 1; |
|
− | + | break; |
|
− | + | } |
|
− | + | } |
|
if (result) { |
if (result) { |
||
− | + | var totaalViews; |
|
− | + | if (!result.nV) { // bij een gedeelte van de opgeslagen data, wordt nV of mPV leeggelaten, dit zorgt ervoor dat het juist wordt weergegeven. Dit is alleen nodig bij een voorgaande versie. Bij huidige versies worden alles gewoon doorgegeven. |
|
− | + | totaalViews = result.mPV; |
|
− | + | } else if (!result.mPV) { |
|
− | + | totaalViews = result.nV; |
|
− | + | } else { |
|
− | + | totaalViews = result.nV + result.mPV; |
|
+ | } |
||
− | } |
||
− | + | tableoutputLC += `<tr><td>${result['Rank']}</td><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}">${allHistoryPages[i]['title'].slice(-8)}</a></td><td>${totaalViews}</td></tr>`; |
|
} else { |
} else { |
||
tableoutputLC += `<tr><td></td><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}">${allHistoryPages[i]['title'].slice(-8)}</a></td><td>0</td></tr>`; |
tableoutputLC += `<tr><td></td><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}">${allHistoryPages[i]['title'].slice(-8)}</a></td><td>0</td></tr>`; |
||
} |
} |
||
− | + | }; |
|
− | + | requests[i].send(); |
|
} |
} |
||
− | + | document.getElementsByTagName("h1")[0].textContent = "Speciaal:" + mw.config.get('wgTitle'); |
|
− | + | document.title = "Pagina specifieke statistieken - WikiKids"; |
|
− | + | infotext = `Specifieke statistieken voor <a href="/${parameterLC['page']}">${parameterLC['page'].replace(/_/g, ' ')}</a>. <br>Indien niet alle weken zijn ingeladen, herlaad de pagina dan. Helpt dat nog steeds niet? <a href="/Overleg gebruiker:Rots61">Meld dit hier.</a> <br> |
|
− | + | Voor 20230306 (week 9) telden bots ook mee in de statistieken. Hierdoor kan het zijn dat de statistieken daarvoor hoger zijn dan het daadwerkelijke aantal bezoekers. `; |
|
− | + | setTimeout( function () { |
|
− | + | document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + infotext + tableoutputLC + '</tbody></table>'; |
|
− | + | sortTable('LogCounterPerPage',1); |
|
− | + | }, 4000); |
|
}, 500); |
}, 500); |
||
Regel 286: | Regel 326: | ||
function getPagesLogCounter() { |
function getPagesLogCounter() { |
||
− | + | var request = new XMLHttpRequest(); |
|
− | + | request.open('GET', urlLogCounter, false); |
|
− | + | request.send(null); |
|
− | + | if (request.status === 200) { |
|
− | + | pages = JSON.parse(request.responseText); |
|
+ | } |
||
− | } |
||
− | + | // hernoemen alle keys zodat het later makkelijker gaat |
|
− | + | if (!historyLogCounter) { |
|
for (var x = 0; x < pages.length; x++) { |
for (var x = 0; x < pages.length; x++) { |
||
renamekey('uA','updatedAt', x); |
renamekey('uA','updatedAt', x); |
||
Regel 301: | Regel 341: | ||
renamekey('t','title', x); |
renamekey('t','title', x); |
||
} |
} |
||
+ | } |
||
− | } |
||
− | fullPages = pages; |
||
− | // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors) |
||
− | pages.sort(function (a, b) { |
||
− | return b.nV + b.mPV - a.nV - a.mPV; |
||
− | }); |
||
+ | fullPages = pages; |
||
− | //Filter percentmax, percentmin, aantalmax, aantalmin, only |
||
+ | // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors) |
||
− | if (parameterLC['checkrules']) { |
||
+ | if (infoHistory.Doublerequest) { |
||
− | for (var y=0; y < pages.length; y++) { |
||
+ | pages.sort(function (a, b) { |
||
− | pages[y].mPV = pages[y].mPV ? pages[y].mPV : 0; |
||
− | + | return b.nV + b.nV - a.nV - a.nV; |
|
+ | }); |
||
− | procent = (100/(pages[y].nV + pages[y].mPV))*pages[y].mPV; // 50 |
||
+ | } else { |
||
− | if (procent <= parameterLC['percentmax']) { // 60 <= 70 true // 50 <= 50 true |
||
+ | pages.sort(function (a, b) { |
||
− | if (procent >= parameterLC['percentmin'] || parameterLC['percentmin'] === null) { // 60 >= 50 true //50 <= 0 true |
||
+ | return b.nV + b.mPV - a.nV - a.mPV; |
||
− | pages[y].filterShow = 'colored'; // kleuren |
||
+ | }); |
||
− | } |
||
+ | } |
||
− | } |
||
+ | //Filter percentmax, percentmin, aantalmax, aantalmin, only |
||
− | if (pages[y].nV + pages[y].mPV > parameterLC['aantalmax']) { //50 >= 100; 1 >= 1 |
||
+ | if (parameterLC['checkrules']) { |
||
− | pages[y].filterShow = undefined; |
||
− | + | for (var y=0; y < pages.length; y++) { |
|
− | pages[y]. |
+ | pages[y].mPV = pages[y].mPV ? pages[y].mPV : 0; |
+ | pages[y].nV = pages[y].nV ? pages[y].nV : 0; |
||
− | } |
||
− | + | if (infoHistory.Doublerequest) { |
|
+ | console.log('Percent'); |
||
− | if (pages[y].filterShow !== 'colored') { |
||
+ | procent = (100/pages[y].nV)*pages[y].mPV; |
||
− | pages.splice(y, 1); |
||
− | + | if (procent === Infinity) { |
|
+ | procent = 100; |
||
+ | } |
||
+ | } else { |
||
+ | procent = (100/(pages[y].nV + pages[y].mPV))*pages[y].mPV; // 50 |
||
+ | } |
||
+ | if (procent <= parameterLC['percentmax']) { // 60 <= 70 true // 50 <= 50 true |
||
+ | if (procent >= parameterLC['percentmin'] || parameterLC['percentmin'] === null) { // 60 >= 50 true //50 <= 0 true |
||
+ | pages[y].filterShow = 'colored'; // kleuren |
||
+ | } |
||
+ | } |
||
+ | if (pages[y].nV + pages[y].mPV > parameterLC['aantalmax']) { //50 >= 100; 1 >= 1 |
||
+ | pages[y].filterShow = undefined; |
||
+ | } else if (pages[y].nV + pages[y].mPV < parameterLC['aantalmin']) { // 50 <= 0 |
||
+ | pages[y].filterShow = undefined; |
||
+ | } |
||
+ | if (parameterLC['only']) { |
||
+ | if (pages[y].filterShow !== 'colored') { |
||
+ | pages.splice(y, 1); |
||
+ | y = y-1; |
||
+ | } |
||
} |
} |
||
} |
} |
||
+ | } |
||
− | } |
||
+ | |||
− | } |
||
if (document.getElementById('reload2')) { |
if (document.getElementById('reload2')) { |
||
setTimeout( function () { |
setTimeout( function () { |
||
Regel 355: | Regel 410: | ||
}, 2500); |
}, 2500); |
||
} |
} |
||
− | + | return pages; |
|
} |
} |
||
Regel 370: | Regel 425: | ||
parameterLC['action'] = undefined; |
parameterLC['action'] = undefined; |
||
parameterLC['page'] = undefined; |
parameterLC['page'] = undefined; |
||
− | parameterLC['pagenr'] = |
+ | parameterLC['pagenr'] = 1; |
parameterLC['bevatzoeken'] = searchQuery; |
parameterLC['bevatzoeken'] = searchQuery; |
||
changeURL(); |
changeURL(); |
||
Regel 377: | Regel 432: | ||
function searchContainsLogCounter(searchQuery) { |
function searchContainsLogCounter(searchQuery) { |
||
− | + | if (!searchQuery) { |
|
− | + | searchQuery = parameterLC['bevatzoeken']; |
|
+ | } |
||
− | } |
||
− | + | var searchResult = []; |
|
− | + | for (var i = 0; i < allPages.length; i++) { |
|
− | + | if (allPages[i]['t'].toLowerCase().includes(searchQuery.toLowerCase())) { |
|
− | + | searchResult.push(allPages[i]); |
|
+ | } |
||
− | } |
||
+ | } |
||
− | } |
||
− | + | setTimeout(function () { |
|
− | + | if (!searchResult.length) { |
|
− | + | var printToScreen = '<br>Er is geen pagina die <a href="https://wikikids.nl/Speciaal:Zoeken/' + searchQuery + '">' + searchQuery + '</a> bevat, en die in deze periode views heeft ontvangen.' |
|
− | + | + 'Kijk voor meer <a href="https://wikikids.nl/WikiKids:Statistieken">informatie op deze pagina</a>.'; |
|
− | + | document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + printToScreen; |
|
− | + | } else { |
|
− | + | console.log(searchResult); |
|
+ | showProjectLogCounter(searchResult, searchQuery); |
||
− | } |
||
+ | } |
||
− | }, 750); |
||
+ | }, 750); |
||
} |
} |
||
Regel 403: | Regel 459: | ||
parameterLC['action'] = undefined; |
parameterLC['action'] = undefined; |
||
parameterLC['page'] = undefined; |
parameterLC['page'] = undefined; |
||
− | parameterLC['pagenr'] = |
+ | parameterLC['pagenr'] = 1; |
parameterLC['exactzoeken'] = searchQuery; |
parameterLC['exactzoeken'] = searchQuery; |
||
changeURL(); |
changeURL(); |
||
Regel 410: | Regel 466: | ||
function searchExactLogCounter(searchQuery) { |
function searchExactLogCounter(searchQuery) { |
||
− | + | if (!searchQuery) { |
|
− | + | searchQuery = parameterLC['exactzoeken']; |
|
+ | } |
||
− | } |
||
− | + | var searchResult = []; |
|
− | + | for (var i = 0; i < allPages.length; i++) { |
|
− | + | if (allPages[i]['t'].toLowerCase() === searchQuery.toLowerCase()) { |
|
− | + | searchResult.push(allPages[i]); |
|
+ | } |
||
− | } |
||
+ | } |
||
− | } |
||
− | + | setTimeout(function () { |
|
− | + | if (!searchResult.length) { |
|
− | + | var printToScreen = '<br>De pagina <a href="https://wikikids.nl/' + searchQuery + '">' + searchQuery + '</a> heeft geen views ontvangen, voldoet niet aan het ingestelde filter of bestaat niet. '; |
|
− | + | document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + printToScreen; |
|
− | + | } else { |
|
− | + | console.log(searchResult); |
|
+ | showProjectLogCounter(searchResult, searchQuery); |
||
− | } |
||
+ | } |
||
− | }, 750); |
||
+ | }, 750); |
||
} |
} |
||
function getInfoPageLogCounter(urlInfoLogCounter) { |
function getInfoPageLogCounter(urlInfoLogCounter) { |
||
− | + | var infoHistorytemp; |
|
− | + | var request = new XMLHttpRequest(); |
|
− | + | request.open('GET', urlInfoLogCounter, false); |
|
− | + | request.send(null); |
|
− | + | if (request.status === 200) { |
|
− | + | infoHistorytemp = JSON.parse(request.responseText); |
|
+ | } |
||
− | } |
||
− | + | return infoHistorytemp; |
|
} |
} |
||
function tabelLogCounter() { |
function tabelLogCounter() { |
||
var allHistoryPages; |
var allHistoryPages; |
||
− | + | var request = new XMLHttpRequest(); |
|
− | + | // Geeft alle subpagina's van User:Rots61/Statistieken, /StatistiekenExtra doet dus mee |
|
− | + | request.open('GET', 'https://wikikids.nl/api.php?action=query&list=allpages&apminsize=100000&apnamespace=2&apprefix=Rots61/Statistieken&aplimit=500&format=json', false); |
|
− | + | request.send(null); |
|
− | + | if (request.status === 200) { |
|
− | + | allHistoryPages = JSON.parse(request.responseText); |
|
+ | } |
||
− | } |
||
− | + | allHistoryPages = allHistoryPages.query.allpages; |
|
− | + | var tableoutputLC = `<table class="wikitable" id="LogCounterHistory"><thead><tr><th onclick="sortTable('LogCounterHistory',0)">Link</th><th onclick="sortTable('LogCounterHistory',1)">Datum</th><th onclick="sortTable('LogCounterHistory',2, true)">Aantal bezoekers</th><th onclick="sortTable('LogCounterHistory',3, true)">Aantal pagina's</th><th onclick="sortTable('LogCounterHistory',4)">Extra informatie</th></tr></thead><tbody> |
|
− | + | <tr><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids">Live</a></td><td>Sinds zaterdag</td><td>0</td><td>0</td></tr>`; |
|
requests = new Array(allHistoryPages.length); |
requests = new Array(allHistoryPages.length); |
||
setTimeout(function () { |
setTimeout(function () { |
||
for (let i = 0; i < allHistoryPages.length; i++) { |
for (let i = 0; i < allHistoryPages.length; i++) { |
||
− | + | var url = "https://wikikids.nl/" + allHistoryPages[i]['title'] + '/info?action=raw'; |
|
− | + | requests[i] = new XMLHttpRequest(); |
|
− | + | requests[i].open("GET", url); |
|
− | + | requests[i].onload = function() { |
|
− | + | var datainfo = JSON.parse(requests[i].responseText); |
|
− | tableoutputLC += `<tr><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}${ |
+ | tableoutputLC += `<tr><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}${allHistoryPages[i]['specialeweek'] ? '&specialeweek=true' : ''}">${datainfo['Jaar-Week']}</a></td>`; |
var xStarttime = new Date(datainfo.Starttime); |
var xStarttime = new Date(datainfo.Starttime); |
||
var xEndtime = new Date(datainfo.Endtime); |
var xEndtime = new Date(datainfo.Endtime); |
||
var firstDateString = addZero(xStarttime.getDate()) + "-" + addZero((xStarttime.getMonth() + 1)) + "-" + xStarttime.getFullYear() + " " + addZero(xStarttime.getHours()) + ":" + addZero(xStarttime.getMinutes()); |
var firstDateString = addZero(xStarttime.getDate()) + "-" + addZero((xStarttime.getMonth() + 1)) + "-" + xStarttime.getFullYear() + " " + addZero(xStarttime.getHours()) + ":" + addZero(xStarttime.getMinutes()); |
||
var lastDateString = addZero(xEndtime.getDate()) + "-" + addZero((xEndtime.getMonth() + 1)) + "-" + xEndtime.getFullYear() + " " + addZero(xEndtime.getHours()) + ":" + addZero(xEndtime.getMinutes()); |
var lastDateString = addZero(xEndtime.getDate()) + "-" + addZero((xEndtime.getMonth() + 1)) + "-" + xEndtime.getFullYear() + " " + addZero(xEndtime.getHours()) + ":" + addZero(xEndtime.getMinutes()); |
||
− | tableoutputLC += `<td>van ${firstDateString} tot ${lastDateString}</td><td>${datainfo.Totalviews}</td><td>${datainfo.Totalpages}</td><td><a href="/WikiKids:Statistieken#${datainfo.Types}">${datainfo.Types}</a></td></tr>`; |
+ | tableoutputLC += `<td>van ${firstDateString} tot ${lastDateString}</td><td>${datainfo.Totalviews}</td><td>${datainfo.Totalpages}</td><td><a href="/WikiKids:Statistieken#${datainfo.Types.replace(/ /g, '_')}">${datainfo.Types}</a></td></tr>`; |
− | + | }; |
|
− | + | requests[i].send(); |
|
} |
} |
||
− | + | document.getElementsByTagName("h1")[0].textContent = "Speciaal:" + mw.config.get('wgTitle'); |
|
− | + | document.title = "Voorgaande statistieken - WikiKids"; |
|
− | + | infotext = 'Elke zaterdag worden, rond 6 uur, de statistieken opnieuw ingesteld. Een week loopt dus van zaterdag tot zaterdag. Het real-time registreren van de bezoekers wordt mogelijk gemaakt door MakiBoy. Voor vragen kun je terecht bij MakiBoy of Rots61. <br>' |
|
− | + | + 'Deze lijst wordt automatisch bijgewerkt, zodat alle vorige statistieken worden getoont. <br>'; |
|
− | + | setTimeout( function () { |
|
− | + | tableoutputLC += '</tbody></table>'; |
|
− | + | document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + infotext + tableoutputLC; |
|
− | + | sortTable('LogCounterHistory',0); |
|
− | + | }, 500); |
|
}, 500); |
}, 500); |
||
} |
} |
||
Regel 483: | Regel 540: | ||
function changeURL(){ |
function changeURL(){ |
||
var urlPath = '/Speciaal:Statistieken WikiKids?'; |
var urlPath = '/Speciaal:Statistieken WikiKids?'; |
||
− | if (parameterLC['rows'] |
+ | if (parameterLC['rows']) { |
− | + | if (parameterLC['rows'] !== 25) { |
|
+ | urlPath += 'rows=' + parameterLC['rows'] + '&'; |
||
+ | } |
||
} |
} |
||
if (parameterLC['action']) { |
if (parameterLC['action']) { |
||
Regel 502: | Regel 561: | ||
} |
} |
||
} |
} |
||
− | if (parameterLC['percentmin'] |
+ | if (parameterLC['percentmin']) { |
− | + | if (parameterLC['percentmin'] !== -1) { |
|
+ | urlPath += 'percentmin=' + parameterLC['percentmin'] + '&'; |
||
+ | } |
||
} |
} |
||
− | if (parameterLC['percentmax'] |
+ | if (parameterLC['percentmax']) { |
− | + | if (parameterLC['percentmax'] !== 100) { |
|
+ | urlPath += 'percentmax=' + parameterLC['percentmax'] + '&'; |
||
+ | } |
||
} |
} |
||
if (parameterLC['only']) { |
if (parameterLC['only']) { |
||
urlPath += 'only=x&'; |
urlPath += 'only=x&'; |
||
} |
} |
||
− | if (parameterLC['aantalmax'] |
+ | if (parameterLC['aantalmax']) { |
− | + | if (parameterLC['aantalmax'] !== Infinity) { |
|
+ | urlPath += 'aantalmax=' + parameterLC['aantalmax'] + '&'; |
||
+ | } |
||
} |
} |
||
− | if (parameterLC['aantalmin'] |
+ | if (parameterLC['aantalmin']) { |
− | + | if (parameterLC['aantalmin'] !== 0) { |
|
+ | urlPath += 'aantalmin=' + parameterLC['aantalmin'] + '&'; |
||
+ | } |
||
} |
} |
||
if (parameterLC['bevatzoeken']) { |
if (parameterLC['bevatzoeken']) { |
||
Regel 526: | Regel 593: | ||
urlPath += 'specialeweek=' + parameterLC['specialeweek'] + '&'; |
urlPath += 'specialeweek=' + parameterLC['specialeweek'] + '&'; |
||
} |
} |
||
− | if (parameterLC['filterkleur'] |
+ | if (parameterLC['filterkleur']) { |
− | + | if (parameterLC['filterkleur'] !== 'lightgreen') { |
|
+ | urlPath += 'filterkleur=' + parameterLC['filterkleur'] + '&'; |
||
+ | } |
||
} |
} |
||
urlPath += 'v=1.0'; |
urlPath += 'v=1.0'; |
||
− | + | window.history.pushState("","", urlPath); |
|
− | window.history.replaceState("","", urlPath); |
+ | //window.history.replaceState("","", urlPath); |
} |
} |
||
Regel 551: | Regel 620: | ||
*/ |
*/ |
||
changeURL(); |
changeURL(); |
||
− | + | startLC(true); |
|
} |
} |
||
− | function terugLogCounter() { |
+ | function terugLogCounter(dateparameter, specialeweekparameter) { |
parameterLC = {}; |
parameterLC = {}; |
||
+ | if (dateparameter || specialeweekparameter) { |
||
− | changeURL(); |
||
+ | parameterLC['date'] = dateparameter; |
||
− | startLC(); |
||
+ | parameterLC['specialeweek'] = specialeweekparameter; |
||
+ | changeURL(); |
||
+ | startLC(); |
||
+ | } else { |
||
+ | changeURL(); |
||
+ | startLC(true); |
||
+ | } |
||
} |
} |
||
Regel 569: | Regel 645: | ||
no switching has been done: */ |
no switching has been done: */ |
||
while (switching) { |
while (switching) { |
||
− | + | // Start by saying: no switching is done: |
|
− | + | switching = false; |
|
− | + | rows = table.rows; |
|
− | + | /* Loop through all table rows (except the |
|
− | + | first, which contains table headers): */ |
|
− | + | for (i = 1; i < (rows.length - 1); i++) { |
|
− | + | // Start by saying there should be no switching: |
|
− | + | shouldSwitch = false; |
|
− | + | /* Get the two elements you want to compare, |
|
− | + | one from current row and one from the next: */ |
|
− | + | x = rows[i].getElementsByTagName("TD")[n]; |
|
− | + | y = rows[i + 1].getElementsByTagName("TD")[n]; |
|
− | + | /* Check if the two rows should switch place, |
|
− | + | based on the direction, asc or desc: */ |
|
if (getal) { |
if (getal) { |
||
− | + | if (dir === "asc") { |
|
− | + | if (parseInt(x.innerHTML) > parseInt(y.innerHTML)) { |
|
− | + | // If so, mark as a switch and break the loop: |
|
− | + | shouldSwitch = true; |
|
− | + | break; |
|
+ | } |
||
− | } |
||
− | + | } else if (dir == "desc") { |
|
− | + | if (parseInt(x.innerHTML) < parseInt(y.innerHTML)) { |
|
− | + | // If so, mark as a switch and break the loop: |
|
− | + | shouldSwitch = true; |
|
− | + | break; |
|
+ | } |
||
− | } |
||
− | + | } |
|
} else { |
} else { |
||
− | + | if (dir == "asc") { |
|
− | + | if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { |
|
− | + | // If so, mark as a switch and break the loop: |
|
− | + | shouldSwitch = true; |
|
− | + | break; |
|
+ | } |
||
− | } |
||
− | + | } else if (dir == "desc") { |
|
− | + | if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { |
|
− | + | // If so, mark as a switch and break the loop: |
|
− | + | shouldSwitch = true; |
|
− | + | break; |
|
+ | } |
||
− | } |
||
− | + | } |
|
} |
} |
||
+ | } |
||
− | } |
||
− | + | if (shouldSwitch) { |
|
− | + | /* If a switch has been marked, make the switch |
|
− | + | and mark that a switch has been done: */ |
|
− | + | rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); |
|
− | + | switching = true; |
|
− | + | // Each time a switch is done, increase this count by 1: |
|
− | + | switchcount++; |
|
− | + | } else { |
|
− | + | /* If no switching has been done AND the direction is "asc", |
|
− | + | set the direction to "desc" and run the while loop again. */ |
|
− | + | if (switchcount === 0 && dir === "asc") { |
|
− | + | dir = "desc"; |
|
− | + | switching = true; |
|
− | + | } |
|
+ | } |
||
− | } |
||
} |
} |
||
} |
} |
||
var pages = []; |
var pages = []; |
||
− | if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "LogCounter" || (mw.config.get('wgTitle') === "Statistieken Wikikids" ||mw.config.get('wgTitle') === "Statistieken WikiKids"))) { |
+ | if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "LogCounter" || (mw.config.get('wgTitle') === "Statistieken Wikikids" || (mw.config.get('wgTitle') === "Statistieken WikiKids" || mw.config.get('wgTitle') === "WikiStats")))) { |
− | var terugnaarlogcounter = '<div id="contentSub"><span class="subpages">< <a href="javascript:terugLogCounter();" title="Speciaal:Statistieken WikiKids">Speciaal:Statistieken WikiKids</a></span></div>'; |
||
var parameterLC = {}; |
var parameterLC = {}; |
||
− | var historyLogCounter |
+ | var historyLogCounter, urlLogCounter, allPages, fullPages, terugnaarlogcounter; |
+ | // deze variabele regelt wat er bovenin de tabel te zien is als speciale statistiek. Ook regelt hij dingen zoals de dubbele requests. Zodat het goed geregeld kan worden. |
||
+ | var infoHistory = {"Types":"Hele pagina","Doublerequest": true, Live:true}; |
||
var reload1LCx = ''; |
var reload1LCx = ''; |
||
var reload2LCx = 'none'; |
var reload2LCx = 'none'; |
||
var reload3LCx = 'none'; |
var reload3LCx = 'none'; |
||
mw.loader.using('mediawiki.util', function() { |
mw.loader.using('mediawiki.util', function() { |
||
− | + | mw.util.addPortletLink('p-namespaces', |
|
− | + | 'https://wikikids.nl/index.php?title=Overleg_gebruiker:Rots61&action=edit§ion=new', |
|
− | + | 'Vragen? ', '#linkNaarOverlegPaginaR61', "Vragen over de statistieken"); |
|
}); |
}); |
||
mw.loader.using('mediawiki.util', function() { |
mw.loader.using('mediawiki.util', function() { |
||
− | + | mw.util.addPortletLink('p-namespaces', |
|
− | + | 'https://wikikids.nl/WikiKids:Statistieken', |
|
− | + | 'Info ', '#linkNaarWKStatistieken', "Informatie over de statistieken"); |
|
}); $.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () { |
}); $.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () { |
||
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-LogCounter">Script gemaakt door <a href="/User:MakiBoy" title="Gebruiker:MakiBoy">MakiBoy</a> en <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a>, versie: ' + version + '</li>'; |
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-LogCounter">Script gemaakt door <a href="/User:MakiBoy" title="Gebruiker:MakiBoy">MakiBoy</a> en <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a>, versie: ' + version + '</li>'; |
||
Regel 672: | Regel 749: | ||
parameterLC['aantalmin'] = mw.util.getParamValue('aantalmin') ? mw.util.getParamValue('aantalmin') : 0; |
parameterLC['aantalmin'] = mw.util.getParamValue('aantalmin') ? mw.util.getParamValue('aantalmin') : 0; |
||
parameterLC['checkrules'] = mw.util.getParamValue('aantalmin') + mw.util.getParamValue('aantalmax') + mw.util.getParamValue('only') + mw.util.getParamValue('percentmax') + mw.util.getParamValue('percentmin'); |
parameterLC['checkrules'] = mw.util.getParamValue('aantalmin') + mw.util.getParamValue('aantalmax') + mw.util.getParamValue('only') + mw.util.getParamValue('percentmax') + mw.util.getParamValue('percentmin'); |
||
+ | |||
− | |||
+ | // zorgt ervoor dat er bovenin een link terug verwijst naar de basisinstellingen van de logcounter. |
||
− | if (parameterLC['date']) { |
||
+ | terugnaarlogcounter = '<div id="contentSub"><span class="subpages">< <a href="javascript:terugLogCounter();" title="Speciaal:Statistieken WikiKids">Speciaal:Statistieken WikiKids</a>'; |
||
− | if (parameterLC['specialeweek']) { |
||
+ | if (parameterLC['date']) { |
||
− | urlLogCounter = 'https://wikikids.nl/User:Rots61/StatistiekenExtra/' + parameterLC['date'] + '?action=raw'; |
||
+ | terugnaarlogcounter += ' | <a href="javascript:terugLogCounter(' + parameterLC['date']; |
||
− | infoHistory = getInfoPageLogCounter('https://wikikids.nl/User:Rots61/StatistiekenExtra/' + parameterLC['date'] + '/info?action=raw'); |
||
+ | if (parameterLC['specialeweek']) { |
||
− | historyLogCounter = true; |
||
+ | terugnaarlogcounter += ', true'; |
||
− | } else { |
||
+ | } |
||
− | urlLogCounter = 'https://wikikids.nl/User:Rots61/Statistieken/' + parameterLC['date'] + '?action=raw'; |
||
+ | terugnaarlogcounter += ');" title="Speciaal:Statistieken/' + parameterLC['date'] + '">' + parameterLC['date'] + '</a>'; |
||
− | historyLogCounter = true; |
||
+ | } |
||
− | infoHistory = getInfoPageLogCounter('https://wikikids.nl/User:Rots61/Statistieken/' + parameterLC['date'] + '/info?action=raw'); |
||
+ | terugnaarlogcounter += '</span></div>'; |
||
− | } |
||
+ | if (parameterLC['date']) { |
||
− | } else { |
||
+ | if (parameterLC['specialeweek']) { |
||
− | urlLogCounter = 'https://wikikids.martvanweeghel.nl/pages'; |
||
+ | urlLogCounter = 'https://wikikids.nl/User:Rots61/StatistiekenExtra/' + parameterLC['date'] + '?action=raw'; |
||
− | } |
||
+ | infoHistory = getInfoPageLogCounter('https://wikikids.nl/User:Rots61/StatistiekenExtra/' + parameterLC['date'] + '/info?action=raw'); |
||
+ | } else { |
||
+ | urlLogCounter = 'https://wikikids.nl/User:Rots61/Statistieken/' + parameterLC['date'] + '?action=raw'; |
||
+ | infoHistory = getInfoPageLogCounter('https://wikikids.nl/User:Rots61/Statistieken/' + parameterLC['date'] + '/info?action=raw'); |
||
+ | } |
||
+ | historyLogCounter = true; |
||
+ | } else { |
||
+ | urlLogCounter = 'https://wikikids.martvanweeghel.nl/pages'; |
||
+ | historyLogCounter = false; |
||
+ | } |
||
if (firsttime) { |
if (firsttime) { |
||
allPages = getPagesLogCounter(); |
allPages = getPagesLogCounter(); |
||
Regel 725: | Regel 812: | ||
function renamekey(new_key, old_key, x){ |
function renamekey(new_key, old_key, x){ |
||
Object.defineProperty(pages[x], new_key, |
Object.defineProperty(pages[x], new_key, |
||
− | + | Object.getOwnPropertyDescriptor(pages[x], old_key)); |
|
− | + | delete pages[x][old_key]; |
|
} |
} |
Huidige versie van 8 jun 2023 om 17:49
/* jshint sub:true maxerr:100000 */
// [[User:MakiBoy/Gadget-LogCounter.js]] gemaakt door [[User:MakiBoy]] en [[User:Rots61]], onderhouden door [[User:Rots61]]
var version = '3.2';
var searchBarLC;
// Wordt gebruikt om de views op de juiste manier te formaten
function parseNumber (number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
}
// Wordt gebruikt om een nul toe te voegen bij de datum
function addZero(number) {
return number < 10 ? "0" + number : number;
}
/*
laat de speciale pagina uiteindelijk zien
pages = array met alle pagina's die getoont moeten worden
zoekbalk = de waarde die zichtbaar moet zijn in de zoekbalk
*/
function showProjectLogCounter (pages, zoekbalk) {
// Dit zorgt ervoor dat de kleur wordt weergegeven of de kleurcode.
var haakjesfilterkleur = /[G-Za-z]/.test(parameterLC['filterkleur']) ? '' : '#';
console.log(pages);
// Past de titel van de speciale pagina aan
document.getElementsByTagName("h1")[0].textContent = "Speciaal:" + mw.config.get('wgTitle');
document.title = "Statistieken WikiKids";
searchBarLC = '<div><input type="text" id="lc-searchbar" value=' + zoekbalk +'> <button onclick="searchContainsLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9a/OOjs_UI_indicator_search-ltr.svg" title="Bevat (zoeken)" height="25"></button> <button onclick="searchExactLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/8/86/OOjs_UI_icon_articleSearch-ltr.svg" title="Exact (zoeken)" height="25"></button> <button onclick="gotoGeschiedenisVanPagina()"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/OOjs_UI_icon_history.svg" title="Geschiedenis" height="25">*</button> <small>*Gebruikt veel internetdata </small>'
+ '<div style="float:right;"><div id="reload1" style="display: ' + reload1LCx + ';"><a href="javascript:reload1LC();"><img title="Refresh de gegevens" src="https://upload.wikimedia.org/wikipedia/commons/f/ff/OOjs_UI_icon_reload_flipX.svg" width="50"></a></div><div id="reload2" style="display: ' + reload2LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/9/91/LoadingX.gif" width="50"></div><div id="reload3" style="display: ' + reload3LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/f/f6/OOjs_UI_icon_check-constructive.svg" width="50"></a></div></div></div>'
+ '<div><img src="https://upload.wikimedia.org/wikipedia/commons/8/8b/OOjs_UI_icon_download.svg" title="height="25"> <button onclick="downloadLogCounter(\';\');"><b>;</b></button> <button onclick="downloadLogCounter(\',\');"><b>,</b></button></button>';
// Variabele die informatie geeft over de LogCounter.
var logCounterInfo = '<div id="logCounterInfo">Deze pagina laat zien hoeveel paginabezoeken er zijn geweest op een specifieke pagina. De rij "Views" bevat <b>alle</b> views. De rij daarachter laat alleen maar zien hoeveel views komen vanuit iets specifieks, bijvoorbeeld vanuit een categorie of van een mobiele telefoon. <a href="/Speciaal:Statistieken_WikiKids?action=tabel">Klik hier voor statistieken van vorige weken.</a> </div>';
// Controleert of het een speciale week is, als dat het geval is, dan wordt de informatie uitgebreid.
if (parameterLC['specialeweek']) {
logCounterInfo += '<span style="color:red;">Let op! De week die je nu bekijkt, is een speciale week. In deze week is gekeken naar de bezoeker op een andere manier dan de standaard manier (per pagina). De gegevens die hier staan zijn dus niet eenvoudig te begrijpen. </span><br>';
}
// Het maken van een tabel
var table = document.createElement('table');
table.classList.add('wikitable');
var tableHead = document.createElement('thead');
var tableHeadRow = document.createElement('tr');
var tableBody = document.createElement('tbody');
var tableHeadTitles;
// Geeft de titels van de tabel weer.
tableHeadTitles = ['Titel', 'Laatste bezoek', 'Views', infoHistory.Types, '%'];
/*
Variabelen:
currentPage = de huidige pagina, deze informatie komt uit de parameters die megegeven zijn door de gebruiker
rowsPerPage = aantal rijen, krijgt de informatie uit de parameters die meegegeven zijn
totalPages = totaal aantal pagina's, gebaseerd op het aantal rijen.
*/
var currentPage = parseInt(parameterLC['pagenr']);
var rowsPerPage = parseInt(parameterLC['rows']);
var totalPages = Math.ceil(pages.length / rowsPerPage);
// Functie die een specifieke pagina laat zien, op basis van de parameter 'pageNumber'
function showPage(pageNumber) {
currentPage = pageNumber;
tableBody.innerHTML = '';
var start = (currentPage - 1) * rowsPerPage;
var end = start + rowsPerPage;
var paginatedItems = pages.slice(start, end);
paginatedItems.forEach(function (page) {
var dateString;
var row = document.createElement('tr');
// Definieert variabelen die later nodig zijn
var totalVisitors, mainPageVisited, pageTitle, pageLink, date, tempDate, filterShow, percentMainPage, percentStyle;
if (infoHistory.Doublerequest) {
totalVisitors = page.nV ? page.nV : page.mPV;
console.log(totalVisitors);
} else {
// Controleert of een gedeelte van de informatie leeg is gelaten. Dit is enkel voor normale versies
if (!page.nV) {
totalVisitors = page.mPV;
} else if (!page.mPV) {
totalVisitors = page.nV;
} else {
totalVisitors = page.nV + page.mPV;
}
}
mainPageVisited = page.mPV ? page.mPV : "";
pageTitle = page.t.replace(/_/g, ' ');
pageLink = page.t;
if (parameterLC['specialeweek']) {
if (pageLink.includes('Zoeken:')) {
pageLink = 'https://wikikids.nl/Speciaal:Zoeken?search=' + pageTitle.replace(/Zoeken.?:/g,"");
pageTitle = pageTitle.replace(/Zoeken:/g,"Zoek:");
}
if (pageLink.includes('Tijd')) {
tempDate = new Date((parseInt(pageTitle.replace(/Tijd.?:/g,"")) + 28026240) * 60 * 1000);
pageTitle = pageTitle.replace(/Tijd/g,"T").replace(/:.*/g, ":");
dateString = addZero(tempDate.getDate()) + ' april ' + addZero(tempDate.getHours()) + ":" + addZero(tempDate.getMinutes());
}
}
date = new Date(page.uA);
filterShow = page.filterShow ? page.filterShow : "";
percentMainPage = Math.round((100/totalVisitors)*mainPageVisited*100)/100;
percentStyle = '>';
if (filterShow === 'colored') {
percentStyle = ' style="background: ' + haakjesfilterkleur + parameterLC['filterkleur'] + '">';
}
if (parameterLC['specialeweek'] && (pageLink.includes('Speciaal:Zoeken?') || pageLink.includes('Tijd'))) {
if (pageLink.includes('Speciaal:Zoeken?')) {
dateString = "-";
}
} else if (!isNaN(date)) {
dateString = addZero(date.getDate()) + "-" + addZero((date.getMonth() + 1)) + "-" + date.getFullYear() + " " + addZero(date.getHours()) + ":" + addZero(date.getMinutes());
} else {
dateString = "Niet beschikbaar";
}
row.innerHTML = `<td><a href="/${pageLink}">${pageTitle}</a></td>
<td>${dateString}</td>
<td>${parseNumber(totalVisitors)}</td><td>${parseNumber(mainPageVisited)}</td>
<td ${percentStyle + percentMainPage}</td>`;
tableBody.appendChild(row);
});
}
showPage(currentPage);
var pagination = document.createElement('div');
pagination.classList.add('pagination');
var prevButton = document.createElement('button');
prevButton.textContent = 'Vorige';
prevButton.style = 'margin-right: 10px;';
prevButton.addEventListener('click', function () {
if (currentPage > 1) {
parameterLC['pagenr'] = currentPage - 1;
showPage(currentPage - 1);
changeURL();
// Manier waarop je kunt zien op welke pagina je bent
document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`;
}
});
pagination.appendChild(prevButton);
var pageCounter = document.createElement('span');
pageCounter.id = "pageCounter";
pageCounter.innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`;
pagination.appendChild(pageCounter);
var nextButton = document.createElement('button');
nextButton.textContent = 'Volgende';
nextButton.style = 'margin-left: 10px;';
nextButton.addEventListener('click', function () {
if (currentPage < totalPages) {
parameterLC['pagenr'] = currentPage + 1;
showPage(currentPage + 1);
changeURL();
// Manier waarop je kunt zien op welke pagina je bent
document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`;
}
});
var gotoButton = document.createElement('button');
gotoButton.textContent = 'Gaan';
gotoButton.style = 'margin-left: 10px;';
gotoButton.addEventListener('click', function () {
if (document.getElementById('logcounternumberpage').value > totalPages || document.getElementById('logcounternumberpage').value < 1) {
} else {
parameterLC['pagenr'] = parseInt(document.getElementById('logcounternumberpage').value);
showPage(parseInt(document.getElementById('logcounternumberpage').value));
changeURL();
document.getElementById('pageCounter').innerHTML = `Pagina <input id="logcounternumberpage" type="number" size="5" value=${currentPage}> van ${totalPages}`;
}
});
pagination.appendChild(gotoButton);
pagination.appendChild(nextButton);
tableHeadTitles.forEach(function (title) {
var tableHeadCell = document.createElement('th');
tableHeadCell.textContent = title;
tableHeadRow.appendChild(tableHeadCell);
});
tableHead.appendChild(tableHeadRow);
table.appendChild(tableHead);
table.appendChild(tableBody);
var totalVisitors;
if (infoHistory.Doublerequest) {
totalVisitors = pages.reduce(function (total, page) {
return total + page.nV;
}, 0);
} else {
totalVisitors = pages.reduce(function (total, page) {
if (!page.nV) {
return total + page.mPV;
} else if (!page.mPV) {
return total + page.nV;
} else {
return total + page.nV + page.mPV;
}
}, 0);
}
var totalElement = document.createElement('div');
totalElement.style = 'margin-top: 20px; display: flex; flex-direction: column;';
var totalVisitorsElement = document.createElement('span');
totalVisitorsElement.textContent = `Totaal aantal bezoeken: ${parseNumber(totalVisitors)}`;
totalElement.appendChild(totalVisitorsElement);
var totalPagesElement = document.createElement('span');
totalPagesElement.textContent = `Totaal aantal pagina's: ${parseNumber(pages.length)}`;
totalElement.appendChild(totalPagesElement);
var moreInfoElement = document.createElement('span');
if (!infoHistory.Live) {
var xStarttime = new Date(infoHistory.Starttime);
var xEndtime = new Date(infoHistory.Endtime);
var firstDateString = addZero(xStarttime.getDate()) + "-" + addZero((xStarttime.getMonth() + 1)) + "-" + xStarttime.getFullYear() + " " + addZero(xStarttime.getHours()) + ":" + addZero(xStarttime.getMinutes());
var lastDateString = addZero(xEndtime.getDate()) + "-" + addZero((xEndtime.getMonth() + 1)) + "-" + xEndtime.getFullYear() + " " + addZero(xEndtime.getHours()) + ":" + addZero(xEndtime.getMinutes());
moreInfoElement.textContent = `${firstDateString} tot ${lastDateString}`;
} else {
moreInfoElement.textContent = 'Live';
}
totalElement.appendChild(moreInfoElement);
document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + logCounterInfo;
document.getElementById('bodyContent').appendChild(table);
document.getElementById('bodyContent').appendChild(pagination);
document.getElementById('bodyContent').appendChild(totalElement);
}
function downloadLogCounter(tss) {
var a = 'Paginatitel' + tss + 'Views' + tss + 'Speciale statistiek \n';
for (var x = 0; x < allPages.length; x++){
if (!allPages[x].mPV) {
a += allPages[x].t.replace(/,/g, '.') + tss + (allPages[x].nV) + tss + '0' + tss + '\n';
} else if (!allPages[x].nV) {
a += allPages[x].t.replace(/,/g, '.') + tss + (allPages[x].mPV) + tss + allPages[x].mPV + tss + '\n';
} else {
a += allPages[x].t.replace(/,/g, '.') + tss + (allPages[x].mPV + allPages[x].nV) + tss + allPages[x].mPV + tss + '\n';
}
}
if (parameterLC['date']) {
downloadfile(a, 'Statistieken WikiKids ' + parameterLC['date'] +'.csv', 'csv');
} else {
downloadfile(a, 'Statistieken WikiKids live.csv', 'csv');
}
}
function downloadfile(data, filename, type) {
var file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob)
window.navigator.msSaveOrOpenBlob(file, filename+"." + type);
else {
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
function statsPerPageLogCounter() {
document.title = "Statistieken van een specifiek artikel.";
document.getElementById('bodyContent').innerHTML = 'Wacht... minimaal 10 seconden. Na 20 seconden zonder resultaat kan je deze pagina opnieuw laden. Problemen? <a href="/Overleg gebruiker:Rots61">Graag hier melden.</a> ';
var allHistoryPages;
var request = new XMLHttpRequest();
// Geeft alle subpagina's van User:Rots/Statistieken/. /StatisiekenExtra doet dus niet mee
request.open('GET', 'https://wikikids.nl/api.php?action=query&list=allpages&apminsize=100000&apnamespace=2&apprefix=Rots61/Statistieken/&aplimit=500&format=json', false);
request.send(null);
if (request.status === 200) {
allHistoryPages = JSON.parse(request.responseText);
}
allHistoryPages = allHistoryPages.query.allpages;
var tableoutputLC = `<table class="wikitable" id="LogCounterPerPage"><thead><tr><th onclick="sortTable('LogCounterPerPage',0, true)">Rank</th><th onclick="sortTable('LogCounterPerPage',1)">Datum</th><th onclick="sortTable('LogCounterPerPage',2, true)">Aantal bezoekers</th></thead><tbody>`;
requests = new Array(allHistoryPages.length);
searchBarLC = '<div><input type="text" id="lc-searchbar" value=' + parameterLC['page'] +'> <button onclick="searchContainsLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/9/9a/OOjs_UI_indicator_search-ltr.svg" title="Bevat (zoeken)" height="25"></button> <button onclick="searchExactLogCounterButton();"><img src="https://upload.wikimedia.org/wikipedia/commons/8/86/OOjs_UI_icon_articleSearch-ltr.svg" title="Exact (zoeken)" height="25"></button> <button onclick="gotoGeschiedenisVanPagina()"><img src="https://upload.wikimedia.org/wikipedia/commons/2/27/OOjs_UI_icon_history.svg" title="Geschiedenis" height="25">*</button> <small>*Gebruikt veel internetdata </small>'
+ '<div style="float:right;"><div id="reload1" style="display: ' + reload1LCx + ';"><a href="javascript:reload1LC();"><img title="Refresh de gegevens" src="https://upload.wikimedia.org/wikipedia/commons/f/ff/OOjs_UI_icon_reload_flipX.svg" width="50"></a></div><div id="reload2" style="display: ' + reload2LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/9/91/LoadingX.gif" width="50"></div><div id="reload3" style="display: ' + reload3LCx + ';"><img src="https://upload.wikimedia.org/wikipedia/commons/f/f6/OOjs_UI_icon_check-constructive.svg" width="50"></a></div></div></div>'
+ '<div><img src="https://upload.wikimedia.org/wikipedia/commons/8/8b/OOjs_UI_icon_download.svg" title="height="25"> <button onclick="downloadLogCounter(\';\');"><b>;</b></button> <button onclick="downloadLogCounter(\',\');"><b>,</b></button></button>';
setTimeout(function () {
for (let i = 0; i < allHistoryPages.length; i++) {
requests[i] = new XMLHttpRequest();
requests[i].open("GET", "https://wikikids.nl/" + allHistoryPages[i]['title'] + '?action=raw');
requests[i].onload = function() {
var datainfo = JSON.parse(requests[i].responseText);
var result;
for (var y = 0; y < datainfo.length; y++) {
if (datainfo[y]['t'].toLowerCase() === parameterLC['page'].replace(/ /g, '_').toLowerCase()) {
result = datainfo[y];
result['Rank'] = y + 1;
break;
}
}
if (result) {
var totaalViews;
if (!result.nV) { // bij een gedeelte van de opgeslagen data, wordt nV of mPV leeggelaten, dit zorgt ervoor dat het juist wordt weergegeven. Dit is alleen nodig bij een voorgaande versie. Bij huidige versies worden alles gewoon doorgegeven.
totaalViews = result.mPV;
} else if (!result.mPV) {
totaalViews = result.nV;
} else {
totaalViews = result.nV + result.mPV;
}
tableoutputLC += `<tr><td>${result['Rank']}</td><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}">${allHistoryPages[i]['title'].slice(-8)}</a></td><td>${totaalViews}</td></tr>`;
} else {
tableoutputLC += `<tr><td></td><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}">${allHistoryPages[i]['title'].slice(-8)}</a></td><td>0</td></tr>`;
}
};
requests[i].send();
}
document.getElementsByTagName("h1")[0].textContent = "Speciaal:" + mw.config.get('wgTitle');
document.title = "Pagina specifieke statistieken - WikiKids";
infotext = `Specifieke statistieken voor <a href="/${parameterLC['page']}">${parameterLC['page'].replace(/_/g, ' ')}</a>. <br>Indien niet alle weken zijn ingeladen, herlaad de pagina dan. Helpt dat nog steeds niet? <a href="/Overleg gebruiker:Rots61">Meld dit hier.</a> <br>
Voor 20230306 (week 9) telden bots ook mee in de statistieken. Hierdoor kan het zijn dat de statistieken daarvoor hoger zijn dan het daadwerkelijke aantal bezoekers. `;
setTimeout( function () {
document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + infotext + tableoutputLC + '</tbody></table>';
sortTable('LogCounterPerPage',1);
}, 4000);
}, 500);
}
function getPagesLogCounter() {
var request = new XMLHttpRequest();
request.open('GET', urlLogCounter, false);
request.send(null);
if (request.status === 200) {
pages = JSON.parse(request.responseText);
}
// hernoemen alle keys zodat het later makkelijker gaat
if (!historyLogCounter) {
for (var x = 0; x < pages.length; x++) {
renamekey('uA','updatedAt', x);
renamekey('mPV', 'mainPageVisitors', x);
renamekey('nV','normalVisitors', x);
renamekey('t','title', x);
}
}
fullPages = pages;
// Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors)
if (infoHistory.Doublerequest) {
pages.sort(function (a, b) {
return b.nV + b.nV - a.nV - a.nV;
});
} else {
pages.sort(function (a, b) {
return b.nV + b.mPV - a.nV - a.mPV;
});
}
//Filter percentmax, percentmin, aantalmax, aantalmin, only
if (parameterLC['checkrules']) {
for (var y=0; y < pages.length; y++) {
pages[y].mPV = pages[y].mPV ? pages[y].mPV : 0;
pages[y].nV = pages[y].nV ? pages[y].nV : 0;
if (infoHistory.Doublerequest) {
console.log('Percent');
procent = (100/pages[y].nV)*pages[y].mPV;
if (procent === Infinity) {
procent = 100;
}
} else {
procent = (100/(pages[y].nV + pages[y].mPV))*pages[y].mPV; // 50
}
if (procent <= parameterLC['percentmax']) { // 60 <= 70 true // 50 <= 50 true
if (procent >= parameterLC['percentmin'] || parameterLC['percentmin'] === null) { // 60 >= 50 true //50 <= 0 true
pages[y].filterShow = 'colored'; // kleuren
}
}
if (pages[y].nV + pages[y].mPV > parameterLC['aantalmax']) { //50 >= 100; 1 >= 1
pages[y].filterShow = undefined;
} else if (pages[y].nV + pages[y].mPV < parameterLC['aantalmin']) { // 50 <= 0
pages[y].filterShow = undefined;
}
if (parameterLC['only']) {
if (pages[y].filterShow !== 'colored') {
pages.splice(y, 1);
y = y-1;
}
}
}
}
if (document.getElementById('reload2')) {
setTimeout( function () {
document.getElementById('reload1').style.display = 'none';
document.getElementById('reload2').style.display = 'none';
document.getElementById('reload3').style.display = '';
reload1LCx = 'none';
reload2LCx = 'none';
reload3LCx = '';
setTimeout(function () {document.getElementById('reload3').style.display = 'none'; document.getElementById('reload1').style.display = ''; reload1LCx = ''; reload2LCx = 'none'; reload3LCx = 'none';}, 2500);
}, 1000);
} else {
setTimeout(function () {
if (document.getElementById('reload2')) {
document.getElementById('reload1').style.display = 'none';
document.getElementById('reload2').style.display = 'none';
document.getElementById('reload3').style.display = '';
reload1LCx = 'none';
reload2LCx = 'none';
reload3LCx = '';
setTimeout(function () {document.getElementById('reload3').style.display = 'none'; document.getElementById('reload1').style.display = ''; reload1LCx = ''; reload2LCx = 'none'; reload3LCx = 'none'}, 2500);
}
}, 2500);
}
return pages;
}
function gotoGeschiedenisVanPagina(){
parameterLC = {};
parameterLC['page'] = document.getElementById('lc-searchbar').value.replace(/ /g, '_');
changeURL();
startLC();
}
function searchContainsLogCounterButton() {
searchQuery = document.getElementById('lc-searchbar').value.replace(/ /g, '_');
parameterLC['exactzoeken'] = undefined;
parameterLC['action'] = undefined;
parameterLC['page'] = undefined;
parameterLC['pagenr'] = 1;
parameterLC['bevatzoeken'] = searchQuery;
changeURL();
startLC();
}
function searchContainsLogCounter(searchQuery) {
if (!searchQuery) {
searchQuery = parameterLC['bevatzoeken'];
}
var searchResult = [];
for (var i = 0; i < allPages.length; i++) {
if (allPages[i]['t'].toLowerCase().includes(searchQuery.toLowerCase())) {
searchResult.push(allPages[i]);
}
}
setTimeout(function () {
if (!searchResult.length) {
var printToScreen = '<br>Er is geen pagina die <a href="https://wikikids.nl/Speciaal:Zoeken/' + searchQuery + '">' + searchQuery + '</a> bevat, en die in deze periode views heeft ontvangen.'
+ 'Kijk voor meer <a href="https://wikikids.nl/WikiKids:Statistieken">informatie op deze pagina</a>.';
document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + printToScreen;
} else {
console.log(searchResult);
showProjectLogCounter(searchResult, searchQuery);
}
}, 750);
}
function searchExactLogCounterButton() {
searchQuery = document.getElementById('lc-searchbar').value.replace(/ /g, '_');
parameterLC['bevatzoeken'] = undefined;
parameterLC['action'] = undefined;
parameterLC['page'] = undefined;
parameterLC['pagenr'] = 1;
parameterLC['exactzoeken'] = searchQuery;
changeURL();
startLC();
}
function searchExactLogCounter(searchQuery) {
if (!searchQuery) {
searchQuery = parameterLC['exactzoeken'];
}
var searchResult = [];
for (var i = 0; i < allPages.length; i++) {
if (allPages[i]['t'].toLowerCase() === searchQuery.toLowerCase()) {
searchResult.push(allPages[i]);
}
}
setTimeout(function () {
if (!searchResult.length) {
var printToScreen = '<br>De pagina <a href="https://wikikids.nl/' + searchQuery + '">' + searchQuery + '</a> heeft geen views ontvangen, voldoet niet aan het ingestelde filter of bestaat niet. ';
document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + searchBarLC + printToScreen;
} else {
console.log(searchResult);
showProjectLogCounter(searchResult, searchQuery);
}
}, 750);
}
function getInfoPageLogCounter(urlInfoLogCounter) {
var infoHistorytemp;
var request = new XMLHttpRequest();
request.open('GET', urlInfoLogCounter, false);
request.send(null);
if (request.status === 200) {
infoHistorytemp = JSON.parse(request.responseText);
}
return infoHistorytemp;
}
function tabelLogCounter() {
var allHistoryPages;
var request = new XMLHttpRequest();
// Geeft alle subpagina's van User:Rots61/Statistieken, /StatistiekenExtra doet dus mee
request.open('GET', 'https://wikikids.nl/api.php?action=query&list=allpages&apminsize=100000&apnamespace=2&apprefix=Rots61/Statistieken&aplimit=500&format=json', false);
request.send(null);
if (request.status === 200) {
allHistoryPages = JSON.parse(request.responseText);
}
allHistoryPages = allHistoryPages.query.allpages;
var tableoutputLC = `<table class="wikitable" id="LogCounterHistory"><thead><tr><th onclick="sortTable('LogCounterHistory',0)">Link</th><th onclick="sortTable('LogCounterHistory',1)">Datum</th><th onclick="sortTable('LogCounterHistory',2, true)">Aantal bezoekers</th><th onclick="sortTable('LogCounterHistory',3, true)">Aantal pagina's</th><th onclick="sortTable('LogCounterHistory',4)">Extra informatie</th></tr></thead><tbody>
<tr><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids">Live</a></td><td>Sinds zaterdag</td><td>0</td><td>0</td></tr>`;
requests = new Array(allHistoryPages.length);
setTimeout(function () {
for (let i = 0; i < allHistoryPages.length; i++) {
var url = "https://wikikids.nl/" + allHistoryPages[i]['title'] + '/info?action=raw';
requests[i] = new XMLHttpRequest();
requests[i].open("GET", url);
requests[i].onload = function() {
var datainfo = JSON.parse(requests[i].responseText);
tableoutputLC += `<tr><td><a href="https://wikikids.nl/Special:Statistieken_WikiKids?date=${allHistoryPages[i]['title'].slice(-8)}${allHistoryPages[i]['specialeweek'] ? '&specialeweek=true' : ''}">${datainfo['Jaar-Week']}</a></td>`;
var xStarttime = new Date(datainfo.Starttime);
var xEndtime = new Date(datainfo.Endtime);
var firstDateString = addZero(xStarttime.getDate()) + "-" + addZero((xStarttime.getMonth() + 1)) + "-" + xStarttime.getFullYear() + " " + addZero(xStarttime.getHours()) + ":" + addZero(xStarttime.getMinutes());
var lastDateString = addZero(xEndtime.getDate()) + "-" + addZero((xEndtime.getMonth() + 1)) + "-" + xEndtime.getFullYear() + " " + addZero(xEndtime.getHours()) + ":" + addZero(xEndtime.getMinutes());
tableoutputLC += `<td>van ${firstDateString} tot ${lastDateString}</td><td>${datainfo.Totalviews}</td><td>${datainfo.Totalpages}</td><td><a href="/WikiKids:Statistieken#${datainfo.Types.replace(/ /g, '_')}">${datainfo.Types}</a></td></tr>`;
};
requests[i].send();
}
document.getElementsByTagName("h1")[0].textContent = "Speciaal:" + mw.config.get('wgTitle');
document.title = "Voorgaande statistieken - WikiKids";
infotext = 'Elke zaterdag worden, rond 6 uur, de statistieken opnieuw ingesteld. Een week loopt dus van zaterdag tot zaterdag. Het real-time registreren van de bezoekers wordt mogelijk gemaakt door MakiBoy. Voor vragen kun je terecht bij MakiBoy of Rots61. <br>'
+ 'Deze lijst wordt automatisch bijgewerkt, zodat alle vorige statistieken worden getoont. <br>';
setTimeout( function () {
tableoutputLC += '</tbody></table>';
document.getElementById('bodyContent').innerHTML = terugnaarlogcounter + infotext + tableoutputLC;
sortTable('LogCounterHistory',0);
}, 500);
}, 500);
}
function changeURL(){
var urlPath = '/Speciaal:Statistieken WikiKids?';
if (parameterLC['rows']) {
if (parameterLC['rows'] !== 25) {
urlPath += 'rows=' + parameterLC['rows'] + '&';
}
}
if (parameterLC['action']) {
urlPath += 'action=' + parameterLC['action'] + '&';
}
if (parameterLC['date']) {
urlPath += 'date=' + parameterLC['date'] + '&';
}
if (parameterLC['page']) {
urlPath += 'page=' + parameterLC['page'] + '&';
}
if (parameterLC['pagenr']) {
if (parameterLC['pagenr'] < 1 || (parameterLC['pagenr'] > Math.ceil(allPages.length / parameterLC['rows']) || parameterLC['pagenr'] === 1)) {
parameterLC['pagenr'] = 1;
} else {
urlPath += 'pagenr=' + parameterLC['pagenr'] + '&';
}
}
if (parameterLC['percentmin']) {
if (parameterLC['percentmin'] !== -1) {
urlPath += 'percentmin=' + parameterLC['percentmin'] + '&';
}
}
if (parameterLC['percentmax']) {
if (parameterLC['percentmax'] !== 100) {
urlPath += 'percentmax=' + parameterLC['percentmax'] + '&';
}
}
if (parameterLC['only']) {
urlPath += 'only=x&';
}
if (parameterLC['aantalmax']) {
if (parameterLC['aantalmax'] !== Infinity) {
urlPath += 'aantalmax=' + parameterLC['aantalmax'] + '&';
}
}
if (parameterLC['aantalmin']) {
if (parameterLC['aantalmin'] !== 0) {
urlPath += 'aantalmin=' + parameterLC['aantalmin'] + '&';
}
}
if (parameterLC['bevatzoeken']) {
urlPath += 'bevatzoeken=' + parameterLC['bevatzoeken'] + '&';
}
if (parameterLC['exactzoeken']) {
urlPath += 'exactzoeken=' + parameterLC['exactzoeken'] + '&';
}
if (parameterLC['specialeweek']) {
urlPath += 'specialeweek=' + parameterLC['specialeweek'] + '&';
}
if (parameterLC['filterkleur']) {
if (parameterLC['filterkleur'] !== 'lightgreen') {
urlPath += 'filterkleur=' + parameterLC['filterkleur'] + '&';
}
}
urlPath += 'v=1.0';
window.history.pushState("","", urlPath);
//window.history.replaceState("","", urlPath);
}
function reload1LC() {
document.getElementById('reload1').style.display = 'none';
document.getElementById('reload2').style.display = '';
document.getElementById('reload3').style.display = 'none';
reload1LCx = 'none';
reload2LCx = '';
reload3LCx = 'none';
reloadPagesLogCounter();
}
function reloadPagesLogCounter() {
/*
parameterLC['action'] = undefined;
parameterLC['page'] = undefined;
*/
changeURL();
startLC(true);
}
function terugLogCounter(dateparameter, specialeweekparameter) {
parameterLC = {};
if (dateparameter || specialeweekparameter) {
parameterLC['date'] = dateparameter;
parameterLC['specialeweek'] = specialeweekparameter;
changeURL();
startLC();
} else {
changeURL();
startLC(true);
}
}
function sortTable(id, n, getal) {
var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
table = document.getElementById(id);
switching = true;
// Set the sorting direction to ascending:
dir = "asc";
/* Make a loop that will continue until
no switching has been done: */
while (switching) {
// Start by saying: no switching is done:
switching = false;
rows = table.rows;
/* Loop through all table rows (except the
first, which contains table headers): */
for (i = 1; i < (rows.length - 1); i++) {
// Start by saying there should be no switching:
shouldSwitch = false;
/* Get the two elements you want to compare,
one from current row and one from the next: */
x = rows[i].getElementsByTagName("TD")[n];
y = rows[i + 1].getElementsByTagName("TD")[n];
/* Check if the two rows should switch place,
based on the direction, asc or desc: */
if (getal) {
if (dir === "asc") {
if (parseInt(x.innerHTML) > parseInt(y.innerHTML)) {
// If so, mark as a switch and break the loop:
shouldSwitch = true;
break;
}
} else if (dir == "desc") {
if (parseInt(x.innerHTML) < parseInt(y.innerHTML)) {
// If so, mark as a switch and break the loop:
shouldSwitch = true;
break;
}
}
} else {
if (dir == "asc") {
if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
// If so, mark as a switch and break the loop:
shouldSwitch = true;
break;
}
} else if (dir == "desc") {
if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {
// If so, mark as a switch and break the loop:
shouldSwitch = true;
break;
}
}
}
}
if (shouldSwitch) {
/* If a switch has been marked, make the switch
and mark that a switch has been done: */
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
// Each time a switch is done, increase this count by 1:
switchcount++;
} else {
/* If no switching has been done AND the direction is "asc",
set the direction to "desc" and run the while loop again. */
if (switchcount === 0 && dir === "asc") {
dir = "desc";
switching = true;
}
}
}
}
var pages = [];
if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "LogCounter" || (mw.config.get('wgTitle') === "Statistieken Wikikids" || (mw.config.get('wgTitle') === "Statistieken WikiKids" || mw.config.get('wgTitle') === "WikiStats")))) {
var parameterLC = {};
var historyLogCounter, urlLogCounter, allPages, fullPages, terugnaarlogcounter;
// deze variabele regelt wat er bovenin de tabel te zien is als speciale statistiek. Ook regelt hij dingen zoals de dubbele requests. Zodat het goed geregeld kan worden.
var infoHistory = {"Types":"Hele pagina","Doublerequest": true, Live:true};
var reload1LCx = '';
var reload2LCx = 'none';
var reload3LCx = 'none';
mw.loader.using('mediawiki.util', function() {
mw.util.addPortletLink('p-namespaces',
'https://wikikids.nl/index.php?title=Overleg_gebruiker:Rots61&action=edit§ion=new',
'Vragen? ', '#linkNaarOverlegPaginaR61', "Vragen over de statistieken");
});
mw.loader.using('mediawiki.util', function() {
mw.util.addPortletLink('p-namespaces',
'https://wikikids.nl/WikiKids:Statistieken',
'Info ', '#linkNaarWKStatistieken', "Informatie over de statistieken");
}); $.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () {
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-LogCounter">Script gemaakt door <a href="/User:MakiBoy" title="Gebruiker:MakiBoy">MakiBoy</a> en <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a>, versie: ' + version + '</li>';
});
startLC(true, 'first');
}
function startLC(reloadlc, firsttime) {
parameterLC['rows'] = mw.util.getParamValue('rows') ? mw.util.getParamValue('rows') : 25;
parameterLC['action'] = mw.util.getParamValue('action');
parameterLC['date'] = mw.util.getParamValue('date');
parameterLC['page'] = mw.util.getParamValue('page');
parameterLC['pagenr'] = mw.util.getParamValue('pagenr') ? mw.util.getParamValue('pagenr') : 1;
parameterLC['bevatzoeken'] = mw.util.getParamValue('bevatzoeken');
parameterLC['exactzoeken'] = mw.util.getParamValue('exactzoeken');
parameterLC['specialeweek'] = mw.util.getParamValue('specialeweek');
parameterLC['filterkleur'] = mw.util.getParamValue('filterkleur') ? mw.util.getParamValue('filterkleur') : 'lightgreen';
parameterLC['percentmin'] = mw.util.getParamValue('percentmin') ? mw.util.getParamValue('percentmin') : -1;
parameterLC['percentmax'] = mw.util.getParamValue('percentmax') ? mw.util.getParamValue('percentmax') : 100;
parameterLC['only'] = mw.util.getParamValue('only');
parameterLC['aantalmax'] = mw.util.getParamValue('aantalmax') ? mw.util.getParamValue('aantalmax') : Infinity;
parameterLC['aantalmin'] = mw.util.getParamValue('aantalmin') ? mw.util.getParamValue('aantalmin') : 0;
parameterLC['checkrules'] = mw.util.getParamValue('aantalmin') + mw.util.getParamValue('aantalmax') + mw.util.getParamValue('only') + mw.util.getParamValue('percentmax') + mw.util.getParamValue('percentmin');
// zorgt ervoor dat er bovenin een link terug verwijst naar de basisinstellingen van de logcounter.
terugnaarlogcounter = '<div id="contentSub"><span class="subpages">< <a href="javascript:terugLogCounter();" title="Speciaal:Statistieken WikiKids">Speciaal:Statistieken WikiKids</a>';
if (parameterLC['date']) {
terugnaarlogcounter += ' | <a href="javascript:terugLogCounter(' + parameterLC['date'];
if (parameterLC['specialeweek']) {
terugnaarlogcounter += ', true';
}
terugnaarlogcounter += ');" title="Speciaal:Statistieken/' + parameterLC['date'] + '">' + parameterLC['date'] + '</a>';
}
terugnaarlogcounter += '</span></div>';
if (parameterLC['date']) {
if (parameterLC['specialeweek']) {
urlLogCounter = 'https://wikikids.nl/User:Rots61/StatistiekenExtra/' + parameterLC['date'] + '?action=raw';
infoHistory = getInfoPageLogCounter('https://wikikids.nl/User:Rots61/StatistiekenExtra/' + parameterLC['date'] + '/info?action=raw');
} else {
urlLogCounter = 'https://wikikids.nl/User:Rots61/Statistieken/' + parameterLC['date'] + '?action=raw';
infoHistory = getInfoPageLogCounter('https://wikikids.nl/User:Rots61/Statistieken/' + parameterLC['date'] + '/info?action=raw');
}
historyLogCounter = true;
} else {
urlLogCounter = 'https://wikikids.martvanweeghel.nl/pages';
historyLogCounter = false;
}
if (firsttime) {
allPages = getPagesLogCounter();
changeURL();
}
if (parameterLC['action'] === 'tabel') {
tabelLogCounter();
} else if (parameterLC['page']) { // Views voor een pagina, de hele tijd;
statsPerPageLogCounter();
} else {
if (firsttime) {
} else if (reloadlc) {
allPages = getPagesLogCounter();
} else {
allPages = fullPages;
}
if (parameterLC['bevatzoeken']) {
searchContainsLogCounter(parameterLC['bevatzoeken']);
} else if (parameterLC['exactzoeken']) {
searchExactLogCounter(parameterLC['exactzoeken']);
} else {
showProjectLogCounter(allPages, '');
}
}
}
if (!mw.storage.get('disableLoggingLC')) {
mw.storage.set('disableLoggingLC', true, 86400);
}
if (mw.config.get('wgNamespaceNumber') === 0 || mw.config.get('wgNamespaceNumber') === 100) {
mw.loader.using('mediawiki.util', function() {
mw.util.addPortletLink('p-cactions',
'https://wikikids.nl/Speciaal:Statistieken_WikiKids?page=' + encodeURIComponent(mw.config.get('wgPageName')),
'Statistieken* ', '#GeschiedenisStats', "Statistieken van " + mw.config.get('wgPageName'));
});
}
function renamekey(new_key, old_key, x){
Object.defineProperty(pages[x], new_key,
Object.getOwnPropertyDescriptor(pages[x], old_key));
delete pages[x][old_key];
}