Commit graph

19154 commits

Author SHA1 Message Date
Translation updater bot 47fa7bc308 Localisation updates from https://translatewiki.net.
Change-Id: I6dcd90a920473f3811d302b21571aca72cbb2fdc
2021-10-18 15:21:43 +02:00
jenkins-bot 99f7acddf7 Merge "Auto hide the sidebar when only a single placeholder is present in narrow mode" 2021-10-15 08:13:41 +00:00
jenkins-bot 2873d4b328 Merge "Fix broken focus when using the add parameter button in the old sidebar" 2021-10-15 08:08:06 +00:00
jenkins-bot 8b2c78222f Merge "Update VE core submodule to master (4373b0a6e)" 2021-10-14 19:18:10 +00:00
jenkins-bot 9521442b04 Merge "Add mobile 'content' class to visual diff" 2021-10-14 19:18:07 +00:00
jenkins-bot c5e6c9f9e1 Merge "Minor documentation fixes" 2021-10-14 19:07:09 +00:00
Bartosz Dziewoński e389e7ebfe Update VE core submodule to master (4373b0a6e)
New changes:
e1ada5fd8 Localisation updates from https://translatewiki.net.
4373b0a6e Create new stacking context for diffElement

Bug: T292491
Change-Id: I0399a57443404e20066c3292b78fe01f6947faf3
2021-10-14 20:48:58 +02:00
jenkins-bot 9d199fb287 Merge "Replace IIFE with block scope in ES6 code" 2021-10-14 17:55:55 +00:00
Ed Sanders 789519012e Add mobile 'content' class to visual diff
Bug: T293392
Change-Id: I7d0d6fee5a50fc2d965ebf0ad20c49dd26c70901
2021-10-14 17:26:03 +01:00
Ed Sanders e1fb20d8be Replace IIFE with block scope in ES6 code
Change-Id: I635f72a62ae44943a7705d28e92c9a0d265800b6
2021-10-14 15:11:45 +01:00
Andrew Kostka bf846d2313 Don't close the old sidebar when the add parameter button is pressed
Change-Id: I635d741a028196d9ad3b68cb26e5eac58b199fe5
2021-10-14 13:59:46 +02:00
Andrew Kostka 18964cdf2c Fix broken focus when using the add parameter button in the old sidebar
Bug: T293203
Change-Id: I9b9658ea05afe9c0d76e0956e8037842f540f74d
2021-10-14 13:43:35 +02:00
Svantje Lilienthal 9b9c6ff492 Remove focus from first input field when clicking on template name in sidebar
Bug: T293250
Change-Id: I017bd9fa5e566762b78e354f9ff94902b2c8968a
2021-10-14 10:25:34 +00:00
Andrew Kostka 0350b742c8 Auto hide the sidebar when only a single placeholder is present in narrow mode
Bug: T293202
Change-Id: I0226ca7d39e04a69617c0d8a5d3c293cfc9e0709
2021-10-14 11:37:23 +02:00
Bartosz Dziewoński 4e2318f2f0 Fix value of 'namespacesWithSubpages' in wgVisualEditorConfig
After filtering the PHP array to only include the ids
of namespaces with subpages enabled, add an array_values()
call so that the ids are again indexed numerically beginning
from 0, which is needed for the array to be passed to the
JavaScript as an array rather than an object.

Bug: T293310
Follow-up: Ia0ecac71721eceed52cc90f39ecc560bdf1b7f9b
Change-Id: I45bb281314caf5da0b7836829eb44f858836566f
2021-10-13 23:50:39 +00:00
jenkins-bot a0eb10487a Merge "Revert "build: Remove max-len over-ride (leave as warning)"" 2021-10-13 18:31:15 +00:00
Bartosz Dziewoński fa629a42a9 Update VE core submodule to master (35412f822)
New changes:
026d0cb4f Localisation updates from https://translatewiki.net.
f16f2179c Never rebuild above the attachedRoot
78bedf8be ElementLinearData tests: Refactor for loops
aed112aa8 Follow-up Ia593dad856: Use set data when changing character in sanitize

Bug: T293254
Change-Id: Ic5d5c1b77ae86eb18ebcb250c4b9c0ed64ccba6d
2021-10-13 20:04:55 +02:00
Ed Sanders 295d139ef1 Minor documentation fixes
Change-Id: I6822c04c8d160431510e62752783e6829950dc36
2021-10-13 14:02:57 +01:00
Ed Sanders 3801aa1bac Move var declarations inline
Change-Id: I12639c515e33b3d9e7a819581b5022ea42fd7046
2021-10-13 14:02:31 +01:00
Esanders aaf27e3901 Revert "build: Remove max-len over-ride (leave as warning)"
This reverts commit 2c75722ff1.

Reason for revert: Creates too much warning spam (>50) which makes
errors hard to spot. Most of these should be fixed before enforcing
the rule.

