User:Nardog/CodeEditorAssist.js: Difference between revisions

Content deleted Content added
mNo edit summary
rm GraphSandbox
 
(4 intermediate revisions by the same user not shown)
Line 1:
mw.loader.using('user.options', function codeEditorAssist() {[
'user.options', 'ext.visualEditor.desktopArticleTarget.init'
let isEdit = mw.config.exists('wgCodeEditorCurrentLanguage') && (
], function codeEditorAssist() {
['edit', 'submit'].includes(mw.config.get('wgAction')) ||
let isEdit = mw.config.exists('wgCodeEditorCurrentLanguage') && (
mw.config.get('wgCanonicalSpecialPageName') === 'GraphSandbox'
['edit', 'submit'].includes(mw.config.get('wgAction')) ||;
);
let veAvailable = documentmw.documentElementlibs.classList.contains('ve-available').isVisualAvailable;
let isAf = mw.config.exists('aceConfig');
if (!isEdit && !veAvailable && !isAf) return;
Line 12:
let defSettings = !isDef && defSettingsMap.get(editor);
Object.entries(editor.getOptions()).forEach(([k, v]) => {
if (v === undefined) {
v = null;
}
if (isDef || v !== defSettings[k] ||
k === 'showInvisibles' || k === 'wrap'
Line 46 ⟶ 48:
let saveRemoveHandler = function (e) {
this.disabled = true;
let change: = 'userjs-codeeditorassist-settings=' + value;
let value = e.data ? '' : JSON.stringify(getSettings(curEditor));
let value;
mw.loader.using('mediawiki.api', () => {
if (!e.data) {
let value = e.data ? '' : JSON.stringify(getSettings(curEditor));
change += '=' + value;
}
mw.loader.using('mediawiki.api', ).then(() => {(
new mw.Api().postWithEditToken({
action: 'globalpreferences',
change: change
// Removing the option somehow doesn't work, so empty it for now (T207448)
});
change: 'userjs-codeeditorassist-settings=' + value
})).always(response => {
this.disabled = false;
if (!response || response.globalpreferences !== 'success') {
mw.notify(
e.data
? 'Couldn\'t remove settings from your global preferences'
: 'Couldn\'t save settings to your global preferences',
{ type: 'error' }
);
return;
}
mw.user.options.set('userjs-codeeditorassist-settings', value);
mw.notify(
e.data
? `Couldn'Removedt remove settings from your global preferences'`
: `Couldn'Savedt save settings to your global preferences'`,
{ type: 'error' }
);
}) return;
}
if (e.data) {
delete mw.user.options.values['userjs-codeeditorassist-settings'];
? mw.notify('Couldn\'t removeRemoved settings from your global preferences');
} else {
mw.user.options.set('userjs-codeeditorassist-settings', value);
: mw.notify('Couldn\'t saveSaved settings to your global preferences',);
}
});
};
Line 77 ⟶ 84:
observing = true;
let $buttons = $('<div>').addClass('floatright').append(
$('<button>').text('Save').clickon('click', saveRemoveHandler),
' ',
$('<button>').text('Remove').clickon('click', true, saveRemoveHandler),
' ',
$('<button>').text('Reset').clickon('click', () => {
curEditor.setOptions(defSettingsMap.get(curEditor));
$('#ace_settingsmenu').parent()[0].trigger('click'();
curEditor.execCommand('showSettingsMenu');
})
Line 122 ⟶ 129:
return;
}
mw.hook('codeEditor.configure').add(initialize);
if (veAvailable) {
mw.hook('ve.loadModules').add(addPlugin => {
Line 135 ⟶ 141:
}
if (!isEdit) return;
mw.loader.usingload('oojs-ui.styles.icons-interactions', () => {;
mw.hook('codeEditor.configure').add(initialize);
let promise = new Promise(resolve => {
mw.hook('codeEditor.configure').add(resolve);
});
mw.hook('wikiEditor.toolbarReady').add($textarea => {
context = $textarea.data('wikiEditorContext');
promise.then(() => {
mw.loader.using('oojs-ui.styles.icons-interactions', () => {
$textarea.wikiEditor('addToToolbar', {
section: 'main',