Difference between revisions of "MediaWiki:Common.js"

(Replaced content with "$(function() { importScriptURI('https://arbiterit.com/MediaWiki:SortTableFilter.js'); }); $(function() { importScriptURI('https://arbiterit.com/MediaWiki:Sortabletable....")
Line 1: Line 1:
 
$(function() {
 
$(function() {
importScriptURI('https://DahuaWiki.com/MediaWiki:SortTableFilter.js');
+
importScriptURI('https://arbiterit.com/MediaWiki:SortTableFilter.js');
 
});
 
});
  
 
$(function() {
 
$(function() {
importScriptURI('https://DahuaWiki.com/MediaWiki:Sortabletable.js');
+
importScriptURI('https://arbiterit.com/MediaWiki:Sortabletable.js');
 
});
 
});
  
 
$(function() {
 
$(function() {
importScriptURI('https://DahuaWiki.com/MediaWiki:Sortabletable.js');
+
importScriptURI('https://arbiterit.com/MediaWiki:Sortabletable.js');
 
});
 
});
 
///////////////////////
 
// Table Filter/Sort //
 
///////////////////////
 
/**
 
* @description Table Filter/Sort
 
* TODO ?replace by jQuery plugin datatable?
 
*
 
* @requires $.resource()
 
* @requires $.jI18n.en
 
* @returns {undefined}
 
*/
 
window.initTableFilterSort = function (){ // see MediaWiki:SortTableFilter.js
 
/* Note: problem is auto-inserted <tbody></tbody> by the browser: must be removed and
 
  replaced by thead + tbody. jQuery.unwrap() was not successful */
 
  // add possibly more classes from http://www.javascripttoolbox.com/lib/table/documentation.php
 
  // Note: only applies to non-nested tables
 
  var jAutotables = $('table.table-autosort, table.table-autofilter, table-autostripe,table-sorted-asc,table-sorted-desc, table-filtered');
 
  if (jAutotables.length) {
 
    // Note: in MediaWiki:SortTableFilter.js 'SortTableFilter_InputFilterTitle' was not recognized
 
    $.extend(true, $.jI18n, {
 
      en: {
 
        SortTableFilter_AutoSortTitle : 'Click to sort',
 
        SortTableFilter_FilterAllLabel: 'Filter: All',
 
        SortTableFilter_InputFilterTitle: 'Filter text (case sensitive, uses reg. expressions)'
 
      },
 
      de: {
 
        SortTableFilter_AutoSortTitle : 'Zum Sortieren klicken',
 
        SortTableFilter_FilterAllLabel: 'Zeige: alle',
 
        SortTableFilter_InputFilterTitle: 'Text filtern (GROß/klein!, nutzt reg. Ausdrücke)'
 
      }
 
    });
 
    // get sortable/filterable here already otherwise multiple th-filters
 
    $.getScript(mw.config.get( 'wgServer' ) + mw.config.get( 'wgScript' ) + '?title=MediaWiki:SortTableFilter.js&action=raw&ctype=text/javascript',
 
      function(){return true;});
 
    // modify tables to introduce thead structure
 
    jAutotables.each(function(index){ //TODO simplify code? if()…
 
      // There may or may not be a tbody around tr. NOTE: $.unwrap() does not work here!
 
      // Memo: find('tr th') finds th, .parent() retrieves tr! .wrapAll will wrap inside DOM, not in return value! .detach() returns detached
 
      // OK in FF 3.6 and IE 7-8, not in IE6 (like the old code)
 
      // FURTHER WORK: Ideally, all normal tr td should remain in a tbody.
 
      var jThis = $(this),
 
        jThead = jThis.find('tr th').parent().detach(),
 
        jTfoot = jThis.find('tr[class=tfoot] td').parent().detach(),// remove it from the DOM
 
        jTbody = jThis.find('tbody:first');
 
      if (jTbody.length===0) {
 
        jThis.children().wrapAll('<tbody/>');
 
        jTbody = jThis.find('tbody:first');
 
      }
 
      jTbody.before($('<thead/>').append(jThead));
 
      if (jTfoot.length) {
 
        jTbody.after($('<tfoot/>').append(jTfoot));
 
      }
 
      // th with class="input" gives an input field instead of selections
 
      $(this).find('th[class=input]').append('<input name="filter" title="'+$.resource('SortTableFilter_InputFilterTitle')+'" size="8" onkeyup="Table.filter(this,this)">');
 
    });// end each()
 
  } // END if any autotable
 
};
 

Revision as of 21:07, 21 November 2018

$(function() {
	importScriptURI('https://arbiterit.com/MediaWiki:SortTableFilter.js');
});

$(function() {
	importScriptURI('https://arbiterit.com/MediaWiki:Sortabletable.js');
});

$(function() {
	importScriptURI('https://arbiterit.com/MediaWiki:Sortabletable.js');
});