User:Eejit43/scripts/displaytitle-editor.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// <nowiki>
// Note: This script was compiled and minified from TypeScript. For a more readable version, see https://github.com/Eejit43/wikipedia-scripts/blob/main/scripts/displaytitle-editor.ts

"use strict";mw.loader.using(["mediawiki.util","oojs-ui-core","oojs-ui.styles.icons-editing-core"],()=>{if(mw.config.get("wgNamespaceNumber")<0||!mw.config.get("wgIsProbablyEditable"))return;mw.util.addCSS(`
#displaytitle-edit-button {
    margin-right: 0;
    margin-left: 3px;
    font-size: 15px;
}

#displaytitle-edit-box {
    display: inline-block;
    ${mw.config.get("skin")==="modern"?"margin-top: 2px;":""}
    margin-bottom: 2px;
    width: 200px;
    max-width: 200px;
    font-size: 15px;
}`),mw.config.get("skin")==="modern"&&mw.util.addCSS(`
#mw_header {
    height: 2.5em;
}

#p-personal {
    top: 2.5em;
}

#mw_main {
    margin-top: 4em;
}`);const i=new OO.ui.ButtonWidget({icon:"edit",framed:!1,id:"displaytitle-edit-button"});i.on("click",async()=>{i.setDisabled(!0),mw.config.get("skin")==="modern"&&mw.util.addCSS(`
#mw_header {
    height: 3em;
}

#p-personal {
    top: 3em;
}

#mw_main {
    margin-top: 4.5em;
}`);const s=mw.config.get("wgPageName").replaceAll("_"," "),e=new OO.ui.TextInputWidget({placeholder:s,id:"displaytitle-edit-box"});e.on("enter",async()=>{e.setDisabled(!0),e.pushPending(),await new mw.Api().edit(mw.config.get("wgPageName"),a=>{const t=a.content.replaceAll(/{{\s*displaytitle\s*:\s*(.*?)\s*}}\n?/gi,"");if(!e.getValue()||e.getValue().replaceAll("_"," ")===s)return{text:t,summary:"Removing DISPLAYTITLE (via [[User:Eejit43/scripts/displaytitle-editor|script]])"};const o=t===a.content;return/{{short description/i.test(t)?{text:t.replace(/{{short description(.*?)}}/i,`{{short description$1}}
{{DISPLAYTITLE:${e.getValue()}}}`),summary:`${o?"Adding DISPLAYTITLE of":"Changing DISPLAYTITLE to"} "${e.getValue()}" (via [[User:Eejit43/scripts/displaytitle-editor|script]])`}:{text:`{{DISPLAYTITLE:${e.getValue()}}}
${t}`,summary:`${o?"Adding DISPLAYTITLE of":"Changing DISPLAYTITLE to"} "${e.getValue()}" (via [[User:Eejit43/scripts/displaytitle-editor|script]])`}}),mw.notify("Successfully updated DISPLAYTITLE, reloading...",{type:"success"}),window.location.reload()}),e.setDisabled(!0),e.pushPending(),i.$element[0].after(e.$element[0]);const n=(await new mw.Api().get({action:"query",formatversion:"2",prop:"revisions",rvprop:"content",rvslots:"main",titles:mw.config.get("wgPageName")})).query.pages[0].revisions[0].slots.main.content.match(/{{\s*displaytitle\s*:\s*(.*?)\s*}}/gi);n&&e.setValue(n.at(-1).replace(/{{\s*displaytitle\s*:\s*(.*?)\s*}}/i,"$1")),e.setDisabled(!1),e.popPending()}),document.querySelector("#firstHeading")?.append(i.$element[0])});

// </nowiki>
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc2NyaXB0cy9kaXNwbGF5dGl0bGUtZWRpdG9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBBcGlRdWVyeVJldmlzaW9uc1BhcmFtcyB9IGZyb20gJ3R5cGVzLW1lZGlhd2lraS9hcGlfcGFyYW1zJztcbmltcG9ydCB7IFBhZ2VSZXZpc2lvbnNSZXN1bHQgfSBmcm9tICcuLi9nbG9iYWwtdHlwZXMnO1xuXG5tdy5sb2FkZXIudXNpbmcoWydtZWRpYXdpa2kudXRpbCcsICdvb2pzLXVpLWNvcmUnLCAnb29qcy11aS5zdHlsZXMuaWNvbnMtZWRpdGluZy1jb3JlJ10sICgpID0+IHtcbiAgICBpZiAobXcuY29uZmlnLmdldCgnd2dOYW1lc3BhY2VOdW1iZXInKSA8IDApIHJldHVybjsgLy8gRG9uJ3QgcnVuIGluIHZpcnR1YWwgbmFtZXNwYWNlc1xuICAgIGlmICghbXcuY29uZmlnLmdldCgnd2dJc1Byb2JhYmx5RWRpdGFibGUnKSkgcmV0dXJuOyAvLyBEb24ndCBydW4gaWYgdXNlciBjYW4ndCBlZGl0IHBhZ2VcblxuICAgIG13LnV0aWwuYWRkQ1NTKGBcbiNkaXNwbGF5dGl0bGUtZWRpdC1idXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuI2Rpc3BsYXl0aXRsZS1lZGl0LWJveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICR7bXcuY29uZmlnLmdldCgnc2tpbicpID09PSAnbW9kZXJuJyA/ICdtYXJnaW4tdG9wOiAycHg7JyA6ICcnfVxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG59YCk7XG5cbiAgICBpZiAobXcuY29uZmlnLmdldCgnc2tpbicpID09PSAnbW9kZXJuJylcbiAgICAgICAgbXcudXRpbC5hZGRDU1MoYFxuI213X2hlYWRlciB7XG4gICAgaGVpZ2h0OiAyLjVlbTtcbn1cblxuI3AtcGVyc29uYWwge1xuICAgIHRvcDogMi41ZW07XG59XG5cbiNtd19tYWluIHtcbiAgICBtYXJnaW4tdG9wOiA0ZW07XG59YCk7XG5cbiAgICBjb25zdCBlZGl0QnV0dG9uID0gbmV3IE9PLnVpLkJ1dHRvbldpZGdldCh7IGljb246ICdlZGl0JywgZnJhbWVkOiBmYWxzZSwgaWQ6ICdkaXNwbGF5dGl0bGUtZWRpdC1idXR0b24nIH0pO1xuICAgIGVkaXRCdXR0b24ub24oJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBlZGl0QnV0dG9uLnNldERpc2FibGVkKHRydWUpO1xuXG4gICAgICAgIGlmIChtdy5jb25maWcuZ2V0KCdza2luJykgPT09ICdtb2Rlcm4nKVxuICAgICAgICAgICAgbXcudXRpbC5hZGRDU1MoYFxuI213X2hlYWRlciB7XG4gICAgaGVpZ2h0OiAzZW07XG59XG5cbiNwLXBlcnNvbmFsIHtcbiAgICB0b3A6IDNlbTtcbn1cblxuI213X21haW4ge1xuICAgIG1hcmdpbi10b3A6IDQuNWVtO1xufWApO1xuXG4gICAgICAgIGNvbnN0IGFjdHVhbFRpdGxlID0gbXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLnJlcGxhY2VBbGwoJ18nLCAnICcpO1xuXG4gICAgICAgIGNvbnN0IGVkaXRCb3ggPSBuZXcgT08udWkuVGV4dElucHV0V2lkZ2V0KHsgcGxhY2Vob2xkZXI6IGFjdHVhbFRpdGxlLCBpZDogJ2Rpc3BsYXl0aXRsZS1lZGl0LWJveCcgfSk7XG4gICAgICAgIGVkaXRCb3gub24oJ2VudGVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgZWRpdEJveC5zZXREaXNhYmxlZCh0cnVlKTtcbiAgICAgICAgICAgIGVkaXRCb3gucHVzaFBlbmRpbmcoKTtcblxuICAgICAgICAgICAgYXdhaXQgbmV3IG13LkFwaSgpLmVkaXQobXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLCAocmV2aXNpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gcmV2aXNpb24uY29udGVudC5yZXBsYWNlQWxsKC97e1xccypkaXNwbGF5dGl0bGVcXHMqOlxccyooLio/KVxccyp9fVxcbj8vZ2ksICcnKTtcblxuICAgICAgICAgICAgICAgIGlmICghZWRpdEJveC5nZXRWYWx1ZSgpIHx8IGVkaXRCb3guZ2V0VmFsdWUoKS5yZXBsYWNlQWxsKCdfJywgJyAnKSA9PT0gYWN0dWFsVGl0bGUpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHRleHQsIHN1bW1hcnk6ICdSZW1vdmluZyBESVNQTEFZVElUTEUgKHZpYSBbW1VzZXI6RWVqaXQ0My9zY3JpcHRzL2Rpc3BsYXl0aXRsZS1lZGl0b3J8c2NyaXB0XV0pJyB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNBZGRlZCA9IHRleHQgPT09IHJldmlzaW9uLmNvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gL3t7c2hvcnQgZGVzY3JpcHRpb24vaS50ZXN0KHRleHQpXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0LnJlcGxhY2UoL3t7c2hvcnQgZGVzY3JpcHRpb24oLio/KX19L2ksIGB7e3Nob3J0IGRlc2NyaXB0aW9uJDF9fVxcbnt7RElTUExBWVRJVExFOiR7ZWRpdEJveC5nZXRWYWx1ZSgpfX19YCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IGAke2lzQWRkZWQgPyAnQWRkaW5nIERJU1BMQVlUSVRMRSBvZicgOiAnQ2hhbmdpbmcgRElTUExBWVRJVExFIHRvJ30gXCIke2VkaXRCb3guZ2V0VmFsdWUoKX1cIiAodmlhIFtbVXNlcjpFZWppdDQzL3NjcmlwdHMvZGlzcGxheXRpdGxlLWVkaXRvcnxzY3JpcHRdXSlgLFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGB7e0RJU1BMQVlUSVRMRToke2VkaXRCb3guZ2V0VmFsdWUoKX19fVxcbiR7dGV4dH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiBgJHtpc0FkZGVkID8gJ0FkZGluZyBESVNQTEFZVElUTEUgb2YnIDogJ0NoYW5naW5nIERJU1BMQVlUSVRMRSB0byd9IFwiJHtlZGl0Qm94LmdldFZhbHVlKCl9XCIgKHZpYSBbW1VzZXI6RWVqaXQ0My9zY3JpcHRzL2Rpc3BsYXl0aXRsZS1lZGl0b3J8c2NyaXB0XV0pYCxcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG13Lm5vdGlmeSgnU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgRElTUExBWVRJVExFLCByZWxvYWRpbmcuLi4nLCB7IHR5cGU6ICdzdWNjZXNzJyB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVkaXRCb3guc2V0RGlzYWJsZWQodHJ1ZSk7XG4gICAgICAgIGVkaXRCb3gucHVzaFBlbmRpbmcoKTtcblxuICAgICAgICBlZGl0QnV0dG9uLiRlbGVtZW50WzBdLmFmdGVyKGVkaXRCb3guJGVsZW1lbnRbMF0pO1xuXG4gICAgICAgIGNvbnN0IHBhZ2VDb250ZW50ID0gKFxuICAgICAgICAgICAgKGF3YWl0IG5ldyBtdy5BcGkoKS5nZXQoe1xuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3F1ZXJ5JyxcbiAgICAgICAgICAgICAgICBmb3JtYXR2ZXJzaW9uOiAnMicsXG4gICAgICAgICAgICAgICAgcHJvcDogJ3JldmlzaW9ucycsXG4gICAgICAgICAgICAgICAgcnZwcm9wOiAnY29udGVudCcsXG4gICAgICAgICAgICAgICAgcnZzbG90czogJ21haW4nLFxuICAgICAgICAgICAgICAgIHRpdGxlczogbXcuY29uZmlnLmdldCgnd2dQYWdlTmFtZScpLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMpKSBhcyBQYWdlUmV2aXNpb25zUmVzdWx0XG4gICAgICAgICkucXVlcnkucGFnZXNbMF0ucmV2aXNpb25zWzBdLnNsb3RzLm1haW4uY29udGVudDtcblxuICAgICAgICBjb25zdCBmb3VuZE1hZ2ljV29yZHMgPSBwYWdlQ29udGVudC5tYXRjaCgve3tcXHMqZGlzcGxheXRpdGxlXFxzKjpcXHMqKC4qPylcXHMqfX0vZ2kpO1xuICAgICAgICBpZiAoZm91bmRNYWdpY1dvcmRzKSBlZGl0Qm94LnNldFZhbHVlKGZvdW5kTWFnaWNXb3Jkcy5hdCgtMSkhLnJlcGxhY2UoL3t7XFxzKmRpc3BsYXl0aXRsZVxccyo6XFxzKiguKj8pXFxzKn19L2ksICckMScpKTtcblxuICAgICAgICBlZGl0Qm94LnNldERpc2FibGVkKGZhbHNlKTtcbiAgICAgICAgZWRpdEJveC5wb3BQZW5kaW5nKCk7XG4gICAgfSk7XG5cbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZmlyc3RIZWFkaW5nJyk/LmFwcGVuZChlZGl0QnV0dG9uLiRlbGVtZW50WzBdKTtcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7O2FBR0EsR0FBRyxPQUFPLE1BQU0sQ0FBQyxpQkFBa0IsZUFBZ0IsbUNBQW1DLEVBQUcsSUFBTSxDQUUzRixHQURJLEdBQUcsT0FBTyxJQUFJLG1CQUFtQixFQUFJLEdBQ3JDLENBQUMsR0FBRyxPQUFPLElBQUksc0JBQXNCLEVBQUcsT0FFNUMsR0FBRyxLQUFLLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFTYixHQUFHLE9BQU8sSUFBSSxNQUFNLElBQU0sU0FBVyxtQkFBcUIsRUFBRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLaEUsRUFFTSxHQUFHLE9BQU8sSUFBSSxNQUFNLElBQU0sVUFDMUIsR0FBRyxLQUFLLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV3JCLEVBRUUsTUFBTUEsRUFBYSxJQUFJLEdBQUcsR0FBRyxhQUFhLENBQUUsS0FBTSxPQUFRLE9BQVEsR0FBTyxHQUFJLDBCQUEyQixDQUFDLEVBQ3pHQSxFQUFXLEdBQUcsUUFBUyxTQUFZLENBQy9CQSxFQUFXLFlBQVksRUFBSSxFQUV2QixHQUFHLE9BQU8sSUFBSSxNQUFNLElBQU0sVUFDMUIsR0FBRyxLQUFLLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV3pCLEVBRU0sTUFBTUMsRUFBYyxHQUFHLE9BQU8sSUFBSSxZQUFZLEVBQUUsV0FBVyxJQUFLLEdBQUcsRUFFN0RDLEVBQVUsSUFBSSxHQUFHLEdBQUcsZ0JBQWdCLENBQUUsWUFBYUQsRUFBYSxHQUFJLHVCQUF3QixDQUFDLEVBQ25HQyxFQUFRLEdBQUcsUUFBUyxTQUFZLENBQzVCQSxFQUFRLFlBQVksRUFBSSxFQUN4QkEsRUFBUSxZQUFZLEVBRXBCLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxLQUFLLEdBQUcsT0FBTyxJQUFJLFlBQVksRUFBSUMsR0FBYSxDQUMvRCxNQUFNQyxFQUFPRCxFQUFTLFFBQVEsV0FBVywwQ0FBMkMsRUFBRSxFQUV0RixHQUFJLENBQUNELEVBQVEsU0FBUyxHQUFLQSxFQUFRLFNBQVMsRUFBRSxXQUFXLElBQUssR0FBRyxJQUFNRCxFQUNuRSxNQUFPLENBQUUsS0FBQUcsRUFBTSxRQUFTLGlGQUFrRixFQUU5RyxNQUFNQyxFQUFVRCxJQUFTRCxFQUFTLFFBRWxDLE1BQU8sdUJBQXVCLEtBQUtDLENBQUksRUFDakMsQ0FDSSxLQUFNQSxFQUFLLFFBQVEsOEJBQStCO0FBQUEsaUJBQTJDRixFQUFRLFNBQVMsQ0FBQyxJQUFJLEVBQ25ILFFBQVMsR0FBR0csRUFBVSx5QkFBMkIsMEJBQTBCLEtBQUtILEVBQVEsU0FBUyxDQUFDLDZEQUN0RyxFQUNBLENBQ0ksS0FBTSxrQkFBa0JBLEVBQVEsU0FBUyxDQUFDO0FBQUEsRUFBT0UsQ0FBSSxHQUNyRCxRQUFTLEdBQUdDLEVBQVUseUJBQTJCLDBCQUEwQixLQUFLSCxFQUFRLFNBQVMsQ0FBQyw2REFDdEcsQ0FDVixDQUFDLEVBRUQsR0FBRyxPQUFPLGtEQUFtRCxDQUFFLEtBQU0sU0FBVSxDQUFDLEVBQ2hGLE9BQU8sU0FBUyxPQUFPLENBQzNCLENBQUMsRUFDREEsRUFBUSxZQUFZLEVBQUksRUFDeEJBLEVBQVEsWUFBWSxFQUVwQkYsRUFBVyxTQUFTLENBQUMsRUFBRSxNQUFNRSxFQUFRLFNBQVMsQ0FBQyxDQUFDLEVBYWhELE1BQU1JLEdBVkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FDcEIsT0FBUSxRQUNSLGNBQWUsSUFDZixLQUFNLFlBQ04sT0FBUSxVQUNSLFFBQVMsT0FDVCxPQUFRLEdBQUcsT0FBTyxJQUFJLFlBQVksQ0FDdEMsQ0FBbUMsR0FDckMsTUFBTSxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLEtBQUssUUFFTCxNQUFNLHNDQUFzQyxFQUM1RUEsR0FBaUJKLEVBQVEsU0FBU0ksRUFBZ0IsR0FBRyxFQUFFLEVBQUcsUUFBUSxzQ0FBdUMsSUFBSSxDQUFDLEVBRWxISixFQUFRLFlBQVksRUFBSyxFQUN6QkEsRUFBUSxXQUFXLENBQ3ZCLENBQUMsRUFFRCxTQUFTLGNBQWMsZUFBZSxHQUFHLE9BQU9GLEVBQVcsU0FBUyxDQUFDLENBQUMsQ0FDMUUsQ0FBQyIsCiAgIm5hbWVzIjogWyJlZGl0QnV0dG9uIiwgImFjdHVhbFRpdGxlIiwgImVkaXRCb3giLCAicmV2aXNpb24iLCAidGV4dCIsICJpc0FkZGVkIiwgImZvdW5kTWFnaWNXb3JkcyJdCn0K