Commit graph

13189 commits

Author SHA1 Message Date
Adam Wight 5a451e0dd8 Workaround to prevent removing the selected item
Removing the selected item causes StackLayout to select (and scroll
to) its first item.  To prevent this, we preemptively unselect.

Note that even when an unselected item is removed, StackLayout still
clears the selection, so this patch doesn't lose any useful
behaviors.

Fix should be pushed down into OOUI, unless there's a use case where
we want to select the first item?

Bug: T293635
Change-Id: I0c1fddfa32b76621a9f1328c8173f0158386aee8
2021-10-20 00:07:18 +02:00
Ed Sanders abcd8428fa Fix rendering of render-less templates in preview snippets
The signature of createInvisibleIcon was changed but this
was never updated.

This fixes invisible template renderings inside previews, e.g.
inside the reference context item for:
<ref>{{InvisibleTemplate}} Content</ref>

Change-Id: I3d1b7a177408032957ac3fa8ead813438aa6bda7
2021-10-19 15:32:00 +01:00
Bartosz Dziewoński 9f9f27eb08 Fix unintentional raw HTML message
Change-Id: Ib5d37d4bdc8a36f7b077995d35cea70fb84e4476
2021-10-18 22:37:25 +02:00
jenkins-bot dfa08be3f5 Merge "Don't close the old sidebar when the add parameter button is pressed" 2021-10-18 14:02:21 +00: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 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
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
Ed Sanders 295d139ef1 Minor documentation fixes
Change-Id: I6822c04c8d160431510e62752783e6829950dc36
2021-10-13 14:02:57 +01: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
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
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
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
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
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
Thiemo Kreuz 1904698105 Move some logic into the TransclusionModel class
I moved some code around and found that quite a lot of code wants to
know:
* Is the length of this transclusion exactly 1?
* I need that 1st part.

There is more that can potentially moved from the dialog to the model.
But I don't want to make this patch to big.

Bug: T292371
Change-Id: Ia94ed0450d04dd97c4c41f5bf7c266f9a534e821
2021-10-06 16:00:18 +00:00
jenkins-bot 9213741db4 Merge "Pages outside of Template: namespace can have TemplateData" 2021-10-06 10:30:10 +00:00
jenkins-bot b9fc01dc8e Merge "Fix hiding of 'add image' button in gallery dialog" 2021-10-05 19:57:37 +00:00
WMDE-Fisch 6c7f303c86 Focus initial/single template placeholder
This includes some moving of code. These helper functions seem to make
more sense in the TemplateDialog class.

Bug: T292371
Change-Id: I004405bab60a569b084f9083fefa41f44f9a5561
2021-10-05 12:58:55 +02:00
jenkins-bot 352075c815 Merge "Add more keyboard shortcuts for VE template dialog" 2021-10-05 10:05:08 +00:00
Ed Sanders fe6e097d1d Fix hiding of 'add image' button in gallery dialog
Change-Id: I755abc3b28b32350f33d96e2938cb7d7d3caa5e5
2021-10-04 13:53:25 +01:00
Thiemo Kreuz dba40bab22 Reduce duplicate/dead code when checking for single templates
I hope this code is a little cleaner. This patch doesn't change how
the dialog behaves.

Bug: T292210
Change-Id: I237812b3404437948eb76d8b36dcca2a4c688d6d
2021-10-01 15:47:09 +02:00
WMDE-Fisch 15e825c603 Add more keyboard shortcuts for VE template dialog
Bug: T290262
Change-Id: I9a3c29e9925b903c6d6f2424a4912ae1c9ecfe2c
2021-10-01 14:56:10 +02:00
Adam Wight f64522304b Keyboard shortcut to add a new template
Bug: T290262
Change-Id: Ie548d3813374466638a1b196fa4014519d7228fe
2021-10-01 12:40:15 +00:00
jenkins-bot 50faec38c3 Merge "Don't get stuck on a narrow mode sidebar" 2021-10-01 11:07:31 +00:00
WMDE-Fisch 2a4e4ea202 Don't get stuck on a narrow mode sidebar
Bug: T292210
Change-Id: I0d7d69e775d65cdabe7377851a695c8dc7ac7e67
2021-10-01 10:23:57 +02:00
Thiemo Kreuz 1731f3cc14 Better name for .selectPartByPageName() method
This method does not only select a "part", i.e. a top-level item like
a template. It also selects sub-items like template parameters. The
new name reflects this better.

Change-Id: I51a8ddbd05b283248afba5a623cc52da7b2434f5
2021-10-01 07:00:40 +00:00
jenkins-bot 3f23cc79ee Merge "Add missing @fires documentation tags" 2021-09-30 16:35:02 +00:00