bem / bem-components

Set of components for sites development
https://bem.info/libraries/classic/bem-components/6.0.0/
Other
332 stars 86 forks source link

input: Support possibility to set `autocomplete="on"` on touch level #891

Closed tadatuta closed 10 years ago

tadatuta commented 10 years ago

Now it's impossible to set autocomplete="on" for touch levels without writing full form of bemjson (with box and control).

refer: https://github.com/bem/bem-components/blob/v2/common.blocks/input/__control/input__control.bemhtml#L16 and https://github.com/bem/bem-components/blob/v2/touch.blocks/input/__control/input__control.bemhtml

mishanga commented 10 years ago

Мы считаем, что автокомплит на тачах — говно, поэтому прописали на тачах по умолчанию autocomplete="off" без возможности его включить. Это сделано осознанно, не надо хотеть его включать. Подробности могу рассказать голосом.

gela-d commented 10 years ago

@mishanga Правильно ли я понимаю, что тогда вот тут https://github.com/bem/bem-components/blob/v2/touch.blocks/input/__control/input__control.bemhtml#L7 у нас должно быть attrs.autocomplete = 'off'; ?

Что в отношении остальных свойств? - autocorrect, autocapitalize, spellcheck Мы хотим, чтобы их могли изменять?

У нас на уровне common написана такая конструкция: https://github.com/bem/bem-components/blob/v2/common.blocks/input/__control/input__control.bemhtml#L16 Это значит, если мы напишем явно в bemjson, что autocomplete: 'off', то он все равно останется включен по умолчанию и условие не отработает.

mishanga commented 10 years ago

@gela-d я перегрелся, видимо. На самом деле ты всегда можешь явно задать в bemjson любые атрибуты, которые зарулят шаблонные: https://github.com/bem/bem-core/blob/v2/common.blocks/i-bem/i-bem.bemhtml#L434 https://github.com/enb-make/bh/blob/master/lib/bh.js#L388 Поэтому нет смысла делать в шаблонах проверки, надо везде безусловно написать autocomplete=off (в bh — без force).

gela-d commented 10 years ago

Поговорили с Мишей голосом. Резюме:

  1. Делаем дефолтные значения 'off' для autocomplete, autocorrect, autocapitalize, spellcheck. PR - https://github.com/bem/bem-components/pull/942 Если пользователь хочет их явно переопределить, что пишет расширенный bemjson, с нужными attrs у элемента input__control
  2. Такое же переопределение с расширенными входными данными действует и для уровня desktop ( @tadatuta Вов, вот эта штука https://github.com/bem/bem-components/blob/v2/common.blocks/input/__control/input__control.bemhtml#L16 не влияет на то, если мы пишем аттрибуты самому контролу и они, как нормальные аттрибуты, доезжают).

То есть по этой задаче надо было сделать только https://github.com/bem/bem-components/pull/942

tadatuta commented 10 years ago

по второму пункту. если писать атрибуты самому __control (и при этом не задавать через апи блока, то да, все будет ок), но почему через апи блока сделано только для false я все равно не понимаю.

mishanga commented 10 years ago

Fixed in #964.