Difference between revisions of "User:Fbstj/gadget/history-test.js"
Jump to navigation
Jump to search
m (put it outside the wrapping H2) |
m (moved to MediaWiki:Group-keeper.js) |
||
Line 36: | Line 36: | ||
}) |
}) |
||
− | |||
− | /* 2018-09-16 display Arcanum entry on Cite:Arcanum-X page */ |
||
− | $(function () { |
||
− | // check that it's an Arcanum page |
||
− | const page_name = mw.config.get('wgPageName'); |
||
− | if (!page_name.startsWith('Cite:Arcanum-')) return; |
||
− | // work out the api url |
||
− | const entry = page_name.split('-')[1]; |
||
− | const url = 'https://wob.coppermind.net/api/entry/'+ entry +'/'; |
||
− | // start fetching from Arcanum |
||
− | console.log('fetching '+ url); |
||
− | fetch(url) |
||
− | .then(function(resp) { return resp.json() }) |
||
− | .then(function(json) { |
||
− | // debugging: |
||
− | console.log('Entry '+ entry, json); |
||
− | // create containing element |
||
− | const entry_el = document.createElement('article'); |
||
− | entry_el.classList.add('arcanum-entry'); |
||
− | // add lines |
||
− | json.lines.forEach(function(line) { |
||
− | // create speaker element |
||
− | const speaker = document.createElement('h4'); |
||
− | speaker.innerText = line.speaker; |
||
− | // append the speaker and html from the line |
||
− | entry_el.appendChild(speaker); |
||
− | entry_el.innerHTML += line.text; |
||
− | }); |
||
− | // place container on page |
||
− | const users_el = document.getElementById('Users').parentElement |
||
− | users_el.parentElement.insertBefore(entry_el, users_el); |
||
− | }); |
||
− | }); |
Revision as of 13:23, 16 September 2018
/* Add edit link to templates */ $(function () { function add_editsection_link(box) { if (!box.id) return; // FIXME: what does this do? const id = box.id.replace(/\.(\d+)/, '%$1') // generate an edit link const el = make_editsection_link('/edit/Template:'+ id) // get the title element const title = box.querySelector('.title') title.appendChild(el) } document.querySelectorAll('.infobox,.navbar').forEach(add_editsection_link) function enable_link(el) { el.style['pointer-events'] = 'auto' } document.querySelectorAll('.patrollink').forEach(enable_link) // move notices above indicators while (true) { const edit_box = document.querySelector('.editButtons') if (!!edit_box) break if (location.search != '') break var el = document.querySelector('.infobox+.notice') if (!el) { // check first child of #mw-content-text is a notice const txt = document.querySelector('#mw-content-text') if (txt.firstElementChild.classList.contains('notice')) el = txt.firstElementChild } if (!el) break const ind = document.querySelector('.mw-indicators') ind.parentElement.insertBefore(el, ind) } })