Rewrite a couple of Handlebars helpers into HTMLBars helpers

This commit is contained in:
Piotr Sarnacki 2015-03-24 14:07:28 +01:00
parent 0cfc7b85e7
commit b609b11ff2
5 changed files with 31 additions and 24 deletions

View File

@ -10,9 +10,9 @@
`import tipsy from 'travis/helpers/tipsy'`
#`import input from 'travis/helpers/input'`
`import filterInput from 'travis/helpers/filter-input'`
Ember.Handlebars.registerHelper('label', label)
Ember.Handlebars.registerHelper('travis-field', travisField)
Ember.Handlebars.registerHelper('travis-errors', travisErrors)
Ember.HTMLBars._registerHelper('label', label)
Ember.HTMLBars._registerHelper('travis-field', travisField)
Ember.HTMLBars._registerHelper('travis-errors', travisErrors)
Ember.Handlebars.registerHelper('tipsy', tipsy)
#Ember.Handlebars.registerHelper('input', input)
Ember.Handlebars.registerHelper('filter-input', filterInput)

View File

@ -20,8 +20,14 @@ Controller = Ember.ObjectController.extend Validations,
add: ->
id = @get('repo.id')
model = @store.recordForId('sshKey', id)
if model.get('currentState.stateName') == 'root.empty'
# TODO: this can be removed in favor of simply unloading record
# once https://github.com/emberjs/data/pull/2867
# and https://github.com/emberjs/data/pull/2870 are merged
if model
@store.dematerializeRecord(model)
typeMap = @store.typeMapFor('sshKey')
idToRecord = typeMap.idToRecord
delete idToRecord[id]
model = @store.createRecord('sshKey', id: id)
@set('model', model)

View File

@ -7,15 +7,16 @@ LabelView = Ember.View.extend(
classNameBindings: ['class']
)
label = (options) ->
label = (params, hash, options, env) ->
view = LabelView
name = options.hash.for
controller = env.data.view.get('controller')
name = hash.for
if name
labels = @get('_labels')
labels = controller.get('_labels')
unless labels
labels = Ember.Object.create()
@set('_labels', labels)
controller.set('_labels', labels)
# for now I support only label + input in their own context
id = labels.get(name)
@ -23,12 +24,10 @@ label = (options) ->
id = "#{name}-#{Math.round(Math.random() * 1000000)}"
labels.set(name, id)
options.hash.for = id
options.hashTypes.for = 'STRING'
options.hashContexts.for = this
if options.hash.content
hash.for = id
if hash.content
view = view.extend(templateName: 'helpers/label')
Ember.Handlebars.helpers.view.call(this, view, options)
env.helpers.view.helperFunction.call(this, [view], hash, options, env)
`export default label`

View File

@ -10,14 +10,14 @@ ErrorsView = Ember.View.extend
).property('@errors', 'errors.length')
show: Ember.computed.notEmpty('errors.[]')
fn = (name, options) ->
errors = @get('errors').for(name)
window[name + 'Errors'] = errors
fn = (params, hash, options, env) ->
controller = env.data.view.get('controller')
errors = controller.get('errors').for(name)
view = ErrorsView.create(
controller: this
controller: controller
errors: errors
)
Ember.Handlebars.helpers.view.call(this, view, options)
env.helpers.view.helperFunction.call(this, [view], hash, options, env)
`export default fn`

View File

@ -5,19 +5,21 @@ FormFieldRowView = Ember.View.extend
classNameBindings: ['invalid']
classNames: 'field'
fn = (name, options) ->
errors = @get('errors').for(name)
template = options.fn
delete options.fn
fn = (params, hash, options, env) ->
name = params[0]
controller = env.data.view.get('controller')
errors = controller.get('errors').for(name)
template = options.template
delete options.template
view = FormFieldRowView.create(
controller: this
controller: controller
template: template
errors: errors
name: name
classNameBindings: ['name']
)
Ember.Handlebars.helpers.view.call(this, view, options)
env.helpers.view.helperFunction.call(this, [view], hash, options, env)
`export default fn`