MediaWiki:Centralnotice-template-KiwixES2015

From Meta, a Wikimedia project coordination wiki

<script> /* Determine if banner should be shown based on:

*  A) if user hasn't seen banners too many times
*
* Parameters (names should be self-explanatory)
*  views-cookie-name
*  max-views
*
* View counter cookie expires after being untouched for 365 days
*
* Result is stored in mw.centralNotice.bannerData.hideResult as usual
*/

mw.loader.using(['mediawiki.util']).then(function() {

   var viewCount = parseInt($.cookie('centralnotice_bannercount_kiwixES2015')) || 0;
   var maxViews  = parseInt('2') || 10000;
   var hideBanner = true;
   var hideReason = null;
   if ( mw.util.getParamValue('force') ) {
       hideBanner = false;
   } else if ( viewCount >= maxViews ) {
       hideBanner = true;
       hideReason = 'viewLimit';
   } else {
       hideBanner = false;
       viewCount += 1;
       $.cookie('centralnotice_bannercount_kiwixES2015', viewCount, { expires: 365, path: '/' });
   }
   // Store the results
   mw.centralNotice.bannerData.hideResult = hideBanner;
   mw.centralNotice.bannerData.hideReason = hideReason;
   mw.centralNotice.bannerData.viewCount  = viewCount;

});

mediaWiki.centralNotice.bannerData.alterImpressionData = function( impressionData ) {

   // Data for Special:RecordImpression
   // Returning true from this function indicates the banner was shown
   if (mediaWiki.centralNotice.bannerData.hideReason) {
       impressionData.reason = mediaWiki.centralNotice.bannerData.hideReason;
   }
   if (mediaWiki.centralNotice.bannerData.viewCount) {
       impressionData.banner_count = mediaWiki.centralNotice.bannerData.viewCount;
   }
   return !mediaWiki.centralNotice.bannerData.hideResult;

};

$(document).ready(function() {

   if (!mw.centralNotice.bannerData.hideResult) {
       $('#{{{banner}}}').show();
   }

}); </script>