MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus MitsuWiki
(Die Seite wurde neu angelegt: „→Das folgende JavaScript wird für alle Benutzer geladen.: /////////////////////// // Table Filter/Sort // /////////////////////// // specific to http://…“) |
(kein Unterschied)
|
Version vom 9. Januar 2013, 14:48 Uhr
/* Das folgende JavaScript wird für alle Benutzer geladen. */
///////////////////////
// Table Filter/Sort //
///////////////////////
// specific to http://offene-naturfuehrer.de
// TODO ?replace by jQuery plugin datatable?
function initTableFilterSort(){ // 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 'InputFilterTitle' was not recognized
$.extend(true, $.jI18n, {
en: {
AutoSortTitle : 'Click to sort',
FilterAllLabel: 'Filter: All',
InputFilterTitle: 'Filter text (case sensitive, uses reg. expressions)'
},
de: {
AutoSortTitle : 'Zum Sortieren klicken',
FilterAllLabel: 'Zeige: alle',
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('InputFilterTitle')+'" size="8" onkeyup="Table.filter(this,this)">');
});// end each()
} // END if any autotable
}
/*
mediaWiki.loader.state({"site":"ready"}); is appended and takes care of
the document ready event. If $(document).ready() is used, for forms
$ is then unknown. Scope or closure problem? (AP 2011-02-20)
*/
// When document is completely loaded
$(document).ready(function() {
initImageZooming();
initTargetHighlighting(); // page-internal jumps
initmoveTOC(); // TOC CSS position fixed or static
// specific to http://offene-naturfuehrer.de
initTableFilterSort(); // tests internally whether table with corresponding classes exist
}); // end $(document).ready()
// ***** CAN initCollapseButtons BE DELETED?
// TEST: COMMENTED OUT
// initCollapseButtons(); // strongly changes page layout: execute first
initCluetips();
// page specific
if(mw.config.get( 'wgAction' )==="formedit" || mw.config.get( 'wgCanonicalSpecialPageName' )==="FormEdit"){
// initConfirmDeleteSubform();
initMarkAllFilledFormElements();
}
// specific to http://offene-naturfuehrer.de
initCollapsebox(); //collapsible parts
// </source>
/* booktable as in (scientific) books/journals */
table.booktable, table.booktabledotted {
margin: 1em 1em 1em 0;
background: #ffffff;
border-top: 2px #656463 solid;
border-bottom: 2px #656463 solid;
border-collapse: collapse;
}
.booktabledotted td {
border-bottom: 1px dotted gray;
padding:0.2em;
}
.booktable td {
border: 0px none !important;
padding:0.2em;
}
.booktable tr.line-t td, .booktable tr td.line-t{
border-top: 1px #656463 solid !important;
}
.booktable tr.line-b td, .booktable tr td.line-b{
border-bottom: 1px #656463 solid !important;
}
.booktable tr.line-tb td, .booktable tr td.line-tb{
border-bottom: 1px #656463 solid !important;
border-top: 1px #656463 solid !important;
}
.booktabledotted th, .booktable th {
vertical-align:bottom;
border-bottom:1px solid #656463;
border-top: 1px solid #656463;
border-left:0px;
border-right:0px;
padding: 0.2em;
}
.booktabledotted th, .booktable th {
background: #ffffff;
text-align: center;
}
.booktable caption, .booktabledotted caption {
font-weight: normal;
}