Change-Id: I8a785ec73d3429d4681d5c965a0efdbf0c86893d
2021-10-13 12:54:46 +00:00
jenkins-bot ebeeed35bb Merge "Remove duplicate load error handling code" 2021-10-12 16:07:07 +00:00
jenkins-bot 48f6436034 Merge "ve.dm.MWExtensionNode: Clarify documentation of 'extensionName'" 2021-10-12 13:52:20 +00:00
Bartosz Dziewoński e603613a7c ve.dm.MWExtensionNode: Clarify documentation of 'extensionName'
Bug: T291900
Change-Id: I70db47747aef7693ade6b8b7ea68e6212f78fe29
2021-10-12 00:16:42 +02:00
Bartosz Dziewoński 33bbd5bcf2 Remove duplicate load error handling code
Load errors are already handled in the MobileFrontend part of the
mobile visual editor, by this code:

66c55573e5/src/mobile.init/editor.js (L375-L387)

    // Wait for the data to load before we show the editor overlay
    overlay.getLoadingPromise().then( function () {
    	...
    }, function ( error, apiResponse ) {
    	// Could not load the editor.
(1) 	overlayManager.router.back();
    	if ( error.show ) {
    		// Probably a blockMessageDrawer returned because the user is blocked.
    		document.body.appendChild( error.$el[ 0 ] );
    		error.show();
    	} else if ( apiResponse ) {
(2) 		mw.notify( editorOptions.api.getErrorMessage( apiResponse ) );
    	} else {
    		mw.notify( mw.msg( 'mobile-frontend-editor-error-loading' ) );
    	}
    } );

Compared to our code:

    ve.init.mw.MobileArticleTarget.prototype.loadFail = function ( code, errorDetails ) {
    	...
(1) 	this.overlay.onExitClick( $.Event() );
(2) 	mw.notify( this.extractErrorMessages( errorDetails ) );
    };

The lines marked with (1) and (2) do basically the same thing. And
the function parameters "error, apiResponse" and "code, errorDetails"
are actually the same objects, just with confusingly different names.

This causes the popup with error message to appears twice (although it
isn't too obvious, since the two popups appear in the same place, so
only one is visible), and also causes bogus data to be sent in event
logging (T237063).

Bug: T237063
Change-Id: I7fe7a944707fe585251ce9e16bbb78ccd123a7ed
2021-10-11 23:20:43 +02:00
jenkins-bot f4571dd956 Merge "Check whether to show the sidebar after adding the parts" 2021-10-11 09:12:18 +00:00
Andrew Kostka 0fa54f2f9e Check whether to show the sidebar after adding the parts
Bug: T292852
Change-Id: I18309164ae4838d9a7aa9fc842012806fbd0c845
2021-10-11 10:50:05 +02:00
libraryupgrader 3dd4b47039 build: Updating npm dependencies
* ansi-regex: 5.0.0 → 5.0.1
  * https://npmjs.com/advisories/1002401 (CVE-2021-3807)
* is-svg: 4.2.1 → 4.3.1
  * https://npmjs.com/advisories/1002911 (CVE-2021-28092)

Additional changes:
* composer.json: Updated phpcs command in composer test (T280592).
* composer.json: Added phpcs command to scripts (T280592).

Change-Id: I03a4d3b8038590812667adc9d33c3b78d0d134df
2021-10-09 12:08:12 +00:00
Bartosz Dziewoński bcfab14fee Update VE core submodule to master (5805b83ba)
New changes:
8161c0a6e Localisation updates from https://translatewiki.net.
c5e396884 Add precision on matching order in ve.dm.ModelRegistry doc comments
82bcc8562 build: Updating ansi-regex to 5.0.1
9b2c9b97a Localisation updates from https://translatewiki.net.
5805b83ba Move eslintrc config into sub-folders

Change-Id: I9baaa2193465a0a852baf0fba59404381d8fe292
2021-10-08 23:46:30 +02:00
Thiemo Kreuz 74e3dd3f4b Fix strange dialog title when using subst:
When I type e.g. "subst:example" as the template name, we made this
work as the user would expect: the template named "Example" is found
and it's TemplateData documentation used. But the dialog title shows
"Subst:example". Note the uppercase "S". It means this string is
parsed as a title, including the "subst:". This is confusing. Just
show the template name.

Change-Id: I9817786991a8379cf48b0a664aef1413abddee2d
2021-10-08 16:00:29 +02:00
Thiemo Kreuz dc85603c0e Remove redundant variable from TransclusionOutlineWidget
Change-Id: I27a890069748d9e689c96fa7c515568fb38e9973
2021-10-08 13:38:44 +02:00
jenkins-bot 871dd4486c Merge "Fix sidebar bottom position when pressing Ctrl+Shift+E" 2021-10-08 11:19:51 +00:00
jenkins-bot 990d5372e9 Merge "Fix first click on parameter page causing bad scroll" 2021-10-08 10:50:15 +00:00
jenkins-bot 5e7eea44f1 Merge "Don't reset narrow screen mode when it's already active" 2021-10-08 08:17:34 +00:00
Thiemo Kreuz f77ef7d7f4 Fix/cleanup template dialog methods dealing with parts vs. items
Some cleanup to improve readability and reduce the amount of code.
Relevant bits:
* One method name was wrong. It can actually return parameter ids,
  not only top-level part ids.
