Benutzer:Codeispoetry/flagtab.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
//<pre>
/*global SimpleAjax, SimpleUI, getPageContent, getBody, copySlotsRecursively */ /* supportFuncs */
/*global DOM, Form */ /* api.js */
/*global addPortletLink, wgPageName, wgScript, addOnloadHook */ /* mediawiki crap */
/*global UserCfg */ /* tarja */
var FlagTab = {
	accesskey: 's',
	text: 'Sichten',
	id: 'pt-flag',

	add: function () {
		var callback = null;
		if (DOM.get('fr-rating-controls') !== null) {
			callback = function () {
				FlagTab.execute(document);
			};
		} else {
			var table = DOM.fetch(getBody(), 'table', 'fr-diff-ratings', 0);
			if (table !== null &&
			    (table.getElementsByTagName('td')[0].getElementsByTagName('span')[0].className === 'flaggedrevs-color-1' ||
			    table.getElementsByTagName('td')[1].getElementsByTagName('span')[0].className !== 'flaggedrevs-color-1')) {
				callback = function () {
					SimpleAjax.get(
						DOM.fetch(DOM.get('mw-diff-ntitle1'), 'a', null, 0).href,
						null,
						function (req) {
							FlagTab.execute(SimpleAjax.getResponseXML(req));
						});
				};
			}

		}
		if (callback !== null) {
			mw.util.addPortletLink('p-cactions', '#', FlagTab.text, FlagTab.id, 'Sichten', FlagTab.accesskey);
			DOM.fetch(DOM.get(FlagTab.id), 'a', null, 0).onclick = callback;
		}
	},

	execute: function (obj) {
		SimpleUI.Box('Version wird gesichtet &hellip;', 'flag');

		var form = Form.find(obj, 'mw-reviewform');

		if (typeof form === 'undefined') {
			SimpleUI.Box('Version wird gesichtet &hellip; Fehler!', 'flag');
			return;
		}

		SimpleAjax.post(form.getAttribute('action'), Form.serialize(form, ''), FlagTab.display);
	},

	display: function (req) {
		var content = getPageContent(SimpleAjax.getResponseXML(req));
		if (content) {
			SimpleUI.Box(content, 'display');
		} else {
			getBody(document).parentNode.replaceChild(getBody(content), getBody(document));
		}
	}
};

if (typeof UserCfg === 'object' && typeof UserCfg.FlagTab === 'object') {
	copySlotsRecursively(FlagTab, UserCfg.FlagTab);
}
$(FlagTab.add);
//</pre>