Commit graph

50 commits

Author SHA1 Message Date
David Lynch f75b144129 Block duplicate parameter names when editing existing parameters
Previous behavior was to silently append a number to the name, which was hard
to notice. New parameters with duplicate names were already blocked.

Also, fix the disabling of the done button when there are errors.

Bug: T166520
Change-Id: I1d0c51a2aa8b8158874c98ac48fe257baeb1aee1
2018-02-07 11:09:47 -06:00
jenkins-bot e7b44663db Merge "Replace "getSelectedItem" with "findSelectedItem" for consistency" 2018-01-10 20:12:58 +00:00
zoranzoki21 6e33405482 Replace "getSelectedItem" with "findSelectedItem" for consistency
Bug: T184040
Change-Id: I469d0e0b9982ea5f5de35b514c76e817b1d8e9b5
2018-01-10 11:52:45 +00:00
Prateek Saxena 1e2c39bc0b Use findItemFromData instead getItemFromData
Depends-on: Ia2110f71d1642f61451cb8acc7e8a930d0feb31f
Bug: T76630
Change-Id: If93d7d85e05c57c65728a7b9dbc7f1c93c9953d8
2017-12-28 11:46:01 +05:30
James D. Forrester 6a3a85b67e Replace constructive with progressive UI flag
Change-Id: Ia406001eb8bd30857f825b34971a7d7d7393bb01
2017-09-26 15:38:02 -04:00
Prateek Saxena 5f40f91b01 Replace TextInputWidget (multiline) with MultilineTextInputWidget
Bug: T170275
Change-Id: I6010dd314e011c79330464c0e438ccf2f037a9bf
2017-07-17 11:24:26 +05:30
jenkins-bot a31aaedb88 Merge "Extend 'format' spec to include custom format strings." 2016-12-13 21:52:45 +00:00
Ed Sanders 6565ee4cf5 build: Replace jscs/jshint with eslint
Change-Id: Iff79501de8d80a860eebb4a6e31dc8fca3285505
2016-12-02 22:05:13 +00:00
C. Scott Ananian 5812413f11 Extend 'format' spec to include custom format strings.
Thanks to Thiemo Mättig for the suggestion and specification at
Wikimania 2016 in Esino Lario.

This is an extended version of Thiemo's original specification.  This
version also allows specification of "own line" properties for
templates; that is, whether the template should be preceded/followed
by a newline, as requested by James Forrester.

Bug: T138492
Bug: T135667
Change-Id: Idc6b2680330e6bf5caec2bf6fc86a705d25bc649
2016-09-01 14:14:47 -07:00
David Lynch 1564abd48d Dialog must listen for changes to the param names
Otherwise the second keystroke made while changing parameter names will cause
an error. I think this code previously assumed the change only happened once,
rather than on-keystroke.

Bug: T142889
Change-Id: I0e9c096a053667c51bbce74ee3ce1bd573ae7d49
2016-08-12 17:31:04 -07:00
Alex Monk 84b1ddf44c Localise names of types in HTML rendering
Reuses some messages, renaming them in the process.
Changes undefined on the client to unknown.

Bug: T61745
Change-Id: I2cf5c25acbe1c854c33b2eb3f23dc74393a456d4
2016-04-06 19:00:58 +00:00
Bartosz Dziewoński 8e55adab59 [BREAKING CHANGE] Change default format to null instead of 'inline'
Don't enforce 'inline' as the default format if none is specified.
Instead preserve the unspecified value as 'null'. This allows
third-party tools to provide a better default experience when changing
existing content (e.g. by using smart detection to follow the format
already used).

Bug: T128337
Change-Id: I911c7999e3731c0125fc058118f8d7287d8f88f4
2016-03-01 22:53:27 +00:00
Ed Sanders 89f8b35018 Avoid calling repopulateParamSelectWidget multiple times on setup
Change-Id: I05ce3d8ff1109980248a0c2389298591f9b54553
2016-02-24 17:34:18 +00:00
Ed Sanders 4810a7552e Keep JSON data as an object (not a string) until the last possible point
Conversion to wikitext string can all happen in one place, and tests
are cleaner.

Change-Id: I42adc454dad0dcbb33d9395f8ced0b07a6535fed
2016-02-23 01:10:39 +00:00
Ed Sanders 5c7f50de62 Show param label in list if available
It looks like this is how the code was originally intended,
but 'name' and 'key' are the same thing.

Move the key to the 'alias' list where CSS already exists to
colour it differently.

Change-Id: Ieade122633cec14203f7959121e9cd7250bb9f7a
2016-02-21 02:43:54 +00:00
Ed Sanders beaea898c2 Make main template param select widget drag/drop re-orderable
Not having two lists of all the parameters seems like a good idea.

Depends-On: I30d1f7f56230d73eb47ccbf9881c0b952b15bd89
Change-Id: I5b2ba39fb7b98fc50816f63bc4fbfc9fe25e02a5
2016-02-21 02:43:48 +00:00
Bartosz Dziewoński d9e70f4285 Use MenuOptionWidget rather than OptionWidget for MenuSelectWidget items
The current way surprisingly mostly works, but you're supposed to use
the matching class. This fixes some styling inconsistencies.