* I got rid of some fail-safe checks that are never needed or moved
  them to a more central place.

Change-Id: I08f2ad7bc7d3f985d6189dff170dda554f3d37c2
2021-10-08 07:43:23 +00:00
Translation updater bot 5e4ec274ea Localisation updates from https://translatewiki.net.
Change-Id: I87bbd0cb29e16e0094aad0b3319482ba39a82acb
2021-10-08 09:21:43 +02:00
Thiemo Kreuz 25ee94ee07 Don't reset narrow screen mode when it's already active
Bug: T292693
Change-Id: I39f4655115c6162a0bc7984702bebe28f12563fe
2021-10-08 06:44:12 +00:00
Thiemo Kreuz 893a3d5cf0 Fix sidebar bottom position when pressing Ctrl+Shift+E
This patch fixes two issues:
* The bottom corner of the new sidebar was never correct because of
  a `padding: 2px` that was introduced later, but never compensated
  for.
* The moment the toolbar is shown it's not a single-template dialog
  any more. This implies minor style changes.

Bug: T290262
Bug: T292727
Change-Id: I08da73880c469085994ee4beb3fcdd973f80ae11
2021-10-07 18:46:47 +00:00
jenkins-bot 8e025e4af0 Merge "Skip flaky test for now" 2021-10-07 17:57:14 +00:00
jenkins-bot 02e3aff969 Merge "Refactor how namespaces with subpages are exposed to JavaScript" 2021-10-07 17:57:11 +00:00
jenkins-bot 6c1d10289b Merge "Localisation updates from https://translatewiki.net." 2021-10-07 15:13:39 +00:00
Thiemo Kreuz be789e6387 Fix first click on parameter page causing bad scroll
The idea of this piece of code is to make sure both sides of the
dialog show the same element. But it doesn't make sense to force the
*header* of a template into view when I clicked on a *parameter*.

Bug: T292718
Change-Id: I9945f8e54c856152f05bf717e43468ab5ab24d2f
2021-10-07 15:04:20 +02:00
Adam Wight 1142ca3ce0 Skip flaky test for now
Bug: T292318
Change-Id: I03437d33f26c48208b84a578ff185bff6f9034a7
2021-10-07 15:00:14 +02:00
jenkins-bot 8dd098905c Merge "Use .localeCompare() when sorting undocumented parameters" 2021-10-07 10:31:19 +00:00
Andrew Kostka 7e9d50ff05 Use .localeCompare() when sorting undocumented parameters
Bug: T292643
Change-Id: I5d89d64bcce656fa0881f69b5d0d0fef65871c0c
2021-10-07 11:57:18 +02:00
Adam Wight 2f4ce7df69 Rewrite style so it can be flipped by cssjanus
"to right" is the same as "90deg", but can be matched and flipped in
rtl interfaces.

Bug: T292690
Change-Id: I985d4b0206112e07c2f5a481145b8abc88cb50ea
2021-10-07 10:11:44 +02:00
jenkins-bot 0ba300554f Merge "Move some logic into the TransclusionModel class" 2021-10-07 07:51:54 +00:00
Translation updater bot 9e850f2b39 Localisation updates from https://translatewiki.net.
Change-Id: I2905ec022dcb4e53f2a511ac44b7f3793a2c0838
2021-10-07 09:03:40 +02:00
jenkins-bot 74a49255cf Merge "Harden …TemplateTitleInputWidget to avoid JS console spam" 2021-10-06 23:31:02 +00:00
Thiemo Kreuz 866547d081 Harden …TemplateTitleInputWidget to avoid JS console spam
I run into this in some local test. There are two reasons this code
can be reached:
* When a wiki doesn't have the TemplateData extension, the
  additional API call from line #154 will fail. But the original
  search query succeeded. We have the `originalResponse` and can
  return it. This makes the code behave as if the additional
  TemplateData API call was never done.
* But what if the original search query failed? We still end in
  line #183 – as we should. But this time it can't return anything
  but undefined. This will be considered a valid, successful API
  response. But it isn't.

There might be a better way to clean up this chain of promises.
This is the smallest fix I found.

Change-Id: I02d3d053156da222ee424382007621f314777015
2021-10-06 20:14:55 +00:00
DannyS712 2984539f42 Refactor how namespaces with subpages are exposed to JavaScript
Instead of using an object mapping namespace ids to if they have
subpages enabled or not, pass an array of the namespaces where
subpages are enabled, reducing the size of the configuration that
gets loaded on all requests. Only requires a minor update to the
JavaScript that uses the value (check for array index instead of
object value).

Bug: T291729
Change-Id: Ia0ecac71721eceed52cc90f39ecc560bdf1b7f9b
2021-10-06 20:11:37 +00:00