diff --git a/app/app.coffee b/app/app.coffee index b789caf7..b3a48e6b 100644 --- a/app/app.coffee +++ b/app/app.coffee @@ -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) diff --git a/app/controllers/ssh-key.coffee b/app/controllers/ssh-key.coffee index 152ba3d9..bfa2297f 100644 --- a/app/controllers/ssh-key.coffee +++ b/app/controllers/ssh-key.coffee @@ -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) diff --git a/app/helpers/label.coffee b/app/helpers/label.coffee index 5d733fd5..31c989dc 100644 --- a/app/helpers/label.coffee +++ b/app/helpers/label.coffee @@ -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` diff --git a/app/helpers/travis-errors.coffee b/app/helpers/travis-errors.coffee index 030cb535..ac6bba57 100644 --- a/app/helpers/travis-errors.coffee +++ b/app/helpers/travis-errors.coffee @@ -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` diff --git a/app/helpers/travis-field.coffee b/app/helpers/travis-field.coffee index c29bb3ea..60a85fa1 100644 --- a/app/helpers/travis-field.coffee +++ b/app/helpers/travis-field.coffee @@ -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`