r53410 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r53409‎ | r53410 | r53411 >
Date:18:05, 17 July 2009
Author:brion
Status:ok
Tags:
Comment:
Merging UI fixes from trunk; second batch from http://www.mediawiki.org/wiki/Special:Code/MediaWiki/tag/acaifix

r52815: (bug 19524) Move hiding initially hidden collapsable tables from monobook/main.css to common/shared.css
r52816: Changed XML IDs to be compatible with monobook things, and now tabs and menus are class driven rather than ID
r52817: Changed logo XML ID
r52818: Resolved accesibility issue with color contrasts on panel headers
r52819: (bug 19496) New pages don't have yellow background. Moving rules for .not-patrolled, div.patrollink and span.unpatrolled up to common/shared.css
r52822: Made things look a little better without images
r52846: (bug 19529) Missing styling for metadata table in Vector
r52850: Resolved incorrect wrapping of tabs in prefrences.
r52852: Remove bullets from TOC in Vector
r52853: Reduced specifificity of table rule which was superceding latter rules.
r52855: Added position:relative to #bodyContent to allow absolutes to be relative to it, rather than #content. Also, changed #actions to #p-cactions to be compatible with some javascript routines.
r52856: Fix up r52846 by moving up all mw_metadata stuff from monobook/modern to common CSS
r52857: Followup to r52856: actually move stuff to common, not vector
r52859: Modified filter selector for signature button filter so that it shows up on any edit page that doesn't have ns-0 as a body class.
r52871: [FlaggedRevs] Broke out parts of FlaggedArticle::setActionTabs into FlaggedArticle::setViewTabs, making it possible to support both SkinTemplateTabs and SkinTemplateNavigation.
r52872: [FlaggedRevs] Fixed bug - used wrong constructor.
r52876: [UsabilityInitiative] Fixed the way loading icon is positioned.
r52924: Agressive optimization of images, as well as merging of images which are identical.
r52986: Fixed IE bug that caused some rendering problems with floated content because of the assumed width of bodyContent.
r53128: Bump $wgStyleVersion for all the Vector-related fixes made in the past week or so.
r53129: Revert unintended change from r53128
r53190: Fixed display issue when raising font size really high, tabs would show background color, which is needed for displaying without images.
r53191: [UsabilityInitiative] Made text area match up to right side of toolbar.
r53197: Moved buildNavigationUrls back into Vector to make deployment more sane for now - this action will likely be reversed in the future when head is deployable.
r53199: Resolved some link coloring issues in the navigation tabs. Regenerated the RTL stylesheet using cssjanus. Made comments more logical for this type of operation.
r53203: Fixed bug caused in r52944 - where the inclusion of csshover.htc was lost in the move towards $wgOut->headElement(). Also, simplified the LTR/RTL inclusion - bringing the logic into the output page object.
r53204: Added more instructions to the comments to do with cssjanus.
r53205: [UsabilityInitiative] Fixed RTL alignment issues.
r53206: [UsabilityInitaitive] New signature icon.
r53210: Refactor of Vector skin output and RTL strategy. Needs more testing, but it seems to be working very well so far.
r53211: More IE fixes for RTL, getting quite close now.
r53247: More RTL fixes and also another fix to r52944 which broke the inclusion of common/IEFixes.js
r53249: Deafulted to a 0 minimum width on modern FF browsers.
r53252: missing globals
r53267: Improved smoothness of gradient.
Modified paths:
  • /branches/wmf-deployment (modified) (history)
  • /branches/wmf-deployment/extensions (modified) (history)
  • /branches/wmf-deployment/extensions/Collection (modified) (history)
  • /branches/wmf-deployment/extensions/FlaggedRevs (modified) (history)
  • /branches/wmf-deployment/extensions/FlaggedRevs/FlaggedArticle.php (modified) (history)
  • /branches/wmf-deployment/extensions/FlaggedRevs/FlaggedRevs.hooks.php (modified) (history)
  • /branches/wmf-deployment/extensions/FlaggedRevs/FlaggedRevs.php (modified) (history)
  • /branches/wmf-deployment/extensions/MWSearch/MWSearch_body.php (modified) (history)
  • /branches/wmf-deployment/extensions/MetavidWiki/skins/add_media_wizard.OFF.js (modified) (history)
  • /branches/wmf-deployment/extensions/SyntaxHighlight_GeSHi (modified) (history)
  • /branches/wmf-deployment/extensions/UsabilityInitiative (modified) (history)
  • /branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/EditToolbar.css (modified) (history)
  • /branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/EditToolbar.js (modified) (history)
  • /branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/images/insert-signature.png (modified) (history)
  • /branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/images/png24/insert-signature.png (modified) (history)
  • /branches/wmf-deployment/extensions/UsabilityInitiative/Resources (modified) (history)
  • /branches/wmf-deployment/extensions/WikimediaMessages (modified) (history)
  • /branches/wmf-deployment/extensions/timeline (modified) (history)
  • /branches/wmf-deployment/includes/ConfEditor.php (modified) (history)
  • /branches/wmf-deployment/includes/DefaultSettings.php (modified) (history)
  • /branches/wmf-deployment/includes/Skin.php (modified) (history)
  • /branches/wmf-deployment/includes/api/ApiQueryCategoryMembers.php (modified) (history)
  • /branches/wmf-deployment/includes/specials (modified) (history)
  • /branches/wmf-deployment/includes/specials/SpecialSearch.php (modified) (history)
  • /branches/wmf-deployment/includes/specials/SpecialUserrights.php (modified) (history)
  • /branches/wmf-deployment/skins/Vector.php (modified) (history)
  • /branches/wmf-deployment/skins/common/shared.css (modified) (history)
  • /branches/wmf-deployment/skins/modern/main.css (modified) (history)
  • /branches/wmf-deployment/skins/monobook/main.css (modified) (history)
  • /branches/wmf-deployment/skins/vector (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/arrow-down-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/audio-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/border.png (added) (history)
  • /branches/wmf-deployment/skins/vector/images/bullet-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/content-base.png (deleted) (history)
  • /branches/wmf-deployment/skins/vector/images/document-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/edit-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/external-link-ltr-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/external-link-rtl-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/file-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/foot-base.png (deleted) (history)
  • /branches/wmf-deployment/skins/vector/images/head-base.png (deleted) (history)
  • /branches/wmf-deployment/skins/vector/images/link-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/lock-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/magnify-clip.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/mail-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/news-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/page-base.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/page-fade.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/portal-break-ltr.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/portal-break-rtl.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/preferences-base.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/preferences-break.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/preferences-edge.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/preferences-fade.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/tab-break.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/tab-current-fade.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/tab-normal-fade.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/talk-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/user-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/images/video-icon.png (modified) (history)
  • /branches/wmf-deployment/skins/vector/main-ltr.css (modified) (history)
  • /branches/wmf-deployment/skins/vector/main-rtl.css (modified) (history)

Diff [purge]

Index: branches/wmf-deployment/skins/vector/images/head-base.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/foot-base.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/content-base.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/file-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/mail-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/page-fade.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/preferences-base.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/edit-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/bullet-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/border.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/wmf-deployment/skins/vector/images/border.png
___________________________________________________________________
Added: svn:mime-type
11 + application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/lock-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/magnify-clip.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/talk-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/portal-break-rtl.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/portal-break-ltr.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/tab-current-fade.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/preferences-break.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/link-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/page-base.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/arrow-down-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/audio-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/tab-break.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/tab-normal-fade.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/video-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/preferences-fade.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/news-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/external-link-rtl-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/external-link-ltr-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/preferences-edge.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/document-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/images/user-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/skins/vector/main-ltr.css
@@ -1,3 +1,19 @@
 2+/*
 3+ * main-rtl.css is automatically generated using CSSJanus, a python script for
 4+ * creating RTL versions of otherwise LTR stylesheets.
 5+ *
 6+ * You may download the tool to rebuild this stylesheet
 7+ * http://code.google.com/p/cssjanus/
 8+ *
 9+ * An online version of this tool can be used at:
 10+ * http://cssjanus.commoner.com/
 11+ *
 12+ * The following command is used to generate the RTL version of this file
 13+ * ./cssjanus.py --swap_ltr_rtl_in_url < main-ltr.css > main-rtl.css
 14+ *
 15+ * Any rules which should not be flipped should be prepended with @noflip in
 16+ * a comment block.
 17+ */
218 /* Framework */
319 html,
420 body {
@@ -5,16 +21,17 @@
622 margin: 0;
723 padding: 0;
824 font-family: sans-serif;
9 - font-size: small;
 25+ font-size: 9.75pt;
1026 }
1127 body {
 28+ background-color: #f3f3f3;
1229 background-image: url(images/page-base.png);
1330 }
1431 /* Content */
1532 div#content {
1633 margin-left: 12em;
1734 padding: 1em;
18 - background-image: url(images/content-base.png);
 35+ background-image: url(images/border.png);
1936 background-position: top left;
2037 background-repeat: repeat-y;
2138 background-color: white;
@@ -31,7 +48,7 @@
3249 margin-top: -6em;
3350 margin-left: 12em;
3451 height: 6em;
35 - background-image: url(images/head-base.png);
 52+ background-image: url(images/border.png);
3653 background-position: bottom left;
3754 background-repeat: repeat-x;
3855 }
@@ -41,12 +58,6 @@
4259 right: 0;
4360 width: 100%;
4461 }
45 -div#head ul,
46 -div#head li {
47 - list-style: none;
48 - margin: 0;
49 - padding: 0;
50 -}
5162 div#head h5 {
5263 margin: 0;
5364 padding: 0;
@@ -60,8 +71,16 @@
6172 div#p-personal h5 {
6273 display: none;
6374 }
 75+ div#p-personal ul {
 76+ list-style: none;
 77+ margin: 0;
 78+ padding: 0;
 79+ }
 80+ /* @noflip */
6481 div#p-personal li {
6582 float: left;
 83+ }
 84+ div#p-personal li {
6685 margin-left: 0.75em;
6786 margin-top: 0.5em;
6887 font-size: 0.9em;
@@ -77,49 +96,55 @@
7897 margin-top: 3em;
7998 }
8099 /* Navigation Labels */
81 - div#namespaces h5,
82 - div#variants h5 span,
83 - div#views h5,
84 - div#actions h5 span,
85 - div#search h5 {
 100+ div.vectorTabs h5,
 101+ div.vectorMenu h5 span {
86102 display: none;
87103 }
88104 /* Namespaces and Views */
89 - div#namespaces,
90 - div#views {
 105+ /* @noflip */
 106+ div.vectorTabs {
91107 float: left;
 108+ }
 109+ div.vectorTabs {
92110 background-image: url(images/tab-break.png);
93111 background-position: bottom left;
94112 background-repeat: no-repeat;
95113 padding-left: 1px;
96114 }
97 - div#namespaces ul,
98 - div#views ul {
 115+ /* @noflip */
 116+ div.vectorTabs ul {
99117 float: left;
 118+ }
 119+ div.vectorTabs ul {
100120 height: 100%;
 121+ list-style: none;
 122+ margin: 0;
 123+ padding: 0;
101124 }
 125+ /* @noflip */
 126+ div.vectorTabs ul li {
 127+ float: left;
 128+ }
102129 /* OVERRIDDEN BY COMPLIANT BROWSERS */
103 - div#namespaces ul li,
104 - div#views ul li {
 130+ div.vectorTabs ul li {
105131 display: inline-block;
106 - float: left;
107132 height: 100%;
 133+ margin: 0;
 134+ padding: 0;
 135+ background-color: #f3f3f3;
108136 background-image: url(images/tab-normal-fade.png);
109137 background-position: bottom left;
110138 background-repeat: repeat-x;
111139 }
112140 /* IGNORED BY IE6 */
113 - div#namespaces ul > li,
114 - div#views ul > li {
 141+ div.vectorTabs ul > li {
115142 display: block;
116143 }
117 - div#namespaces li.selected,
118 - div#views li.selected {
 144+ div.vectorTabs li.selected {
119145 background-image: url(images/tab-current-fade.png);
120146 }
121147 /* OVERRIDDEN BY COMPLIANT BROWSERS */
122 - div#namespaces li a,
123 - div#views li a {
 148+ div.vectorTabs li a {
124149 display: inline-block;
125150 height: 3em;
126151 padding-left: 0.5em;
@@ -128,50 +153,58 @@
129154 background-position: bottom right;
130155 background-repeat: no-repeat;
131156 }
 157+ div.vectorTabs li a,
 158+ div.vectorTabs li a span {
 159+ color: #0645ad;
 160+ cursor: pointer;
 161+ }
