34 lines
818 B
CoffeeScript
34 lines
818 B
CoffeeScript
`import Ember from 'ember'`
|
|
|
|
LabelView = Ember.View.extend(
|
|
tagName: 'label'
|
|
|
|
attributeBindings: ['for', 'accesskey', 'form']
|
|
classNameBindings: ['class']
|
|
)
|
|
|
|
label = (params, hash, options, env) ->
|
|
view = LabelView
|
|
|
|
controller = env.data.view.get('controller')
|
|
name = hash.for
|
|
if name
|
|
labels = controller.get('_labels')
|
|
unless labels
|
|
labels = Ember.Object.create()
|
|
controller.set('_labels', labels)
|
|
|
|
# for now I support only label + input in their own context
|
|
id = labels.get(name)
|
|
unless id
|
|
id = "#{name}-#{Math.round(Math.random() * 1000000)}"
|
|
labels.set(name, id)
|
|
|
|
hash.for = id
|
|
if hash.content
|
|
view = view.extend(templateName: 'helpers/label')
|
|
|
|
env.helpers.view.helperFunction.call(this, [view], hash, options, env)
|
|
|
|
`export default label`
|