Difference between revisions of "MediaWiki: Common.js"

From Chuang Lab
Jump to: navigation, search
Line 1: Line 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Any JavaScript here will be loaded for all users on every page load. */
/* global mw, $, importStylesheet, importScript */
+
$(function () {
/* jshint strict:false, browser:true */
 
/* Remove when https://phabricator.wikimedia.org/T113642 fixed */
 
$( function () {
 
$( '#contentSub' ).insertBefore( '.ext-wpb-pagebanner' ).addClass( 'visible' );
 
$( '.ext-wpb-pagebanner' ).addClass( 'bugfix-T113642' );
 
} );
 
/* End https://phabricator.wikimedia.org/T113642 */
 
mw.loader.using( ['mediawiki.util', 'mediawiki.notify', 'jquery.client'], function () {
 
/* Begin of mw.loader.using callback */
 
  
/*
+
  var myElement = document.getElementById('chuang-lab');
* rwdImageMaps jQuery plugin v1.4
+
  myElement.innerHTML = '<div id="myCarousel" class="carousel slide" data-ride="carousel">
*
+
  <!-- Indicators -->
* Allows image maps to be used in a responsive design by recalculating the area coordinates to match the actual image size on load and window.resize
+
  <ol class="carousel-indicators">
*
+
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
* Copyright (c) 2012 Matt Stow
+
    <li data-target="#myCarousel" data-slide-to="1"></li>
* https://github.com/stowball/jQuery-rwdImageMaps
+
  </ol>
* http://mattstow.com
 
* Licensed under the MIT license
 
*/
 
  
;(function(a){a.fn.rwdImageMaps=function(){var d=this,c=parseFloat(a.fn.jquery);var b=function(){d.each(function(){if(typeof(a(this).attr("usemap"))=="undefined"){return}var f=this,e=a(f);a("<img />").on('load',function(){var o,k,i="width",n="height";if(c<1.6){o=f.getAttribute(i),k=f.getAttribute(n)}else{o=e.attr(i),k=e.attr(n)}if(!o||!k){var p=new Image();p.src=e.attr("src");if(!o){o=p.width}if(!k){k=p.height}}var g=e.width()/100,l=e.height()/100,j=e.attr("usemap").replace("#",""),m="coords";a('map[name="'+j+'"]').find("area").each(function(){var s=a(this);if(!s.data(m)){s.data(m,s.attr(m))}var r=s.data(m).split(","),q=new Array(r.length);for(var h=0;h<q.length;++h){if(h%2===0){q[h]=parseInt(((r[h]/o)*100)*g)}else{q[h]=parseInt(((r[h]/k)*100)*l)}}s.attr(m,q.toString())})}).attr("src",e.attr("src"))})};a(window).resize(b).trigger("resize");return this}})(jQuery);
+
  <!-- Wrapper for slides -->
 +
  <div class="carousel-inner">
 +
    <div class="item active" id="1">
 +
    picture
 +
    </div>
  
// This method will resize elements that have a class name of "js-proportional-resize" by
+
    <div class="item" id="0">
// changing the font-size (%) based on a viewing area width of 900px being the baseline,
+
      picture
// i.e. 450px width=font size 50%, 900px width=font size 100%, 1800px width=font size 200%.
+
    </div>
function proportionalResize() {
+
  </div>
var EXPECTED_PAGE_WIDTH = 900.00;
+
<!-- Left and right controls -->
$('.js-proportonal-resize').each(function() {
+
  <a class="left carousel-control" href="#myCarousel" data-slide="prev">
var fontSizeCss= (($(this).width() / EXPECTED_PAGE_WIDTH) * 100.00) + '%';
+
    <span class="glyphicon glyphicon-chevron-left"></span>
$(this).css("font-size", fontSizeCss);
+
    <span class="sr-only">Previous</span>
});
+
  </a>
}
+
  <a class="right carousel-control" href="#myCarousel" data-slide="next">
 +
    <span class="glyphicon glyphicon-chevron-right"></span>
 +
    <span class="sr-only">Next</span>
 +
  </a>
 +
</div>';
  
$(document).ready(function(e) {
+
}());
    $('img[usemap]').rwdImageMaps();
 
    proportionalResize();
 
});
 
$(window).on('load', function() {
 
// the main page carousel text boxes aren't being initialized to the
 
// correct size on IE, so add a second resize post-DOM-ready
 
proportionalResize();
 
});
 
$(window).resize(function(e) {
 
    proportionalResize();
 
});
 
 
 
// Add listing buttons in edit toolbar
 
var customizeToolbar = function() {
 
$( function() {
 
            if ( typeof $.fn.wikiEditor != 'undefined' ) {
 
                  $( '#wpTextbox1' ).wikiEditor( 'removeFromToolbar', {
 
                          'section': 'main',
 
                          'group': 'insert',
 
                          'tool': 'reference'
 
                  });
 
            }
 
        });
 
 
 
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
 
        'section': 'main',
 
        'groups': {
 
                'listings': {
 
                        'label': 'Listings' // or use labelMsg for a localized label, see above
 
                }
 
        }
 
} );
 
 
 
function currentLastEditDate() {
 
    // return the date as "2015-01-15"
 
    var d = new Date();
 
    var year = d.getFullYear();
 
    // Date.getMonth() returns 0-11
 
    var month = d.getMonth() + 1;
 
    if (month < 10) month = '0' + month;
 
    var day = d.getDate();
 
    if (day < 10) day = '0' + day;
 
    return year + '-' + month + '-' + day;
 
}
 
 
 
var CURRENT_LAST_EDIT_DATE = currentLastEditDate();
 
var LISTING_TOOLBAR_ITEMS = {
 
    'see': {
 
        label: 'See listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Italian_traffic_signs_-_icona_museo.svg/22px-Italian_traffic_signs_-_icona_museo.svg.png',
 
        options: {
 
            pre: '* \{\{see\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    },
 
    'do': {
 
        label: 'Do listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/3/30/Pictograms-nps-bicycle_trail-2.svg/22px-Pictograms-nps-bicycle_trail-2.svg.png',
 
        options: {
 
            pre: '* \{\{do\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    },
 
    'buy': {
 
        label: 'Buy listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Italian_traffic_signs_-_icona_supermercato.svg/22px-Italian_traffic_signs_-_icona_supermercato.svg.png',
 
        options: {
 
            pre: '* \{\{buy\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    },
 
    'eat': {
 
        label: 'Eat listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Italian_traffic_signs_-_icona_ristorante.svg/22px-Italian_traffic_signs_-_icona_ristorante.svg.png',
 
        options: {
 
            pre: '* \{\{eat\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    },
 
    'drink': {
 
        label: 'Drink listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Verre_cocktail.svg/22px-Verre_cocktail.svg.png',
 
        options: {
 
            pre: '* \{\{drink\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    },
 
    'sleep': {
 
        label: 'Sleep listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/2/25/Pictograms-nps-lodging.svg/22px-Pictograms-nps-lodging.svg.png',
 
        options: {
 
            pre: '* \{\{sleep\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree= | fax=\n| checkin= | checkout= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    },
 
    'listing': {
 
        label: 'Other listing', // or use labelMsg for a localized label, see above
 
        icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Italian_traffic_signs_-_icona_informazioni.svg/22px-Italian_traffic_signs_-_icona_informazioni.svg.png',
 
        options: {
 
            pre: '* \{\{listing\n| name=',
 
            post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikipedia= | wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
 
        }
 
    }
 
};
 
 
 
$.each(LISTING_TOOLBAR_ITEMS, function(index, element) {
 
    $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
 
        'section': 'main',
 
        'group': 'listings',
 
        'tools': {
 
                'Listings': {
 
                        label: element.label,
 
                        type: 'button',
 
                        icon: element.icon,
 
                        action: {
 
                                type: 'encapsulate',
 
                                options: element.options
 
                        }
 
                }
 
        }
 
    } );
 
});
 
};
 
 
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . */
 
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
 
        mw.loader.using( 'user.options', function () {
 
                if ( mw.user.options.get('usebetatoolbar') ) {
 
                        mw.loader.using( 'ext.wikiEditor', function () {
 
                                $(document).ready( customizeToolbar );
 
                        } );
 
                }
 
        } );
 
}
 
 
 
/**
 
* Import more specific scripts if necessary
 
*/
 
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
 
/* watchlist scripts */
 
importScript( 'MediaWiki:Common.js/watchlist.js' );
 
}
 
 
 
$(".geo, #GPX-track").parents("#content").find("#mw-indicator-GPX").css("display","inline");
 
 
 
/* End of mw.loader.using callback */
 
} );
 
 
/* DO NOT ADD CODE BELOW THIS LINE */
 
/* DO NOT ADD CODE BELOW THIS LINE */

Revision as of 10:25, 17 May 2018

/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {

  var myElement = document.getElementById('chuang-lab');
  myElement.innerHTML = '<div id="myCarousel" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
  </ol>

  <!-- Wrapper for slides -->
  <div class="carousel-inner">
    <div class="item active" id="1">
     picture
    </div>

    <div class="item" id="0">
      picture
    </div>
  </div>
 <!-- Left and right controls -->
  <a class="left carousel-control" href="#myCarousel" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#myCarousel" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right"></span>
    <span class="sr-only">Next</span>
  </a>
</div>';

}());
/* DO NOT ADD CODE BELOW THIS LINE */