132162 /* IGNORED BY IE6 */
133 - div#namespaces li > a,
134 - div#views li > a {
 163+ div.vectorTabs li > a {
135164 display: block;
136165 }
137166 /* OVERRIDDEN BY COMPLIANT BROWSERS */
138 - div#namespaces a span,
139 - div#views a span {
140 - color: #0645ad;
 167+ div.vectorTabs a span {
141168 display: inline-block;
142169 padding-top: 1.25em;
143 - cursor: pointer;
144170 }
145171 /* IGNORED BY IE6 */
146 - div#namespaces a > span,
147 - div#views a > span {
 172+ /* @noflip */
 173+ div.vectorTabs a > span {
148174 float: left;
149175 display: block;
150176 }
151 - div#namespaces li.selected a span,
152 - div#views li.selected a:visited span {
 177+ div.vectorTabs li.selected a,
 178+ div.vectorTabs li.selected a span,
 179+ div.vectorTabs li.selected a:visited
 180+ div.vectorTabs li.selected a:visited span {
153181 color: #333333;
154182 cursor: default;
155183 text-decoration: none;
156184 }
157 - div#namespaces li.new a span,
158 - div#namespaces li.new a:visited span{
 185+ div.vectorTabs li.new a,
 186+ div.vectorTabs li.new a span,
 187+ div.vectorTabs li.new a:visited,
 188+ div.vectorTabs li.new a:visited span {
159189 color: #a55858;
160190 }
161191 /* Variants and Actions */
162 - div#variants,
163 - div#actions {
 192+ /* @noflip */
 193+ div.vectorMenu {
 194+ direction: ltr;
164195 float: left;
165196 background-image: url(images/arrow-down-icon.png);
166197 background-position: center center;
167198 background-repeat: no-repeat;
168199 }
169 - div#variants h5,
170 - div#actions h5 {
 200+ body.rtl div.vectorMenu {
 201+ direction: rtl;
 202+ }
 203+ /* @noflip */
 204+ div.vectorMenu h5 {
171205 float: left;
172206 }
173207 /* OVERRIDDEN BY COMPLIANT BROWSERS */
174 - div#variants h5 a,
175 - div#actions h5 a {
 208+ div.vectorMenu h5 a {
176209 display: inline-block;
177210 width: 24px;
178211 height: 3em;
@@ -181,50 +214,83 @@
182215 background-repeat: no-repeat;
183216 }
184217 /* IGNORED BY IE6 */
185 - div#variants h5 > a,
186 - div#actions h5 > a {
 218+ div.vectorMenu h5 > a {
187219 display: block;
188220 }
189 - div#variants div.menu,
190 - div#actions div.menu {
 221+ div.vectorMenu div.menu {
 222+ position: relative;
191223 display: none;
192224 clear: both;
 225+ text-align: left;
193226 }
194 - div#variants:hover div.menu,
195 - div#actions:hover div.menu {
 227+ /* OVERRIDDEN BY COMPLIANT BROWSERS */
 228+ body.rtl div.vectorMenu div.menu {
 229+ margin-right: 24px;
 230+ }
 231+ /* IGNORED BY IE6 */
 232+ body.rtl div.vectorMenu > div.menu {
 233+ margin-right: auto;
 234+ }
 235+ /* Fixes old versions of FireFox */
 236+ body.rtl div.vectorMenu > div.menu,
 237+ x:-moz-any-link {
 238+ margin-right: 24px;
 239+ }
 240+ div.vectorMenu:hover div.menu {
196241 display: block;
197242 }
198 - div#variants ul,
199 - div#actions ul {
 243+ div.vectorMenu ul {
200244 position: absolute;
201245 background-color: white;
202246 border: solid 1px silver;
203247 border-top-width: 0;
 248+ list-style: none;
204249 padding: 0;
205250 margin: 0;
206251 margin-left: -1px;
 252+ text-align: left;
207253 }
 254+ /* Fixes old versions of FireFox */
 255+ div.vectorMenu ul,
 256+ x:-moz-any-link {
 257+ min-width: 6em;
 258+ }
 259+ /* Returns things back to normal in modern versions of FireFox */
 260+ div.vectorMenu ul,
 261+ x:-moz-any-link,
 262+ x:default {
 263+ min-width: 0;
 264+ }
 265+ div.vectorMenu li {
 266+ padding: 0;
 267+ margin: 0;
 268+ text-align: left;
 269+ }
208270 /* OVERRIDDEN BY COMPLIANT BROWSERS */
209 - div#variants:hover li a,
210 - div#actions li a {
 271+ div.vectorMenu li a {
211272 display: inline-block;
212273 padding: 0.5em;
213274 }
214275 /* IGNORED BY IE6 */
215 - div#variants:hover li > a,
216 - div#actions li > a {
 276+ div.vectorMenu li > a {
217277 display: block;
218278 }
219279 /* Search */
220 - div#search {
 280+ div#p-search h5 {
 281+ display: none;
 282+ }
 283+ /* @noflip */
 284+ div#p-search {
221285 float: left;
222 - margin-right: 0.75em;
223286 }
224 - div#search form,
225 - div#search input {
226 - float: left;
 287+ div#p-search {
 288+ margin-right: 0.5em;
 289+ margin-left: 0.5em;
 290+ }
 291+ div#p-search form,
 292+ div#p-search input {
 293+ margin: 0;
227294 margin-top: 0.4em;
228 - margin-left: 0.25em;
229295 }
230296 /* Panel */
231297 div#panel {
@@ -238,7 +304,7 @@
239305 }
240306 div#panel div.portal h5 {
241307 font-weight: normal;
242 - color: #666666;
 308+ color: #444444;
243309 padding: 0.5em;
244310 padding-top: 0;
245311 padding-left: 1.25em;
@@ -277,7 +343,7 @@
278344 margin-left: 12em;
279345 margin-top: 0;
280346 padding: 0.75em;
281 - background-image: url(images/foot-base.png);
 347+ background-image: url(images/border.png);
282348 background-position: top left;
283349 background-repeat: repeat-x;
284350 }
@@ -314,14 +380,14 @@
315381 line-height: 2em;
316382 }
317383 /* Logo */
318 -div#logo {
 384+div#p-logo {
319385 position: absolute;
320386 top: 0;
321387 left: 0;
322388 height: 12em;
323389 width: 12em;
324390 }
325 -div#logo a {
 391+div#p-logo a {
326392 display: block;
327393 width: 12em;
328394 height: 12em;
@@ -340,11 +406,11 @@
341407 /* Preferences */
342408 #preftoc {
343409 /* Tabs */
 410+ width: 100%;
344411 float: left;
345412 clear: both;
346413 margin: 0 !important;
347414 padding: 0 !important;
348 - height: 2.25em;
349415 background-image: url(images/preferences-break.png);
350416 background-position: bottom left;
351417 background-repeat: no-repeat;
@@ -375,6 +441,7 @@
376442 padding: 0.5em;
377443 text-decoration: none;
378444 background-image: none;
 445+ font-size: 0.9em;
379446 }
380447 #preftoc a:hover {
381448 text-decoration: underline;
@@ -574,7 +641,7 @@
575642 margin-bottom: .1em;
576643 }
577644 /* Tables */
578 -div#content table {
 645+table {
579646 font-size: 100%;
580647 color: black;
581648 /* we don't want the bottom borders of <h2>s to be visible through
@@ -636,9 +703,9 @@
637704 }
638705 #toc ul,
639706 .toc ul {
640 - list-style-type: none;
641 - list-style-image: none;
642 - margin-left: 0;
 707+ list-style-type: none !important;
 708+ list-style-image: none !important;
 709+ margin-left: 0 !important;
643710 padding-left: 0;
644711 text-align: left;
645712 }
@@ -739,7 +806,7 @@
740807 #siteNotice {
741808 text-align: center;
742809 font-size: 95%;
743 - padding-top: 0.9em;
 810+ margin-bottom: 0.9em;
744811 }
745812 #siteNotice p {
746813 margin: 0;
@@ -889,3 +956,15 @@
890957 font-weight: bold;
891958 }
892959
 960+.toccolours {
 961+ border: 1px solid #aaa;
 962+ background-color: #f9f9f9;
 963+ padding: 5px;
 964+ font-size: 95%;
 965+}
 966+
 967+div#bodyContent {
 968+ position: relative;
 969+ width: 100%;
 970+}
 971+
Index: branches/wmf-deployment/skins/vector/main-rtl.css
@@ -1,6 +1,6 @@
22 /*
3 - * This file has been automatically generated using CSSJanus, a python script
4 - * for creating RTL versions of otherwise LTR stylesheets.
 3+ * main-rtl.css is automatically generated using CSSJanus, a python script for
 4+ * creating RTL versions of otherwise LTR stylesheets.
55 *
66 * You may download the tool to rebuild this stylesheet
77 * http://code.google.com/p/cssjanus/
@@ -8,8 +8,11 @@
99 * An online version of this tool can be used at:
1010 * http://cssjanus.commoner.com/
1111 *
12 - * The following options were passed to CSSJanus to build this file properly.
13 - * --swap_ltr_rtl_in_url
 12+ * The following command is used to generate the RTL version of this file
 13+ * ./cssjanus.py --swap_ltr_rtl_in_url < main-ltr.css > main-rtl.css
 14+ *
 15+ * Any rules which should not be flipped should be prepended with @noflip in
 16+ * a comment block.
1417 */
1518 /* Framework */
1619 html,
@@ -18,16 +21,17 @@
1922 margin: 0;
2023 padding: 0;
2124 font-family: sans-serif;
22 - font-size: small;
 25+ font-size: 9.75pt;
2326 }
2427 body {
 28+ background-color: #f3f3f3;
2529 background-image: url(images/page-base.png);
2630 }
2731 /* Content */
2832 div#content {
2933 margin-right: 12em;
3034 padding: 1em;
31 - background-image: url(images/content-base.png);
 35+ background-image: url(images/border.png);
3236 background-position: top right;
3337 background-repeat: repeat-y;
3438 background-color: white;
@@ -44,7 +48,7 @@
4549 margin-top: -6em;
4650 margin-right: 12em;
4751 height: 6em;
48 - background-image: url(images/head-base.png);
 52+ background-image: url(images/border.png);
4953 background-position: bottom right;
5054 background-repeat: repeat-x;
5155 }
@@ -54,12 +58,6 @@
5559 left: 0;
5660 width: 100%;
5761 }
58 -div#head ul,
59 -div#head li {
60 - list-style: none;
61 - margin: 0;
62 - padding: 0;
63 -}
6462 div#head h5 {
6563 margin: 0;
6664 padding: 0;
@@ -73,8 +71,16 @@
7472 div#p-personal h5 {
7573 display: none;
7674 }
 75+ div#p-personal ul {
 76+ list-style: none;
 77+ margin: 0;
 78+ padding: 0;
 79+ }
 80+ /* @noflip */
7781 div#p-personal li {
78 - float: right;
 82+ float: left;
 83+ }
 84+ div#p-personal li {
7985 margin-right: 0.75em;
8086 margin-top: 0.5em;
8187 font-size: 0.9em;
@@ -90,49 +96,55 @@
9197 margin-top: 3em;
9298 }
9399 /* Navigation Labels */
94 - div#namespaces h5,
95 - div#variants h5 span,
96 - div#views h5,
97 - div#actions h5 span,
98 - div#search h5 {
 100+ div.vectorTabs h5,
 101+ div.vectorMenu h5 span {
99102 display: none;
100103 }
101104 /* Namespaces and Views */
102 - div#namespaces,
103 - div#views {
104 - float: right;
 105+ /* @noflip */
 106+ div.vectorTabs {
 107+ float: left;
 108+ }
 109+ div.vectorTabs {
105110 background-image: url(images/tab-break.png);
106111 background-position: bottom right;
107112 background-repeat: no-repeat;
108113 padding-right: 1px;
109114 }
110 - div#namespaces ul,
111 - div#views ul {
112 - float: right;
 115+ /* @noflip */
 116+ div.vectorTabs ul {
 117+ float: left;
 118+ }
 119+ div.vectorTabs ul {
113120 height: 100%;
 121+ list-style: none;
 122+ margin: 0;
 123+ padding: 0;
114124 }
 125+ /* @noflip */
 126+ div.vectorTabs ul li {
 127+ float: left;
 128+ }
