From: Ed Sanders Date: Mon, 25 Jan 2016 17:14:29 +0000 (+0000) Subject: TableSorter: Avoid FOUC and preserve styling in VisualEditor X-Git-Tag: 1.31.0-rc.0~8059^2~1 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dmembres/cotisations/gestion/rappel_supprimer.php?a=commitdiff_plain;h=9e363d0e8a12f4fc205de08958622d6e8e250c81;p=lhc%2Fweb%2Fwiklou.git TableSorter: Avoid FOUC and preserve styling in VisualEditor Always make space for the icon and display a placeholder if JavaScript is loaded, even if we haven't set up table sorting for a given table yet. The table will not be sortable in VE mode but for layout preview we should show some disabled sort icons. Bug: T95189 Change-Id: Ieb21cf79ae68e388e824923cb6e2d7d552a4afc6 --- diff --git a/resources/src/jquery/jquery.tablesorter.less b/resources/src/jquery/jquery.tablesorter.less index f4ef540954..85c58d745c 100644 --- a/resources/src/jquery/jquery.tablesorter.less +++ b/resources/src/jquery/jquery.tablesorter.less @@ -1,19 +1,20 @@ @import "mediawiki.mixins"; -/* Table Sorting */ +// Table Sorting -table.jquery-tablesorter th.headerSort { +.client-js table.jquery-tablesorter th.headerSort { .background-image-svg( 'images/sort_both.svg', 'images/sort_both.png' ); cursor: pointer; + // Keep synchronized with mediawiki.skinning.content styles background-repeat: no-repeat; background-position: center right; padding-right: 21px; } -table.jquery-tablesorter th.headerSortUp { +.client-js table.jquery-tablesorter th.headerSortUp { .background-image-svg( 'images/sort_up.svg', 'images/sort_up.png' ); } -table.jquery-tablesorter th.headerSortDown { +.client-js table.jquery-tablesorter th.headerSortDown { .background-image-svg( 'images/sort_down.svg', 'images/sort_down.png' ); } diff --git a/resources/src/mediawiki.skinning/content.css b/resources/src/mediawiki.skinning/content.css index c88d00dd8b..a873cdfae4 100644 --- a/resources/src/mediawiki.skinning/content.css +++ b/resources/src/mediawiki.skinning/content.css @@ -241,3 +241,16 @@ div.tright { div.tleft { margin: .5em 1.4em 1.3em 0; } + +/* Make space for the jquery.tablesorter icon and display a placeholder if JavaScript is loaded, while + tablesorter is still loading and setting up the tables for sorting. This avoids a flash of + unstyled content during page load (FOUC). The styles can also be used by WYSIWYG editors. */ +.client-js table.sortable th:not(.unsortable) { + background-image: url(images/sort_both_readonly.png); + /* @embed */ + background-image: linear-gradient(transparent, transparent), url(images/sort_both_readonly.svg); + /* Keep synchronised with jquery.tablesorter styles */ + background-repeat: no-repeat; + background-position: center right; + padding-right: 21px; +} diff --git a/resources/src/mediawiki.skinning/images/sort_both_readonly.png b/resources/src/mediawiki.skinning/images/sort_both_readonly.png new file mode 100644 index 0000000000..bdb09e3d52 Binary files /dev/null and b/resources/src/mediawiki.skinning/images/sort_both_readonly.png differ diff --git a/resources/src/mediawiki.skinning/images/sort_both_readonly.svg b/resources/src/mediawiki.skinning/images/sort_both_readonly.svg new file mode 100644 index 0000000000..3b97000cf5 --- /dev/null +++ b/resources/src/mediawiki.skinning/images/sort_both_readonly.svg @@ -0,0 +1,4 @@ + + + +