* (bug 16754) Making arbitrary rows of sortable tables sticky:
authorRaimond Spekking <raymond@users.mediawiki.org>
Fri, 26 Dec 2008 22:00:15 +0000 (22:00 +0000)
committerRaimond Spekking <raymond@users.mediawiki.org>
Fri, 26 Dec 2008 22:00:15 +0000 (22:00 +0000)
  |- class="unsortable"
Patch by RenĂ© Kijewski

CREDITS
RELEASE-NOTES
includes/DefaultSettings.php
skins/common/wikibits.js

diff --git a/CREDITS b/CREDITS
index 9a51f84..6590f09 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -74,6 +74,7 @@ following names for their contribution to the product.
 * Olaf Lenz
 * Paul Copperman
 * RememberTheDot
+* RenĂ© Kijewski
 * ST47
 
 == Translators ==
index 70ad4bf..2c04efc 100644 (file)
@@ -250,6 +250,8 @@ The following extensions are migrated into MediaWiki 1.14:
 * Special:Log: Add 'change protection' link for unprotected pages too
 * Special:Log: Add log type specific CSS classes 'mw-logline-$logtype' to
   'li' elements
+* (bug 16754) Making arbitrary rows of sortable tables sticky:
+  |- class="unsortable"
 
 === Bug fixes in 1.14 ===
 
index 2b12f1c..efe1b2f 100644 (file)
@@ -1444,7 +1444,7 @@ $wgCacheEpoch = '20030516000000';
  * to ensure that client-side caches don't keep obsolete copies of global
  * styles.
  */
-$wgStyleVersion = '192';
+$wgStyleVersion = '193';
 
 
 # Server-side caching:
index 8ad57c0..3421aee 100644 (file)
@@ -637,13 +637,16 @@ function ts_resortTable(lnk) {
        var reverse = (span.getAttribute("sortdir") == 'down');
 
        var newRows = new Array();
+       var staticRows = new Array();
        for (var j = rowStart; j < table.rows.length; j++) {
                var row = table.rows[j];
-               var keyText = ts_getInnerText(row.cells[column]);
-               var oldIndex = (reverse ? -j : j);
-               var preprocessed = preprocessor( keyText );
+               if((" "+row.className+" ").indexOf(" unsortable ") < 0) {
+                       var keyText = ts_getInnerText(row.cells[column]);
+                       var oldIndex = (reverse ? -j : j);
+                       var preprocessed = preprocessor( keyText );
 
-               newRows[newRows.length] = new Array(row, preprocessed, oldIndex);
+                       newRows[newRows.length] = new Array(row, preprocessed, oldIndex);
+               } else staticRows[staticRows.length] = new Array(row, false, j-rowStart);
        }
 
        newRows.sort(sortfn);
@@ -658,6 +661,11 @@ function ts_resortTable(lnk) {
                span.setAttribute('sortdir','down');
        }
 
+       for(var i in staticRows) {
+               var row = staticRows[i];
+               newRows.splice(row[2], 0, row);
+       }
+
        // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
        // don't do sortbottom rows
        for (var i = 0; i < newRows.length; i++) {