User:Krinkle/FloatableEditingButton.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/*
This scipt add some large icon at right side for Editing.
@example Edit, Save, Preview, Go Top Button
@Author [[User:Jayprakash12345]]
@OwnBy [[meta:Indic-TechCom]]
*/
// i18n for FloatableEditingButton
if( i18nForFloatableButton === undefined ) {
var i18nForFloatableButton = {
editi18n: 'Edit Button',
savei18n: 'Save Button',
previewi18n: 'Preview Button',
goTopi18n: 'Goto the Top'
}
}
$(function () {
// Get current pagename
var pageName = mw.config.get('wgPageName');
// Create Main Div
var div = document.createElement('div');
div.className = 'floatleft';
div.style ='position: fixed; right:30px; top:100px; display:block;';
div.id = 'iconForEditor';
function createIcon(imageSrc, imgTooltip) {
var element = document.createElement('img');
element.className = 'image';
element.width = '56';
element.height = '56';
element.src = imageSrc;
element.title = imgTooltip;
var divForIcon = document.createElement('div');
divForIcon.appendChild(element);
return divForIcon;
}
// Object for icons (div with img encapsulated inside)
var elements = {
editIcon: createIcon(
'https://upload.wikimedia.org/wikipedia/commons/b/b2/Writing_Circle_Yellow.svg',
i18nForFloatableButton.editi18n
),
saveIcon: createIcon(
'https://upload.wikimedia.org/wikipedia/commons/b/b0/Icon_Transparent_Green.png',
i18nForFloatableButton.savei18n
),
previewIcon: createIcon(
'https://upload.wikimedia.org/wikipedia/commons/e/e2/Icon_Transparent_Yellow.png',
i18nForFloatableButton.previewi18n
),
goTopIcon: createIcon(
'https://upload.wikimedia.org/wikipedia/commons/4/4c/Go-up.svg',
i18nForFloatableButton.goTopi18n
)
};
// Append icons into main div
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) === -1 ) {
// View mode
$(div).append(elements.editIcon, elements.goTopIcon);
} else {
// Edit mode
$(div).append(elements.saveIcon, elements.previewIcon, elements.goTopIcon);
}
// Append the main div
$('#mw-content-text').after( div );
// Trigger for Edit Button
$(elements.editIcon).on('click', function () {
var params = {
title: pageName,
action: 'edit'
};
location.replace( mw.config.get( 'wgScript' ) + '?' + $.param( params ) );
} );
// Trigger for Save Button
$(elements.saveIcon).on('click', function () {
$('#editform').submit();
} );
// Trigger for Preview Button
$(elements.previewIcon).on('click', function () {
$('#wpPreview').click();
} );
// Trigger for Goto Top Button
$(elements.goTopIcon).on('click', function () {
location.hash = '#top';
} );
});