Change-Id: I3f8ce19b1f96cc051b7ac987fa211d1b5ee9cc71
2016-02-19 18:55:16 +00:00
jenkins-bot 56e191aacb Merge "Fix linting paths and resulting errors" 2016-02-19 18:29:01 +00:00
Ed Sanders 384c9af747 Update language search/result widget
Change-Id: I646d89aa1dddbd31577810f0a8a1d8ddbabe3baa
2016-02-19 10:26:17 -08:00
Ed Sanders ce3ce51558 Fix linting paths and resulting errors
Change-Id: Ib415d306124df53be085e358e7b868aa1ced9fd1
2016-02-19 17:48:51 +00:00
Ed Sanders 2ea0e0e475 Fix case of class names
Change-Id: I74214eac20a52a3fd1f2e520522fbb5527421a2d
2016-02-19 13:16:29 +00:00
Alex Monk d723905034 Don't show warning about already-known parameters that weren't imported
Bug: T124223
Change-Id: Id102799b925ebaec6a1d819f1d2294982c24e407
2016-01-20 22:29:45 +00:00
Alex Monk cc6487498b Prompt user to confirm closing modified TemplateData edit dialog
Depends on Ieaf19fe4485b679e0ee21d16f8f2e0693808f386 to take effect with the
escape key. Otherwise only handles the visible 'Cancel' button.

Bug: T106382
Change-Id: Ibc55727fd6a5becfe10b4e74cae5e573d110575d
2016-01-12 17:43:50 +00:00
jenkins-bot 5d30ef8ecf Merge "Use checkbox widgets instead of toggle widgets" 2015-11-13 22:06:32 +00:00
Ed Sanders 12e11515b1 Use checkbox widgets instead of toggle widgets
Change-Id: I3a11d07f4dae71ea5ff567046257e50890f5287c
2015-11-13 12:05:38 -08:00
Ed Sanders dbf9a85aa8 Add block/inline icons
Change-Id: I7d07af249318e4f39d8e4a29d1fa3ccdd216e63b
2015-11-13 19:36:26 +00:00
eranroz 01821eae64 Introduce new 'format' template property
Adding format data, which defines the preferred source format
to use when using templates.

Possible formats:
* Inline - all parameters in a single line
* Block - each parameter is in its own line

Bug: T64147
Change-Id: Id856c4a38890526060d0619432f06174d66f7792
2015-11-11 23:52:17 +00:00
James D. Forrester 98fffb3d78 build: Upgrade various devDependencies to latest and make pass
* grunt-contrib-csslint: 0.4.0 -> 0.5.0
* grunt-banana-checker: 0.2.2 -> 0.4.0
* grunt-jscs: 1.8.0 -> 2.1.0

Change-Id: I3070938723648ef4e320d6abf88112b9c5a2b802
2015-10-06 17:24:40 -07:00
Ed Sanders 9f96761044 Dialog: Use a 'done' button on edit param page instead of 'back'
'Back' suggests that changes in the form won't be saved.

Change-Id: I0df0887caa6317393a3a891dd292aa4dc54cc32b
2015-09-14 12:25:22 +01:00
Ed Sanders fffb070355 Use ActionFieldLayout for 'Add parameter'
Change-Id: I0d69b689cabfa9bd3a503b39a08ec98028a7eca8
2015-09-13 19:50:58 +01:00
Ed Sanders 49165cc00a Fix language widget
Change-Id: I2fc6984d20863cbe54153fbd83530cbaca585cca
2015-09-13 19:50:57 +01:00
Ed Sanders 10775df785 Remove $ = this.$ from OOJSUI code
This feature was removed a while ago.

Change-Id: I2ae0147f9e605e0f86ea4d26e8c1eaba43db29e2
2015-09-13 16:51:19 +01:00
James D. Forrester ac2c2f268e build: Switch from grunt-jscs-checker to grunt-jscs
Use the 'wikimedia' preset, and make pass.

Change-Id: I1923b391bf79cc0992eb02ebe64c969e08354b6f
2015-06-05 18:21:18 -07:00
Purodha 4c8673bbdb TemplateData: add PLURAL to message Templatedata-modal-notice-import-numparams
See
https://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Templatedata-modal-errormsg-import-paramsalreadyexist/en

Change-Id: Ife5e9d0afd9320271c8921162487f8c0338f24cd
2015-03-26 21:39:29 +00:00
Moriel Schottlender 3820295f23 Reorganize api calls and add sourceHandler and error message
Add a sourceHandler that deals with all source-related actions
like fetching template source and validating the existing
TemplateData string.

Also add a MessageDialog warning the user in case the TemplateData
is invalid. In this case, the user will be given the option either
to correct the JSON by hand or to start the editor to replace the
existing TemplateData with a new one.

