[00:01:17] RoanKattouw, I could check, but since it happened to me on another page, it's unlikely to be a problem with a single article. They go back to normal when you click inside the box. [00:01:46] You'll get a bug report after I've figured out whether it's Firefox only or also happens on Safari (John and I are both running Macs.) [00:02:40] Oh, OK [00:02:52] Well yeah autosizing text boxes act up sometimes, I've had problems with them too [00:05:27] I've reproduced it in Safari. It seems to happen more often if I zoom in (which John and I have been doing a lot of, because we've been re-writing the user guide and updating the screenshots). [00:05:43] It's not 100% reproducible. [00:11:09] Ugh [00:11:15] I hate browsers [00:25:33] whatami: I responded to the animation thing as well as the wikitext warning thing [00:25:51] Thanks, RoanKattouw. I appreciate it. [00:29:04] Wow the category doubling bug is hilarious [00:29:27] It was fixed recently, somehow, but I don't know why [00:30:34] Oh, aha, it was https://bugzilla.wikimedia.org/show_bug.cgi?id=68484 [00:30:38] Rummana found it independently [00:41:15] (03PS2) 10Krinkle: Remove deprecated types from templatedata editor [extensions/TemplateData] - 10https://gerrit.wikimedia.org/r/152749 (owner: 10Mooeypoo) [00:41:39] (03CR) 10jenkins-bot: [V: 04-1] Remove deprecated types from templatedata editor [extensions/TemplateData] - 10https://gerrit.wikimedia.org/r/152749 (owner: 10Mooeypoo) [00:42:10] (03CR) 10Krinkle: "One of the tests broke, probably needs updating." [extensions/TemplateData] - 10https://gerrit.wikimedia.org/r/152749 (owner: 10Mooeypoo) [00:42:51] RoanKattouw: https://gerrit.wikimedia.org/r/#/c/152122/ has somewhat high prio as without it we'll be serving fatal js errors in IE6. [00:42:59] resulting in annoying script error alert() dialogs [00:43:15] due to Common.js code using $ and mw [00:43:21] Krinkle: Sorry, I was reviewing that but got distracted [00:43:26] 3VisualEditor / 3Editing Tools: VisualEditor: "Options" item in the hamburger menu doesn't add any value - 10https://bugzilla.wikimedia.org/69451 (10Roan Kattouw) 3NEW p:3Unprio s:3normal a:3None From the feedback page on enwiki: The first item in the Page options menu, “Options”, does EXACTLY what... [00:44:43] (03PS1) 10Catrope: Remove "Options" tool from hamburger menu [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153737 (https://bugzilla.wikimedia.org/69451) [01:10:01] WTF [01:10:18] I wasn't aware that external link icons weren't appearing in VE on enwiki, this has worked on my localhost for a long time [01:11:02] Actually nm it works on enwiki too, I'm an idiot [01:19:58] ...but it doesn't work in monobook. What [01:24:23] 3VisualEditor / 3ContentEditable: VisualEditor: Links should follow the local CSS rules as if they were rendered in the view mode (e.g. external links shown with the external icon) - 10https://bugzilla.wikimedia.org/38726#c7 (10Roan Kattouw) (In reply to Spinningspark from comment #6) > I'm not seeing this a... [02:06:38] 3VisualEditor / 3Editing Tools: VisualEditor: Quickly clicking on "Apply Changes" button multiple times on Media Settings throws console error and cannot make any more changes to any media settings dialog after that - 10https://bugzilla.wikimedia.org/66389#c6 (10Coiby) This problem still exist on snapshot 98... [02:13:53] 3VisualEditor / 3Editing Tools: VisualEditor: Quickly clicking on "Apply Changes" button multiple times on Media Settings throws console error and cannot make any more changes to any media settings dialog after that - 10https://bugzilla.wikimedia.org/66389#c7 (10Coiby) (In reply to Coiby from comment #6) > T... [02:15:38] 3VisualEditor / 3Editing Tools: VisualEditor: Quickly clicking on "Apply Changes" button multiple times on Media Settings throws console error and cannot make any more changes to any media settings dialog after that - 10https://bugzilla.wikimedia.org/66389#c8 (10Roan Kattouw) (In reply to Coiby from comment... [02:20:08] 3VisualEditor / 3Editing Tools: VisualEditor: Quickly clicking on "Apply Changes" button multiple times on Media Settings throws console error and cannot make any more changes to any media settings dialog after that - 10https://bugzilla.wikimedia.org/66389#c9 (10Coiby) Sorry, it's typo. I mean .js. There ar... [02:22:38] 3VisualEditor / 3Editing Tools: VisualEditor: Quickly clicking on "Apply Changes" button multiple times on Media Settings throws console error and cannot make any more changes to any media settings dialog after that - 10https://bugzilla.wikimedia.org/66389#c10 (10Roan Kattouw) Right, ActionDialog.js was intr... [05:55:11] (03PS1) 10Legoktm: Don't use RequestContext::getMain() if a context is available [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153750 [05:57:37] (03PS1) 10Legoktm: Remove unused globals, add some type-hinting [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153751 [08:15:58] (03PS1) 10Legoktm: Use Config instead of globals [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 [08:17:44] (03CR) 10jenkins-bot: [V: 04-1] Use Config instead of globals [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [08:19:14] (03PS2) 10Legoktm: Use Config instead of globals [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 [12:20:17] (03PS4) 10Mooeypoo: Add an event to updating current values in scalable [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153069 [12:21:08] (03PS9) 10Mooeypoo: Make the image model persistent [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/149217 [12:21:21] (03PS5) 10Mooeypoo: Add an event to updating current values in scalable [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153069 [12:21:43] (03PS4) 10Mooeypoo: [wip] Check for changes in the model [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152790 (https://bugzilla.wikimedia.org/68058) [12:21:56] (03PS7) 10Mooeypoo: Refactoring ImageModel constructor [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/149191 [12:22:01] (03PS10) 10Mooeypoo: Make the image model persistent [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/149217 [12:22:07] (03PS5) 10Mooeypoo: [wip] Check for changes in the model [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152790 (https://bugzilla.wikimedia.org/68058) [13:00:23] (03CR) 10Esanders: [C: 04-1] "Looks good but this method isn't unit tested." [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/151506 (owner: 10Catrope) [13:00:50] (03PS2) 10Esanders: Remove messages defined in core [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153436 [13:39:11] (03PS11) 10Zfilipin: [BrowserTest] Added browser tests for formula, reference list and save button [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/151419 (owner: 10Vikassy) [13:47:15] (03CR) 10Zfilipin: "recheck" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/151419 (owner: 10Vikassy) [14:04:57] (03CR) 10Cmcmahon: [C: 032] [BrowserTest] Added browser tests for formula, reference list and save button [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/151419 (owner: 10Vikassy) [14:06:39] (03Merged) 10jenkins-bot: [BrowserTest] Added browser tests for formula, reference list and save button [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/151419 (owner: 10Vikassy) [14:09:10] (03PS6) 10Vikassy: WIP: [BrowserTest] Language screenshot job should run specific scenarios [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153594 [14:14:24] (03PS7) 10Vikassy: WIP: [BrowserTest] Language screenshot job should run specific scenarios [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153594 [14:15:04] (03PS8) 10Vikassy: [BrowserTest] Language screenshot job should run specific scenarios [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153594 [14:26:40] 3VisualEditor / 3Editing Tools: VisualEditor: Reference & cite tooltips could show content snippets, instead of generic labels - 10https://bugzilla.wikimedia.org/69474 (10Ed Sanders) 3NEW p:3Unprio s:3normal a:3None For citation template references we may also want to specify a subset of parameters t... [14:33:09] (03CR) 10Esanders: "So we can't run unit tests in the browser?!" [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/151299 (owner: 10Jforrester) [14:37:49] edsanders, those pics are awesome [14:38:11] except for the one where I look like I am Roan's stalker. [14:40:26] (03CR) 10Jforrester: "grunt karma:local will run tests in Chrome and Firefox if you have them, exactly as in OOUI…" [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/151299 (owner: 10Jforrester) [14:45:07] (03CR) 10Jforrester: [C: 032] Remove messages defined in core [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153436 (owner: 10Esanders) [14:46:52] (03Merged) 10jenkins-bot: Remove messages defined in core [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153436 (owner: 10Esanders) [15:06:51] (03CR) 10Zfilipin: [C: 032] [BrowserTest] Language screenshot job should run specific scenarios [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153594 (owner: 10Vikassy) [15:08:29] (03Merged) 10jenkins-bot: [BrowserTest] Language screenshot job should run specific scenarios [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153594 (owner: 10Vikassy) [15:42:49] Krinkle, why would options in grunt not be working [15:43:07] e.g. [15:43:07] concat: { [15:43:07] options: { [15:43:08] separator: 'XXX', [15:43:08] }, [15:43:30] edsanders: Depends. Is this build/tasks/concat.js (our code) or grunt-contrib-concat? [15:43:55] Either way, a task may or may not support generic options, it may need to be specific for each task target. [15:44:05] oh [15:44:07] concat: { foo: { options: {}, src: .. ,dest: .. } } [15:44:08] we override that [15:44:18] We should be moving to the latter [15:44:22] (grunt-contrib-concat) [15:44:46] Which works slightly different (using banner.txt with grunt templates instead of intro.txt prepended) [15:44:59] no @VERSION and @DATE. [15:45:01] see oojs/core for example [15:45:32] (03PS2) 10Krinkle: dm.NodeFactory: Use .lookup() instead of .create().constructor [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/151506 (owner: 10Catrope) [15:45:54] (03PS8) 10Jforrester: [BREAKING CHANGE] Move modules to src and tests and i18n, UnicodeJS to lib [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153282 [15:45:59] (03CR) 10jenkins-bot: [V: 04-1] [BREAKING CHANGE] Move modules to src and tests and i18n, UnicodeJS to lib [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153282 (owner: 10Jforrester) [15:46:37] hm. Krinkle, I'm looking for a way to do async calls on a loop for the templatedata editor. Specifically, I want to go something like "1. fetch content of page X from API 2. check to see if there's a template there. 3. If yes, retrieve params (return, out of loop). if not, go up a level in the url and 4. repeat 1-3 until we are in root template". But this involves asynch ajax calls and waiting for each to be done to check the next. [15:46:37] Is there an easy way to do this? I can't find anything online. [15:47:05] I can only find how to loop through requests with $.when but that's for full requests, I want to only go up a level if it's needed, if that makes sense. [15:47:45] mooeypoo: The conditional follow-up query can be done using .then() so the loop isn't aware of it being 1 or 2 lookups [15:48:12] Krinkle, right, but then I need to recall the same operation again. [15:48:16] oh.. I guess I can make it recursive [15:48:25] mooeypoo: Do you want them to run in parallel and get a callback when each is finished? $.when, do you want them to run one at a time? Then you need to either wrap it again, or use OO.ui.Process, or use the logic of async.forEachSeries from node-async . [15:48:31] (03PS9) 10Jforrester: [BREAKING CHANGE] Move modules to src and tests and i18n, UnicodeJS to lib [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153282 [15:48:46] (03CR) 10Jforrester: "PS8 fixes minor issue per Krinkle; PS9 is a rebase." [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153282 (owner: 10Jforrester) [15:48:51] Krinkle, I think the odds are that either the template code is in the current page (1 lookup) or the page above, so I don't want to look for all at once -- just go as needed. [15:49:11] mooeypoo: Yeah, in that case you'd just chain it manually. [15:49:13] Template:Infobox/person/doc or something [15:49:28] if I'm in /doc it will look for the template, won't find it, and go up to Template:Infobox/person [15:49:38] then go up again if no template's there. [15:49:39] the second one running from the callback from the first (either using .fail, or an if-statement in .done) [15:49:56] Yep [15:50:01] Krinkle, so, I can do this in a recursive method? IE, calling itself from the .done() ? [15:50:22] Maybe, but I'm not sure that's a good idea. [15:50:22] or will this break the internet? :p recursive async sounds a bit dangerous [15:51:04] You could re-use some of the code, like tryPage(foo/doc).then(null, function () { return tryPage(foo); }).done( .. ) [15:51:18] less dangerous then full recusion [15:51:21] But loops are synchronous, so I'm confused about how to do this. The only way I can think of that's straight-forward is to call the 'check template' call once, then in its .done() check if there's a template, if not, call for itself again [15:51:33] right, that's recursive, though, isn't it? [15:52:01] oh, I think I see what you mean. It's partially recursive. [15:52:11] Not really, it just tries one and then the other. Not calling the outer function, but two code paths referencing a single function that doesn't recurse. [15:52:16] (03CR) 10Jforrester: [BREAKING CHANGE] Move modules to src and tests and i18n, UnicodeJS to lib (031 comment) [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153282 (owner: 10Jforrester) [15:52:19] Gotcha [15:52:37] I need to separate the method, then. that makes sense [15:52:39] so instead of function try() { ...... else... try(); } you have function try() { .. } and call try() then try() [15:52:59] yeah. That makes sense. I was thinking about it as recursive, but it's not really fully recusive. [15:53:28] okay, that sounds good. I'm trying that now. Thanks! [15:54:58] yw [16:03:22] wait. Krinkle, eh, I think I'm a bit confused again. If I go with tryPage( 'foo/bar/baz/doc' ).done( function () { return tryPage( 'foo/bar/baz/' ).done( ... ) } ) then I need to do the whole chain (without knowing how many levels it goes [16:05:22] Krinkle, would something like this be dangerous--> modelGetTemplateCodeFromAPI = function ( pageName ) { return $.ajax( { ...data... } ).done( function() { /*if template not found*/ newPageName=(go up a level); modelGetTemplateCodeFromAPI( newPageName ) ) } [16:05:26] this is recursive, though. [16:05:47] mooeypoo: What chain? You'll only ever try two, right? [16:06:00] no, we talked about having pages that have more than two levels [16:06:09] Template:Infobox/something/somethingelse/doc [16:06:12] Yes, but you'd never edit the template data of those deeper, no? [16:06:21] That wouldn't make sense. [16:06:29] If you can find an example though, that would help. [16:06:36] * mooeypoo looks to James_F [16:06:41] he mentioned something with this [16:06:58] But I shall look. I was under the impression that it may have lower levels for templates, hence the entire recursive attempt [16:07:11] ? [16:07:25] James_F, I may have misunderstood, but I want to make sure [16:07:40] we talked about having the templatedata editor looking for the template code in upper levels, so if we're in /doc etc [16:07:45] Oh, yeah, pathological cases are evil. [16:07:46] but then you mentioned that there might be more than one level [16:08:01] Yeah. [16:08:17] Does that mean that I always go one level up (so Template:Foo/Bar/Baz/doc will ONLY go look at /doc and then /Baz and stop) or do I look up the chain until I find a template code? [16:09:56] 3VisualEditor / 3Mobile: VisualEditor Mobile: Disable the context menu for the Basic reference - 10https://bugzilla.wikimedia.org/68897#c4 (10Rummana Yasmeen) 5ASSI>3RESO/FIX Verified the fix in Betalabs [16:10:23] If you're in a Template:Foo/Bar/Baz/doc case then checking …/doc then …/Baz/doc seems rational. [16:10:33] but then stopping? [16:10:42] Going further up the chain seems nice to have, but not critical priority. :-) [16:10:52] or, if no template is found in Template:Bar/Baz do I go up [16:11:13] well, if I can do it recursively, I can solve it right now. But according to Krinkle that's not useful? I'm confused. [16:11:51] I think it's useful but not high priority. [16:12:00] James_F: Wait, why would you check ../doc of Template:Foo/Bar/Baz/doc (thats Template:Foo/Bar/doc) [16:12:10] You mean pagename/doc then pagename, right? [16:12:30] Krinkle: If you're editing you can't assume introspection. [16:12:33] <Krinkle> In what case would we want to fetch a higher page? Templates can be nested but you wouldn't store template documentation furhter up the chain for a sub template. [16:13:10] <mooeypoo> Hm, that's a good point. [16:13:39] <mooeypoo> there might be no need to go up all the way. Also, this is mostly for *importing* params [16:14:17] <mooeypoo> if documenting Template:Foo inside Template:Foo/Bar/Baz/doc is non standard, then it isn't too bad "import" won't give you the right params. [16:15:37] <Krinkle> I mean, Template:Ambox has Template:ambox/core, but /core is used internally and its template parameters will not be documented on Templaet:Ambox or Ambox/doc [16:15:49] <Krinkle> So I think it's not so much low priority but would actually cause unexpected results [16:17:36] <mooeypoo> Krinkle, so another question then. [16:17:42] <mooeypoo> is there any case where /doc has a template? [16:17:55] <mooeypoo> I mean, it sounds like it shouldn't, in which case I cna just say "any time i'm in /doc, go up" [16:18:02] <mooeypoo> no real need to check current page [16:18:11] <mooeypoo> (Unless I'm not in /doc) [16:18:41] <Krinkle> mooeypoo: I think it's best not to assume that indeed. I think we discussed that already with various people and came to the conclusion it's best not to assume /doc is never a template. [16:18:51] * mooeypoo nods [16:18:56] <Krinkle> Try ./doc first, and then the current page name. That way you get both I think. [16:19:15] <mooeypoo> okay, fair enough. Then I will check current page, then if no templates found (and there is a 'higher' level) I'll go up once. [16:19:27] <Krinkle> Or possibly the other way around. Not sure which makes more sense. Maybe James_F has ideas about which should have precendence. Might depend on which page you're on. [16:19:33] <grrrit-wm> (03PS2) 10Alex Monk: Fix use of visualeditor-mweditmodesource-title instead of …-tool [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152913 (https://bugzilla.wikimedia.org/69203) (owner: 10Jforrester) [16:19:43] <grrrit-wm> (03PS4) 10Alex Monk: Update token handling for MediaWiki API change [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153108 (owner: 10Anomie) [16:19:45] <Krinkle> mooeypoo: Going up once, or instead of going up, go down one (+ /doc) [16:19:54] <Krinkle> In what case would you go up? [16:19:54] <James_F> Wait. [16:19:55] <James_F> No no no. [16:20:00] <mooeypoo> So purposefully look for template in /doc ? [16:20:05] <James_F> No. [16:20:08] <mooeypoo> I'm confused. [16:20:08] <James_F> Absolutely not. [16:20:11] <James_F> No no no no no no. [16:20:15] <Krinkle> Calm down [16:20:17] <grrrit-wm> (03PS3) 10Alex Monk: Rename MWLinkInspector → MWLinkAnnotationInspector to match file name [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/149636 (owner: 10Bartosz Dziewoński) [16:20:18] <Krinkle> I get i [16:20:23] <James_F> We are not hard-coding the string "/doc" in our code. [16:20:36] <Krinkle> you're looking for the source, not the documentation. [16:20:36] <James_F> mooeypoo: Krinkle's mis-understanding the problem. [16:20:39] <James_F> Yeah. [16:20:39] <grrrit-wm> (03PS8) 10Alex Monk: Make it possible to create autonumbered external links from link inspector [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/143346 (https://bugzilla.wikimedia.org/51309) (owner: 10Bartosz Dziewoński) [16:20:47] <mooeypoo> Right [16:20:51] <Krinkle> James_F: So yeah, current one then one one. Not ../doc, just ../ [16:20:59] <grrrit-wm> (03PS3) 10Alex Monk: Change label in dialog: "Change image" -> "Choose a different image" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152235 (owner: 10Eloquence) [16:21:18] <mooeypoo> Okay. So now I'm a little confused. Just to make sure, the actual way to do this is "Check *CURRENT* page first. No template? Go up a level if it exists. Stop." [16:21:19] <mooeypoo> right? [16:22:14] <Krinkle> Yep [16:22:16] <James_F> Yes. [16:22:28] <James_F> But if you think it's trivial to build the code to recurse, awesome. [16:22:32] <Krinkle> from foo/bar/baz (where 'baz' might be 'doc'), and then foo/bar. [16:22:51] <mooeypoo> James_F, it can be, but it might break the internet. [16:23:23] <mooeypoo> Recursion inside async methods sounds meh to me. I prefer sticking with the more straight forward approach we have here if that's what's trivial. [16:24:22] <Krinkle> Yep. Go with that (try one, and if there's none, try the other) [16:25:07] <grrrit-wm> (03CR) 10Alex Monk: [C: 032] Change label in dialog: "Change image" -> "Choose a different image" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152235 (owner: 10Eloquence) [16:26:47] <grrrit-wm> (03Merged) 10jenkins-bot: Change label in dialog: "Change image" -> "Choose a different image" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152235 (owner: 10Eloquence) [16:28:15] <grrrit-wm> (03CR) 10Alex Monk: [C: 032] "Re-applying James's +2 to get Jenkins to merge" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/149636 (owner: 10Bartosz Dziewoński) [16:29:55] <grrrit-wm> (03Merged) 10jenkins-bot: Rename MWLinkInspector → MWLinkAnnotationInspector to match file name [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/149636 (owner: 10Bartosz Dziewoński) [16:30:24] <wm-ve-needcheck> Corruption alert: visualeditor-needcheck on svwiki: https://sv.wikipedia.org/?diff=26863491 [16:30:24] <wm-ve-needcheck> Corruption alert: visualeditor-needcheck on ruwiki: https://ru.wikipedia.org/?diff=64775264 [16:30:24] <wm-ve-needcheck> Corruption alert: visualeditor-needcheck on ptwiki: https://pt.wikipedia.org/?diff=39805528 [16:30:24] <wm-ve-needcheck> Corruption alert: visualeditor-needcheck on skwiki: https://sk.wikipedia.org/?diff=5838177 [16:30:24] <wm-ve-needcheck> Corruption alert: visualeditor-needcheck on skwiki: https://sk.wikipedia.org/?diff=5838178 [16:34:18] <grrrit-wm> (03CR) 10Alex Monk: [C: 032] "oops." [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153750 (owner: 10Legoktm) [16:35:59] <grrrit-wm> (03Merged) 10jenkins-bot: Don't use RequestContext::getMain() if a context is available [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153750 (owner: 10Legoktm) [16:41:57] <grrrit-wm> (03CR) 10Alex Monk: [C: 032] Remove unused globals, add some type-hinting [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153751 (owner: 10Legoktm) [16:42:29] <grrrit-wm> (03CR) 10Jforrester: "Yay for fewer globals. Minor irritant question, not worthy of a -1." (031 comment) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [16:43:56] <grrrit-wm> (03Merged) 10jenkins-bot: Remove unused globals, add some type-hinting [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153751 (owner: 10Legoktm) [16:58:29] <wikibugs> 3VisualEditor: Use {{|}} rather than <nowiki>|</nowiki> when inserting a | in a template argument - 10https://bugzilla.wikimedia.org/69482 (10Richard Morris) 3NEW p:3Unprio s:3normal a:3None In https://en.wikipedia.org/w/index.php?title=Wikipedia:VisualEditor/Feedback&diff=621079160&oldid=621075505 it... [17:03:27] <grrrit-wm> (03PS7) 10Cmcmahon: [BrowserTest] WIP: create new test for Cite tool [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/150055 [17:03:41] <wikibugs> 3VisualEditor: Use {{|}} rather than <nowiki>|</nowiki> when inserting a | in a template argument - 10https://bugzilla.wikimedia.org/69482#c1 (10Richard Morris) A relevant diff is https://en.wikipedia.org/w/index.php?title=Bone_remodeling&diff=prev&oldid=621072608 [17:06:26] <wikibugs> 3VisualEditor: Use {{!}} rather than <nowiki>|</nowiki> when inserting a | in a template argument - 10https://bugzilla.wikimedia.org/69482 (10Roan Kattouw) [17:08:12] <grrrit-wm> (03PS8) 10Cmcmahon: [BrowserTest] WIP: create new test for Cite tool [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/150055 [17:10:28] <grrrit-wm> (03CR) 10Catrope: [C: 04-1] "-1ing again per James's comment on PS1" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [17:11:31] <grrrit-wm> (03CR) 10Catrope: [C: 032] Remove unused modules URL [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153602 (owner: 10Esanders) [17:13:09] <grrrit-wm> (03Merged) 10jenkins-bot: Remove unused modules URL [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153602 (owner: 10Esanders) [17:18:36] <edsanders> Krinkle, so can we just have Karma and QUnit? [17:19:00] <Krinkle> edsanders: They don't coorporate, it'd be a separate fork that is not contiously integrated or ensured to work. [17:19:28] <Krinkle> also, grunt-qunit is a command-line only thing to run in phantomjs. karma does that already [17:19:39] <edsanders> so get rid of that [17:19:47] <Krinkle> edsanders: Can you try your use case in oojs-core first to see if it's related to ve scale or the system istself? [17:19:48] <edsanders> I'm talking about the generated html file [17:19:58] <Krinkle> Also, what dist plugins where you talking about? [17:20:08] <Krinkle> that you wrote an awful lot of [17:20:21] <Krinkle> edsanders: you mean, no longer generate test.html (because it's unused) [17:20:26] <edsanders> yes [17:20:39] <edsanders> well, can't we just put qunit.js back and keep generating test.html [17:20:41] <Krinkle> it no longer does that in oojs/core. James' parallel commit to ve might have forgotten to remove that [17:20:46] <edsanders> for testing in the browser [17:21:01] <Krinkle> using qunit from npm allows version control and require(). [17:21:06] <Krinkle> they'd be the same files [17:21:10] <Krinkle> also, not mutually exclusive [17:21:22] <Krinkle> html can embed node_modules/qunitjs/dist/qunit.js instead of libs/qunit.js [17:21:25] <Krinkle> so that'd be fine still [17:23:01] * James_F fixes. [17:24:46] <Krinkle> edsanders: so for running them in phantomjs, you write the same still (npm test or grunt test or grunt unit, all work as before but use karma-qunit instead of grunt-lib-phantomjs). To run it in your browser, you either run 'grunt karma:local' (opens tab in Chrome/Firefox to run the test), or if you want a custom browser or continuous, grunt watch and open the generated url in a browser to hav [17:24:46] <Krinkle> e it join the pool. [17:25:14] <edsanders> ok [17:25:15] <Krinkle> So instead of opening lcoalhost/test/index.html once and refreshing whenever, you'd run that one command. Shouldn't be more or less actions than before. [17:25:25] <edsanders> it is [17:25:33] <Krinkle> how? [17:25:50] <Krinkle> browser/F5 vs. up-arrow/enter [17:26:02] <edsanders> opening one link is one command that takes <1s, switching to console, typing out command, waiting for tests to build, browser to launch, everything to open is much much more [17:26:18] <James_F> edsanders: You could even do a shell script with `grunt watch & | awk… | xargs`. [17:26:22] <Krinkle> If your browser is already open, it doesn't re-open. [17:26:31] <Krinkle> You don't close that tab and re-open your browser each time either [17:26:50] <grrrit-wm> (03PS1) 10Jforrester: Follow-up d9c3b904: Delete the no-longer-updated tests/index.html [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153827 [17:26:53] <James_F> Krinkle: ^^^^ [17:26:57] <edsanders> um [17:27:08] <edsanders> when I run that it launched firefox and chromium, then closed them [17:27:19] <Krinkle> Yes, that's the one-off one. [17:27:21] <edsanders> I didnt't see any helpful UI like QUnit [17:27:48] <Krinkle> you can do the continous one automatically via grunt watch, or manually grunt karma, So you'd run like 'grunt karma:bg:start' and then 'karma:bg:run' whenever. [17:28:52] <edsanders> we also modified QUnit to use JSDifflib for comparing large expected/outputs [17:29:15] <edsanders> without that fixing converter tests takes forever [17:30:09] <edsanders> at the moment I can't see any helpful web UI like I had with QUnit [17:30:24] <Krinkle> that was an upstream issue we worked around with an ugly hack. The upstream bug to use smaller context for the diff (both in the html reporter and cli reporter) and accepted last I checked. I thought they were fixed. [17:30:48] <edsanders> I can't get to the Karma UI to evaluate it [17:30:58] <edsanders> I just get 'Karma v0.12.17 - connected' in a green bar [17:31:03] <Krinkle> evaluate what? [17:31:27] <edsanders> Karma [17:31:36] <edsanders> where can I run tests in the browser [17:31:40] <edsanders> so I can debug [17:31:43] <wikibugs> 3VisualEditor / 3Editing Tools: Cite: unexpected behavior attempting multiple citations - 10https://bugzilla.wikimedia.org/69483 (10Chris McMahon) 3NEW p:3Unprio s:3normal a:3None Seen on beta labs, this is likely an enhancement: * On any page, invoke Cite inspector * Click Cite/Website, create the... [17:31:55] <Krinkle> the browsers are just runners, only used for breakpoints (those still work as expected). For the output, you're on the console. [17:32:12] <Krinkle> Like it always was for grunt-qunit as well. [17:32:28] <edsanders> I'm not really bothered about how grunt / CI runs the tests [17:32:34] <edsanders> I'm talking about how I debug stuff [17:32:43] <edsanders> I need the QUnit page [17:32:56] <edsanders> It's been removed, and I don't see any useful alternative [17:33:18] <edsanders> I want to use the chrome debugger while I'm running tests [17:33:24] <edsanders> filter tests [17:33:35] <edsanders> see pretty output of large diffs [17:33:47] <Krinkle> debugger/breakpoint statements work in the browser nodes. Running the tests is via the console once (or continuously by using :run which is like F5/refresh was in the browser), and the test results incl. stack and diff is on the console. [17:33:49] <Krinkle> What's missing? [17:34:10] <Krinkle> so chrome debugger pops up like you'd expect if you run tests in chrome. [17:35:45] <edsanders> A helpful UI [17:35:59] <edsanders> In QUnit, I can open a page, select ve.dm.Converter.tests [17:36:13] <edsanders> see a nice list of stuff that's passing/failing [17:36:16] <edsanders> see pretty diffs [17:36:30] <edsanders> bring up the debugger add breakpoints and press F5 [17:36:36] <edsanders> all without leaving the browser [17:37:18] <edsanders> The QUnit web UI had nothing to do with grunt/CI, so just leave it alone [17:39:31] <grrrit-wm> (03CR) 10Esanders: [C: 04-2] "Fix this page so it works, and don't delete it. QUnit UI is far more useful for human testing." [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153827 (owner: 10Jforrester) [17:39:44] <James_F> Whut? [17:39:48] <James_F> Krinkle: ^^^ [17:40:24] <edsanders> I'm sure Karma does amazing things on the command line, and lets us do automated browser tests etc [17:40:45] <edsanders> but just keep QUnit test.html so I can do stuff more easily in the browser [17:41:35] <Krinkle> yes. [17:41:50] <edsanders> .. I can re-run a specific test, hide passed tests, run without try-catch [17:41:54] <Krinkle> investigating rl regression affecting wikidata. [17:42:03] <Krinkle> we shoudl keep raw test html [17:42:12] <Krinkle> load qunit from node_modules though [17:42:28] <Krinkle> and avoid duplciating the test list in two places, so pass the same array to karma and buildlader [17:42:43] <edsanders> sure [17:43:51] <Krinkle> I personally add breakpoints directly via js files, and then they work fine in Karma (execution pauses, the tmp frame is exposed and you can do anything you would want). And the regular UI I don't mind much, I get the same info from the command line. test filtering I've never used, tests run fast enough in general. Especially if you use watch, since it starts running right after saving before [17:43:51] <Krinkle> you've switched etc. [17:44:20] <Krinkle> But I can see the use for it, I have missed it for other cases myself (not the thigns you describe, namely the disable try/catch one and the noglobals test) [18:10:27] <wikibugs> 3VisualEditor / 3ContentEditable: VisualEditor: [Regression wmf16]Opening link inspector/comment box in an empty line, opens them at the end of the previous line - 10https://bugzilla.wikimedia.org/69122#c4 (10James Forrester) 5NEW>3ASSI p:5Unprio>3High a:3Ed Sanders Yeah, selection is going very wo... [18:10:40] <begriffs> Is there example code somewhere of customizing the visual editor toolbar? [18:14:35] <MatmaRex> begriffs: https://www.mediawiki.org/wiki/VisualEditor_gadgets [18:14:46] <James_F> begriffs: Hey. https://en.wikipedia.org/wiki/User:Eran/refToolbarVe.js shows… yes, what MatmaRex said. [18:18:41] <wikibugs> 3VisualEditor / 3ContentEditable: VisualEditor: [Regression wmf16]Opening link inspector/comment box in an empty line, opens them at the end of the previous line - 10https://bugzilla.wikimedia.org/69122 (10James Forrester) [18:50:01] <ryasmeen> Hey RoanKattouw: What's this error message about when I open VE for any page -"Discontiguous selection is not supported. " [18:50:37] <ryasmeen> It does not look that harmful though! [18:50:47] <RoanKattouw> Yeah, we know about that [18:51:12] <RoanKattouw> It's because Rangy is old, and Chrome has changed its mind on what's OK to do to selections [18:51:19] <RoanKattouw> It doesn't seem to be causing any problems though [18:51:26] <RoanKattouw> I think there might be a bug about this somewhere? [18:51:32] <RoanKattouw> If not, feel free to file one [18:51:56] <ryasmeen> okay, I will see if there is any [18:53:02] <ryasmeen> Also RoanKattouw, when I switch to edit source mode I get Uncaught TypeError: Cannot read property 'addMessages' of undefined [18:54:01] <grrrit-wm> (03PS1) 10Esanders: Embed CSS images in dist [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 [18:56:37] <RoanKattouw> Ouch [18:56:39] <RoanKattouw> On beta labs? [18:56:47] <ryasmeen> yeah [18:57:09] <RoanKattouw> Hmm I have an idea why that might be [18:57:11] <grrrit-wm> (03CR) 10jenkins-bot: [V: 04-1] Embed CSS images in dist [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 (owner: 10Esanders) [18:57:33] <grrrit-wm> (03PS1) 10Catrope: Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 [18:57:42] <RoanKattouw> edsanders: Could you +2 that pull-through ----^^ ? [18:57:52] <edsanders> y [18:58:04] <RoanKattouw> I'm an idiot, I merged your removal of addMessages in VE-MW before pulling through the corresponding VE core commit [18:58:08] <James_F> :-) [18:58:12] <grrrit-wm> (03CR) 10Jforrester: [C: 032] Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 (owner: 10Catrope) [18:58:20] <James_F> Done. [18:58:21] <grrrit-wm> (03CR) 10Esanders: [C: 032] Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 (owner: 10Catrope) [19:02:37] <grrrit-wm> (03CR) 10Legoktm: Use Config instead of globals (031 comment) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:05:36] <grrrit-wm> (03CR) 10jenkins-bot: [V: 04-1] Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 (owner: 10Catrope) [19:06:10] <grrrit-wm> (03CR) 10Krinkle: "This doesn't actually use any sort of context but uses 3 levels of abstraction that can only ever return the same globals that the API def" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:06:26] <grrrit-wm> (03CR) 10Jforrester: Use Config instead of globals (031 comment) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:09:05] <grrrit-wm> (03CR) 10Legoktm: "@Krinkle: yes, that's the point, the API module shouldn't care about where the configuration options are stored. That will allow us in the" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:15:47] <RoanKattouw> Argh [19:15:51] * RoanKattouw stabs the target system repeatedly [19:16:04] <RoanKattouw> So we now have a global singleton ve.init.target [19:16:11] <RoanKattouw> So if you have multiple targets, things go crazy [19:16:29] <RoanKattouw> Unfortunately, ve.test.utils.createSurfaceFromDocument creates a target [19:16:40] <James_F> Helpful. [19:16:41] <RoanKattouw> An sa.Target, no less, which doesn't have an apiRequest function [19:16:51] <RoanKattouw> Which MWImageNode then crashes on [19:17:37] <grrrit-wm> (03CR) 10Legoktm: Use Config instead of globals (031 comment) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:18:07] <RoanKattouw> Why Ed's target change causes this failure to suddenly come up, I don't know [19:19:00] <RoanKattouw> Nor do I understand why it doesn't happen in debug mode [19:20:11] <RoanKattouw> Ooooh [19:20:13] <RoanKattouw> Well look here [19:20:25] <RoanKattouw> MW overrides ve.test.utils.createSurfaceFromDocument [19:20:30] <RoanKattouw> With a function that creates TWO targets [19:22:29] <Krenair> So for https://bugzilla.wikimedia.org/show_bug.cgi?id=49904 we add a new checkbox to templates, allowing substitution. The value is stored in the model, and eventually gets sent to parsoid when we diff/save [19:22:30] <RoanKattouw> Oh I see why this goes wrong now [19:22:59] <Krenair> Then parsoid just needs to pick it up and add 'subst:' to the result wikitext [19:24:17] <Krenair> Which... appears to be an addition of three lines to parsoid. But I remember the last time I tried to patch parsoid... [19:26:23] <grrrit-wm> (03CR) 10Krinkle: "@Legoktm: Sure, but that's mediawiki-core's concern, not individual extensions. This wasn't referencing globals (and if it does still, thi" [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:27:03] <legoktm> Krinkle: I'm confused. What do you mean by "This wasn't referencing globals"? [19:27:50] <Krinkle> legoktm: Your reply was making a case for switching from $wg confs to $config objects. That's all fine and dandy, but the code relevant in this commit (the code that changed) wasn't referencing globals, that logic is in mediawiki-core [19:28:25] <legoktm> right... [19:28:39] <Krinkle> This commit changed it from the default (leaving the responsibility with the API to construct a config object, be it globals or database, whatever) to hardcoded logic calling various different methods. [19:29:20] <legoktm> but the API never constructed a config object? [19:29:28] <Krinkle> It makes sense to allow passing a custom object, but maybe it makes sense to make it optional and have the API default to the default one? [19:30:25] <Krinkle> instead of adding the relatively long and maintenance-heavy code "ConfigFactory::getDefaultInstance()->makeConfig( 'visualeditor' );" for each api module in every extension. [19:33:41] <Krinkle> This is kinda ugly in core that by design it encourages creation of multiple GlobalVarConfig instances that all do the same thing and have the same namespace/prefix. [19:34:16] <Krinkle> Also the actual VE API code doesnt' use $config inside the api module yet does it. So it's constructing a config object that isn't used. Should we do that in the same commit? [19:34:27] <Krinkle> Or is there a stub instance we can use temp. to indicate it doesn't use it? [19:35:07] <grrrit-wm> (03PS2) 10Catrope: Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 [19:36:21] <legoktm> I think it's important that the API modules are not aware of what specific Config instance they're getting. Really they should never be ever aware of ConfigFactory. [19:36:48] <legoktm> Er, what do you mean that it's constructing a config object that's not used? [19:37:48] <grrrit-wm> (03PS1) 10Catrope: "Fix" hack in ve.test.utils to prevent immediate surface setup [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153875 [19:38:02] <grrrit-wm> (03PS3) 10Catrope: Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 [19:41:03] <grrrit-wm> (03CR) 10Catrope: [C: 032] Update token handling for MediaWiki API change [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153108 (owner: 10Anomie) [19:41:28] <grrrit-wm> (03CR) 10Catrope: [C: 032] Fix use of visualeditor-mweditmodesource-title instead of …-tool [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152913 (https://bugzilla.wikimedia.org/69203) (owner: 10Jforrester) [19:44:01] <grrrit-wm> (03CR) 10Jforrester: [C: 032] Update VE core submodule to master (8e56dd5) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153864 (owner: 10Catrope) [19:44:21] <grrrit-wm> (03PS2) 10Catrope: Embed CSS images in dist [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 (owner: 10Esanders) [19:44:32] <grrrit-wm> (03CR) 10Catrope: [C: 032] Embed CSS images in dist [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 (owner: 10Esanders) [19:44:37] <grrrit-wm> (03CR) 10Jforrester: [C: 031] "Fix" hack in ve.test.utils to prevent immediate surface setup [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153875 (owner: 10Catrope) [19:45:35] <grrrit-wm> (03Merged) 10jenkins-bot: Update token handling for MediaWiki API change [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153108 (owner: 10Anomie) [19:46:17] <grrrit-wm> (03Merged) 10jenkins-bot: Fix use of visualeditor-mweditmodesource-title instead of …-tool [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/152913 (https://bugzilla.wikimedia.org/69203) (owner: 10Jforrester) [19:46:41] <wikibugs> 3VisualEditor / 3MediaWiki integration: VE's beta help adds a question mark to 'Switch to source editing' - 10https://bugzilla.wikimedia.org/69203 (10James Forrester) 5PATC>3RESO/FIX [19:47:16] <grrrit-wm> (03CR) 10Jforrester: Embed CSS images in dist (031 comment) [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 (owner: 10Esanders) [19:48:25] <grrrit-wm> (03Merged) 10jenkins-bot: Embed CSS images in dist [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 (owner: 10Esanders) [19:55:57] <grrrit-wm> (03CR) 10Jforrester: Use Config instead of globals (031 comment) [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153762 (owner: 10Legoktm) [19:56:35] <legoktm> James_F: they're not identical, they create different API modules in the last line [20:02:18] <James_F> legoktm: Re-use of /$1/i [20:03:49] <James_F> legoktm: But… meh. I just loathe ugly code. :-( [20:07:01] <legoktm> this would be a lot prettier if I didn't have to use global functions [20:07:07] <legoktm> but stupid PHP segfaulting [20:23:07] <grrrit-wm> (03CR) 10Esanders: Embed CSS images in dist (031 comment) [VisualEditor/VisualEditor] - 10https://gerrit.wikimedia.org/r/153863 (owner: 10Esanders) [20:36:34] <mooeypoo> ha, I accidentally found a bug in my import code [20:36:42] <mooeypoo> anyone knows if a template parameter can ever be named 0 ? [20:36:55] <mooeypoo> {{{0}}} ? is that legal? or only {{{1}}} and {{{2}}} and up etc [20:37:11] <RoanKattouw> Ahm [20:37:25] <RoanKattouw> Well it won't work as a positional parameter, obviously [20:37:35] <RoanKattouw> But if you did {{foo|0=bar}}, I think that would probably work? [20:37:47] <mooeypoo> My code tests on !paramName which then returns false. So... I need to not do !paramName, I assume [20:37:55] <RoanKattouw> Yeah that's unsafe [20:37:59] * mooeypoo nods [20:38:12] <RoanKattouw> You can do !foo if you expect foo to be an object or an array (or, somewhat less commonly, an actual boolean) [20:38:19] <RoanKattouw> But if it can be a number or a string, don't do that [20:38:27] <mooeypoo> paramName === undefined would be it, then? or should I go with explicitly checking if it's a string, I wonder. [20:38:35] <mooeypoo> Yeah. [20:38:44] <RoanKattouw> Yeah checking undefined seems fine [20:39:00] <mooeypoo> which is better? checking for undefined, or checking typeof string ? [20:39:10] <RoanKattouw> I wouldn't check for string necessarily because who knows what might mangle the string "1" into the number 1 [20:39:27] <mooeypoo> Hm, I'm reading it all from the wikitext, but that's a good point. [20:39:29] * mooeypoo nods [20:39:31] <RoanKattouw> So instead I recommend checking for undefined, then if it's not undefined, force it to be a string [20:39:44] <mooeypoo> Yeah that sounds reasonable [20:42:17] <mooeypoo> hm, I should probably go with === undefined on these cases too : if ( !$input.data( 'tdg_uneditable') ) { [20:42:49] <mooeypoo> (in this particular case it's a boolean, so ! is fine, but I just noticed I read a couple of strings from those. ha.) [20:43:16] <mooeypoo> oh btw, I got an email to my school account about a JS lecture from Netflix developers [20:43:24] <mooeypoo> if anyone's interested. It's a webcast online. [20:43:26] <wikibugs> 3VisualEditor / 3Mobile: VisualEditor Mobile: For long drop down menus the options are not at all accessible when the screen is set to landscape in iOS device - 10https://bugzilla.wikimedia.org/67340#c2 (10Roan Kattouw) Hmm, this sounds like a bug related to ClippableElement. The menu should automatically cl... [21:05:37] <mooeypoo> anyone available to help me with regex ? [21:05:40] <RoanKattouw> Sure [21:06:19] <mooeypoo> okay, so I am looking at a page that already has <templatedata> in it; I have the content stored in a variable [21:06:22] <mooeypoo> as a string [21:06:40] <mooeypoo> originalTemplateDataWikitext.match( /(<templatedata>)([\s\S]*?)(<\/templatedata>)/i ); [21:06:43] <mooeypoo> ^^ this used to work [21:06:52] <mooeypoo> it doesn't now.. I don't understand why. Am I missing something here regex-wise ? [21:07:04] <mooeypoo> the originaltemplateDataWikitext has <templatedata> in it [21:07:26] <mooeypoo> I just printed it into the console. In fact, it right now has two of those, because ht efirst attempt didn't find the tags so it reinserted it as if it didn't exist [21:07:40] <grrrit-wm> (03PS1) 10Alex Monk: Provide a checkbox on template page of transclusion dialog to substitute when saving [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153934 (https://bugzilla.wikimedia.org/49904) [21:08:00] <mooeypoo> parts = originalTemplateDataWikitext.match( /(<templatedata>)([\s\S]*?)(<\/templatedata>)/i ); <-- parts is null [21:08:03] <mooeypoo> :\ [21:08:55] <RoanKattouw> That looks correct to me [21:09:10] <mooeypoo> :\ wtf. [21:09:15] <RoanKattouw> I mean you don't really need the parens around <templatedata> and <\/templatedata> but other than that it looks like what I would write [21:09:16] <mooeypoo> It returns null. [21:09:27] <mooeypoo> oh [21:09:28] <RoanKattouw> What does originalTemplateDataWikitext.indexOf( '<templatedata>' ) return? [21:09:29] <mooeypoo> crap, I'm an idiot [21:09:50] <mooeypoo> no no... ignore me... I... okay, seriously. I blame the jetlag even though this was done way before. [21:09:58] <mooeypoo> I accidentally inserted <templatedata>...<templatedata> [21:10:01] <RoanKattouw> lol [21:10:01] <mooeypoo> without closing the tag [21:10:48] <mooeypoo> That also explains why I kept getting "invalid JSON" notice whenever I tried to save. [21:13:24] <mooeypoo> hm, I found another semi-bug. "Required" and "Suggested" are mutually exclusive, right? So... they probably shouldn't both be checkboxes. [21:13:32] <mooeypoo> options or a select box, I assume, would make more sense. [21:16:39] <grrrit-wm> (03CR) 10jenkins-bot: [V: 04-1] Provide a checkbox on template page of transclusion dialog to substitute when saving [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153934 (https://bugzilla.wikimedia.org/49904) (owner: 10Alex Monk) [21:22:58] <wikibugs> 3VisualEditor: VisualEditor: VisualEditor inserts unnecessary <span>s into articles - 10https://bugzilla.wikimedia.org/69494 (10MZMcBride) 3NEW p:3Unprio s:3normal a:3None VisualEditor is inappropriately inserting unnecessary <span>s into articles. https://en.wikipedia.org/w/index.php?title=Miss_Ameri... [21:23:27] <wikibugs> 3VisualEditor: VisualEditor: VisualEditor inserts unnecessary <span>s into articles - 10https://bugzilla.wikimedia.org/69494#c1 (10MZMcBride) https://en.wikipedia.org/w/index.php?title=Robin_Williams&curid=53242&diff=621104900&oldid=621103379 [21:25:56] <wikibugs> 3VisualEditor / 3Mobile: VisualEditor Mobile: [Regression pre-wmf15] Pressing backspace to delete the link target inside link inspector closes the inspector - 10https://bugzilla.wikimedia.org/68195#c4 (10Maryana Pinchuk) I just tested this out, and I'm not seeing any issues with backspacing text in link ins... [21:46:59] <grrrit-wm> (03PS2) 10Alex Monk: Provide a checkbox on template page of transclusion dialog to substitute when saving [extensions/VisualEditor] - 10https://gerrit.wikimedia.org/r/153934 (https://bugzilla.wikimedia.org/49904) [22:02:41] <wikibugs> 3VisualEditor / 3Mobile: VisualEditor Mobile: [Regression pre-wmf15] Pressing backspace to delete the link target inside link inspector closes the inspector - 10https://bugzilla.wikimedia.org/68195#c5 (10Rummana Yasmeen) I am still getting it following the exact same steps on Betalabs ,test2 and en.wiki. In... [22:04:41] <wikibugs> 3VisualEditor / 3Mobile: VisualEditor Mobile: [Regression pre-wmf15] Pressing backspace to delete the link target inside link inspector closes the inspector - 10https://bugzilla.wikimedia.org/68195#c6 (10Roan Kattouw) Yeah, I sat down with Maryana and showed her how to reproduce it. [22:11:17] <mooeypoo> hmmm. Krinkle I have a question for you regarding paramOrder if you're available. [22:11:40] <mooeypoo> I've added the option to read from an existing paramOrder property if it exists in templatedata, and I've made the table sortable [22:12:19] <mooeypoo> I'm now faced with a dilemma about saving. So... do I *always* save paramOrder ? even if there wasn't any? Should I only save if one existed before? Or maybe I should add it in only if the user actively changed the order of the parameters (drag/drop) ? [22:12:30] <mooeypoo> And what do I do if the initial paramOrder doesn't include all parameters? [22:12:32] <Krinkle> mooeypoo: ok [22:12:48] <mooeypoo> and finally, the spec says that if paramOrder has a parameter that doesn't exist in templateData it is *added* [22:12:52] <mooeypoo> so... yes. Help :) [22:14:13] <wikibugs> 3VisualEditor / 3Editing Tools: VsualEditor: Please add an easy way to get from a citation template to the basic (manual) reference dialog - 10https://bugzilla.wikimedia.org/69498 (10WhatamIdoing) 3NEW p:3Unprio s:3enhanc a:3None Goal: Add something to an existing citation that the template shou... [22:16:06] <mooeypoo> Krinkle, I can reorganize the questions to a list if I was too confusing [22:17:04] <Krinkle> mooeypoo: It's fine, i get the general issue. [22:17:14] <Krinkle> So 1) why should the UI have a sort feature? [22:17:46] <Krinkle> (treat me like an unknowing guest defending the feature; I myself can think of many reason, but want you to formulate it) [22:18:22] <mooeypoo> 1) I think it makes sense if we have "paramOrder" to let the users sort the parameters. We could make this a sort of freestyle list, but it seems to defy the point. It seems to me that this is what Sortable stuff are meant for. [22:18:56] <wikibugs> 3VisualEditor: VisualEditor: Unnecessary <span>s inserted into articles - 10https://bugzilla.wikimedia.org/69494 (10Krinkle) [22:19:17] <mooeypoo> On top of that, this is a good way to "guard" the feature against corruption. For instance, users freestyling nonexisting (or typo'ed) parameters into the paramOrder [22:19:36] <mooeypoo> or users forgetting a parameter (which we need to figure out how to deal with in the case of this done in the JSON string itself anyways, but should be discouraged) [22:19:52] <mooeypoo> Does this make sense? [22:20:09] <Krinkle> Maybe I'm missing the feature's actual behaviour. [22:20:30] <mooeypoo> You mean its purpose in general? [22:20:42] <Krinkle> You're saying the data editor dialog, which displays the form fields in table rows, has the ability to sort the rows alphabetically by param name, yes? [22:20:57] <mooeypoo> not alphabetically, no [22:21:13] <Krinkle> so it's not a table sorter. [22:21:14] <Krinkle> OK. [22:21:22] <mooeypoo> It sorts them according to the order the user chooses, which can be any order at all. That's the order that VE will later show them to the user in the template editor. [22:21:24] <Krinkle> Because that'd be a bit of an odd feature in the editor. [22:21:30] <mooeypoo> no no, "sortable" in jQueryUI [22:21:43] <mooeypoo> I made the rows sortable, as in you can drag/drop them in any order [22:21:57] <Krinkle> Right [22:22:00] <mooeypoo> I didn't mean the table itself sortable, sorry :) [22:22:02] <Krinkle> re-orderable or somethinh like that. [22:22:06] <Krinkle> cool [22:22:07] <mooeypoo> Yeah [22:22:13] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Searching for a page name that starts with http://whatever... is kind of silly - 10https://bugzilla.wikimedia.org/69500 (10WhatamIdoing) 3NEW p:3Unprio s:3enhanc a:3None Steps to reproduce: 1. Open VisualEditor and select a word. 2. Press Command-K t... [22:22:21] <Krinkle> so the initial rendering uses paramOrder with fallback to object key iteration order. [22:22:33] <mooeypoo> Yes, that's what it does now *BUT* [22:22:41] <wikibugs> 3VisualEditor: VisualEditor: Unnecessary <span>s inserted into articles - 10https://bugzilla.wikimedia.org/69494#c2 (10Roan Kattouw) Wow that's weird. I wonder if this is related to copy/paste in any way? [22:22:51] <mooeypoo> here's the problem: when I read the json string and transform it into an object, the order of the parameters seems to be lost [22:22:53] <mooeypoo> it's very annoying. [22:23:43] <RoanKattouw> Yeah that's why there's a paramOrder array [22:23:47] <mooeypoo> I tried switching the order in the json string and my object still had parameters in the same order. Not sure if I was missing something. But in any case, if the parameters aren't sorted with the paramOrder attributes, does it matter? [22:23:55] <RoanKattouw> Because not all browsers preserve order in JSON conversion [22:24:01] <mooeypoo> right, I just can't really "fall back" to the JSON order [22:24:10] <Krinkle> mooeypoo: Objects have no key order, this is part of the javascript language by design. [22:24:11] <mooeypoo> I'm hoping it will, but it doesn't always. [22:24:26] <mooeypoo> Right. So the option right now is paramOrder or no order. [22:24:27] <Krinkle> Whatever order is displayed or iterated is to be considered arbitrary. [22:24:35] <helderwiki> I don't know if people here are subscribed to Wikidata-l, but here is a thread which may be of interest: [22:24:35] <helderwiki> http://lists.wikimedia.org/pipermail/wikidata-l/2014-August/004270.html [22:24:37] * mooeypoo nods [22:24:39] <Krinkle> The spec requires paramOrder to be complete. [22:24:41] <helderwiki> [Wikidata-l] integration of VisualEditor and Wikidata [22:24:49] <Krinkle> the API will always give a complete set. [22:24:49] <mooeypoo> Krinkle, complete as in all params must exist in there? [22:24:53] <Krinkle> Yes [22:24:55] * mooeypoo nods [22:24:58] <Krinkle> https://github.com/wikimedia/mediawiki-extensions-TemplateData/blob/master/TemplateDataBlob.php#L323-L358 [22:25:06] <mooeypoo> what happens if you have a param in there that doesn't exist in the templatedata params? [22:25:20] <mooeypoo> oh, I looked here: https://www.mediawiki.org/wiki/Extension:TemplateData [22:25:24] <Krinkle> The only case in which it can be incomplete is if the user used wikitext to modify it and before saving (and thus validation) activated the editor. [22:25:48] <mooeypoo> okay, so that solves one problem: I always have (on save) the *entire* parameter list in there. [22:25:52] <Krinkle> https://github.com/wikimedia/mediawiki-extensions-TemplateData/blob/master/spec.templatedata.txt#L17-L18 [22:26:01] <Krinkle> It is however optional [22:26:05] <Krinkle> but if present, contains all keys [22:26:10] <Krinkle> and nothing else. [22:26:21] <mooeypoo> The question now is when do I generate it... if it existed before, that's fine. if it didn't, do I generate automatically if the user reordered, or.... should I add a checkbox "use param order" ..? [22:26:28] * mooeypoo nods [22:27:19] <Krinkle> Yeah, if there is an order specified, you use that and anything they add or re-order is saved back into paramOrder. [22:27:48] <mooeypoo> Okay, correct me if I'm wrong, Krinkle, but it seems from the code also that if the paramOrder has some key that doesn't exist in the actual parameters, we are ignoring it. Yes ? Because the docs in the Extension:TemplateData page seem to say otherwise (but I was slightly confused by them) [22:27:53] <Krinkle> If no order is specified, the fallback is for-in order which is arbitrary and depends on browser and Math.random(). So ideally don't save unless the user acknowledged the order by re-ordering something. [22:28:10] <Krinkle> mooeypoo: I don't know what you mean by 'ignoring'. [22:28:26] <Krinkle> paramOrder must contain each parameter key, and nothing else. [22:28:33] <mooeypoo> say I have paramOrder = [ 'foo', 'bar', 'baz' ] and params = { foo: {}, baz: {} } [22:28:38] <mooeypoo> what do I do with "bar" ? [22:28:44] <Krinkle> if you sort Object.keys(params) and paramOrder, they will be equal, always. [22:28:52] <Krinkle> no additional keys, no missing keys, no duplicate keys. [22:28:55] <mooeypoo> Krinkle, yes, if everything was machine-made [22:29:06] <mooeypoo> I'm talking about fallback since users can edit this [22:29:07] <Krinkle> no, *-made. the server validates it. [22:29:15] <Krinkle> If it isn't specified as such, the data is rejected. [22:29:20] <mooeypoo> oh, okay [22:29:34] <mooeypoo> so I can trust that everything is good, and not validate [22:29:39] <Krinkle> Yep [22:29:42] <Krinkle> Well, ish. [22:29:44] <mooeypoo> I was worried about user-inputted stuff [22:29:54] <mooeypoo> input? however you say this in past tense. [22:29:58] <Krinkle> The problem is that the editor reads wikitext from the textarea [22:30:04] <Krinkle> which is arbitrary [22:30:21] <mooeypoo> Yep. Exactly why I am double-checking [22:30:43] <Krinkle> I'm not sure. [22:30:46] <mooeypoo> right now I am *adding* the parameter. So, in the example above, the editor will show 'foo', 'bar', 'baz' even though "bar" is not in the json string originally. [22:30:51] <Krinkle> You don't currently have a surface for outputting errors. [22:31:02] <mooeypoo> But I can alternatively ignore it, and then it will be taken out on save. [22:31:19] <Krinkle> If you decide treat anything at all as potentially not validated by the server, you'd have to go all the way and validate everything save would. [22:31:37] <mooeypoo> I have a place for errors above the table. I can notify the user that a parameter was ignored, perhaps. [22:31:42] <mooeypoo> Krinkle, I think I kinda do already [22:31:49] <Krinkle> Even on-load? [22:31:49] <mooeypoo> I am using very defensive programming in there [22:31:58] <mooeypoo> i was worried about bad user input [22:32:43] <mooeypoo> What do you mean on-load? I can either display a message in the modal itself, or below the "Edit template documentation" button [22:32:54] <Krinkle> I'm not sure how you'd do that though. The editor has to initialise with something. Whereas the validation step can just reject the data and prompt the user to fix it. [22:33:21] <Krinkle> I mean, if the user messes with the wikitext and without saving activates the editor and we find out the data is invalid. [22:33:28] <mooeypoo> Well, I don't need to reject. I can alert the user. So, either I load the dialog *without* that redundant (or bad) info and alert the user that a piece was ignored [22:33:50] <mooeypoo> or I can load it with the piece as if the error was ommitting it from the json string and mark it with some red background, showing the user it should either be filled up or deleted [22:34:33] <mooeypoo> Krinkle, well, I do a lot of validation, but it's mostly to make sure the dialog itself reads proper data -- I ignore anything that's "garbage" for the editor. [22:34:36] <Krinkle> So you intend to match all of this in js? https://github.com/wikimedia/mediawiki-extensions-TemplateData/blob/master/TemplateDataBlob.php#L74-L418 [22:34:41] <mooeypoo> so it, in turn, is supposed to preserve whatever it can't read. [22:34:48] <Krinkle> Right [22:34:50] <mooeypoo> Probably not [22:35:11] <mooeypoo> But I can match the bits we think are most crucial to alert the user? or maybe the bits that are less critical-failures [22:36:03] <mooeypoo> like the order bit. I wouldn't declare the entire templatedata corrupted just if a user has a nonexisting key in there, for the sake of the editor. I *could* alert the user it's a problem, erase it in advance for the user, or add it for the user and let them know they should deal with it or delete it [22:36:05] <mooeypoo> no? [22:36:33] <Krinkle> If the data is invalid the user should (and probably wants to) correct it in wikitext. It would also be the only way to do so. [22:37:05] <mooeypoo> btw, that's a question I got in hewiki -- about whether the json preserves "invalid" parameters. Some users in there might need to add things to the templatedata if that's possible, but I asked them to add this as a discussion in the TemplateData talk page for you to examine. [22:37:20] <mooeypoo> Krinkle, what if we're editing old templatedata ? [22:37:32] <mooeypoo> IIRC, the older versions didn't do as much validation before save, no? [22:37:37] <Krinkle> old templatedata can't ever be invalid. [22:37:45] <mooeypoo> okay [22:38:20] <Krinkle> because it's already in the database, and the database can't contain invalid data. [22:38:42] <mooeypoo> hm. Okay, so it sounds like if I ever see a parameter key in paramOrder that doesn't exist in the params ={} object, I should ignore it, because then when the user finishes their edits the param will vanish from the paramorder anyways. [22:39:55] <mooeypoo> I don't want to present a "JSON is invalid" message without loading the editor unless I have absolutely no choice, those messages are vague and very annoying. It's not easy to immediately recognize what the problem is [22:40:08] <mooeypoo> that's the point I'm trying to make -- if the user made a mistake, I think it's better for the GUI if we notify them [22:40:12] <mooeypoo> that makes sense? [22:40:21] <Krinkle> I'd validate the data (either manaully or via the API) and display any error above the editor for them to fix in wikitext (perhaps with an option to ignore their unsaved changed and fetch the latest revision wikitext instead and init editor with that) [22:40:46] <mooeypoo> like, load the editor without the mistake and say "Parameter was ignored in paramOrder because it doesn't exist" or something. Let the user continue doing what they want to do. [22:40:48] <mooeypoo> mh [22:40:58] <wikibugs> 3VisualEditor: VisualEditor's suggested edit summary is wrong if you use the local gadget to edit section 0 (zero) - 10https://bugzilla.wikimedia.org/69501 (10WhatamIdoing) 3NEW p:3Unprio s:3normal a:3None This is related to bug 50872. If you click the edit link on a section, then that section's headi... [22:41:32] <Krinkle> mooeypoo: Unless there's an actual syntax error (in which case neither the API nor the javascript editor can display anything useful) there's never a generic "Invalid JSON" error. [22:41:50] <Krinkle> The API has detailed error messages about each property, type and value. [22:42:00] <Krinkle> produced from https://github.com/wikimedia/mediawiki-extensions-TemplateData/blob/master/TemplateDataBlob.php#L74-L418 [22:42:04] <mooeypoo> Krinkle, I just got those when my <templatedata> tags were invalid, btw. JSON was fine. I was going to check if I can fix that in the PHP side [22:42:18] <mooeypoo> it took me forever to realize it was my silly mistake of not closing the tag correctly. [22:42:52] <Krinkle> Dont' spend too much time on wikitext use cases though, the main use case for the editor is people not using wikitext or json. [22:42:56] <mooeypoo> but my point is that I think that if the editor is already there to help the user "deal" with templatedata, we should take the approach of helping remove errors, especially ones we can tell for *sure* are errors. [22:43:04] <mooeypoo> Exactly [22:43:33] * mooeypoo is thinking about "smartsy" users who think they can add stuff to the json and then edit [22:43:39] <mooeypoo> because I encountered a few of those. [22:43:54] <mooeypoo> prehaps I shouldn't think of them when I think about dealing with errors in the dialog, though :p [22:57:43] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Inspectors close immediately in IE - 10https://bugzilla.wikimedia.org/69503 (10Roan Kattouw) 3NEW p:3Unprio s:3normal a:3None In Internet Explorer, if you open a link or comment inspector, it closes immediately after opening. It doesn't matter if you use... [23:04:43] <Krinkle> mooeypoo: Hm.. not sure if I gave you a useful answer. [23:05:05] <Krinkle> I'll be away for a week starting tomorrow and about to close up for today, so now's the time :) [23:08:23] <mooeypoo> Krinkle, I think I'm being overly defensive. [23:08:27] <mooeypoo> in my code, that is. [23:09:30] <mooeypoo> So, here's how I think I will solve the issue: The editor will read the paramOrder and assume it is correct. If it encounters an issue (like some key that doesn't exist in the parameters) it will ignore the key as if it doesn't exist. That means that the user will continue editing normally, and on save, since I ignored this parameter, it will no longer exist in the new output for the paramOrder [23:09:37] <mooeypoo> so, essentially, I "fix" the user's mistake [23:09:39] <mooeypoo> this makes sense? [23:09:59] <mooeypoo> I think that's preferable to putting up an error that prevents the user from editing. [23:10:13] <wikibugs> 3VisualEditor: VisualEditor: Categories should be displayed at the end of the page - 10https://bugzilla.wikimedia.org/69506 (10WhatamIdoing) 3NEW p:3Unprio s:3enhanc a:3None VisualEditor should display categories in the page's footer, just like they will display when the page is saved. Clicking on th... [23:11:57] <Krinkle> mooeypoo: yeah [23:14:00] <wikibugs> 3VisualEditor: VisualEditor: The Categories dialog should indicate which cats are red links - 10https://bugzilla.wikimedia.org/69507 (10WhatamIdoing) 3NEW p:3Unprio s:3enhanc a:3None Of a non-existent category has been added on a page, there is no indication in the Categories dialog that it is a red l... [23:24:45] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Information fields in template dialogs are sometimes very large - 10https://bugzilla.wikimedia.org/69508 (10WhatamIdoing) 3NEW p:3Unprio s:3minor a:3None See https://en.wikipedia.org/wiki/File:Cite_dialog_with_large_boxes_for_fields.png This is intermit... [23:27:13] <wikibugs> 3VisualEditor: VisualEditor: Page settings icon is confusing - 10https://bugzilla.wikimedia.org/69509 (10WhatamIdoing) 3NEW p:3Unprio s:3minor a:3None From John Broughton: It would be easier to remember what this menu does, and to tell others about it (say, in the User Guide) if the icon for it were... [23:32:26] <grrrit-wm> (03PS21) 10Mooeypoo: Refactor TemplateData Editor [extensions/TemplateData] - 10https://gerrit.wikimedia.org/r/134928 (https://bugzilla.wikimedia.org/67621) [23:32:29] <mooeypoo> woot [23:32:32] <mooeypoo> Krinkle, ^^^ [23:32:46] <mooeypoo> Uber templatedata GUI. [23:33:13] <grrrit-wm> (03CR) 10jenkins-bot: [V: 04-1] Refactor TemplateData Editor [extensions/TemplateData] - 10https://gerrit.wikimedia.org/r/134928 (https://bugzilla.wikimedia.org/67621) (owner: 10Mooeypoo) [23:33:16] <Krinkle> I'll glance it over tomorrow. I won't be back until next week though. [23:33:17] <mooeypoo> ... [23:33:17] <Krinkle> o/ [23:33:23] <mooeypoo> have fun! [23:35:26] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Escape key (and on Macs additionally ⌘-. ) inside the main editor should cancel VE mode and return to action=view - 10https://bugzilla.wikimedia.org/50868#c11 (10WhatamIdoing) I'm a bit worried about this. What if I'm in a template dialog and accidentally press... [23:36:24] <grrrit-wm> (03PS1) 10Catrope: Fix CSS transplantation in IE [oojs/ui] - 10https://gerrit.wikimedia.org/r/153980 [23:41:11] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Escape key (and on Macs additionally ⌘-. ) inside the main editor should cancel VE mode and return to action=view - 10https://bugzilla.wikimedia.org/50868#c12 (10Roan Kattouw) (In reply to WhatamIdoing from comment #11) > I'm a bit worried about this. What if I'... [23:49:59] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Links added to captions for new images not quite working - 10https://bugzilla.wikimedia.org/69510 (10WhatamIdoing) 3NEW p:3Unprio s:3minor a:3None Created attachment 16186 --> https://bugzilla.wikimedia.org/attachment.cgi?id=16186&action=edit What happ... [23:52:44] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Link tool is too small when adding captions to new images - 10https://bugzilla.wikimedia.org/69511 (10WhatamIdoing) 3NEW p:3Unprio s:3normal a:3None Created attachment 16187 --> https://bugzilla.wikimedia.org/attachment.cgi?id=16187&action=edit "Before... [23:53:26] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Link tool is too small when adding captions to new images - 10https://bugzilla.wikimedia.org/69511#c1 (10WhatamIdoing) Created attachment 16188 --> https://bugzilla.wikimedia.org/attachment.cgi?id=16188&action=edit "After": This is what you get when you click... [23:57:28] <wikibugs> 3VisualEditor / 3Editing Tools: VisualEditor: Too much tabbing in the Template dialog - 10https://bugzilla.wikimedia.org/69512 (10WhatamIdoing) 3NEW p:3Unprio s:3minor a:3None From John Broughton: "This is what tabbing through Cite templates (in the mini-editors) looks like: type, tab, tab, tab, ty...