115129 /* OVERRIDDEN BY COMPLIANT BROWSERS */
116 - div#namespaces ul li,
117 - div#views ul li {
 130+ div.vectorTabs ul li {
118131 display: inline-block;
119 - float: right;
120132 height: 100%;
 133+ margin: 0;
 134+ padding: 0;
 135+ background-color: #f3f3f3;
121136 background-image: url(images/tab-normal-fade.png);
122137 background-position: bottom right;
123138 background-repeat: repeat-x;
124139 }
125140 /* IGNORED BY IE6 */
126 - div#namespaces ul > li,
127 - div#views ul > li {
 141+ div.vectorTabs ul > li {
128142 display: block;
129143 }
130 - div#namespaces li.selected,
131 - div#views li.selected {
 144+ div.vectorTabs li.selected {
132145 background-image: url(images/tab-current-fade.png);
133146 }
134147 /* OVERRIDDEN BY COMPLIANT BROWSERS */
135 - div#namespaces li a,
136 - div#views li a {
 148+ div.vectorTabs li a {
137149 display: inline-block;
138150 height: 3em;
139151 padding-right: 0.5em;
@@ -141,50 +153,58 @@
142154 background-position: bottom left;
143155 background-repeat: no-repeat;
144156 }
 157+ div.vectorTabs li a,
 158+ div.vectorTabs li a span {
 159+ color: #0645ad;
 160+ cursor: pointer;
 161+ }
145162 /* IGNORED BY IE6 */
146 - div#namespaces li > a,
147 - div#views li > a {
 163+ div.vectorTabs li > a {
148164 display: block;
149165 }
150166 /* OVERRIDDEN BY COMPLIANT BROWSERS */
151 - div#namespaces a span,
152 - div#views a span {
153 - color: #0645ad;
 167+ div.vectorTabs a span {
154168 display: inline-block;
155169 padding-top: 1.25em;
156 - cursor: pointer;
157170 }
158171 /* IGNORED BY IE6 */
159 - div#namespaces a > span,
160 - div#views a > span {
161 - float: right;
 172+ /* @noflip */
 173+ div.vectorTabs a > span {
 174+ float: left;
162175 display: block;
163176 }
164 - div#namespaces li.selected a span,
165 - div#views li.selected a:visited span {
 177+ div.vectorTabs li.selected a,
 178+ div.vectorTabs li.selected a span,
 179+ div.vectorTabs li.selected a:visited
 180+ div.vectorTabs li.selected a:visited span {
166181 color: #333333;
167182 cursor: default;
168183 text-decoration: none;
169184 }
170 - div#namespaces li.new a span,
171 - div#namespaces li.new a:visited span{
 185+ div.vectorTabs li.new a,
 186+ div.vectorTabs li.new a span,
 187+ div.vectorTabs li.new a:visited,
 188+ div.vectorTabs li.new a:visited span {
172189 color: #a55858;
173190 }
174191 /* Variants and Actions */
175 - div#variants,
176 - div#actions {
177 - float: right;
 192+ /* @noflip */
 193+ div.vectorMenu {
 194+ direction: ltr;
 195+ float: left;
178196 background-image: url(images/arrow-down-icon.png);
179197 background-position: center center;
180198 background-repeat: no-repeat;
181199 }
182 - div#variants h5,
183 - div#actions h5 {
184 - float: right;
 200+ body.rtl div.vectorMenu {
 201+ direction: rtl;
185202 }
 203+ /* @noflip */
 204+ div.vectorMenu h5 {
 205+ float: left;
 206+ }
186207 /* OVERRIDDEN BY COMPLIANT BROWSERS */
187 - div#variants h5 a,
188 - div#actions h5 a {
 208+ div.vectorMenu h5 a {
189209 display: inline-block;
190210 width: 24px;
191211 height: 3em;
@@ -194,50 +214,83 @@
195215 background-repeat: no-repeat;
196216 }
197217 /* IGNORED BY IE6 */
198 - div#variants h5 > a,
199 - div#actions h5 > a {
 218+ div.vectorMenu h5 > a {
200219 display: block;
201220 }
202 - div#variants div.menu,
203 - div#actions div.menu {
 221+ div.vectorMenu div.menu {
 222+ position: relative;
204223 display: none;
205224 clear: both;
 225+ text-align: right;
206226 }
207 - div#variants:hover div.menu,
208 - div#actions:hover div.menu {
 227+ /* OVERRIDDEN BY COMPLIANT BROWSERS */
 228+ body.rtl div.vectorMenu div.menu {
 229+ margin-left: 24px;
 230+ }
 231+ /* IGNORED BY IE6 */
 232+ body.rtl div.vectorMenu > div.menu {
 233+ margin-left: auto;
 234+ }
 235+ /* Fixes old versions of FireFox */
 236+ body.rtl div.vectorMenu > div.menu,
 237+ x:-moz-any-link {
 238+ margin-left: 24px;
 239+ }
 240+ div.vectorMenu:hover div.menu {
209241 display: block;
210242 }
211 - div#variants ul,
212 - div#actions ul {
 243+ div.vectorMenu ul {
213244 position: absolute;
214245 background-color: white;
215246 border: solid 1px silver;
216247 border-top-width: 0;
 248+ list-style: none;
217249 padding: 0;
218250 margin: 0;
219251 margin-right: -1px;
 252+ text-align: right;
220253 }
 254+ /* Fixes old versions of FireFox */
 255+ div.vectorMenu ul,
 256+ x:-moz-any-link {
 257+ min-width: 6em;
 258+ }
 259+ /* Returns things back to normal in modern versions of FireFox */
 260+ div.vectorMenu ul,
 261+ x:-moz-any-link,
 262+ x:default {
 263+ min-width: 0;
 264+ }
 265+ div.vectorMenu li {
 266+ padding: 0;
 267+ margin: 0;
 268+ text-align: right;
 269+ }
221270 /* OVERRIDDEN BY COMPLIANT BROWSERS */
222 - div#variants:hover li a,
223 - div#actions li a {
 271+ div.vectorMenu li a {
224272 display: inline-block;
225273 padding: 0.5em;
226274 }
227275 /* IGNORED BY IE6 */
228 - div#variants:hover li > a,
229 - div#actions li > a {
 276+ div.vectorMenu li > a {
230277 display: block;
231278 }
232279 /* Search */
233 - div#search {
234 - float: right;
235 - margin-left: 0.75em;
 280+ div#p-search h5 {
 281+ display: none;
236282 }
237 - div#search form,
238 - div#search input {
239 - float: right;
 283+ /* @noflip */
 284+ div#p-search {
 285+ float: left;
 286+ }
 287+ div#p-search {
 288+ margin-left: 0.5em;
 289+ margin-right: 0.5em;
 290+ }
 291+ div#p-search form,
 292+ div#p-search input {
 293+ margin: 0;
240294 margin-top: 0.4em;
241 - margin-right: 0.25em;
242295 }
243296 /* Panel */
244297 div#panel {
@@ -251,12 +304,13 @@
252305 }
253306 div#panel div.portal h5 {
254307 font-weight: normal;
255 - color: #666666;
 308+ color: #444444;
256309 padding: 0.5em;
257310 padding-top: 0;
258311 padding-right: 1.25em;
259312 cursor: default;
260313 border: none;
 314+ font-size: 0.9em;
261315 }
262316 div#panel div.portal div.body {
263317 margin: 0;
@@ -265,7 +319,6 @@
266320 background-image: url(images/portal-break-rtl.png);
267321 background-repeat: no-repeat;
268322 background-position: top right;
269 - font-size: 0.9em;
270323 }
271324 div#panel div.portal div.body ul {
272325 list-style: none;
@@ -290,7 +343,7 @@
291344 margin-right: 12em;
292345 margin-top: 0;
293346 padding: 0.75em;
294 - background-image: url(images/foot-base.png);
 347+ background-image: url(images/border.png);
295348 background-position: top right;
296349 background-repeat: repeat-x;
297350 }
@@ -327,14 +380,14 @@
328381 line-height: 2em;
329382 }
330383 /* Logo */
331 -div#logo {
 384+div#p-logo {
332385 position: absolute;
333386 top: 0;
334387 right: 0;
335388 height: 12em;
336389 width: 12em;
337390 }
338 -div#logo a {
 391+div#p-logo a {
339392 display: block;
340393 width: 12em;
341394 height: 12em;
@@ -353,11 +406,11 @@
354407 /* Preferences */
355408 #preftoc {
356409 /* Tabs */
 410+ width: 100%;
357411 float: right;
358412 clear: both;
359413 margin: 0 !important;
360414 padding: 0 !important;
361 - height: 2.25em;
362415 background-image: url(images/preferences-break.png);
363416 background-position: bottom right;
364417 background-repeat: no-repeat;
@@ -388,6 +441,7 @@
389442 padding: 0.5em;
390443 text-decoration: none;
391444 background-image: none;
 445+ font-size: 0.9em;
392446 }
393447 #preftoc a:hover {
394448 text-decoration: underline;
@@ -587,7 +641,7 @@
588642 margin-bottom: .1em;
589643 }
590644 /* Tables */
591 -div#content table {
 645+table {
592646 font-size: 100%;
593647 color: black;
594648 /* we don't want the bottom borders of <h2>s to be visible through
@@ -649,9 +703,9 @@
650704 }
651705 #toc ul,
652706 .toc ul {
653 - list-style-type: none;
654 - list-style-image: none;
655 - margin-right: 0;
 707+ list-style-type: none !important;
 708+ list-style-image: none !important;
 709+ margin-right: 0 !important;
656710 padding-right: 0;
657711 text-align: right;
658712 }
@@ -752,7 +806,7 @@
753807 #siteNotice {
754808 text-align: center;
755809 font-size: 95%;
756 - padding-top: 0.9em;
 810+ margin-bottom: 0.9em;
757811 }
758812 #siteNotice p {
759813 margin: 0;
@@ -889,6 +943,7 @@
890944 display: none;
891945 }
892946
 947+
893948 li#pt-userpage,
894949 li#pt-anonuserpage,
895950 li#pt-login {
@@ -901,3 +956,15 @@
902957 font-weight: bold;
903958 }
904959
 960+.toccolours {
 961+ border: 1px solid #aaa;
 962+ background-color: #f9f9f9;
 963+ padding: 5px;
 964+ font-size: 95%;
 965+}
 966+
 967+div#bodyContent {
 968+ position: relative;
 969+ width: 100%;
 970+}
 971+
Property changes on: branches/wmf-deployment/skins/vector
___________________________________________________________________
Modified: svn:mergeinfo
905972 Merged /trunk/phase3/skins/vector:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Index: branches/wmf-deployment/skins/monobook/main.css
@@ -1127,21 +1127,13 @@
11281128 display: none;
11291129 }
11301130
1131 -.not-patrolled {
1132 - background-color: #ffa;
1133 -}
 1131+
11341132 div.patrollink {
11351133 clear: both;
1136 - font-size: 75%;
1137 - text-align: right;
11381134 }
11391135 span.newpage, span.minor, span.bot {
11401136 font-weight: bold;
11411137 }
1142 -span.unpatrolled {
1143 - font-weight: bold;
1144 - color: red;
1145 -}
11461138
11471139 .sharedUploadNotice {
11481140 font-style: italic;
@@ -1230,50 +1222,6 @@
12311223 text-indent: -2em;
12321224 }
12331225
1234 -/* Classes for EXIF data display */
1235 -table.mw_metadata {
1236 - font-size: 0.8em;
1237 - margin-left: 0.5em;
1238 - margin-bottom: 0.5em;
1239 - width: 300px;
1240 -}
1241 -
1242 -table.mw_metadata caption {
1243 - font-weight: bold;
1244 -}
1245 -
1246 -table.mw_metadata th {
1247 - font-weight: normal;
1248 -}
1249 -
1250 -table.mw_metadata td {
1251 - padding: 0.1em;
1252 -}
1253 -
1254 -table.mw_metadata {
1255 - border: none;
1256 - border-collapse: collapse;
1257 -}
1258 -
1259 -table.mw_metadata td, table.mw_metadata th {
1260 - text-align: center;
1261 - border: 1px solid #aaaaaa;
1262 - padding-left: 0.1em;
1263 - padding-right: 0.1em;
1264 -}
1265 -
1266 -table.mw_metadata th {
1267 - background-color: #f9f9f9;
1268 -}
1269 -
1270 -table.mw_metadata td {
1271 - background-color: #fcfcfc;
1272 -}
1273 -
1274 -table.collapsed tr.collapsable {
1275 - display: none;
1276 -}
1277 -
12781226 input#wpSummary {
12791227 width: 80%;
12801228 }
Index: branches/wmf-deployment/skins/modern/main.css
@@ -639,20 +639,10 @@
640640 display: none;
641641 }
642642
643 -.not-patrolled {
644 - background-color: #ffa;
645 -}
646 -div.patrollink {
647 - font-size: 75%;
648 - text-align: right;
649 -}
 643+
