CC'ing lists that actually work.

- Trevor


On Fri, Aug 29, 2014 at 4:36 PM, Trevor Parscal <[email protected]>
wrote:

> Mixins in OOjs UI have always had, shall we say, "strange" names.
> Popuppable is my personal favorite, but the most strange thing about them
> has always been the lack of correlation between their name and what it is
> that they actually do. Furthermore, Alex came across a situation where the
> convention of providing an element to a mixin at construction is not always
> possible.
>
> I've written a patch[1][2][3] which does the following:
>
>    - Mixins are now named according to what they do[2], using the "ed"
>    suffix if the mixin adds/manages attributes, "able" if it adds/manages
>    behavior and no suffix if it adds content.
>    - Mixins no longer take a required element argument, but do still
>    allow the element to be passed through the config options
>    - Mixins use a set{Type}Element method to set and even change the
>    element being targeted by the mixin - this is called in the constructor
>    with an overridable default, but can also be called again and again
>
> Attribute and behavior mixins always operate on this.$element by deafault.
> Content mixins always generate an element to operate on by default. Again,
> in both cases the element being initially targeted can be configured using
> the config object.
>
> This division was made specifically to reduce or eliminate the need for
> using this.$( '<{tagName}' ); when invoking the mixin constructor, and
> instead doing what was being done most of the time automatically.
>
> The rename will hopefully not cause too much confusion. It's important to
> note that both the JavaScript and CSS classes have been updated.
>
> Roan is reviewing the patches and they will probably be merged shortly. If
> you know of any code that may be affected by this change but has not been
> considered in the patches mentioned, please let me know.
>
> - Trevor
>
> [1] https://gerrit.wikimedia.org/r/#/c/157274
> [2] https://gerrit.wikimedia.org/r/#/c/157286
> [3] https://gerrit.wikimedia.org/r/#/c/157285
>
> [4] Table of classes that have been renamed
>
> ButtonedElement ButtonElementIconedElement IconElementIndicatedElement
> IndicatorElementLabeledElement LabelElementPopuppableElement PopupElement
> FlaggableElement FlaggedElement
>
_______________________________________________
Multimedia mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/multimedia

Reply via email to