Index: branches/REL1_19/phase3/RELEASE-NOTES-1.19 |
— | — | @@ -122,11 +122,17 @@ |
123 | 123 | * sha1 xml tag added to XML dump file. |
124 | 124 | * (bug 33646) Badtitle error page now emits a 400 HTTP status. |
125 | 125 | * Special:MovePage now has a dropdown menu for namespaces. |
| 126 | +* (bug 33952) Refactor mw.toolbar to allow dynamic additions at any time. |
126 | 127 | |
127 | 128 | === Bug fixes in 1.19 === |
128 | 129 | * $wgUploadNavigationUrl should be used for file redlinks if. |
129 | 130 | $wgUploadMissingFileUrl is not set. The first was used for this |
130 | 131 | until the second was introduced in 1.17. |
| 132 | +* BREAKING CHANGE: Style rules for wikitable are now more specific and prevent |
| 133 | + inheritance to nested tables which caused various issues (bug 30485 and bug |
| 134 | + 33434). If your wiki has overriden rules for ".wikitable", please revise them and |
| 135 | + adjust where neccecary. For comparison, use the "table.wikitable" section in |
| 136 | + skins/common/shared.css as base. |
131 | 137 | * (bug 27894) Move 'editondblclick' event listener down from body to |
132 | 138 | div#bodyContent. |
133 | 139 | * (bug 30172) The check for posix_isatty() in maintenance scripts did not detect |
— | — | @@ -214,8 +220,6 @@ |
215 | 221 | for backward compatibility. |
216 | 222 | * (bug 31469) Make sure tracking category messages expand variables like |
217 | 223 | {{NAMESPACE}} relative to correct title. |
218 | | -* (bug 30485 and bug 33434) Style rules for wikitable are now more specific and |
219 | | - prevent inheritance to nested tables which caused various issues. |
220 | 224 | * (bug 33454) ISO-8601 week-based year number (format character 'o') is now |
221 | 225 | calculated correctly with respect to timezone. |
222 | 226 | * (bug 32219) InstantCommons now fetches content from Wikimedia Commons using |
Index: branches/REL1_19/phase3/includes/ImagePage.php |
— | — | @@ -108,8 +108,6 @@ |
109 | 109 | } |
110 | 110 | } |
111 | 111 | |
112 | | - $this->showRedirectedFromHeader(); |
113 | | - |
114 | 112 | if ( $wgShowEXIF && $this->displayImg->exists() ) { |
115 | 113 | // @todo FIXME: Bad interface, see note on MediaHandler::formatMetadata(). |
116 | 114 | $formattedMetadata = $this->displayImg->formatMetadata(); |
Index: branches/REL1_19/phase3/includes/filerepo/backend/TempFSFile.php |
— | — | @@ -11,7 +11,7 @@ |
12 | 12 | * @ingroup FileBackend |
13 | 13 | */ |
14 | 14 | class TempFSFile extends FSFile { |
15 | | - protected $canDelete = true; // garbage collect the temp file |
| 15 | + protected $canDelete = false; // bool; garbage collect the temp file |
16 | 16 | |
17 | 17 | /** @var Array of active temp files to purge on shutdown */ |
18 | 18 | protected static $instances = array(); |
— | — | @@ -41,6 +41,7 @@ |
42 | 42 | } |
43 | 43 | } |
44 | 44 | $tmpFile = new self( $path ); |
| 45 | + $tmpFile->canDelete = true; // safely instantiated |
45 | 46 | return $tmpFile; |
46 | 47 | } |
47 | 48 | |
Index: branches/REL1_19/phase3/includes/resourceloader/ResourceLoaderContext.php |
— | — | @@ -63,7 +63,9 @@ |
64 | 64 | $this->only = $request->getVal( 'only' ); |
65 | 65 | $this->version = $request->getVal( 'version' ); |
66 | 66 | |
67 | | - if ( !$this->skin ) { |
| 67 | + $skinnames = Skin::getSkinNames(); |
| 68 | + // If no skin is specified, or we don't recognize the skin, use the default skin |
| 69 | + if ( !$this->skin || !isset( $skinnames[$this->skin] ) ) { |
68 | 70 | $this->skin = $wgDefaultSkin; |
69 | 71 | } |
70 | 72 | } |
Index: branches/REL1_19/phase3/includes/MessageBlobStore.php |
— | — | @@ -350,12 +350,7 @@ |
351 | 351 | $messages = array(); |
352 | 352 | |
353 | 353 | foreach ( $module->getMessages() as $key ) { |
354 | | - $messages[$key] = |
355 | | - Sanitizer::normalizeCharReferences( |
356 | | - Sanitizer::removeHTMLtags( |
357 | | - wfMsgExt( $key, array( 'language' => $lang ) ) |
358 | | - ) |
359 | | - ); |
| 354 | + $messages[$key] = wfMsgExt( $key, array( 'language' => $lang ) ); |
360 | 355 | } |
361 | 356 | |
362 | 357 | return FormatJson::encode( (object)$messages ); |
Index: branches/REL1_19/phase3/includes/Pager.php |
— | — | @@ -472,7 +472,7 @@ |
473 | 473 | } |
474 | 474 | |
475 | 475 | # Don't announce the limit everywhere if it's the default |
476 | | - $urlLimit = $this->mLimit == $this->mDefaultLimit ? '' : $this->mLimit; |
| 476 | + $urlLimit = $this->mLimit == $this->mDefaultLimit ? null : $this->mLimit; |
477 | 477 | |
478 | 478 | if ( $this->mIsFirst ) { |
479 | 479 | $prev = false; |
Property changes on: branches/REL1_19/phase3/includes |
___________________________________________________________________ |
Modified: svn:mergeinfo |
480 | 480 | Merged /trunk/phase3/includes:r112408,112451,112456,112474,112526,112533-112534,112538,112567 |
Index: branches/REL1_19/phase3/resources/mediawiki.action/mediawiki.action.edit.js |
— | — | @@ -3,12 +3,17 @@ |
4 | 4 | var currentFocused = $( '#wpTextbox1' ); |
5 | 5 | |
6 | 6 | mw.toolbar = { |
7 | | - $toolbar : [], |
| 7 | + $toolbar : false, |
8 | 8 | buttons : [], |
| 9 | + isReady : false, |
9 | 10 | // If you want to add buttons, use |
10 | 11 | // mw.toolbar.addButton( imageFile, speedTip, tagOpen, tagClose, sampleText, imageId, selectText ); |
11 | 12 | addButton : function() { |
12 | | - this.buttons.push( [].slice.call( arguments ) ); |
| 13 | + if ( this.isReady ) { |
| 14 | + this.insertButton.apply( this, arguments ); |
| 15 | + } else { |
| 16 | + this.buttons.push( [].slice.call( arguments ) ); |
| 17 | + } |
13 | 18 | }, |
14 | 19 | insertButton : function( imageFile, speedTip, tagOpen, tagClose, sampleText, imageId, selectText ) { |
15 | 20 | var image = $('<img>', { |
— | — | @@ -42,18 +47,20 @@ |
43 | 48 | init : function() {}, |
44 | 49 | |
45 | 50 | onReady : function() { |
46 | | - mw.toolbar.$toolbar = $( '#toolbar' ); |
| 51 | + this.$toolbar = $( '#toolbar' ); |
| 52 | + this.isReady = true; |
47 | 53 | // Legacy |
48 | 54 | // Merge buttons from mwCustomEditButtons |
49 | 55 | var buttons = [].concat( this.buttons, window.mwCustomEditButtons ); |
50 | 56 | for ( var i = 0; i < buttons.length; i++ ) { |
51 | 57 | if ( $.isArray( buttons[i] ) ) { |
52 | 58 | // Passes our button array as arguments |
53 | | - mw.toolbar.insertButton.apply( this, buttons[i] ); |
| 59 | + this.insertButton.apply( this, buttons[i] ); |
54 | 60 | } else { |
55 | 61 | // Legacy mwCustomEditButtons is an object |
56 | 62 | var c = buttons[i]; |
57 | | - mw.toolbar.insertButton( c.imageFile, c.speedTip, c.tagOpen, c.tagClose, c.sampleText, c.imageId, c.selectText ); |
| 63 | + this.insertButton( c.imageFile, c.speedTip, c.tagOpen, |
| 64 | + c.tagClose, c.sampleText, c.imageId, c.selectText ); |
58 | 65 | } |
59 | 66 | } |
60 | 67 | return true; |
Index: branches/REL1_19/phase3/resources/mediawiki/mediawiki.js |
— | — | @@ -615,6 +615,7 @@ |
616 | 616 | j -= 1; |
617 | 617 | } |
618 | 618 | } |
| 619 | + throw e; |
619 | 620 | } |
620 | 621 | } |
621 | 622 | |
— | — | @@ -770,7 +771,6 @@ |
771 | 772 | console.log( 'mw.loader::execute> Exception thrown by ' + module + ': ' + e.message ); |
772 | 773 | } |
773 | 774 | registry[module].state = 'error'; |
774 | | - throw e; |
775 | 775 | } |
776 | 776 | } |
777 | 777 | |
— | — | @@ -1183,7 +1183,8 @@ |
1184 | 1184 | * "text/javascript"; if no type is provided, text/javascript is assumed. |
1185 | 1185 | * @param async {Boolean} (optional) If true, load modules asynchronously |
1186 | 1186 | * even if document ready has not yet occurred. If false (default), |
1187 | | - * block before document ready and load async after |
| 1187 | + * block before document ready and load async after. If not set, true will |
| 1188 | + * be assumed if loading a URL, and false will be assumed otherwise. |
1188 | 1189 | */ |
1189 | 1190 | load: function ( modules, type, async ) { |
1190 | 1191 | var filtered, m; |
— | — | @@ -1196,6 +1197,10 @@ |
1197 | 1198 | if ( typeof modules === 'string' ) { |
1198 | 1199 | // Support adding arbitrary external scripts |
1199 | 1200 | if ( /^(https?:)?\/\//.test( modules ) ) { |
| 1201 | + if ( async === undefined ) { |
| 1202 | + // Assume async for bug 34542 |
| 1203 | + async = true; |
| 1204 | + } |
1200 | 1205 | if ( type === 'text/css' ) { |
1201 | 1206 | $( 'head' ).append( $( '<link>', { |
1202 | 1207 | rel: 'stylesheet', |
Index: branches/REL1_19/phase3/resources/jquery.ui/themes/vector/jquery.ui.datepicker.css |
— | — | @@ -1,6 +1,6 @@ |
2 | 2 | /* Datepicker |
3 | 3 | ----------------------------------*/ |
4 | | -.ui-datepicker { width: 17em; padding: .2em .2em 0; } |
| 4 | +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } |
5 | 5 | .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } |
6 | 6 | .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } |
7 | 7 | .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } |
Property changes on: branches/REL1_19/phase3 |
___________________________________________________________________ |
Modified: svn:mergeinfo |
8 | 8 | Merged /trunk/phase3:r112384,112400,112408,112451,112456,112474,112526,112533-112534,112538,112567 |