Welcome to the DFO World Wiki. With many major updates since the release of DFO, many items are missing. Visit Item Database Project to learn more.
Please remember to click "show preview" before saving the page.
Thanks for the updated logo snafuPop!
MediaWiki:Gadget-Hotcatcheck.js
Note: After saving, 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: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* _____________________________________________________________________________ * | | * | === WARNING: GLOBAL GADGET FILE === | * | Changes to this page affect many users. | * | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. | * |_____________________________________________________________________________| * */ /* * CheckCategories HotCat Extension - * removes the template when categorizing (prompts before) with HotCat and * adds a link "Categories are Ok" to the category-section * * <nowiki> * * @rev 2 (2014-03-20) * @author [[User:Rillke]], 2012 * @source User:Rillke/checkCat2.js @wikimedia Commons */ /*global mw:false, $:false, alert:false */ /*jshint curly:false, smarttabs:true, nomen:false */ mw.loader.using(['mediawiki.user', 'mediawiki.util', 'jquery.cookie'], function() { 'use strict'; if (6 !== mw.config.get('wgNamespaceNumber') || window.HotCatAutoRemoveCheckCatOptOut || $('.checkcategories').length === 0) return; var chCatRE = /\{\{[Cc]heck[ _]categories[^\}\{]*\}\}/g, selfName = '([[MediaWiki:Gadget-Hotcatcheck.js|Script]]): ', cookieName = 'checkCat', cookie = $.cookie(cookieName); /** ** A few styling helper functions ** **/ var createjIcon = function (iconClass) { return $('<span>') .attr( 'class', 'ui-icon ' + iconClass + ' catcheck-inline-icon' ) .text( ' ' ); }; var createNotifyArea = function(textNode, icon, state) { return $('<div>') .attr( 'class', 'ui-widget' ) .append( $('<div>') .attr({ 'class': state + ' ui-corner-all', style: 'margin-top: 20px; padding: 0.7em;' }) .append( $('<p>').append( createjIcon(icon).css('marginRight', '0.3em'), textNode ) ) ); }; mw.util.addCSS('.catcheck-inline-icon { display: inline-block; position: relative; top: 2px; }'); // Remove "check categories" when using HotCat // Only executed on first submit $('body').one( 'submit.checkCatListener', '#hotcatCommitForm', function (e) { if ('disabled' === cookie) return true; var hotCatForm = this, newVal = hotCatForm.wpTextbox1.value.replace(chCatRE, ''), dlgButtons = {}, $dlgCheckCookie, $permaSaveHint, $textHintNode, $dlg; var doRemove = function() { hotCatForm.wpSummary.value = 'Removing [[Template:Check categories|{'+'{Check categories}}]] ' + hotCatForm.wpSummary.value; hotCatForm.wpTextbox1.value = newVal; }; var writeCookie = function(val) { $.cookie(cookieName, val, { expires: 7, path: '/' }); }; dlgButtons['Yes, Remove'] = function() { doRemove(); if ($dlgCheckCookie[0].checked) writeCookie('auto'); $(this).dialog('close'); }; dlgButtons['No, keep it'] = function() { if ($dlgCheckCookie[0].checked) writeCookie('disabled'); $(this).dialog('close'); }; var _addToJS = function(e) { e.preventDefault(); if ($permaSaveHint.hasClass('ui-state-disabled')) return; var $el = $(this); $el.unbind('click').text('Please wait.'); $permaSaveHint.addClass('ui-state-disabled'); var params = { action: 'edit', title: 'User:' + mw.config.get('wgUserName') + '/common.js', summary: selfName + 'Saving HotCat configuration.', appendtext: $el.data('addText'), token: (window['wikilove-edittoken'] || mw.user.tokens.get('editToken')), format: 'json' }; var editDone = function(editStat) { if (!editStat) return; if (editStat.error) { alert('Unable to save to your common.js using the API\n' + editStat.error.code + '\n' + editStat.error.info); $el.text('Edit-Error!'); } else { $el.text('Done.'); $permaSaveHint.fadeOut(); } }; $.post(mw.util.wikiScript('api'), params, editDone); }; /** ** On COM:VP there were people who said: ** "Categorizing with HotCat does legit automated removal of the check-cat-message" ** So we invented a dialog that should be readable by users even with very few English skills. **/ var prompt = function() { $dlgCheckCookie = $('<input type="checkbox" />').attr({ id: 'hotCatAutoRemoveCheckCatCookie' }).change(function() { if (this.checked) { $permaSaveHint.fadeIn(); } else { $permaSaveHint.fadeOut(); } }); $textHintNode = $('<ul>'); $('<li>').append($('<a>', { href: '#', text: 'Disable this feature.' }).data('addText', '\nwindow.HotCatAutoRemoveCheckCatOptOut = true;').click(_addToJS)) .appendTo($textHintNode); $('<li>').append($('<a>', { href: '#', text: 'Remove {{check categories}} when editing using HotCat without prompting.' }).data('addText', '\nwindow.HotCatAutoRemoveCheckCat = true;').click(_addToJS)) .appendTo($textHintNode); $permaSaveHint = createNotifyArea($('<span>', { text: 'Save these setting in your common.js: ' }).append($textHintNode), 'ui-icon-info', 'ui-state-highlight'); $dlg = $('<div>').append( $('<span>').attr({ style: 'font-size: 2em; line-height: 1.8em;' }).append( $('<span>').text(" {{check categories}} ").attr({ style: 'background-color:#F8CCB0; text-decoration:line-through !important; display:inline-block;' }), $('<span>').text(" ?") )) .append('<br/>', $dlgCheckCookie, $('<label>').attr({ 'for': 'hotCatAutoRemoveCheckCatCookie' }).text( 'Don\'t ask again' ), '<br/>') .append(mw.user.isAnon() ? '' : $permaSaveHint.hide()); $dlg.dialog({ modal: true, closeOnEscape: true, title: "{{check categories}} (−)?", width: 450, buttons: dlgButtons, close: function() { $('#hotcatCommitForm').submit(); }, open: function() { var $buttons = $(this).parent().find('.ui-dialog-buttonpane button'); $buttons.eq(0).button({ icons: { primary: 'ui-icon-circle-check' } }); $buttons.eq(1).button({ icons: { primary: 'ui-icon-cancel' } }); } }); }; if (newVal !== hotCatForm.wpTextbox1.value) { if (window.HotCatAutoRemoveCheckCat || cookie === 'auto') { doRemove(); return true; } e.preventDefault(); mw.loader.using(['jquery.ui.dialog'], function() { prompt(); }); } return true; }); // Add Ok-Link to the cats panel var $okLink = $('<a>', { href: '#', html: '<s>{{Check categories}}</s>', title: 'Categories are OK! Immediately remove the template.' }).click(function(e) { e.preventDefault(); var $el = $(this); $el.unbind('click'); var doEdit = function(result) { if (!result) return; $el.text('Doing.'); var text = result.replace(chCatRE, ''); if (text === result) { $el.text('Template not found!'); return; } var params = { action: 'edit', title: mw.config.get('wgPageName'), nocreate: 1, summary: selfName + 'Categories are checked and Ok. You can help [[Category:Media needing category review|reviewing]]!', text: text, token: (window['wikilove-edittoken'] || mw.user.tokens.get('editToken')), format: 'json' }; var editDone = function(editStat) { if (!editStat) return; if (editStat.error) { alert('Unable to remove "Check categories" with the API\n' + editStat.error.code + '\n' + editStat.error.info); $el.text('Edit-Error!'); } else { $el.text('Edit Done.'); } $('.checkcategories').fadeOut(); }; $el.text('Doing..'); $.post(mw.util.wikiScript('api'), params, editDone); }; $el.text('Doing'); $.ajax({ url: mw.config.get('wgScript'), data: { action: 'raw', title: mw.config.get('wgPageName').replace(/ /g, '_'), maxage: 0, smaxage: 0 }, dataType: 'text', error: function() { $el.text('Error!'); }, success: doEdit, type: 'GET', cache: false }); }); $(function() { $('#catlinks').find('ul:first').append($('<li>').append($okLink)); }); }); //</nowiki>