Bug: T91730
Bug: T91325
Change-Id: I4e6d04f02565a02d8dcf5c70a575ab6433caa27f
2015-03-18 18:21:02 +00:00
Moriel Schottlender 4141bed38b Prevent a dependent property from updating on infinite loops
A dependent and dependee properties should only update one another
once in the model, and the UI should be responsible for resetting
the input when it is toggled.

Bug: T92558
Change-Id: I944aaf9c44d0f305a34458f0b8009a98c9570661
2015-03-12 14:01:38 -07:00
Moriel Schottlender ffbc8e1520 TDG: Support optional text of 'deprecated' property
The deprecated property allows for either a boolean or text, so we
should allow the user to insert guidance text in case that property
is true. To achieve that, the model also defines 'textValue' for
boolean properties with text representation so an internal property can
be set to hold that value and inputs can be automatically built from the
property structure.

Bug: T90734
Change-Id: Iadc6abdcc0cf2721a311cf43847b306cb269b5e8
2015-03-11 17:08:26 +00:00
Timo Tijhof 3ecbaefef1 Document code with JSDuck
Change-Id: Ieb812a2fb85135f6db18a9a02c94efd83695a19e
2015-03-06 17:56:30 -08:00
Timo Tijhof 796e7b1a76 Correct jsduck documentation tags casing
Change-Id: Ic438492ea4e7060c3c5626ae9b5493f70cfb578e
2015-02-21 17:05:40 +00:00
Moriel Schottlender c525aef5b0 Allow adding a new parameter again
Due to a bug, new parameters could not be added unless they were
previously deleted. This commit fixes that bug.

Change-Id: I3784d1b3d650893f26abb63994d13c08b148075b
2015-02-19 02:02:15 +00:00
Moriel Schottlender e6e728b58e Change global class variables to mw.TemplateData
Nest all classes for the templatedata dialog in mw.TemplateData
namespace.

Change-Id: Ib514378c9fbc0fb993b3cbc2fa48ced920167226
2015-02-18 17:47:08 -08:00
jenkins-bot 39da09b516 Merge "Use ActionFieldLayout for language and auto-choose new lang on add" 2015-02-03 00:54:15 +00:00
jenkins-bot 492f933bb8 Merge "Reset paramOrder widget on dialog setup" 2015-01-30 17:50:17 +00:00
Moriel Schottlender 3ad7e0b1e3 Reset paramOrder widget on dialog setup
Make sure that every time the dialog is open, the paramOrder
widget is emptied so it can be refilled fresh from the model.

Bug: T88126
Change-Id: I628c66710cb1f2f77385b16c627585350f357c45
2015-01-30 17:41:41 +00:00
Moriel Schottlender d141e924f6 Use ActionFieldLayout for language and auto-choose new lang on add
Change the current hacky layout to the proper ActionFieldLayout,
and also make sure that when the user adds a language, the new
language is selected.

Change-Id: I737a1dcfc08bd47829661daf3c08e2e480670842
2015-01-29 11:58:56 -08:00
Moriel Schottlender b3877b327d Allow adding a deleted parameter in the templatedata dialog
If a user adds a parameter that was previously deleted, the
parameter properties will be completely emptied, and the parameter
will be added as if it is new.

Bug: T86916
Change-Id: Ib739ee09229750f94314636d4290dbe6662b4c0f
2015-01-28 18:50:43 -08:00
Moriel Schottlender d212901649 Add param order drag/drop widget to TemplateData dialog
Make sure the parameter order is editable with the drag/drop widget.

Change-Id: I35079907b2ed9f5ecdcd438dd69ed9892ce3e428
2015-01-23 19:02:56 +00:00
Moriel Schottlender edf70972e1 Adapt the type input to work with the new ooui getMenu()
The type in the templatedata editor didn't update because the events
were attached to the previous ooui SelectWidget, and should be
adjusted to use the new methods.

Bug: T86922
Change-Id: I619d1cc69f672d2d03d7dafa97ba3d950de9d89d
2015-01-20 17:19:40 +00:00
Moriel Schottlender ee56d518fb Add deprecated switch to the editor
The 'deprecated' boolean property was missing from the templatedata
edit dialog.

Change-Id: Ib05e832d8fc91896816b3f8b22f7678dacb245cd
2015-01-16 11:00:27 -08:00
Moriel Schottlender df59f0179a Eventify TemplateDataGenerator and use oojs-ui
Change the ui/data behavior to work with oojs and event emitters,
and replace the gui from jquery ui to oojs-ui.

Changes made:
* Recreate the templatedata editor with oojs and ooui.
* Create a standalone templatedata model with internal validation.
* Allow the user to insert language-specific strings:
  * Allow adding arbitrary languages and values
  * Normalize output between language object and 'simple' string
  * Add new language code by searching for its name or code
* Import parameters from template code
  * If the template is in subpage and there is no code in the
    current page, the code will request the contents of the parent
    page.

Change-Id: I985ea03dfee58984ec22ec9a157a00968bfca878
2014-12-22 12:58:37 -05:00