MediaViki:Gadget-convertCase.js

Vikipediya, azad ensiklopediya
Naviqasiyaya keç Axtarışa keç

Qeyd: Dəyişiklikləri yayımladıqdan sonra etdiyiniz dəyişikliklərin görünməsi üçün brauzerinizin keşinin təmizlənməsi lazım ola bilər.

  • Firefox / Safari: Reload düyməsinə basılı tutarkən Shift düyməsinə basın, və ya Ctrl+F5 və ya Ctrl+R (Mac üçün ⌘-R )
  • Google Chrome: Ctrl-Shift-R (Mac üçün ⌘-Shift-R)
  • Edge: Ctrl düyməsini basılı tutarkən Refresh düyməsinə basın, və ya sadəcə Ctrl+F5.
// Mətnin böyük-kiçikliyini (registrini) dəyişmək üçün qadcet

function convertToUppercase() {
    var activeElement = $(document.activeElement);

    if (activeElement) {
        if (activeElement.hasClass('CodeMirror-code')) {
            activeElement = $('#wpTextbox1');
        }

        if (activeElement.is('textarea, input')) {
            var selectedText = activeElement.textSelection('getSelection');

            if (selectedText) {
                var upperText = selectedText.replace(/i/g, 'İ').replace(/ı/g, 'I').toUpperCase();

                activeElement.textSelection('encapsulateSelection', {
                    replace: true,
                    peri: upperText
                });
            }
        }
    }
}

function convertToLowercase() {
    var activeElement = $(document.activeElement);

    if (activeElement) {
        if (activeElement.hasClass('CodeMirror-code')) {
            activeElement = $('#wpTextbox1');
        }

        if (activeElement.is('textarea, input')) {
            var selectedText = activeElement.textSelection('getSelection');

            if (selectedText) {
                var lowerText = selectedText.replace(/İ/g, 'i').replace(/I/g, 'ı').toLowerCase();

                activeElement.textSelection('encapsulateSelection', {
                    replace: true,
                    peri: lowerText
                });
            }
        }
    }
}

function reverseCase() {
    var activeElement = $(document.activeElement);

    if (activeElement) {
        if (activeElement.hasClass('CodeMirror-code')) {
            activeElement = $('#wpTextbox1');
        }

        if (activeElement.is('textarea, input')) {
            var selectedText = activeElement.textSelection('getSelection');

            if (selectedText) {
                var reversedText = selectedText.split('').map(function(char) {
                    if (char === 'i') {
                        return 'İ';
                    } else if (char === 'İ') {
                        return 'i';
                    } else if (char === 'ı') {
                        return 'I';
                    } else if (char === 'I') {
                        return 'ı';
                    } else {
                        return char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase();
                    }
                }).join('');

                activeElement.textSelection('encapsulateSelection', {
                    replace: true,
                    peri: reversedText
                });
            }
        }
    }
}

function capitalizeWords() {
    var activeElement = $(document.activeElement);

    if (activeElement) {
        if (activeElement.hasClass('CodeMirror-code')) {
            activeElement = $('#wpTextbox1');
        }

        if (activeElement.is('textarea, input')) {
            var selectedText = activeElement.textSelection('getSelection');

            if (selectedText) {
                var capitalizedText = selectedText.split(' ').map(function(word) {
                    var firstChar = word.charAt(0);
                    var restOfWord = word.slice(1);

                    if (firstChar === 'i') {
                        firstChar = 'İ';
                    } else if (firstChar === 'ı') {
                        firstChar = 'I';
                    } else {
                        firstChar = firstChar.toUpperCase();
                    }

                    restOfWord = restOfWord.replace(/I/g, 'ı').replace(/İ/g, 'i').toLowerCase();

                    return firstChar + restOfWord;
                }).join(' ');

                activeElement.textSelection('encapsulateSelection', {
                    replace: true,
                    peri: capitalizedText
                });
            }
        }
    }
}


function customizeToolbar() {
    $('#wpTextbox1').wikiEditor('addToToolbar', {
        section: 'main',
        group: 'format',
        tools: {
            uppercase: {
                label: 'BÖYÜK HƏRFLƏRLƏ ƏVƏZLƏ',
                type: 'button',
                icon: '//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Text_to_uppercase_icon.svg/27px-Text_to_uppercase_icon.svg.png',
                action: {
                    type: 'callback',
                    execute: convertToUppercase
                }
            },
            capitalize: {
                label: 'Hər Sözü Böyük Hərflə Başla',
                type: 'button',
                icon: '//upload.wikimedia.org/wikipedia/commons/thumb/4/46/Text_to_capitalcase_icon.svg/27px-Text_to_capitalcase_icon.svg.png',
                action: {
                    type: 'callback',
                    execute: capitalizeWords
                }
            },
            lowercase: {
                label: 'kiçik hərflərlə əvəzlə',
                type: 'button',
                icon: '//upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Text_to_lowercase_icon.svg/27px-Text_to_lowercase_icon.svg.png',
                action: {
                    type: 'callback',
                    execute: convertToLowercase
                }
            },
            reversecase: {
                label: 'Böyük-kiçikliyi tərsinə dəyiş',
                type: 'button',
                icon: '//upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Text_to_reversecase_icon.svg/27px-Text_to_reversecase_icon.svg.png',
                action: {
                    type: 'callback',
                    execute: reverseCase
                }
            }
        }
    });
}

if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
    mw.loader.using(['user.options', 'jquery.textSelection'], function () {
        if (mw.user.options.get('usebetatoolbar') === 1) {
            $.when(
                mw.loader.using('ext.wikiEditor'),
                $.ready
            ).then(customizeToolbar);
        }
    });
}