Ok, I looked into this a little closer.

type => file is missing from HTMLForm::typeMapping. But class overrides
this, and the HTMLTextField has some code where the type parameter is just
stuck into the html type attribute so it can be used in multiple places.

But in the OOUI case OOUI\TextInputWidget::getSaneType doesnt allow file
types (since ooui probably doesnt support it), so type goes back to text.
Thus breaking this.

So basically no, its not possible currently without implementing your own
HTMLFormField subclass. The fact it worked in the old system may have been
accidental, im not sure. There is probably a bug here somewhere though,
either the two modes should be consistent in their support for file types
or it should fallback to non-ooui in that case (imho)

Sorry,
Brian

On Sunday, April 15, 2018, Toni Hermoso Pulido <toni...@cau.cat> wrote:
> Hi Brian,
>
> if I only specify one I get this exception:
>
> ...
>
> Descriptor with no class for fileupload: Array
> (
> [section] => upload
> [label] => Upload file
> [type] => file
> [class] =>
> )
>
> ...
>
> Not using ooui, both are needed and it works...
>
>
> On 15/04/2018 19:40, Brian Wolff wrote:
>>
>> Im not sure, but having the class specified as HTMLTextField looks wrong
>> (type & class are mutually exclusive. You should only specify one).
>>
>> --
>> Brian
>>
>> On Sunday, April 15, 2018, Toni Hermoso Pulido <toni...@cau.cat> wrote:
>>>
>>> Hello,
>>>
>>> I'm trying to migrate a HTMLForm to use ooui
>>>
>>> by following https://www.mediawiki.org/wiki/OOUI/Using_OOUI_in_MediaWiki
>>>
>>> htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, 'myform' );
>>>
>>> I noticed that a file upload form field that I had defined is not
>>
>> rendered correctly when using ooui.
>>>
>>>              'fileupload' => array(
>>>                  'section' => 'upload',
>>>                  'label' => 'Upload file',
>>>                  'class' => 'HTMLTextField',
>>>                  'type' => 'file'
>>>              ),
>>>
>>> This is shown as a text field but not as a file upload, as I would have
>>
>> expected...
>>>
>>> Is there any way to handle this and using OOUI at the same time?
>>>
>>> Thanks!
>>>
>>>
>>> _______________________________________________
>>> Wikitech-l mailing list
>>> Wikitech-l@lists.wikimedia.org
>>> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>>
>> _______________________________________________
>> Wikitech-l mailing list
>> Wikitech-l@lists.wikimedia.org
>> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>
>
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to