Trevor Parscal has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/71562


Change subject: Template parameter adding
......................................................................

Template parameter adding

Objective:

* Allow browsing, searching and adding documented parameters

Changes:

ve.ui.MWTransclusionDialog.js
* Replace regular text input with ve.ui.ParameterSearchWidget
* Fix uses of $(), this.frame.$$ is correct

ve.ui.Dialog.css
* Change rules for addParameterFieldset to make search widget auto-size 
vertically

ve.ui.Widget.css
* Add styles for ve.ui.MWParameterResultWidget

ve.ui.MWParameterSearchWidget.js, ve.ui.MWParameterResultWidget.js
* New classes
* Provides a way to search and select parameter for a template
* Displays parameter label, name, aliases and description

*.php
* Links to new files and messages

Change-Id: Ie5dbe8c44ce5d64c4b49b09517fb66cd30dd7304
---
M VisualEditor.i18n.php
M VisualEditor.php
M modules/ve/ui/dialogs/ve.ui.MWTransclusionDialog.js
M modules/ve/ui/styles/ve.ui.Dialog.css
M modules/ve/ui/styles/ve.ui.Widget.css
A modules/ve/ui/widgets/ve.ui.MWParameterResultWidget.js
A modules/ve/ui/widgets/ve.ui.MWParameterSearchWidget.js
7 files changed, 338 insertions(+), 54 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/62/71562/1

diff --git a/VisualEditor.i18n.php b/VisualEditor.i18n.php
index 3ad6bab..4bdc504 100644
--- a/VisualEditor.i18n.php
+++ b/VisualEditor.i18n.php
@@ -66,7 +66,6 @@
        'visualeditor-dialog-transclusion-add-template' => 'Add template',
        'visualeditor-dialog-transclusion-content' => 'Content',
        'visualeditor-dialog-transclusion-options' => 'Options',
-       'visualeditor-dialog-transclusion-param-name' => 'Parameter name',
        'visualeditor-dialog-transclusion-placeholder' => 'New template',
        'visualeditor-dialog-transclusion-remove-content' => 'Remove content',
        'visualeditor-dialog-transclusion-remove-param' => 'Remove parameter',
@@ -125,6 +124,9 @@
        'visualeditor-notification-saved' => 'Your changes to $1 have been 
saved.',
        'visualeditor-outline-control-move-down' => 'Move item down',
        'visualeditor-outline-control-move-up' => 'Move item up',
+       'visualeditor-parameter-input-placeholder' => 'Parameter name',
+       'visualeditor-parameter-search-no-unused' => 'No unused parameters',
+       'visualeditor-parameter-search-unknown' => 'Unknown parameter',
        'visualeditor-preference-enable' => 'Enable VisualEditor (only in the 
[[{{MediaWiki:Visualeditor-mainnamespacepagelink}}|main]] and 
[[{{MediaWiki:Visualeditor-usernamespacepagelink}}|user]] namespaces)',
        'visualeditor-reference-input-placeholder' => 'What do you want to 
reference?',
        'visualeditor-reference-search-create' => 'Create new source',
@@ -287,8 +289,6 @@
 {{Identical|Content}}',
        'visualeditor-dialog-transclusion-options' => 'Label for section with 
options for templates, content or parameters.
 {{Identical|Options}}',
-       'visualeditor-dialog-transclusion-param-name' => 'Placeholder text 
label for an input for adding a parameter to a template.
-{{Identical|Parameter name}}',
        'visualeditor-dialog-transclusion-placeholder' => 'Label for section 
with options for adding a new template to a multi part transclusion',
        'visualeditor-dialog-transclusion-remove-content' => 'Label for button 
that removes content between transclusion parts',
        'visualeditor-dialog-transclusion-remove-param' => 'Label for button 
that removes a parameter from a template',
@@ -375,6 +375,8 @@
        'visualeditor-notification-saved' => 'Shown after a user saves a page, 
$1 is a page name.',
        'visualeditor-outline-control-move-down' => 'Tool tip for a button that 
moves items in a list down one place',
        'visualeditor-outline-control-move-up' => 'Tool tip for a button that 
moves items in a list up one place',
+       'visualeditor-parameter-input-placeholder' => 'Placeholder text label 
for an input for adding a parameter to a template.
+{{Identical|Parameter name}}',
        'visualeditor-preference-enable' => 'Label for the user preference to 
enable VisualEditor.
 Links are in {{msg-mw|Visualeditor-mainnamespacepagelink}} and 
{{msg-mw|visualeditor-usernamespacepagelink}}.',
        'visualeditor-reference-input-placeholder' => 'Placeholder text for 
reference search field.',
@@ -482,7 +484,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'أضف قالبا',
        'visualeditor-dialog-transclusion-content' => 'المحتوى',
        'visualeditor-dialog-transclusion-options' => 'خيارات',
-       'visualeditor-dialog-transclusion-param-name' => 'اسم المعامل',
+       'visualeditor-parameter-input-placeholder' => 'اسم المعامل',
        'visualeditor-dialog-transclusion-placeholder' => 'قالب جديد',
        'visualeditor-dialog-transclusion-remove-content' => 'أزل محتوى',
        'visualeditor-dialog-transclusion-remove-param' => 'أزل معاملا',
@@ -638,7 +640,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Añadir plantía',
        'visualeditor-dialog-transclusion-content' => 'Conteníu',
        'visualeditor-dialog-transclusion-options' => 'Opciones',
-       'visualeditor-dialog-transclusion-param-name' => 'Nome del parámetru',
+       'visualeditor-parameter-input-placeholder' => 'Nome del parámetru',
        'visualeditor-dialog-transclusion-placeholder' => 'Plantía nueva',
        'visualeditor-dialog-transclusion-remove-content' => 'Desaniciar 
conteníu',
        'visualeditor-dialog-transclusion-remove-param' => 'Desaniciar el 
parámetru',
@@ -871,7 +873,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Дадаць шаблён',
        'visualeditor-dialog-transclusion-content' => 'Зьмест',
        'visualeditor-dialog-transclusion-options' => 'Парамэтры',
-       'visualeditor-dialog-transclusion-param-name' => 'Назва парамэтра',
+       'visualeditor-parameter-input-placeholder' => 'Назва парамэтра',
        'visualeditor-dialog-transclusion-placeholder' => 'Новы шаблён',
        'visualeditor-dialog-transclusion-remove-content' => 'Выдаліць зьмест',
        'visualeditor-dialog-transclusion-remove-param' => 'Выдаліць парамэтар',
@@ -1029,7 +1031,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'টেমপ্লেট যোগ',
        'visualeditor-dialog-transclusion-content' => 'বিষয়বস্তু',
        'visualeditor-dialog-transclusion-options' => 'অপশন',
-       'visualeditor-dialog-transclusion-param-name' => 'প্যারামিটারের নাম',
+       'visualeditor-parameter-input-placeholder' => 'প্যারামিটারের নাম',
        'visualeditor-dialog-transclusion-placeholder' => 'নতুন টেমপ্লেট',
        'visualeditor-dialog-transclusion-remove-content' => 'বিষয়বস্তু 
অপসারণ',
        'visualeditor-dialog-transclusion-remove-param' => 'প্যারামিটার অপসারণ',
@@ -1216,7 +1218,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Afegeix una 
plantilla',
        'visualeditor-dialog-transclusion-content' => 'Contingut',
        'visualeditor-dialog-transclusion-options' => 'Opcions',
-       'visualeditor-dialog-transclusion-param-name' => 'Nom de paràmetre',
+       'visualeditor-parameter-input-placeholder' => 'Nom de paràmetre',
        'visualeditor-dialog-transclusion-placeholder' => 'Nova plantilla',
        'visualeditor-dialog-transclusion-remove-content' => 'Esborra el 
contingut',
        'visualeditor-dialog-transclusion-remove-param' => 'Treu el paràmetre',
@@ -1346,7 +1348,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Přidat šablonu',
        'visualeditor-dialog-transclusion-content' => 'Obsah',
        'visualeditor-dialog-transclusion-options' => 'Možnosti',
-       'visualeditor-dialog-transclusion-param-name' => 'Jméno parametru',
+       'visualeditor-parameter-input-placeholder' => 'Jméno parametru',
        'visualeditor-dialog-transclusion-placeholder' => 'Nová šablona',
        'visualeditor-dialog-transclusion-remove-content' => 'Odstranit obsah',
        'visualeditor-dialog-transclusion-remove-param' => 'Odstranit parametr',
@@ -1489,7 +1491,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Ychwaneger y nodyn',
        'visualeditor-dialog-transclusion-content' => 'Cynnwys',
        'visualeditor-dialog-transclusion-options' => 'Dewisiadau',
-       'visualeditor-dialog-transclusion-param-name' => "Enw'r paramedr",
+       'visualeditor-parameter-input-placeholder' => "Enw'r paramedr",
        'visualeditor-dialog-transclusion-placeholder' => 'Nodyn newydd',
        'visualeditor-dialog-transclusion-remove-content' => 'Cael gwared ar y 
cynnwys',
        'visualeditor-dialog-transclusion-remove-param' => 'Cael gwared ar y 
paramedr',
@@ -1570,7 +1572,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Vorlage hinzufügen',
        'visualeditor-dialog-transclusion-content' => 'Inhalt',
        'visualeditor-dialog-transclusion-options' => 'Optionen',
-       'visualeditor-dialog-transclusion-param-name' => 'Parametername',
+       'visualeditor-parameter-input-placeholder' => 'Parametername',
        'visualeditor-dialog-transclusion-placeholder' => 'Neue Vorlage',
        'visualeditor-dialog-transclusion-remove-content' => 'Inhalt entfernen',
        'visualeditor-dialog-transclusion-remove-param' => 'Parameter 
entfernen',
@@ -2026,7 +2028,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Lisa mall',
        'visualeditor-dialog-transclusion-content' => 'Sisu',
        'visualeditor-dialog-transclusion-options' => 'Suvandid',
-       'visualeditor-dialog-transclusion-param-name' => 'Parameetri nimi',
+       'visualeditor-parameter-input-placeholder' => 'Parameetri nimi',
        'visualeditor-dialog-transclusion-placeholder' => 'Uus mall',
        'visualeditor-dialog-transclusion-remove-content' => 'Eemalda sisu',
        'visualeditor-dialog-transclusion-remove-param' => 'Eemalda parameeter',
@@ -2273,7 +2275,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Lisää malline',
        'visualeditor-dialog-transclusion-content' => 'Sisältö',
        'visualeditor-dialog-transclusion-options' => 'Asetukset',
-       'visualeditor-dialog-transclusion-param-name' => 'Parametrin nimi',
+       'visualeditor-parameter-input-placeholder' => 'Parametrin nimi',
        'visualeditor-dialog-transclusion-placeholder' => 'Uusi malline',
        'visualeditor-dialog-transclusion-remove-content' => 'Poista sisältö',
        'visualeditor-dialog-transclusion-remove-param' => 'Poista parametri',
@@ -2422,7 +2424,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Ajouter le modèle',
        'visualeditor-dialog-transclusion-content' => 'Contenu',
        'visualeditor-dialog-transclusion-options' => 'Options',
-       'visualeditor-dialog-transclusion-param-name' => 'Nom du paramètre',
+       'visualeditor-parameter-input-placeholder' => 'Nom du paramètre',
        'visualeditor-dialog-transclusion-placeholder' => 'Nouveau modèle',
        'visualeditor-dialog-transclusion-remove-content' => 'Supprimer le 
contenu',
        'visualeditor-dialog-transclusion-remove-param' => 'Supprimer le 
paramètre',
@@ -2620,7 +2622,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Engadir o modelo',
        'visualeditor-dialog-transclusion-content' => 'Contido',
        'visualeditor-dialog-transclusion-options' => 'Opcións',
-       'visualeditor-dialog-transclusion-param-name' => 'Nome do parámetro',
+       'visualeditor-parameter-input-placeholder' => 'Nome do parámetro',
        'visualeditor-dialog-transclusion-placeholder' => 'Novo modelo',
        'visualeditor-dialog-transclusion-remove-content' => 'Eliminar o 
contido',
        'visualeditor-dialog-transclusion-remove-param' => 'Eliminar o 
parámetro',
@@ -2794,7 +2796,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'הוספת תבנית',
        'visualeditor-dialog-transclusion-content' => 'תוכן',
        'visualeditor-dialog-transclusion-options' => 'אפשרויות',
-       'visualeditor-dialog-transclusion-param-name' => 'שם הפרמטר',
+       'visualeditor-parameter-input-placeholder' => 'שם הפרמטר',
        'visualeditor-dialog-transclusion-placeholder' => 'תבנית חדשה',
        'visualeditor-dialog-transclusion-remove-content' => 'הסרת תוכן',
        'visualeditor-dialog-transclusion-remove-param' => 'הסרת פרמטר',
@@ -3270,7 +3272,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Bæta við sniði',
        'visualeditor-dialog-transclusion-content' => 'Innihald',
        'visualeditor-dialog-transclusion-options' => 'Möguleikar',
-       'visualeditor-dialog-transclusion-param-name' => 'Nafn gildis',
+       'visualeditor-parameter-input-placeholder' => 'Nafn gildis',
        'visualeditor-dialog-transclusion-placeholder' => 'Nýtt snið',
        'visualeditor-dialog-transclusion-remove-content' => 'Fjarlægja 
innihald',
        'visualeditor-dialog-transclusion-remove-param' => 'Fjarlægja gildi',
@@ -3415,7 +3417,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Aggiungi template',
        'visualeditor-dialog-transclusion-content' => 'Contenuto',
        'visualeditor-dialog-transclusion-options' => 'Opzioni',
-       'visualeditor-dialog-transclusion-param-name' => 'Nome parametro',
+       'visualeditor-parameter-input-placeholder' => 'Nome parametro',
        'visualeditor-dialog-transclusion-placeholder' => 'Nuovo template',
        'visualeditor-dialog-transclusion-remove-content' => 'Rimuovi 
contenuto',
        'visualeditor-dialog-transclusion-remove-param' => 'Rimuovi parametro',
@@ -3563,7 +3565,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'テンプレートを追加',
        'visualeditor-dialog-transclusion-content' => '内容',
        'visualeditor-dialog-transclusion-options' => 'オプション',
-       'visualeditor-dialog-transclusion-param-name' => '引数名',
+       'visualeditor-parameter-input-placeholder' => '引数名',
        'visualeditor-dialog-transclusion-placeholder' => '新規テンプレート',
        'visualeditor-dialog-transclusion-remove-content' => '内容を除去',
        'visualeditor-dialog-transclusion-remove-param' => '引数を除去',
@@ -3793,7 +3795,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Үлгі қосу',
        'visualeditor-dialog-transclusion-content' => 'Контент',
        'visualeditor-dialog-transclusion-options' => 'Параметрлер',
-       'visualeditor-dialog-transclusion-param-name' => 'Параметр атауы',
+       'visualeditor-parameter-input-placeholder' => 'Параметр атауы',
        'visualeditor-dialog-transclusion-placeholder' => 'Жаңа үлгі',
        'visualeditor-dialog-transclusion-remove-content' => 'Контенті аластау',
        'visualeditor-dialog-transclusion-remove-param' => 'Параметрді аластау',
@@ -4032,7 +4034,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Шаблон къош',
        'visualeditor-dialog-transclusion-content' => 'Контент',
        'visualeditor-dialog-transclusion-options' => 'Параметрле',
-       'visualeditor-dialog-transclusion-param-name' => 'Параметрни аты',
+       'visualeditor-parameter-input-placeholder' => 'Параметрни аты',
        'visualeditor-dialog-transclusion-placeholder' => 'Джангы шаблон',
        'visualeditor-dialog-transclusion-remove-content' => 'Ичиндегисин 
кетер',
        'visualeditor-dialog-transclusion-remove-param' => 'Параметрни кетер',
@@ -4216,7 +4218,7 @@
        'visualeditor-dialog-transclusion-add-param' => 'Parameter 
derbäisetzen',
        'visualeditor-dialog-transclusion-content' => 'Inhalt',
        'visualeditor-dialog-transclusion-options' => 'Optiounen',
-       'visualeditor-dialog-transclusion-param-name' => 'Numm vum Parameter',
+       'visualeditor-parameter-input-placeholder' => 'Numm vum Parameter',
        'visualeditor-dialog-transclusion-remove-content' => 'Inhalt 
ewechhuelen',
        'visualeditor-dialog-transclusion-remove-param' => 'Parameter 
ewechhuelen',
        'visualeditor-dialog-transclusion-remove-template' => 'Schabloun 
ewechhuelen',
@@ -4475,7 +4477,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Додај шаблон',
        'visualeditor-dialog-transclusion-content' => 'Содржина',
        'visualeditor-dialog-transclusion-options' => 'Нагодувања',
-       'visualeditor-dialog-transclusion-param-name' => 'Назив на параметарот',
+       'visualeditor-parameter-input-placeholder' => 'Назив на параметарот',
        'visualeditor-dialog-transclusion-placeholder' => 'Нов шаблон',
        'visualeditor-dialog-transclusion-remove-content' => 'Отстрани 
содржина',
        'visualeditor-dialog-transclusion-remove-param' => 'Отстрани параметар',
@@ -4622,7 +4624,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'ഫലകം ചേർക്കുക',
        'visualeditor-dialog-transclusion-content' => 'ഉള്ളടക്കം',
        'visualeditor-dialog-transclusion-options' => 'ഐച്ഛികങ്ങൾ',
-       'visualeditor-dialog-transclusion-param-name' => 'ചരത്തിന്റെ പേര്',
+       'visualeditor-parameter-input-placeholder' => 'ചരത്തിന്റെ പേര്',
        'visualeditor-dialog-transclusion-placeholder' => 'പുതിയ ഫലകം',
        'visualeditor-dialog-transclusion-remove-content' => 'ഉള്ളടക്കം 
നീക്കംചെയ്യുക',
        'visualeditor-dialog-transclusion-remove-param' => 'ചരം നീക്കംചെയ്യുക',
@@ -4780,7 +4782,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Tambah templat',
        'visualeditor-dialog-transclusion-content' => 'Kandungan',
        'visualeditor-dialog-transclusion-options' => 'Pilihan',
-       'visualeditor-dialog-transclusion-param-name' => 'Nama parameter',
+       'visualeditor-parameter-input-placeholder' => 'Nama parameter',
        'visualeditor-dialog-transclusion-placeholder' => 'Templat baru',
        'visualeditor-dialog-transclusion-remove-content' => 'Padamkan isi 
kandungan',
        'visualeditor-dialog-transclusion-remove-param' => 'Buang parameter',
@@ -4937,7 +4939,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Legg til mal',
        'visualeditor-dialog-transclusion-content' => 'Innhold',
        'visualeditor-dialog-transclusion-options' => 'Valg',
-       'visualeditor-dialog-transclusion-param-name' => 'Parameternavn',
+       'visualeditor-parameter-input-placeholder' => 'Parameternavn',
        'visualeditor-dialog-transclusion-placeholder' => 'Ny mal',
        'visualeditor-dialog-transclusion-remove-content' => 'Fjern innhold',
        'visualeditor-dialog-transclusion-remove-param' => 'Fjern parameter',
@@ -5087,7 +5089,7 @@
        'visualeditor-dialog-transclusion-add-param' => 'Parameter toevoegen',
        'visualeditor-dialog-transclusion-content' => 'Inhoud',
        'visualeditor-dialog-transclusion-options' => 'Opties',
-       'visualeditor-dialog-transclusion-param-name' => 'Parameternaam',
+       'visualeditor-parameter-input-placeholder' => 'Parameternaam',
        'visualeditor-dialog-transclusion-remove-content' => 'Inhoud 
verwijderen',
        'visualeditor-dialog-transclusion-remove-param' => 'Parameter 
verwijderen',
        'visualeditor-dialog-transclusion-remove-template' => 'Sjabloon 
verwijderen',
@@ -5346,7 +5348,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Dodaj szablon',
        'visualeditor-dialog-transclusion-content' => 'Treść',
        'visualeditor-dialog-transclusion-options' => 'Opcje',
-       'visualeditor-dialog-transclusion-param-name' => 'Nazwa parametru',
+       'visualeditor-parameter-input-placeholder' => 'Nazwa parametru',
        'visualeditor-dialog-transclusion-placeholder' => 'Nowy szablon',
        'visualeditor-dialog-transclusion-remove-content' => 'Usuń treść',
        'visualeditor-dialog-transclusion-remove-param' => 'Usuń parametr',
@@ -5748,7 +5750,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Adăugare format',
        'visualeditor-dialog-transclusion-content' => 'Conținut',
        'visualeditor-dialog-transclusion-options' => 'Opțiuni',
-       'visualeditor-dialog-transclusion-param-name' => 'Numele parametrului',
+       'visualeditor-parameter-input-placeholder' => 'Numele parametrului',
        'visualeditor-dialog-transclusion-placeholder' => 'Format nou',
        'visualeditor-dialog-transclusion-remove-content' => 'Elimină 
conținutul',
        'visualeditor-dialog-transclusion-remove-param' => 'Elimină parametrul',
@@ -5937,7 +5939,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Добавить шаблон',
        'visualeditor-dialog-transclusion-content' => 'Содержимое',
        'visualeditor-dialog-transclusion-options' => 'Параметры',
-       'visualeditor-dialog-transclusion-param-name' => 'Имя параметра',
+       'visualeditor-parameter-input-placeholder' => 'Имя параметра',
        'visualeditor-dialog-transclusion-placeholder' => 'Новый шаблон',
        'visualeditor-dialog-transclusion-remove-content' => 'Удалить 
содержимое',
        'visualeditor-dialog-transclusion-remove-param' => 'Удалить параметр',
@@ -6174,7 +6176,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Lägg till mall',
        'visualeditor-dialog-transclusion-content' => 'Innehåll',
        'visualeditor-dialog-transclusion-options' => 'Alternativ',
-       'visualeditor-dialog-transclusion-param-name' => 'Parameternamn',
+       'visualeditor-parameter-input-placeholder' => 'Parameternamn',
        'visualeditor-dialog-transclusion-placeholder' => 'Ny mall',
        'visualeditor-dialog-transclusion-remove-content' => 'Ta bort innehåll',
        'visualeditor-dialog-transclusion-remove-param' => 'Ta bort parametern',
@@ -6307,7 +6309,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Weka kigezo',
        'visualeditor-dialog-transclusion-content' => 'Yaliyomo',
        'visualeditor-dialog-transclusion-options' => 'Chaguzi',
-       'visualeditor-dialog-transclusion-param-name' => 'Jina la paramita',
+       'visualeditor-parameter-input-placeholder' => 'Jina la paramita',
        'visualeditor-dialog-transclusion-placeholder' => 'Kigezo kipya',
        'visualeditor-dialog-transclusion-remove-content' => 'Ondoa yaliyomo',
        'visualeditor-dialog-transclusion-remove-param' => 'Ondoa paramita',
@@ -6524,7 +6526,7 @@
        'visualeditor-dialog-transclusion-add-param' => 'Додати параметр',
        'visualeditor-dialog-transclusion-add-template' => 'Додати шаблон',
        'visualeditor-dialog-transclusion-options' => 'Параметри',
-       'visualeditor-dialog-transclusion-param-name' => "Ім'я параметра",
+       'visualeditor-parameter-input-placeholder' => "Ім'я параметра",
        'visualeditor-dialog-transclusion-placeholder' => 'Новий шаблон',
        'visualeditor-dialog-transclusion-remove-param' => 'Видалити параметр',
        'visualeditor-dialog-transclusion-remove-template' => 'Видалити шаблон',
@@ -6666,7 +6668,7 @@
        'visualeditor-dialog-transclusion-add-template' => 'Thêm bản mẫu',
        'visualeditor-dialog-transclusion-content' => 'Nội dung',
        'visualeditor-dialog-transclusion-options' => 'Tùy chọn',
-       'visualeditor-dialog-transclusion-param-name' => 'Tên tham số',
+       'visualeditor-parameter-input-placeholder' => 'Tên tham số',
        'visualeditor-dialog-transclusion-placeholder' => 'Bản mẫu mới',
        'visualeditor-dialog-transclusion-remove-content' => 'Xóa nội dung',
        'visualeditor-dialog-transclusion-remove-param' => 'Xóa tham số',
@@ -6835,7 +6837,7 @@
        'visualeditor-dialog-transclusion-add-template' => '添加模板',
        'visualeditor-dialog-transclusion-content' => '内容',
        'visualeditor-dialog-transclusion-options' => '选项',
-       'visualeditor-dialog-transclusion-param-name' => '参数名称',
+       'visualeditor-parameter-input-placeholder' => '参数名称',
        'visualeditor-dialog-transclusion-placeholder' => '新模板',
        'visualeditor-dialog-transclusion-remove-content' => '移除注释',
        'visualeditor-dialog-transclusion-remove-param' => '移除参数',
@@ -6974,7 +6976,7 @@
        'visualeditor-dialog-transclusion-add-param' => '添加參數',
        'visualeditor-dialog-transclusion-content' => '内容',
        'visualeditor-dialog-transclusion-options' => '選項',
-       'visualeditor-dialog-transclusion-param-name' => '參數名稱',
+       'visualeditor-parameter-input-placeholder' => '參數名稱',
        'visualeditor-dialog-transclusion-remove-content' => '移除內容',
        'visualeditor-dialog-transclusion-remove-param' => '移除參數',
        'visualeditor-dialog-transclusion-remove-template' => '移除模板',
diff --git a/VisualEditor.php b/VisualEditor.php
index 2446d6d..be63cc3 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -438,6 +438,8 @@
                        've/ui/widgets/ve.ui.MWCategoryWidget.js',
                        've/ui/widgets/ve.ui.MWMediaSearchWidget.js',
                        've/ui/widgets/ve.ui.MWMediaResultWidget.js',
+                       've/ui/widgets/ve.ui.MWParameterSearchWidget.js',
+                       've/ui/widgets/ve.ui.MWParameterResultWidget.js',
                        've/ui/widgets/ve.ui.MWReferenceSearchWidget.js',
                        've/ui/widgets/ve.ui.MWReferenceResultWidget.js',
                        've/ui/widgets/ve.ui.MWTitleInputWidget.js',
@@ -563,7 +565,6 @@
                        'visualeditor-dialog-transclusion-add-template',
                        'visualeditor-dialog-transclusion-content',
                        'visualeditor-dialog-transclusion-options',
-                       'visualeditor-dialog-transclusion-param-name',
                        'visualeditor-dialog-transclusion-placeholder',
                        'visualeditor-dialog-transclusion-remove-content',
                        'visualeditor-dialog-transclusion-remove-param',
@@ -611,6 +612,9 @@
                        'visualeditor-outline-control-move-down',
                        'visualeditor-outline-control-move-up',
                        'visualeditor-outline-control-move-up',
+                       'visualeditor-parameter-input-placeholder',
+                       'visualeditor-parameter-search-no-unused',
+                       'visualeditor-parameter-search-unknown',
                        'visualeditor-reference-input-placeholder',
                        'visualeditor-reference-search-create',
                        'visualeditor-reference-search-reuse',
diff --git a/modules/ve/ui/dialogs/ve.ui.MWTransclusionDialog.js 
b/modules/ve/ui/dialogs/ve.ui.MWTransclusionDialog.js
index 2b3b813..b8ea8c0 100644
--- a/modules/ve/ui/dialogs/ve.ui.MWTransclusionDialog.js
+++ b/modules/ve/ui/dialogs/ve.ui.MWTransclusionDialog.js
@@ -377,17 +377,24 @@
  * @param {ve.dm.MWTemplateModel} template Template model
  */
 ve.ui.MWTransclusionDialog.prototype.getTemplatePage = function ( template ) {
-       var infoFieldset, addParameterFieldset, addParameterInput, 
addParameterButton, optionsFieldset,
+       var infoFieldset, addParameterFieldset, addParameterSearch, 
addParameterButton, optionsFieldset,
                removeButton,
                spec = template.getSpec(),
                label = spec.getLabel(),
                description = spec.getDescription();
 
        function addParameter() {
-               var param = new ve.dm.MWTemplateParameterModel( template, 
addParameterInput.getValue() );
-               template.addParameter( param );
-               addParameterInput.setValue();
-               this.setPageByName( param.getId() );
+               var data, name, param,
+                       item = addParameterSearch.results.getSelectedItem();
+
+               data = item && item.getData();
+               name = data && data.name;
+               if ( name ) {
+                       param = new ve.dm.MWTemplateParameterModel( template, 
name );
+                       template.addParameter( param );
+                       addParameterSearch.query.setValue();
+                       this.setPageByName( param.getId() );
+               }
        }
 
        infoFieldset = new ve.ui.FieldsetLayout( {
@@ -397,7 +404,7 @@
        } );
 
        if ( description ) {
-               infoFieldset.$.append( $( '<div>' ).text( description ) );
+               infoFieldset.$.append( this.frame.$$( '<div>' ).text( 
description ) );
        }
 
        addParameterFieldset = new ve.ui.FieldsetLayout( {
@@ -406,24 +413,21 @@
                'icon': 'parameter'
        } );
        addParameterFieldset.$.addClass( 
've-ui-mwTransclusionDialog-addParameterFieldset' );
-       addParameterInput = new ve.ui.TextInputWidget( {
-               '$$': this.frame.$$,
-               'placeholder': ve.msg( 
'visualeditor-dialog-transclusion-param-name' )
-       } );
+       addParameterSearch = new ve.ui.MWParameterSearchWidget( template, { 
'$$': this.frame.$$ } );
        addParameterButton = new ve.ui.ButtonWidget( {
                '$$': this.frame.$$,
                'label': ve.msg( 'visualeditor-dialog-transclusion-add-param' ),
                'disabled': true
        } );
        addParameterButton.connect( this, { 'click': addParameter } );
-       addParameterInput.connect( this, {
+       addParameterSearch.connect( this, {
                'enter': addParameter,
-               'change': function ( value ) {
+               'select': function ( name ) {
                        var names = template.getParameterNames();
-                       addParameterButton.setDisabled( value === '' || 
names.indexOf( value ) !== -1 );
+                       addParameterButton.setDisabled( !name || names.indexOf( 
name ) !== -1 );
                }
        } );
-       addParameterFieldset.$.append( addParameterInput.$, 
addParameterButton.$ );
+       addParameterFieldset.$.append( addParameterSearch.$, 
addParameterButton.$ );
 
        optionsFieldset = new ve.ui.FieldsetLayout( {
                '$$': this.frame.$$,
@@ -585,7 +589,7 @@
        optionsFieldset.$.append( removeButton.$ );
 
        return {
-               'label': $( '<span>' )
+               'label': this.frame.$$( '<span>' )
                        .addClass( 
've-ui-mwTransclusionDialog-placeholder-label' )
                        .text( label ),
                'icon': 'template',
diff --git a/modules/ve/ui/styles/ve.ui.Dialog.css 
b/modules/ve/ui/styles/ve.ui.Dialog.css
index 68d5208..e0fb36a 100644
--- a/modules/ve/ui/styles/ve.ui.Dialog.css
+++ b/modules/ve/ui/styles/ve.ui.Dialog.css
@@ -183,12 +183,10 @@
        height: 10em;
 }
 
-.ve-ui-mwTransclusionDialog-addParameterFieldset .ve-ui-widget,
 .ve-ui-mwTransclusionDialog-addTemplateFieldset .ve-ui-widget {
        display: inline-block;
 }
 
-.ve-ui-mwTransclusionDialog-addParameterFieldset .ve-ui-buttonWidget,
 .ve-ui-mwTransclusionDialog-addTemplateFieldset .ve-ui-buttonWidget {
        margin-left: 0.5em;
 }
@@ -197,6 +195,18 @@
        font-style: italic;
 }
 
+.ve-ui-mwTransclusionDialog-addParameterFieldset 
.ve-ui-mwParameterSearchWidget {
+       position: relative;
+       overflow: hidden;
+       box-shadow: 0 0 0.5em rgba(0,0,0,0.2);
+       margin-bottom: 1em;
+}
+
+.ve-ui-mwTransclusionDialog-addParameterFieldset .ve-ui-searchWidget-results {
+       position: relative;
+       padding-bottom: 5em;
+}
+
 /* ve.ui.MWMetaDialog */
 
 .ve-ui-mwMetaDialog-languages-table {
diff --git a/modules/ve/ui/styles/ve.ui.Widget.css 
b/modules/ve/ui/styles/ve.ui.Widget.css
index ab95129..df94f45 100644
--- a/modules/ve/ui/styles/ve.ui.Widget.css
+++ b/modules/ve/ui/styles/ve.ui.Widget.css
@@ -725,6 +725,45 @@
        font-weight: bold;
 }
 
+/* ve.ui.MWParameterResultWidget */
+
+.ve-ui-mwParameterResultWidget {
+       padding-right: 0.25em;
+       background-position: 0.5em 0.25em;
+       background-repeat: no-repeat;
+}
+
+.ve-ui-mwParameterResultWidget.ve-ui-widget-disabled {
+       opacity: 0.5;
+}
+
+.ve-ui-mwParameterResultWidget-label {
+       font-weight: bold;
+       float: left;
+}
+
+.ve-ui-mwParameterResultWidget-names {
+       float: right;
+       font-size: 0.9em;
+}
+
+.ve-ui-mwParameterResultWidget-names span {
+       border-radius: 0.3em;
+       padding: 0.125em 0.25em;
+       margin-left: 0.5em;
+       color: #999;
+       background-color: #fff;
+       border: solid 1px #ddd;
+}
+
+.ve-ui-mwParameterResultWidget-names span:not(:first-child) {
+       background-color: #eee;
+}
+
+.ve-ui-mwParameterResultWidget-description {
+       clear: both;
+}
+
 /* RTL Definitions */
 
 /* @noflip */
diff --git a/modules/ve/ui/widgets/ve.ui.MWParameterResultWidget.js 
b/modules/ve/ui/widgets/ve.ui.MWParameterResultWidget.js
new file mode 100644
index 0000000..6fb268e
--- /dev/null
+++ b/modules/ve/ui/widgets/ve.ui.MWParameterResultWidget.js
@@ -0,0 +1,61 @@
+/*!
+ * VisualEditor UserInterface MWParameterResultWidget class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * Creates an ve.ui.MWParameterResultWidget object.
+ *
+ * @class
+ * @extends ve.ui.OptionWidget
+ *
+ * @constructor
+ * @param {Mixed} data Item data
+ * @param {Object} [config] Config options
+ */
+ve.ui.MWParameterResultWidget = function VeUiMWParameterResultWidget( data, 
config ) {
+       // Configuration intialization
+       config = config || {};
+
+       // Parent constructor
+       ve.ui.OptionWidget.call( this, data, config );
+
+       // Initialization
+       this.$.addClass( 've-ui-mwParameterResultWidget ve-ui-icon-parameter' );
+       this.setLabel( this.buildLabel() );
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.ui.MWParameterResultWidget, ve.ui.OptionWidget );
+
+/* Static Properties */
+
+ve.ui.MWParameterResultWidget.static.highlightable = false;
+
+/* Methods */
+
+ve.ui.MWParameterResultWidget.prototype.buildLabel = function () {
+       var i, len,
+               $label = this.$$( '<div>' )
+                       .addClass( 've-ui-mwParameterResultWidget-label' )
+                       .text( this.data.label ),
+               $names = this.$$( '<div>' )
+                       .addClass( 've-ui-mwParameterResultWidget-names' )
+                       .append(
+                               this.$$( '<span>' ).text( this.data.name )
+                       ),
+               $description = this.$$( '<div>' )
+                       .addClass( 've-ui-mwParameterResultWidget-description' )
+                       .text( this.data.description || '' );
+
+       for ( i = 0, len = this.data.aliases.length; i < len; i++ ) {
+               $names.append(
+                       this.$$( '<span>' ).text( this.data.aliases[i] )
+               );
+       }
+
+       return $label.add( $names ).add( $description );
+};
\ No newline at end of file
diff --git a/modules/ve/ui/widgets/ve.ui.MWParameterSearchWidget.js 
b/modules/ve/ui/widgets/ve.ui.MWParameterSearchWidget.js
new file mode 100644
index 0000000..a5363d7
--- /dev/null
+++ b/modules/ve/ui/widgets/ve.ui.MWParameterSearchWidget.js
@@ -0,0 +1,164 @@
+/*!
+ * VisualEditor UserInterface MWParameterSearchWidget class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * Creates an ve.ui.MWParameterSearchWidget object.
+ *
+ * @class
+ * @extends ve.ui.SearchWidget
+ *
+ * @constructor
+ * @param {Object} [config] Config options
+ */
+ve.ui.MWParameterSearchWidget = function VeUiMWParameterSearchWidget( 
template, config ) {
+       // Configuration intialization
+       config = ve.extendObject( {}, config, {
+               'placeholder': ve.msg( 
'visualeditor-parameter-input-placeholder' )
+       } );
+
+       // Parent constructor
+       ve.ui.SearchWidget.call( this, config );
+
+       // Properties
+       this.template = template;
+       this.index = [];
+
+       // Events
+       this.template.connect( this, { 'add': 'buildIndex', 'remove': 
'buildIndex' } );
+
+       // Initialization
+       this.$.addClass( 've-ui-mwParameterSearchWidget' );
+       this.buildIndex();
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.ui.MWParameterSearchWidget, ve.ui.SearchWidget );
+
+/* Events */
+
+/**
+ * @event select
+ * @param {string|null} name Parameter name or null if no item is selected
+ */
+
+/* Methods */
+
+/**
+ * Handle select widget select events.
+ *
+ * @method
+ * @param {string} value New value
+ */
+ve.ui.MWParameterSearchWidget.prototype.onQueryChange = function () {
+       // Parent method
+       ve.ui.SearchWidget.prototype.onQueryChange.call( this );
+
+       // Populate
+       this.addResults();
+};
+
+/**
+ * Handle select widget select events.
+ *
+ * @method
+ * @param {ve.ui.OptionWidget} item Selected item
+ * @emits select
+ */
+ve.ui.MWParameterSearchWidget.prototype.onResultsSelect = function ( item ) {
+       this.emit( 'select', item && item.getData() ? item.getData().name : 
null );
+};
+
+/**
+ * Build a serchable index of parameters.
+ *
+ * @method
+ * @param {ve.dm.MWTemplateSpecModel} spec Template specification
+ */
+ve.ui.MWParameterSearchWidget.prototype.buildIndex = function () {
+       var i, len, name, label, aliases, description,
+               spec = this.template.getSpec(),
+               usedParams = this.template.getParameterNames(),
+               knownParams = spec.getParameterNames();
+
+       this.index.length = 0;
+       for ( i = 0, len = knownParams.length; i < len; i++ ) {
+               name = knownParams[i];
+               if (
+                       // Skip aliases
+                       spec.getParameterOrigin( name ) !== name ||
+                       // Skip parameters already in use
+                       ve.indexOf( name, usedParams ) !== -1
+               ) {
+                       continue;
+               }
+               label = spec.getParameterLabel( name );
+               aliases = spec.getParameterAliases( name );
+               description = spec.getParameterDescription( name );
+
+               this.index.push( {
+                       'text': [ name, aliases.join( ' ' ), description 
].join( ' ' ),
+                       'name': name,
+                       'label': label,
+                       'aliases': aliases,
+                       'description': description
+               } );
+       }
+
+       // Re-populate
+       this.onQueryChange();
+};
+
+/**
+ * Handle media query response events.
+ *
+ * @method
+ */
+ve.ui.MWParameterSearchWidget.prototype.addResults = function () {
+       var i, len, item,
+               exactMatch = false,
+               value = this.query.getValue(),
+               query = value.toLowerCase(),
+               usedParams = this.template.getParameterNames(),
+               items = [];
+
+       for ( i = 0, len = this.index.length; i < len; i++ ) {
+               item = this.index[i];
+               if ( item.text.indexOf( query ) >= 0 ) {
+                       items.push( new ve.ui.MWParameterResultWidget( item, { 
'$$': this.$$ } ) );
+                       if ( item.name === value ) {
+                               exactMatch = true;
+                       }
+               }
+       }
+
+       if ( !exactMatch && value.length && ve.indexOf( value, usedParams ) === 
-1 ) {
+               items.unshift( new ve.ui.MWParameterResultWidget( {
+                       'name': value,
+                       'label': value,
+                       'aliases': [],
+                       'description': ve.msg( 
'visualeditor-parameter-search-unknown' )
+               }, { '$$': this.$$ } ) );
+       }
+
+       if ( !items.length ) {
+               items.push( new ve.ui.MWParameterResultWidget(
+                       {
+                               'name': null,
+                               'label': '',
+                               'aliases': [],
+                               'description': ve.msg( 
'visualeditor-parameter-search-no-unused' )
+                       },
+                       { '$$': this.$$, 'disabled': true }
+               ) );
+       }
+
+       this.results.addItems( items );
+       if ( query.length ) {
+               this.results.selectItem( this.results.getFirstSelectableItem() 
);
+       }
+};

-- 
To view, visit https://gerrit.wikimedia.org/r/71562
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie5dbe8c44ce5d64c4b49b09517fb66cd30dd7304
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Trevor Parscal <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to