650644 span.newpage, span.minor, span.bot {
651645 font-weight: bold;
652646 }
653 -span.unpatrolled {
654 - font-weight: bold;
655 - color: red;
656 -}
657647
658648 .sharedUploadNotice {
659649 font-style: italic;
@@ -744,46 +734,6 @@
745735 text-indent: -2em;
746736 }
747737
748 -/* Classes for EXIF data display */
749 -table.mw_metadata {
750 - font-size: 0.8em;
751 - margin-left: 0.5em;
752 - margin-bottom: 0.5em;
753 - width: 300px;
754 -}
755 -
756 -table.mw_metadata caption {
757 - font-weight: bold;
758 -}
759 -
760 -table.mw_metadata th {
761 - font-weight: normal;
762 -}
763 -
764 -table.mw_metadata td {
765 - padding: 0.1em;
766 -}
767 -
768 -table.mw_metadata {
769 - border: none;
770 - border-collapse: collapse;
771 -}
772 -
773 -table.mw_metadata td, table.mw_metadata th {
774 - text-align: center;
775 - border: 1px solid #aaaaaa;
776 - padding-left: 0.1em;
777 - padding-right: 0.1em;
778 -}
779 -
780 -table.mw_metadata th {
781 - background-color: #f9f9f9;
782 -}
783 -
784 -table.mw_metadata td {
785 - background-color: #fcfcfc;
786 -}
787 -
788738 table.collapsed tr.collapsable {
789739 display: none;
790740 }
Index: branches/wmf-deployment/skins/Vector.php
@@ -24,30 +24,38 @@
2525 * @param object $out Output page object to initialize
2626 */
2727 public function initPage( OutputPage $out ) {
 28+ global $wgStylePath, $wgJsMimeType, $wgStyleVersion;
 29+
2830 parent::initPage( $out );
2931 $this->skinname = 'vector';
3032 $this->stylename = 'vector';
3133 $this->template = 'VectorTemplate';
 34+
 35+ // Append skin-specific styles
 36+ $out->addStyle( 'vector/main-rtl.css', 'screen', '', 'rtl' );
 37+ $out->addStyle( 'vector/main-ltr.css', 'screen', '', 'ltr' );
 38+ // Append CSS which includes IE only behavior fixes for hover support -
 39+ // this is better than including this in a CSS fille since it doesn't
 40+ // wait for the CSS file to load before fetching the HTC file.
 41+ $out->addScript(
 42+ '<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
 43+ $wgStylePath .
 44+ '/vector/csshover.htc")}</style><![endif]-->'
 45+ );
 46+ // Append common IE fixes, which perhaps should be included in all
 47+ // skins, but for now it seems each skin needs to include them
 48+ // explicitly
 49+ $out->addScript(
 50+ '<!--[if lt IE 7]><script type="' . $wgJsMimeType . '" src="' .
 51+ $wgStylePath .
 52+ '/common/IEFixes.js?' .
 53+ $wgStyleVersion .
 54+ '"></script>' .
 55+ '<meta http-equiv="imagetoolbar" content="no" /><![endif]-->'
 56+ );
3257 }
33 -
3458 /**
35 - * Defines CSS files to be included
36 - * @param object $out Output page to add styles to
37 - */
38 - public function setupSkinUserCss( OutputPage $out ) {
39 - global $wgContLang;
40 - // Append to the default screen common & print styles...
41 - if ( $wgContLang->isRTL() ) {
42 - $out->addStyle( 'vector/main-rtl.css', 'screen' );
43 - } else {
44 - $out->addStyle( 'vector/main-ltr.css', 'screen' );
45 - }
46 - // Add common styles
47 - parent::setupSkinUserCss( $out );
48 - }
49 -
50 - /**
51 - * A structured array of edit links by default used for the tabs
 59+ * Builds a structured array of links used for tabs and menus
5260 * @return array
5361 * @private
5462 */
@@ -63,7 +71,7 @@
6472 'actions' => array(),
6573 'variants' => array()
6674 );
67 -
 75+
6876 // Detects parameters
6977 $action = $wgRequest->getVal( 'action', 'view' );
7078 $section = $wgRequest->getVal( 'section' );
@@ -81,7 +89,11 @@
8290 // Generates XML IDs from namespace names
8391 $subjectId = $this->mTitle->getNamespaceKey( '' );
8492
85 - $talkId = "{$subjectId}_talk";
 93+ if ( $subjectId == 'main' ) {
 94+ $talkId = 'talk';
 95+ } else {
 96+ $talkId = "{$subjectId}_talk";
 97+ }
8698 $currentId = $isTalk ? $talkId : $subjectId;
8799
88100 // Adds namespace links
@@ -103,7 +115,7 @@
104116 }
105117
106118 wfProfileIn( __METHOD__ . '-edit' );
107 -
 119+
