Skip to content

Instantly share code, notes, and snippets.

@george
Created September 6, 2012 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save george/3656888 to your computer and use it in GitHub Desktop.
Save george/3656888 to your computer and use it in GitHub Desktop.
Trying to grok Em.Select
SocialRoi.Router = Ember.Router.extend
enableLogging: true
location: 'hash'
root: Ember.Route.extend
# removed a bunch of unrelated routing code
reports: Ember.Route.extend
# SETUP
route: '/reports'
# EVENTS
createReport: Ember.Route.transitionTo 'create'
cancel: (router, event) ->
router.get('applicationController.transaction').rollback()
router.transitionTo('index')
save: (router, event) ->
router.get('applicationController.transaction').commit()
router.transitionTo('index')
# STATES
index: Ember.Route.extend
# SETUP
route: '/'
connectOutlets: (router) ->
router.get('applicationController').connectOutlet 'reports', SocialRoi.Report.find()
create: Ember.Route.extend
# SETUP
route: '/new'
connectOutlets: (router) ->
transaction = router.get('store').transaction()
report = transaction.createRecord(SocialRoi.Report)
router.get('applicationController').set('transaction', transaction)
router.get('applicationController').connectOutlet
viewClass: SocialRoi.NewReportView
controller: router.get('reportController')
context: report
# EVENTS
unroutePath: (router, path) ->
router.get('applicatinoController.transaction').rollback()
@_super(router, path)
SocialRoi.Enterprise = DS.Model.extend
name: DS.attr('string')
eto_guid: DS.attr('string')
<form {{action save on="submit"}} class="form-horizontal">
<legend>Create New Report</legend>
<div class="control-group">
<label class="control-label" for="report_name">Name</label>
<div class="controls">
{{view Em.TextField valueBinding="name" id="report_name" class="span3"}}
</div>
</div>
<div class="control-group">
<label class="control-label" for="report_enterprise_guid">Enterprise</label>
<div class="controls">
{{! Incorrect, but not sure why }}
{{view Em.Select
contentBinding="enterprises"
optionLabelPath="content.name"
optionValuePath="content.eto_guid"
id="report_enterprise_guid"
class=""}}
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Save</button>
&nbsp;&nbsp;
<a {{action cancel}} class="btn">Cancel</a>
</form>
{{view SocialRoi.ReportFormView}}
SocialRoi.NewReportView = Ember.View.extend
templateName: 'reports/new'
SocialRoi.Report = DS.Model.extend
name: DS.attr('string')
configuration_state: DS.attr('string')
enterprise_guid: DS.attr('string')
enterprise_name: DS.attr('string')
enterprise_guid: DS.attr('string')
site_name: DS.attr('string')
site_id: DS.attr('number')
program_name: DS.attr('string')
program_id: DS.attr('number')
enterprises: (->
SocialRoi.Enterprise.find()
).property()
SocialRoi.ReportController = Em.ObjectController.extend()
SocialRoi.ReportFormView = Em.View.extend
templateName: 'reports/form'
didInsertElement: ->
@$(':text:visible:enabled:first').focus()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment