ميډياويکي:Gadget-hdedit.js

د ويکيپېډيا، وړیا پوهنغونډ له خوا

د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئيادښت: د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئ.

  • فايرفاکس/ سفري: په دې کتنمل کې د Reload د ټکوهلو په وخت د Shift تڼۍ نيولې وساتی، او يا هم Ctrl-F5 يا Ctrl-Rتڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ⌘-R کېښکاږۍ)
  • گووگل کروم: په دې کتنمل کې د Ctrl-Shift-R تڼۍ کېښکاږۍ (د مک لپاره ⌘-Shift-R)
  • انټرنټ اېکسپلورر: په دې کتنمل کې د Refresh د ټکوهلو په وخت کې د Ctrl تڼۍ کېښکاږلې ونيسۍ، او يا هم د Ctrl-F5 تڼۍ کېښکاږۍ
  • اوپرا: په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توگه سپينولی شی Tools→Preferences
لاسوند[جوړول]
//[[en:User:The Evil IP address/hdedit]]
 /**
 * Allows for one click modification of section headings when viewing a page
 * add importScript('User:The Evil IP address/hdedit.js'); to your .js file to use it
 * TODO: Multiple sections can be opened for editing, but after saving one, the data of all others is lost due to reloading
 */
window.hdedit = {

onclick: function ($e) {
    hdedit.anchor = $e.attr('id');
    hdedit.pagename = mw.config.get('wgPageName');
    hdedit.api = mw.util.wikiScript('api');
    hdedit.$e = $e;
    $.getJSON(hdedit.api, {
        action: 'parse',
        page: this.pagename,
        prop: 'sections',
        format: 'json'
    }, function (data) {
        $.each(data.parse.sections, function (i, v) {
            if (v.anchor == hdedit.anchor) {
                hdedit.index = v.index;
                return false;
            }
        });
        $.getJSON(hdedit.api, {
          action: 'parse',
          page: hdedit.pagename,
          section: hdedit.index,
          prop: 'wikitext',
          format: 'json'
        }, function (obj) {
             hdedit.wikitext = obj.parse.wikitext['*'];
             hdedit.section_wikitext = hdedit.wikitext.replace(/^(=+)\s*(.+?)\s*\1[\s\S]+$/, '$2');
             hdedit.inputsize = hdedit.section_wikitext.length*1.5;
             var form = $('<form>').css('display', 'inline').submit(hdedit.save);
             var input = $('<input>').attr('id', 'hdedit_input').attr('size', hdedit.inputsize).val(hdedit.section_wikitext);
             var button1 = $('<button>').attr('id', 'hdedit_submit').attr('type', 'submit').text('حفظ');
             var button2 = $('<button>').attr('type', 'button').attr('id', 'hdedit_cancel').text('إلغاء').click(hdedit.cancel);
             $(form).append(input).append(button1).append(button2);
             $e.after(form);
             $e.hide();
}
);
        }
    );
},

save: function () {
    hdedit.newheading = $(this).parent().find('input').val();
    if (hdedit.newheading == hdedit.section_wikitext) return false;
    $.getJSON(hdedit.api, {
        action: 'query',
        prop: 'info',
        intoken: 'edit',
        titles: hdedit.pagename,
        format: 'json',
        indexpageids: true
    }, function (re) {
            $('#hdedit_input, #hdedit_submit, #hdedit_cancel').attr('disabled', 'disabled');
            $.post(hdedit.api, {
                action: 'edit',
                format: 'json',
                title: hdedit.pagename,
                section: hdedit.index,
                minor: true,
                summary: 'تغيير عنوان القسم: ' + hdedit.section_wikitext + ' ← ' + hdedit.newheading + ' باستعمال [[ميدياويكي:Gadget-hdedit.js|سكربت]]',
                text: hdedit.wikitext.replace(/^(=+)(\s*).+?(\s*)\1(\s*)$/m, '$1$2' + hdedit.newheading + '$3$1$4'),
                token: re.query.pages[re.query.pageids[0]].edittoken
            }, function (data) {
                   if (data.edit.result == 'Success') {
                       window.location.reload();
                    }
                   else if (data.error) {
                       alert('API returned error code ' + data.error.code + ': ' + data.error.info + '\nPlease edit the section heading manually.');
                   }
                   else {
                       alert('Unknown API error. Please edit the section heading manually.');
                   }
           });
       });
       return false;
},

cancel: function () {
        hdedit.$e.show();
        $(this).parent().remove();
}
};

if (mw.config.get('wgNamespaceNumber') >= 0 && mw.config.get('wgAction') == 'view') {
	$('h1 span.mw-headline, h2 span.mw-headline, h3 span.mw-headline, h4 span.mw-headline, h5 span.mw-headline, h6 span.mw-headline').click(function () {hdedit.onclick($(this));});
}