108120 // Checks if user can...
109121 if (
110122 // edit the current page
@@ -312,7 +324,6 @@
313325 // Gets preferred variant
314326 $preferred = $wgContLang->getPreferredVariant();
315327 // Loops over each variant
316 - $vcount = 0;
317328 foreach( $variants as $code ) {
318329 // Gets variant name from language code
319330 $varname = $wgContLang->getVariantname( $code );
@@ -322,12 +333,11 @@
323334 continue;
324335 }
325336 // Appends variant link
326 - $links['variants'][$vcount] = array(
 337+ $links['variants'][] = array(
327338 'class' => ( $code == $preferred ) ? 'selected' : false,
328339 'text' => $varname,
329340 'href' => $this->mTitle->getLocalURL( '', $code )
330341 );
331 - $vcount ++;
332342 }
333343 }
334344
@@ -342,29 +352,29 @@
343353 * @ingroup Skins
344354 */
345355 class VectorTemplate extends QuickTemplate {
346 -
 356+
347357 /* Members */
348 -
 358+
349359 /**
350360 * @var Cached skin object
351361 */
352362 var $skin;
353 -
 363+
354364 /* Functions */
355 -
 365+
356366 /**
357367 * Outputs the entire contents of the XHTML page
358368 */
359369 public function execute() {
360 - global $wgRequest, $wgUseTwoButtonsSearchForm;
361 -
 370+ global $wgRequest, $wgOut, $wgContLang;
 371+
362372 $this->skin = $this->data['skin'];
363373 $action = $wgRequest->getText( 'action' );
364 -
 374+
365375 // Suppress warnings to prevent notices about missing indexes in
366376 // $this->data (is this really the best way to handle this?)
367377 wfSuppressWarnings();
368 -
 378+
369379 // Build additional attributes for navigation urls
370380 $nav = $this->skin->buildNavigationUrls();
371381 foreach ( $nav as $section => $links ) {
@@ -379,11 +389,11 @@
380390 $nav[$section][$key]['attributes'] .=
381391 ' class="' . htmlspecialchars( $link['class'] ) . '"';
382392 }
383 - // We don't want to give the watch tab an accesskey if the page is
384 - // being edited, because that conflicts with the accesskey on the
385 - // watch checkbox. We also don't want to give the edit tab an
386 - // accesskey, because that's fairly superfluous and conflicts with
387 - // an accesskey (Ctrl-E) often used for editing in Safari.
 393+ // We don't want to give the watch tab an accesskey if the page
 394+ // is being edited, because that conflicts with the accesskey on
 395+ // the watch checkbox. We also don't want to give the edit tab
 396+ // an accesskey, because that's fairly superfluous and conflicts
 397+ // with an accesskey (Ctrl-E) often used for editing in Safari.
388398 if (
389399 in_array( $action, array( 'edit', 'submit' ) ) &&
390400 in_array( $key, array( 'edit', 'watch', 'unwatch' ) )
@@ -400,7 +410,6 @@
401411 $this->data['view_urls'] = $nav['views'];
402412 $this->data['action_urls'] = $nav['actions'];
403413 $this->data['variant_urls'] = $nav['variants'];
404 -
405414 // Build additional attributes for personal_urls
406415 foreach ( $this->data['personal_urls'] as $key => $item) {
407416 $this->data['personal_urls'][$key]['attributes'] =
@@ -412,7 +421,7 @@
413422 $this->data['personal_urls'][$key]['key'] =
414423 $this->skin->tooltipAndAccesskey('pt-'.$key);
415424 }
416 -
 425+
417426 // Generate additional footer links
418427 $footerlinks = array(
419428 'info' => array(
@@ -429,8 +438,7 @@
430439 'disclaimer',
431440 ),
432441 );
433 -
434 - // Build list of valid footer links
 442+ // Reduce footer links down to only those which are being used
435443 $validFooterLinks = array();
436444 foreach( $footerlinks as $category => $links ) {
437445 $validFooterLinks[$category] = array();
@@ -440,111 +448,71 @@
441449 }
442450 }
443451 }
444 -
445 - // Begin content output
446 -?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
447 -<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php foreach($this->data['xhtmlnamespaces'] as $tag => $ns): ?>xmlns:<?php echo "{$tag}=\"{$ns}\" "; ?><?php endforeach ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
448 - <head>
449 - <meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
450 - <title><?php $this->text('pagetitle') ?></title>
451 - <!-- headlinks -->
452 - <?php $this->html('headlinks') ?>
453 - <!-- /headlinks -->
454 - <!-- csslinks -->
455 - <?php $this->html('csslinks') ?>
456 - <!-- /csslinks -->
457 - <!-- IEFixes -->
458 - <!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
459 - <meta http-equiv="imagetoolbar" content="no" /><![endif]-->
460 - <style type="text/css">body{behavior:url("<?php $this->text('stylepath') ?>/vector/csshover.htc")}</style>
461 - <!-- /IEFixes -->
462 - <!-- globalVariablesScript -->
463 - <?php echo Skin::makeGlobalVariablesScript( $this->data ); ?>
464 - <!-- /globalVariablesScript -->
465 - <!-- wikibits -->
466 - <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
467 - <!-- /wikibits -->
468 - <!-- headscripts -->
469 - <?php $this->html('headscripts') ?>
470 - <!-- /headscripts -->
471 - <?php if($this->data['jsvarurl']): ?>
472 - <!-- jsvarurl -->
473 - <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
474 - <!-- /jsvarurl -->
475 - <?php endif; ?>
476 - <?php if($this->data['pagecss']): ?>
477 - <!-- pagecss -->
478 - <style type="text/css"><?php $this->html('pagecss') ?></style>
479 - <!-- /pagecss -->
480 - <?php endif; ?>
481 - <?php if($this->data['usercss']): ?>
482 - <!-- usercss -->
483 - <style type="text/css"><?php $this->html('usercss') ?></style>
484 - <!-- /usercss -->
485 - <?php endif; ?>
486 - <?php if($this->data['userjs']): ?>
487 - <!-- userjs -->
488 - <script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
489 - <!-- /userjs -->
490 - <?php endif; ?>
491 - <?php if($this->data['userjsprev']): ?>
492 - <!-- userjsprev -->
493 - <script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
494 - <!-- /userjsprev -->
495 - <?php endif; ?>
496 - <?php if($this->data['trackbackhtml']): ?>
497 - <!-- trackbackhtml -->
498 - <?php echo $this->data['trackbackhtml']; ?>
499 - <!-- /trackbackhtml -->
500 - <?php endif; ?>
501 - </head>
502 - <body<?php if($this->data['body_ondblclick']): ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php endif; ?> <?php if($this->data['body_onload']): ?> onload="<?php $this->text('body_onload') ?>"<?php endif; ?> class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
 452+ // Reverse horizontally rendered navigation elements
 453+ if ( $wgContLang->isRTL() ) {
 454+ $this->data['view_urls'] =
 455+ array_reverse( $this->data['view_urls'] );
 456+ $this->data['namespace_urls'] =
 457+ array_reverse( $this->data['namespace_urls'] );
 458+ $this->data['personal_urls'] =
 459+ array_reverse( $this->data['personal_urls'] );
 460+ }
 461+ // Output HTML Page
 462+ echo $wgOut->headElement( $this->skin );
 463+?>
 464+ <body<?php if ( $this->data['body_ondblclick'] ): ?> ondblclick="<?php $this->text( 'body_ondblclick' ) ?>"<?php endif; ?> <?php if ( $this->data['body_onload'] ): ?> onload="<?php $this->text( 'body_onload' ) ?>"<?php endif; ?> class="mediawiki <?php $this->text( 'dir' ) ?> <?php $this->text( 'pageclass' ) ?> <?php $this->text( 'skinnameclass' ) ?>" dir="<?php $this->text( 'dir' ) ?>">
503465 <div id="page-base" class="noprint"></div>
504466 <div id="head-base" class="noprint"></div>
505467 <!-- content -->
506468 <div id="content">
507469 <a name="top" id="top"></a>
 470+ <?php if ( $this->data['sitenotice'] ): ?>
508471 <!-- sitenotice -->
509 - <?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
 472+ <div id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div>
510473 <!-- /sitenotice -->
 474+ <?php endif; ?>
511475 <!-- firstHeading -->
512 - <h1 id="firstHeading" class="firstHeading"><?php $this->html('title') ?></h1>
 476+ <h1 id="firstHeading" class="firstHeading"><?php $this->html( 'title' ) ?></h1>
513477 <!-- /firstHeading -->
514478 <!-- bodyContent -->
515479 <div id="bodyContent">
516480 <!-- tagline -->
517 - <h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
 481+ <h3 id="siteSub"><?php $this->msg( 'tagline' ) ?></h3>
518482 <!-- /tagline -->
519483 <!-- subtitle -->
520 - <div id="contentSub"><?php $this->html('subtitle') ?></div>
 484+ <div id="contentSub"><?php $this->html( 'subtitle' ) ?></div>
521485 <!-- /subtitle -->
522 - <?php if($this->data['undelete']): ?>
 486+ <?php if ( $this->data['undelete'] ): ?>
523487 <!-- undelete -->
524 - <div id="contentSub2"><?php $this->html('undelete') ?></div>
 488+ <div id="contentSub2"><?php $this->html( 'undelete' ) ?></div>
525489 <!-- /undelete -->
526490 <?php endif; ?>
527491 <?php if($this->data['newtalk'] ): ?>
528492 <!-- newtalk -->
529 - <div class="usermessage"><?php $this->html('newtalk') ?></div>
 493+ <div class="usermessage"><?php $this->html( 'newtalk' ) ?></div>
530494 <!-- /newtalk -->
531495 <?php endif; ?>
532 - <?php if($this->data['showjumplinks']): ?>
 496+ <?php if ( $this->data['showjumplinks'] ): ?>
533497 <!-- jumpto -->
534498 <div id="jump-to-nav">
535 - <?php $this->msg('jumpto') ?> <a href="#head"><?php $this->msg('jumptonavigation') ?></a>,
536 - <a href="#search"><?php $this->msg('jumptosearch') ?></a>
 499+ <?php $this->msg( 'jumpto' ) ?><a href="#head"><?php $this->msg( 'jumptonavigation' ) ?></a>,
 500+ <a href="#search"><?php $this->msg( 'jumptosearch' ) ?></a>
537501 </div>
538502 <!-- /jumpto -->
539503 <?php endif; ?>
540504 <!-- bodytext -->
541 - <?php $this->html('bodytext') ?>
 505+ <?php $this->html( 'bodytext' ) ?>
542506 <!-- /bodytext -->
 507+ <?php if ( $this->data['catlinks'] ): ?>
543508 <!-- catlinks -->
544 - <?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
 509+ <?php $this->html( 'catlinks' ); ?>
545510 <!-- /catlinks -->
 511+ <?php endif; ?>
 512+ <?php if ( $this->data['dataAfterContent'] ): ?>
546513 <!-- dataAfterContent -->
547 - <?php if($this->data['dataAfterContent']) { $this->html('dataAfterContent'); } ?>
 514+ <?php $this->html( 'dataAfterContent' ); ?>
548515 <!-- /dataAfterContent -->
 516+ <?php endif; ?>
549517 <div class="visualClear"></div>
550518 </div>
551519 <!-- /bodyContent -->
@@ -552,114 +520,20 @@
553521 <!-- /content -->
554522 <!-- header -->
555523 <div id="head" class="noprint">
556 - <!-- personal -->
557 - <div id="p-personal">
558 - <h5><?php $this->msg('personaltools') ?></h5>
559 - <ul <?php $this->html('userlangattributes') ?>>
560 - <?php foreach($this->data['personal_urls'] as $key => $item): ?>
561 - <li <?php echo $item['attributes'] ?>><a href="<?php echo htmlspecialchars($item['href']) ?>"<?php echo $item['key'] ?><?php if(!empty($item['class'])): ?> class="<?php echo htmlspecialchars($item['class']) ?>"<?php endif; ?>><?php echo htmlspecialchars($item['text']) ?></a></li>
562 - <?php endforeach; ?>
563 - </ul>
564 - </div>
565 - <!-- /personal -->
 524+ <?php $this->renderNavigation( 'PERSONAL' ); ?>
566525 <div id="left-navigation">
567 - <!-- namespaces -->
568 - <div id="namespaces">
569 - <h5><?php $this->msg('namespaces') ?></h5>
570 - <ul <?php $this->html('userlangattributes') ?>>
571 - <?php foreach ($this->data['namespace_urls'] as $key => $link ): ?>
572 - <li <?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><span><?php echo htmlspecialchars( $link['text'] ) ?></span></a></li>
573 - <?php endforeach; ?>
574 - </ul>
575 - </div>
576 - <!-- /namespaces -->
577 - <!-- variants -->
578 - <?php if ( count( $this->data['variant_urls'] ) > 0 ): ?>
579 - <div id="variants">
580 - <h5><div class="icon"><span><?php $this->msg('variants') ?></span></div></h5>
581 - <div class="menu">
582 - <ul <?php $this->html('userlangattributes') ?>>
583 - <?php foreach ($this->data['variant_urls'] as $key => $link ): ?>
584 - <li<?php echo $link['attributes'] ?><?php if(!empty($link['class'])): ?> class="<?php echo htmlspecialchars($link['class']) ?>"<?php endif; ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
585 - <?php endforeach; ?>
586 - </ul>
587 - </div>
588 - </div>
589 - <?php endif; ?>
590 - <!-- /variants -->
 526+ <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?>
591527 </div>
592528 <div id="right-navigation">
593 - <!-- views -->
594 - <?php if ( count( $this->data['view_urls'] ) > 0 ): ?>
595 - <div id="views">
596 - <h5><?php $this->msg('views') ?></h5>
597 - <ul <?php $this->html('userlangattributes') ?>>
598 - <?php foreach ($this->data['view_urls'] as $key => $link ): ?>
599 - <li<?php echo $link['attributes'] ?><?php if(!empty($link['class'])): ?> class="<?php echo htmlspecialchars($link['class']) ?>"<?php endif; ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><span><?php echo htmlspecialchars( $link['text'] ) ?></span></a></li>
600 - <?php endforeach; ?>
601 - </ul>
602 - </div>
603 - <?php endif; ?>
604 - <!-- /views -->
605 - <!-- actions -->
606 - <?php if ( count( $this->data['action_urls'] ) > 0 ): ?>
607 - <div id="actions">
608 - <h5><span><?php $this->msg('actions') ?></span><a href="#">&nbsp;</a></h5>
609 - <div class="menu">
610 - <ul <?php $this->html('userlangattributes') ?>>
611 - <?php foreach ($this->data['action_urls'] as $key => $link ): ?>
612 - <li<?php echo $link['attributes'] ?><?php if(!empty($link['class'])): ?> class="<?php echo htmlspecialchars($link['class']) ?>"<?php endif; ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
613 - <?php endforeach; ?>
614 - </ul>
615 - </div>
616 - </div>
617 - <?php endif; ?>
618 - <!-- /actions -->
619 - <!-- search -->
620 - <div id="search">
621 - <h5 <?php $this->html('userlangattributes') ?>><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h5>
622 - <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
623 - <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
624 - <input id="searchInput" name="search" type="text" <?php echo $this->skin->tooltipAndAccesskey( 'search' ); ?> <?php if( isset( $this->data['search'] ) ): ?> value="<?php $this->text( 'search' ) ?>"<?php endif; ?> />
625 - <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg( 'searcharticle' ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />
626 - <?php if ( $wgUseTwoButtonsSearchForm ): ?>
627 - <input type="submit" name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg( 'searchbutton' ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
628 - <?php else: ?>
629 - <div><a href="<?php $this->text( 'searchaction' ) ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div>
630 - <?php endif; ?>
631 - </form>
632 - </div>
633 - <!-- /search -->
 529+ <?php $this->renderNavigation( array( 'VIEWS', 'ACTIONS', 'SEARCH' ) ); ?>
634530 </div>
635531 </div>
636532 <!-- /header -->
637533 <!-- panel -->
638 - <div id="panel" class="noprint">
639 - <!-- sidebar -->
640 - <?php
641 - $sidebar = $this->data['sidebar'];
642 - $sidebar['TOOLBOX'] = ( !isset( $sidebar['TOOLBOX'] ) );
643 - $sidebar['LANGUAGES'] = ( !isset( $sidebar['LANGUAGES'] ) );
644 - foreach ( $sidebar as $name => $content ) {
645 - switch( $name ) {
646 - case 'SEARCH':
647 - break;
648 - case 'TOOLBOX':
649 - $this->toolBox();
650 - break;
651 - case 'LANGUAGES':
652 - $this->languageBox();
653 - break;
654 - default:
655 - $this->customBox( $name, $content );
656 - break;
657 - }
658 - }
659 - ?>
660 - <!-- /sidebar -->
661 - </div>
 534+ <div id="panel" class="noprint">
 535+ <?php $this->renderPortals( $this->data['sidebar'] ); ?>
 536+ </div>
662537 <!-- /panel -->
663 - <div class="break"></div>
664538 <!-- foot -->
665539 <div id="foot">
666540 <?php foreach( $validFooterLinks as $category => $links ): ?>
@@ -674,10 +548,10 @@
675549 <?php endif; ?>
676550 <?php endforeach; ?>
677551 <ul id="foot-icons" class="noprint">
678 - <?php if( $this->data['poweredbyico'] ): ?>
 552+ <?php if ( $this->data['poweredbyico'] ): ?>
679553 <li id="foot-icon-poweredby"><?php $this->html( 'poweredbyico' ) ?></li>
680554 <?php endif; ?>
681 - <?php if( $this->data['copyrightico'] ): ?>
 555+ <?php if ( $this->data['copyrightico'] ): ?>
682556 <li id="foot-icon-copyright"><?php $this->html( 'copyrightico' ) ?></li>
683557 <?php endif; ?>
684558 </ul>
@@ -685,19 +559,15 @@
686560 </div>
687561 <!-- /foot -->
688562 <!-- logo -->
689 - <div id="logo">
690 - <a style="background-image: url(<?php $this->text('logopath') ?>);" href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>" <?php echo $this->skin->tooltipAndAccesskey('p-logo') ?>></a>
691 - </div>
 563+ <div id="p-logo"><a style="background-image: url(<?php $this->text( 'logopath' ) ?>);" href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>" <?php echo $this->skin->tooltipAndAccesskey( 'p-logo' ) ?>></a></div>
692564 <!-- /logo -->
693565 <!-- fixalpha -->
694 - <script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha( 'logo' ); </script>
 566+ <script type="<?php $this->text('jsmimetype') ?>"> if ( window.isMSIE55 ) fixalpha(); </script>
695567 <!-- /fixalpha -->
696568 <?php $this->html( 'bottomscripts' ); /* JS call to runBodyOnloadHook */ ?>
697569 <?php $this->html( 'reporttime' ) ?>
698570 <?php if ( $this->data['debug'] ): ?>
699 - <!-- Debug output:
700 - <?php $this->text( 'debug' ); ?>
701 - -->
 571+ <!-- Debug output: <?php $this->text( 'debug' ); ?> -->
702572 <?php endif; ?>
703573 </body>
704574 </html>
@@ -705,58 +575,65 @@
706576 // We're done with abusing arrays now...
707577 wfRestoreWarnings();
708578 }
709 -
 579+
710580 /**
711 - * Outputs a box with a list of tools
 581+ * Render a series of portals
712582 */
713 - private function toolBox() {
 583+ private function renderPortals( $portals ) {
 584+ // Force the rendering of the following portals
 585+ if ( !isset( $portals['SEARCH'] ) ) $portals['SEARCH'] = true;
 586+ if ( !isset( $portals['TOOLBOX'] ) ) $portals['TOOLBOX'] = true;
 587+ if ( !isset( $portals['LANGUAGES'] ) ) $portals['LANGUAGES'] = true;
 588+ // Render portals
 589+ foreach ( $portals as $name => $content ) {
 590+ echo "\n<!-- {$name} -->\n";
 591+ switch( $name ) {
 592+ case 'SEARCH':
 593+ break;
 594+ case 'TOOLBOX':
714595 ?>
715 - <div class="portal" id="p-tb">
716 - <h5 <?php $this->html('userlangattributes') ?>><?php $this->msg( 'toolbox' ) ?></h5>
717 - <div class="body">
718 - <ul>
719 - <?php if( $this->data['notspecialpage'] ): ?>
720 - <li id="t-whatlinkshere"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['whatlinkshere']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-whatlinkshere' ) ?>><?php $this->msg( 'whatlinkshere' ) ?></a></li>
721 - <?php if( $this->data['nav_urls']['recentchangeslinked'] ): ?>
722 - <li id="t-recentchangeslinked"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['recentchangeslinked']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-recentchangeslinked' ) ?>><?php $this->msg( 'recentchangeslinked-toolbox' ) ?></a></li>
723 - <?php endif; ?>
 596+<div class="portal" id="p-tb">
 597+ <h5 <?php $this->html('userlangattributes') ?>><?php $this->msg( 'toolbox' ) ?></h5>
 598+ <div class="body">
 599+ <ul>
 600+ <?php if( $this->data['notspecialpage'] ): ?>
 601+ <li id="t-whatlinkshere"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['whatlinkshere']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-whatlinkshere' ) ?>><?php $this->msg( 'whatlinkshere' ) ?></a></li>
 602+ <?php if( $this->data['nav_urls']['recentchangeslinked'] ): ?>
 603+ <li id="t-recentchangeslinked"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['recentchangeslinked']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-recentchangeslinked' ) ?>><?php $this->msg( 'recentchangeslinked-toolbox' ) ?></a></li>
724604 <?php endif; ?>
725 - <?php if( isset( $this->data['nav_urls']['trackbacklink'] ) ): ?>
726 - <li id="t-trackbacklink"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['trackbacklink']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-trackbacklink' ) ?>><?php $this->msg( 'trackbacklink' ) ?></a></li>
727 - <?php endif; ?>
728 - <?php if( $this->data['feeds']): ?>
729 - <li id="feedlinks">
730 - <?php foreach( $this->data['feeds'] as $key => $feed ): ?>
731 - <a id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>" href="<?php echo htmlspecialchars( $feed['href'] ) ?>" rel="alternate" type="application/<?php echo $key ?>+xml" class="feedlink"<?php echo $this->skin->tooltipAndAccesskey( 'feed-' . $key ) ?>><?php echo htmlspecialchars( $feed['text'] ) ?></a>
732 - <?php endforeach; ?>
733 - </li>
734 - <?php endif; ?>
735 - <?php foreach( array( 'contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages' ) as $special ): ?>
736 - <?php if( $this->data['nav_urls'][$special]): ?>
737 - <li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars( $this->data['nav_urls'][$special]['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-' . $special ) ?>><?php $this->msg( $special ) ?></a></li>
738 - <?php endif; ?>
 605+ <?php endif; ?>
 606+ <?php if( isset( $this->data['nav_urls']['trackbacklink'] ) ): ?>
 607+ <li id="t-trackbacklink"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['trackbacklink']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-trackbacklink' ) ?>><?php $this->msg( 'trackbacklink' ) ?></a></li>
 608+ <?php endif; ?>
 609+ <?php if( $this->data['feeds']): ?>
 610+ <li id="feedlinks">
 611+ <?php foreach( $this->data['feeds'] as $key => $feed ): ?>
 612+ <a id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>" href="<?php echo htmlspecialchars( $feed['href'] ) ?>" rel="alternate" type="application/<?php echo $key ?>+xml" class="feedlink"<?php echo $this->skin->tooltipAndAccesskey( 'feed-' . $key ) ?>><?php echo htmlspecialchars( $feed['text'] ) ?></a>
739613 <?php endforeach; ?>
740 - <?php if( !empty( $this->data['nav_urls']['print']['href'] ) ): ?>
741 - <li id="t-print"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['print']['href'] ) ?>" rel="alternate"<?php echo $this->skin->tooltipAndAccesskey( 't-print' ) ?>><?php $this->msg( 'printableversion' ) ?></a></li>
 614+ </li>
 615+ <?php endif; ?>
 616+ <?php foreach( array( 'contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages' ) as $special ): ?>
 617+ <?php if( $this->data['nav_urls'][$special]): ?>
 618+ <li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars( $this->data['nav_urls'][$special]['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-' . $special ) ?>><?php $this->msg( $special ) ?></a></li>
742619 <?php endif; ?>
743 - <?php if ( !empty( $this->data['nav_urls']['permalink']['href'] ) ): ?>
744 - <li id="t-permalink"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['permalink']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-permalink' ) ?>><?php $this->msg( 'permalink' ) ?></a></li>
745 - <?php elseif ( $this->data['nav_urls']['permalink']['href'] === '' ): ?>
746 - <li id="t-ispermalink"<?php echo $this->skin->tooltip( 't-ispermalink' ) ?>><?php $this->msg( 'permalink' ) ?></li>
747 - <?php endif; ?>
748 - <?php wfRunHooks( 'VectorTemplateToolboxEnd', array( &$this ) ); ?>
749 - <?php wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) ); ?>
750 - </ul>
751 - </div>
 620+ <?php endforeach; ?>
 621+ <?php if( !empty( $this->data['nav_urls']['print']['href'] ) ): ?>
 622+ <li id="t-print"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['print']['href'] ) ?>" rel="alternate"<?php echo $this->skin->tooltipAndAccesskey( 't-print' ) ?>><?php $this->msg( 'printableversion' ) ?></a></li>
 623+ <?php endif; ?>
 624+ <?php if ( !empty( $this->data['nav_urls']['permalink']['href'] ) ): ?>
 625+ <li id="t-permalink"><a href="<?php echo htmlspecialchars( $this->data['nav_urls']['permalink']['href'] ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 't-permalink' ) ?>><?php $this->msg( 'permalink' ) ?></a></li>
 626+ <?php elseif ( $this->data['nav_urls']['permalink']['href'] === '' ): ?>
 627+ <li id="t-ispermalink"<?php echo $this->skin->tooltip( 't-ispermalink' ) ?>><?php $this->msg( 'permalink' ) ?></li>
 628+ <?php endif; ?>
 629+ <?php wfRunHooks( 'VectorTemplateToolboxEnd', array( &$this ) ); ?>
 630+ <?php wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) ); ?>
 631+ </ul>
752632 </div>
 633+</div>
753634 <?php
754 - }
755 -
756 - /**
757 - * Outputs a box with a list of alternative languages for this page
758 - */
759 - private function languageBox() {
760 - if( $this->data['language_urls'] ) {
 635+ break;
 636+ case 'LANGUAGES':
 637+ if ( $this->data['language_urls'] ) {
761638 ?>
762639 <div class="portal" id="p-lang">
763640 <h5 <?php $this->html('userlangattributes') ?>><?php $this->msg( 'otherlanguages' ) ?></h5>
@@ -769,18 +646,12 @@
770647 </div>
771648 </div>
772649 <?php
773 - }
774 - }
775 -
776 - /**
777 - * Outputs a box with a custom list of items or HTML content
778 - * @param string $bar Message name for title of box
779 - * @param mixed $content HTML or array of items to build a list from
780 - */
781 - private function customBox( $bar, $content ) {
 650+ }
 651+ break;
 652+ default:
782653 ?>
783 -<div class="portal" id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip( 'p-' . $bar ) ?>>
784 - <h5 <?php $this->html('userlangattributes') ?>><?php $out = wfMsg( $bar ); if ( wfEmptyMsg( $bar, $out ) ) echo htmlspecialchars( $bar ); else echo htmlspecialchars( $out ); ?></h5>
 654+<div class="portal" id='<?php echo Sanitizer::escapeId( "p-$name" ) ?>'<?php echo $this->skin->tooltip( 'p-' . $name ) ?>>
 655+ <h5 <?php $this->html('userlangattributes') ?>><?php $out = wfMsg( $name ); if ( wfEmptyMsg( $name, $out ) ) echo htmlspecialchars( $name ); else echo htmlspecialchars( $out ); ?></h5>
785656 <div class="body">
786657 <?php if ( is_array( $content ) ): ?>
787658 <ul>
@@ -794,5 +665,125 @@
795666 </div>
796667 </div>
797668 <?php
 669+ break;
 670+ }
 671+ echo "\n<!-- /{$name} -->\n";
 672+ }
