mediawiki-extensions-CodeMi.../resources/legacy/ext.CodeMirror.js

48 lines
1.3 KiB
JavaScript
Raw Normal View History

require( './ext.CodeMirror.data.js' );
if ( mw.config.get( 'extCodeMirrorConfig' ).useV6 ) {
const deprecationFn = mw.log.makeDeprecated(
'CodeMirror5-deprecation',
'CodeMirror 5 has been deprecated in MediaWiki 1.43 and will be removed in 1.44. ' +
'Please migrate to CodeMirror 6. See https://w.wiki/B3pr for more information.'
);
deprecationFn();
}
/**
* Log usage of CodeMirror.
*
* @param {Object} data
*/
function logUsage( data ) {
/* eslint-disable camelcase */
const event = Object.assign( {
session_token: mw.user.sessionId(),
user_id: mw.user.getId()
}, data );
const editCountBucket = mw.config.get( 'wgUserEditCountBucket' );
if ( editCountBucket !== null ) {
event.user_edit_count_bucket = editCountBucket;
}
/* eslint-enable camelcase */
mw.track( 'event.CodeMirrorUsage', event );
}
/**
* Save CodeMirror enabled preference.
*
* @param {boolean} prefValue True, if CodeMirror should be enabled by default, otherwise false.
*/
function setCodeEditorPreference( prefValue ) {
if ( !mw.user.isNamed() ) { // Skip it for unnamed users
return;
}
new mw.Api().saveOption( 'usecodemirror', prefValue ? 1 : 0 );
mw.user.options.set( 'usecodemirror', prefValue ? 1 : 0 );
}
module.exports = {
logUsage: logUsage,
setCodeEditorPreference: setCodeEditorPreference
};