<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pirateparty.be/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Hotcatcheck.js</id>
	<title>MediaWiki:Gadget-Hotcatcheck.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pirateparty.be/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-Hotcatcheck.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.pirateparty.be/index.php?title=MediaWiki:Gadget-Hotcatcheck.js&amp;action=history"/>
	<updated>2026-05-07T00:31:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://wiki.pirateparty.be/index.php?title=MediaWiki:Gadget-Hotcatcheck.js&amp;diff=18377&amp;oldid=prev</id>
		<title>HgO: Created page with &quot;/*  * CheckCategories HotCat Extension -  * removes the template when categorizing (prompts before) with HotCat and  * adds a link &quot;Categories are Ok&quot; to the category-section...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.pirateparty.be/index.php?title=MediaWiki:Gadget-Hotcatcheck.js&amp;diff=18377&amp;oldid=prev"/>
		<updated>2016-12-11T08:20:43Z</updated>

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