798673 }
 674+
 675+ /**
 676+ * Render one or more navigations elements by name, automatically reveresed
 677+ * when UI is in RTL mode
 678+ */
 679+ private function renderNavigation( $elements ) {
 680+ global $wgContLang, $wgUseTwoButtonsSearchForm;
 681+
 682+ // If only one element was given, wrap it in an array, allowing more
 683+ // flexible arguments
 684+ if ( !is_array( $elements ) ) {
 685+ $elements = array( $elements );
 686+ // If there's a series of elements, reverse them when in RTL mode
 687+ } else if ( $wgContLang->isRTL() ) {
 688+ $elements = array_reverse( $elements );
 689+ }
 690+ // Render elements
 691+ foreach ( $elements as $name => $element ) {
 692+ echo "\n<!-- {$name} -->\n";
 693+ switch ( $element ) {
 694+ case 'NAMESPACES':
 695+ if ( count( $this->data[ 'namespace_urls' ] ) > 0 ) {
 696+?>
 697+<div id="namespaces" class="vectorTabs">
 698+ <h5><?php $this->msg('namespaces') ?></h5>
 699+ <ul <?php $this->html('userlangattributes') ?>>
 700+ <?php foreach ($this->data['namespace_urls'] as $key => $link ): ?>
 701+ <li <?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><span><?php echo htmlspecialchars( $link['text'] ) ?></span></a></li>
 702+ <?php endforeach; ?>
 703+ </ul>
 704+</div>
 705+<?php
 706+ }
 707+ break;
 708+ case 'VARIANTS':
 709+ if ( count( $this->data[ 'variant_urls' ] ) > 0 ) {
 710+?>
 711+<div id="variants" class="vectorMenu">
 712+ <h5><span><?php $this->msg('variants') ?></span><a href="#"></a></h5>
 713+ <div class="menu">
 714+ <ul <?php $this->html('userlangattributes') ?>>
 715+ <?php foreach ($this->data['variant_urls'] as $key => $link ): ?>
 716+ <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
 717+ <?php endforeach; ?>
 718+ </ul>
 719+ </div>
 720+</div>
 721+<?php
 722+ }
 723+ break;
 724+ case 'VIEWS':
 725+ if ( count( $this->data[ 'view_urls' ] ) > 0 ) {
 726+?>
 727+<div id="views" class="vectorTabs">
 728+ <h5><?php $this->msg('views') ?></h5>
 729+ <ul <?php $this->html('userlangattributes') ?>>
 730+ <?php foreach ($this->data['view_urls'] as $key => $link ): ?>
 731+ <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><span><?php echo htmlspecialchars( $link['text'] ) ?></span></a></li>
 732+ <?php endforeach; ?>
 733+ </ul>
 734+</div>
 735+<?php
 736+ }
 737+ break;
 738+ case 'ACTIONS':
 739+ if ( count( $this->data[ 'action_urls' ] ) > 0 ) {
 740+?>
 741+<div id="p-cactions" class="vectorMenu">
 742+ <h5><span><?php $this->msg('actions') ?></span><a href="#"></a></h5>
 743+ <div class="menu">
 744+ <ul <?php $this->html('userlangattributes') ?>>
 745+ <?php foreach ($this->data['action_urls'] as $key => $link ): ?>
 746+ <li<?php echo $link['attributes'] ?>><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></li>
 747+ <?php endforeach; ?>
 748+ </ul>
 749+ </div>
 750+</div>
 751+<?php
 752+ }
 753+ break;
 754+ case 'PERSONAL':
 755+ if ( count( $this->data['personal_urls'] ) > 0 ) {
 756+?>
 757+<div id="p-personal">
 758+ <h5><?php $this->msg('personaltools') ?></h5>
 759+ <ul <?php $this->html('userlangattributes') ?>>
 760+ <?php foreach($this->data['personal_urls'] as $key => $item): ?>
 761+ <li <?php echo $item['attributes'] ?>><a href="<?php echo htmlspecialchars($item['href']) ?>"<?php echo $item['key'] ?><?php if(!empty($item['class'])): ?> class="<?php echo htmlspecialchars($item['class']) ?>"<?php endif; ?>><?php echo htmlspecialchars($item['text']) ?></a></li>
 762+ <?php endforeach; ?>
 763+ </ul>
 764+</div>
 765+<?php
 766+ }
 767+ break;
 768+ case 'SEARCH':
 769+?>
 770+<div id="p-search">
 771+ <h5 <?php $this->html('userlangattributes') ?>><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h5>
 772+ <form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
 773+ <input type='hidden' name="title" value="<?php $this->text( 'searchtitle' ) ?>"/>
 774+ <input id="searchInput" name="search" type="text" <?php echo $this->skin->tooltipAndAccesskey( 'search' ); ?> <?php if( isset( $this->data['search'] ) ): ?> value="<?php $this->text( 'search' ) ?>"<?php endif; ?> />
 775+ <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg( 'searcharticle' ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />
 776+ <?php if ( $wgUseTwoButtonsSearchForm ): ?>
 777+ <input type="submit" name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg( 'searchbutton' ) ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
 778+ <?php else: ?>
 779+ <div><a href="<?php $this->text( 'searchaction' ) ?>" rel="search"><?php $this->msg( 'powersearch-legend' ) ?></a></div>
 780+ <?php endif; ?>
 781+ </form>
 782+</div>
 783+<?php
 784+
 785+ break;
 786+ }
 787+ echo "\n<!-- /{$name} -->\n";
 788+ }
 789+ }
799790 }
Property changes on: branches/wmf-deployment/skins/Vector.php
___________________________________________________________________
Modified: svn:mergeinfo
800791 Merged /trunk/phase3/skins/Vector.php:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Index: branches/wmf-deployment/skins/common/shared.css
@@ -58,6 +58,23 @@
5959 }
6060
6161 /**
 62+ * Patrol stuff
 63+ */
 64+.not-patrolled {
 65+ background-color: #ffa;
 66+}
 67+
 68+span.unpatrolled {
 69+ font-weight: bold;
 70+ color: red;
 71+}
 72+
 73+div.patrollink {
 74+ font-size: 75%;
 75+ text-align: right;
 76+}
 77+
 78+/**
6279 * Forms
6380 */
6481 body.ltr td.mw-label { text-align: right; }
@@ -516,6 +533,11 @@
517534 font-weight: bold;
518535 }
519536
 537+/* hide initially collapsed collapsable tables */
 538+table.collapsed tr.collapsable {
 539+ display: none;
 540+}
 541+
