MediaWiki:Gadget-AjaxEdit.js

Merhaba, buraya MediaWiki:Gadget-AjaxEdit.js kelimesinin anlamını aramaya geldiniz. DICTIOUS'da MediaWiki:Gadget-AjaxEdit.js kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve MediaWiki:Gadget-AjaxEdit.js kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. MediaWiki:Gadget-AjaxEdit.js kelimesi hakkında bilmeniz gereken her şey burada. MediaWiki:Gadget-AjaxEdit.js kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
"use strict";

// Description         : With a new button "Ædit" one can edit specific sections without reloading the whole page. 
//                       Supports TabbedLanguages gadget
// Dependencies: mediawiki.util, mediawiki.Uri, mediawiki.user, mediawiki.api
/* jshint maxerr:1048576, strict:true, undef:true, latedef:true, sub:true */
/* global mw, $ */

window.AjaxEdit = {};

window.AjaxEdit.Click = function (ajaxEditAnchor) {
	var _query = new mw.Uri($(ajaxEditAnchor).parent().find("a").attr("href")).query,
	    title = _query.title,
	    section = _query.section;

	section = section.replace("T-", ""); //translcusions...
	var hdr = $(ajaxEditAnchor).parent().parent();
	var sectionName = hdr.children(".mw-headline").first().text();
	if (window.tabbedLanguages && !hdr.is(":header")) {
		sectionName = window.tabbedLanguages;
	}

	$("#ajaxedit-wrapper").remove();

	var data = { action: 'raw', title: title, section: section };
	$.get(mw.util.wikiScript('index'), data).then(function (wikitext) {
		var rowHeight = Math.min(15, 1 + wikitext.split("\n").length);
		var textarea = $("<textarea></textarea>").attr({ rows: rowHeight }).text(wikitext);
		var saveButton = $('<button>Kaydet</button>').click(function () {
			window.AjaxEdit.Save(section, sectionName, textarea.val(), title).then(function (apiSaveResponse) {
				if (apiSaveResponse.error) return; //if abusefilter was triggered
				new mw.Api().parse(new mw.Title(mw.config.get("wgPageName"))).then(function (newHtml) {
					$("#mw-content-text").html(newHtml);

					mw.loader.moduleRegistry.state = "registered";
					//mw.loader.moduleRegistry.version="generate-unique-guid-here";
					mw.loader.moduleRegistry.script = undefined;
					mw.loader.using("site", function () {});

					window.AjaxEdit.Main();
					// run NavToggle stuff
				});
			});
		}).css("margin-left", "3px");
		var cancelButton = $('<button>İptal</button>').css({"margin-left": "10px" }).click(function () {
			$("#ajaxedit-wrapper").remove();
		});
		var previewDiv = $("<div></div>").css({
			"border-style": "solid", "border-width": "1px 1px 1px 4px",
			"border-radius": "0.33em", "border-color": "#a3d3ff" }).hide();

		var loadPreview = function loadPreview() {
			new mw.Api().parse(textarea.val(), { title: mw.config.get("wgPageName") }).done(function (html) {
				previewDiv.html(html);
			});
		};
		var previewIntervalId = -1;
		var livePreviewCheckbox = $("<input type='checkbox'/>").attr("id", "ajaxedit-live-preview-checkbox").css({ "margin-left": "10px", "margin-right": "3px" }).on("change", function () {
			if ($(this).is(':checked')) {
				previewDiv.show("slow");
				loadPreview();
				previewIntervalId = setInterval(loadPreview, 500);
			} else {
				clearInterval(previewIntervalId);
				previewDiv.hide("fast");
				previewDiv.empty();
			}
		});

		var wrapper = $("<div></div>").attr("id", "ajaxedit-wrapper").css({ width: "auto", "margin": 0, "overflow": "hidden" }).append(textarea).append(saveButton).append(livePreviewCheckbox).append('<label for="ajaxedit-live-preview-checkbox">Canlı önizle</label>').append(cancelButton).append(previewDiv);

		//tabbed languages support
		if ($(ajaxEditAnchor).is("#tabstable .editlangsection a")) $(".languageContainer:not(:hidden)").first().prepend(wrapper);else hdr.after(wrapper);
	});
};

window.AjaxEdit.Save = function (sectionID, sectionName, sectionText, title) {
	var scriptLink = "";
	if (mw.config.get("wgSiteName") !== "Vikisözlük")
		scriptLink += "wikt:";
	if (mw.config.get("wgContentLanguage") !== "tr")
		scriptLink += "tr:";
	scriptLink += "MediaWiki:Gadget-AjaxEdit.js";
	var data = {
		format: 'json',
		action: 'edit',
		title: title,
		section: sectionID,
		summary: "/* " + sectionName + " */ ] kullanılarak değiştirildi",
		text: sectionText,
		token: mw.user.tokens.get('csrfToken')
	};
	return $.post(mw.util.wikiScript('api'), data, function (data) {
		if (data && data.edit && data.edit.result == 'Success') {
			mw.notify("Başarılı");
		} else if (data && data.error) {
			mw.notify('Hata: API bir hata kodu oluşturdu, "' + data.error.code + '": ' + data.error.info);
		}
	}).fail(function (xhr) {
		mw.notify('Hata: İstek başarısız oldu.');
	}, "json");
};

window.AjaxEdit.Main = function () {
	$(".mw-editsection > .mw-editsection-bracket:contains(']')").each(function () {
		var btn = $('<a>αÐüzenle</a>').attr("onclick", "AjaxEdit.Click(this)");
		$(this).before(", ").before(btn);
	});
};

if (mw.config.get('wgAction') == "view")
	$(window.AjaxEdit.Main);