520542 /* success and error messages */
521543 .success {
522544 color: green;
@@ -599,4 +621,44 @@
600622 display: inline;
601623 list-style-type: none;
602624 padding-right: 2em;
603 -}
\ No newline at end of file
 625+}
 626+
 627+/* Classes for EXIF data display */
 628+table.mw_metadata {
 629+ font-size: 0.8em;
 630+ margin-left: 0.5em;
 631+ margin-bottom: 0.5em;
 632+ width: 300px;
 633+}
 634+
 635+table.mw_metadata caption {
 636+ font-weight: bold;
 637+}
 638+
 639+table.mw_metadata th {
 640+ font-weight: normal;
 641+}
 642+
 643+table.mw_metadata td {
 644+ padding: 0.1em;
 645+}
 646+
 647+table.mw_metadata {
 648+ border: none;
 649+ border-collapse: collapse;
 650+}
 651+
 652+table.mw_metadata td, table.mw_metadata th {
 653+ text-align: center;
 654+ border: 1px solid #aaaaaa;
 655+ padding-left: 0.1em;
 656+ padding-right: 0.1em;
 657+}
 658+
 659+table.mw_metadata th {
 660+ background-color: #f9f9f9;
 661+}
 662+
 663+table.mw_metadata td {
 664+ background-color: #fcfcfc;
 665+}
Index: branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/EditToolbar.js
@@ -88,7 +88,6 @@
8989 $(this).data( 'sectionCookie' ),
9090 show ? $(this).data( 'sectionDiv' ).attr( 'id' ) : null
9191 );
92 - /*$(this).data( 'textbox' ).focus();*/
9392 return false;
9493 })
9594 )
@@ -533,7 +532,7 @@
534533 },
535534 'signature': {
536535 labelMsg: 'edittoolbar-tool-signature',
537 - filters: [ 'body.ns-talk' ],
 536+ filters: [ 'body:not(.ns-0)' ],
538537 type: 'button',
539538 icon: 'insert-signature.png',
540539 action: {
Index: branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/images/insert-signature.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/images/png24/insert-signature.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/wmf-deployment/extensions/UsabilityInitiative/EditToolbar/EditToolbar.css
@@ -4,16 +4,18 @@
55 form#editform {
66 margin: 0;
77 padding: 0;
8 - margin-right: 5px;
 8+ margin-right: 2px !important;
99 }
1010 body.rtl form#editform {
1111 padding-right: 0;
12 - margin-left: 5px;
 12+ margin-right: auto !important;
 13+ margin-left: 2px !important;
1314 }
1415 textarea#wpTextbox1 {
1516 border: solid silver 1px;
16 - padding: 0;
17 - margin: 0;
 17+ padding: 0 !important;
 18+ margin: 0 !important;
 19+ width: 100%;
1820 }
1921 /* ... */
2022 div#edittoolbar {
@@ -43,9 +45,12 @@
4446 }
4547 body.rtl div#edittoolbar div.sections div.section {
4648 float: right;
 49+ margin-left: auto;
 50+ margin-right: -1px;
4751 }
4852 div#edittoolbar div.sections div.loading {
49 - padding: 10px;
 53+ padding-top: 0.5em;
 54+ padding-bottom: 0.5em;
5055 }
5156 div#edittoolbar div.sections div div.progress {
5257 display: none;
@@ -56,13 +61,16 @@
5762 background-position: left center;
5863 background-repeat: no-repeat;
5964 padding-left: 32px;
 65+ margin-left: 1em;
6066 float: left;
6167 color: #666666;
6268 }
63 -div#edittoolbar div.sections div.loading div.progress {
 69+body.rtl div#edittoolbar div.sections div.loading div.progress {
6470 background-position: right center;
6571 padding-left: 0;
6672 padding-right: 32px;
 73+ margin-left: 0;
 74+ margin-right: 1em;
6775 float: right;
6876 }
6977 /* Toolbar Groups and Tabs */
Property changes on: branches/wmf-deployment/extensions/UsabilityInitiative/Resources
___________________________________________________________________
Modified: svn:mergeinfo
7078 Merged /trunk/extensions/UsabilityInitiative/Resources:r53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/UsabilityInitiative
___________________________________________________________________
Modified: svn:mergeinfo
7179 Merged /trunk/extensions/UsabilityInitiative:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/MetavidWiki/skins/add_media_wizard.OFF.js
___________________________________________________________________
Modified: svn:mergeinfo
7280 Merged /trunk/extensions/MetavidWiki/skins/add_media_wizard.OFF.js:r52859,52871-52872,52876,53191,53205-53206
7381 Merged /trunk/phase3/MetavidWiki/skins/add_media_wizard.OFF.js:r52859
Index: branches/wmf-deployment/extensions/FlaggedRevs/FlaggedRevs.hooks.php
@@ -1277,10 +1277,20 @@
12781278 $fa = FlaggedArticle::getGlobalInstance();
12791279 if( $fa ) {
12801280 $fa->setActionTabs( $skin, $contentActions );
 1281+ $fa->setViewTabs( $skin, $contentActions );
12811282 }
12821283 return true;
12831284 }
12841285
 1286+ public static function setNavigation( $skin, &$links ) {
 1287+ $fa = FlaggedArticle::getGlobalInstance();
 1288+ if( $fa ) {
 1289+ $fa->setActionTabs( $skin, $links['actions'] );
 1290+ $fa->setViewTabs( $skin, $links['views'] );
 1291+ }
 1292+ return true;
 1293+ }
 1294+
12851295 public static function onArticleViewHeader( &$article, &$outputDone, &$pcache ) {
12861296 $flaggedArticle = FlaggedArticle::getInstance( $article );
12871297 $flaggedArticle->maybeUpdateMainCache( $outputDone, $pcache );
@@ -1288,7 +1298,7 @@
12891299 $flaggedArticle->setPageContent( $outputDone, $pcache );
12901300 return true;
12911301 }
1292 -
 1302+
12931303 public static function addRatingLink( &$skintemplate, &$nav_urls, &$oldid, &$revid ) {
12941304 $fa = FlaggedArticle::getTitleInstance( $skintemplate->mTitle );
12951305 # Add rating tab
Index: branches/wmf-deployment/extensions/FlaggedRevs/FlaggedRevs.php
@@ -416,6 +416,8 @@
417417 $wgHooks['InitializeArticleMaybeRedirect'][] = 'FlaggedRevsHooks::overrideRedirect';
418418 # Sets tabs and permalink
419419 $wgHooks['SkinTemplateTabs'][] = 'FlaggedRevsHooks::setActionTabs';
 420+# Sets navigation
 421+$wgHooks['SkinTemplateNavigation'][] = 'FlaggedRevsHooks::setNavigation';
420422 # Add tags to edit view
421423 $wgHooks['EditPage::showEditForm:initial'][] = 'FlaggedRevsHooks::addToEditView';
422424 # Add review form and visiblity settings link
Index: branches/wmf-deployment/extensions/FlaggedRevs/FlaggedArticle.php
@@ -839,108 +839,170 @@
840840 return true;
841841 }
842842
843 - /**
844 - * Add stable version tabs. Rename some of the others if necessary.
 843+ /**
 844+ * Modifies an array of action links, as used by SkinTemplateNavigation and
 845+ * SkinTemplateTabs, to inlude flagged revs UI elements
845846 */
846847 public function setActionTabs( $skin, &$actions ) {
847848 global $wgRequest, $wgUser, $wgFlaggedRevTabs;
 849+
 850+ // Gets the title of the subject page
848851 $title = $this->parent->getTitle()->getSubjectPage();
849 - $action = $wgRequest->getVal( 'action', 'view' );
850 - # Non-content pages cannot be validated
851 - if( !FlaggedRevs::isPageReviewable($title) || !$title->exists() )
 852+ // Checks if page is not a reviewable page
 853+ if ( !FlaggedRevs::isPageReviewable( $title ) || !$title->exists() ) {
 854+ // Exits, since only reviewable pages need these tabs
852855 return true;
853 - # We can change the behavoir of stable version for this page to be different
854 - # than the site default.
855 - if( !$skin->mTitle->isTalkPage() && $wgUser->isAllowed('stablesettings') ) {
856 - if( count($actions) && !isset($actions['protect']) && !isset($actions['unprotect']) ) {
857 - wfLoadExtensionMessages( 'Stabilization' );
858 - $stableTitle = SpecialPage::getTitleFor( 'Stabilization' );
859 - $actions['default'] = array(
860 - 'class' => false,
861 - 'text' => wfMsg('stabilization-tab'),
862 - 'href' => $stableTitle->getLocalUrl('page='.$title->getPrefixedUrl())
863 - );
864 - }
865856 }
866 - # Page must be reviewable. Check if UI should be hidden.
 857+ // Checks if...
 858+ if (
 859+ // This page is a talk page
 860+ !$skin->mTitle->isTalkPage() &&
 861+ // User is allowed to stablize pages
 862+ $wgUser->isAllowed( 'stablesettings' ) &&
 863+ // Actions is an array
 864+ is_array( $actions ) &&
 865+ // A protect tab does not exist
 866+ !isset( $actions['protect'] ) &&
 867+ // An unprtect tab does not exist
 868+ !isset( $actions['unprotect'] )
 869+ ) {
 870+ // Loads messages for stabilization UI
 871+ wfLoadExtensionMessages( 'Stabilization' );
 872+ // Gets the title of the Stabilization special page
 873+ $stableTitle = SpecialPage::getTitleFor( 'Stabilization' );
 874+ // Adds default tab to actions
 875+ $actions['default'] = array(
 876+ 'class' => false,
 877+ 'text' => wfMsg( 'stabilization-tab' ),
 878+ 'href' => $stableTitle->getLocalUrl(
 879+ 'page=' . $title->getPrefixedUrl()
 880+ )
 881+ );
 882+ }
 883+ // Exit
 884+ return true;
 885+ }
 886+
 887+ /**
 888+ * Modifies an array of view links, as used by SkinTemplateNavigation and
 889+ * SkinTemplateTabs, to inlude flagged revs UI elements
 890+ */
 891+ public function setViewTabs( $skin, &$views ) {
 892+ global $wgRequest, $wgUser, $wgFlaggedRevTabs;
 893+
 894+ // Gets the title of the subject page
 895+ $title = $this->parent->getTitle()->getSubjectPage();
 896+ // Gets the value of the action parameter, defaulting to view
 897+ $action = $wgRequest->getVal( 'action', 'view' );
 898+ // Gets the article instance of the page
867899 $fa = FlaggedArticle::getTitleInstance( $title );
868 - if( !$fa->isReviewable() || $this->limitedUI() )
 900+ // Checks if article is not reviewable or the UI should be hidden
 901+ if ( !$fa->isReviewable() || $this->limitedUI() ) {
 902+ // Exits
869903 return true;
870 - # If we are viewing a page normally, and it was overridden,
871 - # change the edit tab to a "current revision" tab.
872 - # For rollbacks, use master per bug 16734.
 904+ }
 905+ // Gets the stable revision
873906 $srev = $this->getStableRev( $action == 'rollback' ? FR_MASTER : 0 );
874 - # No quality revs? Find the last reviewed one
875 - if( is_null($srev) ) {
 907+ // Checks if no stable revision exists
 908+ if( is_null( $srev ) ) {
 909+ // Exits
876910 return true;
877911 }
 912+ // Loads messages for flagged revisions UI
878913 wfLoadExtensionMessages( 'FlaggedRevs' );
 914+ // Creates article object from title
879915 $article = new Article( $title );
880 - # Be clear about what is being edited...
 916+ // Gets the status of whether the article is the stable revision
881917 $synced = FlaggedRevs::stableVersionIsSynced( $srev, $article );
882 - if( !$skin->mTitle->isTalkPage() && !$synced ) {
883 - if( isset( $actions['edit'] ) ) {
884 - if( $this->showStableByDefault() )
885 - $actions['edit']['text'] = wfMsg('revreview-edit');
886 - # If the user is requesting the draft or some revision, they don't need a diff.
887 - if( $this->pageOverride() )
888 - $actions['edit']['href'] = $title->getLocalUrl( 'action=edit' );
889 - } if( isset( $actions['viewsource'] ) ) {
890 - if( $this->showStableByDefault() )
891 - $actions['viewsource']['text'] = wfMsg('revreview-source');
892 - # If the user is requesting the draft or some revision, they don't need a diff.
893 - if( $this->pageOverride() )
894 - $actions['viewsource']['href'] = $title->getLocalUrl( 'action=edit' );
 918+ // Checks if this page is not a talk page and not the stable version
 919+ if ( !$skin->mTitle->isTalkPage() && !$synced ) {
 920+ // Checks if there's an edit tab
 921+ if ( isset( $views['edit'] ) ) {
 922+ // Checks if we should show the stable version by default
 923+ if ( $this->showStableByDefault() ) {
 924+ // Changes the label of the edit button
 925+ $views['edit']['text'] = wfMsg('revreview-edit');
 926+ }
 927+ // Checks if revision overriding is OK
 928+ if ( $this->pageOverride() ) {
 929+ // Changes the href of the edit tab
 930+ $views['edit']['href'] = $title->getLocalUrl( 'action=edit' );
 931+ }
 932+ }
 933+ // Checks if there's a viewsource tab
 934+ if ( isset( $views['viewsource'] ) ) {
 935+ // Checks if we should show the stable version by default
 936+ if ( $this->showStableByDefault() ) {
 937+ // Changes the label of the viewsource button
 938+ $views['viewsource']['text'] = wfMsg('revreview-source');
 939+ }
 940+ // Checks if revision overriding is OK
 941+ if ( $this->pageOverride() ) {
 942+ // Changes the href of the viewsource tab
 943+ $views['viewsource']['href'] = $title->getLocalUrl( 'action=edit' );
 944+ }
895945 }
896946 }
897 - // Add auxillary tabs...
898 - if( !$wgFlaggedRevTabs || $synced )
 947+ // Checks if flagged revisions tabs should not be shown or the page is
 948+ // already the most current revision
 949+ if( !$wgFlaggedRevTabs || $synced ) {
 950+ // Exits
899951 return true;
900 - // We are looking at the stable version
901 - if( $this->pageOverride() || $wgRequest->getVal('stableid') ) {
902 - $draftTabCss = '';
903 - $stableTabCss = 'selected';
904 - // We are looking at the talk page or diffs/hist/oldids
905 - } elseif( !(self::isViewAction($action) || $action=='edit') || $skin->mTitle->isTalkPage() ) {
906 - $draftTabCss = '';
907 - $stableTabCss = '';
908 - // We are looking at the current revision or in edit mode
909 - } else {
910 - $draftTabCss = 'selected';
911 - $stableTabCss = '';
 952+ }
 953+ // Create set of tabs to be created
 954+ $tabs = array(
 955+ 'stable' => array(
 956+ 'text' => wfMsg( 'revreview-stable' ),
 957+ 'href' => $title->getLocalUrl( 'stable=1' ),
 958+ 'class' => ''
 959+ ),
 960+ 'current' => array(
 961+ 'text' => wfMsg( 'revreview-current' ),
 962+ 'href' => $title->getLocalUrl( 'stable=0&redirect=no' ),
 963+ 'class' => ''
 964+ ),
 965+ );
 966+ // Checks if revision overriding is OK and we are at the stable version
 967+ if ( $this->pageOverride() || $wgRequest->getVal( 'stableid' ) ) {
 968+ $tabs['stable']['class'] = 'selected';
912969 }
913 - $newActions = array();
 970+ // Checks if...
 971+ elseif (
 972+ // This is a view or edit page
 973+ ( self::isViewAction( $action ) || $action == 'edit' ) &&
 974+ // This is not a talk page
 975+ !$skin->mTitle->isTalkPage()
 976+ ) {
 977+ // We are looking at the current revision or in edit mode
 978+ $tabs['current']['class'] = 'selected';
 979+ }
 980+ // Loops over each action tab
914981 $first = true;
915 - # Straighten out order, set the tab AFTER the main tab is set
916 - foreach( $actions as $tabAction => $data ) {
917 - # Main page tab...
918 - if( $first ) {
919 - $first = false;
 982+ $newViews = array();
 983+ foreach ( $views as $tabAction => $data ) {
 984+ // Checks if this is the first tab
 985+ if ( $first ) {
920986 if( $synced ) {
921 - $newActions[$tabAction] = $data; // keep it
 987+ // Appends old tab to new tabs, thus keeping the first one
 988+ $newViews[$tabAction] = $data;
922989 } else {
923 - # Add new tabs after first one
924 - $newActions['stable'] = array(
925 - 'class' => $stableTabCss,
926 - 'text' => wfMsg('revreview-stable'),
927 - 'href' => $title->getLocalUrl( 'stable=1' )
928 - );
929 - $newActions['current'] = array(
930 - 'class' => $draftTabCss,
931 - 'text' => wfMsg('revreview-current'),
932 - 'href' => $title->getLocalUrl( 'stable=0&redirect=no' )
933 - );
 990+ // Appends new tabs, thus replacing the first one
 991+ $newViews['stable'] = $tabs['stable'];
 992+ $newViews['current'] = $tabs['current'];
934993 }
935 - # The others...
 994+ // Marks first as false
 995+ $first = false;
936996 } else {
937 - $newActions[$tabAction] = $data;
 997+ // Appends old tab to new tabs
 998+ $newViews[$tabAction] = $data;
938999 }
9391000 }
940 - # Reset static array
941 - $actions = $newActions;
 1001+ // Replaces old tabs with new tabs
 1002+ $views = $newViews;
 1003+ // Exits
9421004 return true;
9431005 }
944 -
 1006+
9451007 /**
9461008 * @param FlaggedRevision $frev
9471009 * @return string, revision review notes
Property changes on: branches/wmf-deployment/extensions/FlaggedRevs
___________________________________________________________________
Modified: svn:mergeinfo
9481010 Merged /trunk/extensions/FlaggedRevs:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/WikimediaMessages
___________________________________________________________________
Modified: svn:mergeinfo
9491011 Merged /trunk/extensions/WikimediaMessages:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/timeline
___________________________________________________________________
Modified: svn:mergeinfo
9501012 Merged /trunk/extensions/timeline:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/Collection
___________________________________________________________________
Modified: svn:mergeinfo
9511013 Merged /trunk/extensions/Collection:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/MWSearch/MWSearch_body.php
___________________________________________________________________
Modified: svn:mergeinfo
9521014 Merged /trunk/extensions/MWSearch/MWSearch_body.php:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions/SyntaxHighlight_GeSHi
___________________________________________________________________
Modified: svn:mergeinfo
9531015 Merged /trunk/extensions/SyntaxHighlight_GeSHi:r52859,52871-52872,52876,53191,53205-53206
Property changes on: branches/wmf-deployment/extensions
___________________________________________________________________
Modified: svn:mergeinfo
9541016 Merged /trunk/extensions:r52859,52871-52872,52876,53191,53205-53206
9551017 Merged /trunk/phase3/extensions:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
9561018 Merged /trunk/phase3:r52859
Property changes on: branches/wmf-deployment/includes/ConfEditor.php
___________________________________________________________________
Modified: svn:mergeinfo
9571019 Merged /trunk/phase3/includes/ConfEditor.php:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Property changes on: branches/wmf-deployment/includes/specials/SpecialSearch.php
___________________________________________________________________
Modified: svn:mergeinfo
9581020 Merged /trunk/phase3/includes/specials/SpecialSearch.php:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Property changes on: branches/wmf-deployment/includes/specials/SpecialUserrights.php
___________________________________________________________________
Modified: svn:mergeinfo
9591021 Merged /trunk/phase3/includes/specials/SpecialUserrights.php:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Property changes on: branches/wmf-deployment/includes/specials
___________________________________________________________________
Modified: svn:mergeinfo
9601022 Merged /trunk/phase3/includes/specials:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Property changes on: branches/wmf-deployment/includes/Skin.php
___________________________________________________________________
Modified: svn:mergeinfo
9611023 Merged /trunk/phase3/includes/Skin.php:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Property changes on: branches/wmf-deployment/includes/api/ApiQueryCategoryMembers.php
___________________________________________________________________
Modified: svn:mergeinfo
9621024 Merged /trunk/phase3/includes/api/ApiQueryCategoryMembers.php:r53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267
Index: branches/wmf-deployment/includes/DefaultSettings.php
@@ -1501,7 +1501,7 @@
15021502 * to ensure that client-side caches do not keep obsolete copies of global
15031503 * styles.
15041504 */
1505 -$wgStyleVersion = '227';
 1505+$wgStyleVersion = '230';
15061506
15071507
15081508 # Server-side caching:
Property changes on: branches/wmf-deployment
___________________________________________________________________
Modified: svn:mergeinfo
15091509 Merged /trunk/phase3:r52815-52819,52822,52846,52850,52852-52853,52855-52857,52859,52924,52986,53128-53129,53190,53197,53199,53203-53204,53210-53211,53247,53249,53252,53267

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r52815(bug 19524) Move hiding initially hidden collapsable tables from monobook/mai...catrope23:35, 6 July 2009
r52816Changed XML IDs to be compatible with monobook things, and now tabs and menus...tparscal23:44, 6 July 2009
r52817Changed logo XML IDtparscal23:46, 6 July 2009
r52818Resolved accesibility issue with color contrasts on panel headerstparscal23:51, 6 July 2009
r52819(bug 19496) New pages don't have yellow background. Moving rules for .not-pat...catrope23:52, 6 July 2009
r52822Made things look a little better without imagestparscal00:11, 7 July 2009
r52846(bug 19529) Missing styling for metadata table in Vectorcatrope17:03, 7 July 2009
r52850Resolved incorrect wrapping of tabs in prefrences.tparscal17:56, 7 July 2009
r52852Remove bullets from TOC in Vectorcatrope18:15, 7 July 2009
r52853Reduced specifificity of table rule which was superceding latter rules.tparscal18:26, 7 July 2009
r52855Added position:relative to #bodyContent to allow absolutes to be relative to ...tparscal20:24, 7 July 2009
r52856Fix up r52846 by moving up all mw_metadata stuff from monobook/modern to comm...catrope20:37, 7 July 2009
r52857Followup to r52856: actually move stuff to common, not vectorcatrope20:38, 7 July 2009
r52859Modified filter selector for signature button filter so that it shows up on a...tparscal20:44, 7 July 2009
r52871Broke out parts of FlaggedArticle::setActionTabs into FlaggedArticle::setView...tparscal23:10, 7 July 2009
r52872Fixed bug - used wrong constructor.tparscal23:15, 7 July 2009
r52876Fixed the way loading icon is positioned.tparscal23:49, 7 July 2009
r52924Agressive optimization of images, as well as merging of images which are iden...tparscal17:08, 8 July 2009
r52944Moved buildNavigationUrls into SkinTemplate from SkinVector which inherits Sk...tparscal20:59, 8 July 2009
r52986Fixed IE bug that caused some rendering problems with floated content because...tparscal17:08, 9 July 2009
r53128Bump $wgStyleVersion for all the Vector-related fixes made in the past week o...catrope00:30, 12 July 2009
r53129Revert unintended change from r53128catrope00:31, 12 July 2009
r53190Fixed display issue when raising font size really high, tabs would show backg...tparscal20:22, 13 July 2009
r53191Made text area match up to right side of toolbar.tparscal20:26, 13 July 2009
r53197Moved buildNavigationUrls back into Vector to make deployment more sane for n...tparscal22:14, 13 July 2009
r53199Resolved some link coloring issues in the navigation tabs. Regenerated the RT...tparscal22:18, 13 July 2009
r53203Fixed bug caused in r52944 - where the inclusion of csshover.htc was lost in ...tparscal22:48, 13 July 2009
r53204Added more instructions to the comments to do with cssjanus.tparscal22:57, 13 July 2009
r53205Fixed RTL alignment issues.tparscal22:59, 13 July 2009
r53206New signature icon.tparscal23:38, 13 July 2009
r53210Refactor of Vector skin output and RTL strategy. Needs more testing, but it s...tparscal04:55, 14 July 2009
r53211More IE fixes for RTL, getting quite close now.tparscal07:25, 14 July 2009
r53247More RTL fixes and also another fix to r52944 which broke the inclusion of co...tparscal17:39, 14 July 2009
r53249Deafulted to a 0 minimum width on modern FF browsers.tparscal17:44, 14 July 2009
r53252missing globalsialex18:44, 14 July 2009
r53267Improved smoothness of gradient.tparscal21:01, 14 July 2009

Status & tagging log