Skip to content

Instantly share code, notes, and snippets.

@pzuraq
Created March 7, 2013 22:57
Show Gist options
  • Save pzuraq/5112632 to your computer and use it in GitHub Desktop.
Save pzuraq/5112632 to your computer and use it in GitHub Desktop.
Ember.Application.initializer({
name: "showrooms",
initialize: function(container, application) {
container.optionsForType('showroom', { instantiate: false, singleton: true });
container.register('showroom', 'current', Case.Showroom.find());
}
});
Ember.Application.initializer({
name: "injectShowrooms",
after: 'showrooms',
initialize: function(container) {
container.injection('controller:application', 'showrooms', 'showroom:current');
container.typeInjection('route', 'showrooms', 'showroom:current');
}
});
Ember.Application.initializer({
name: "makes",
initialize: function(container, application) {
container.optionsForType('make', { instantiate: false, singleton: true });
container.register('make', 'current', Case.Make.find());
}
});
Ember.Application.initializer({
name: "injectMakes",
after: 'makes',
initialize: function(container) {
container.injection('controller:application', 'makes', 'make:current');
container.typeInjection('route', 'makes', 'make:current');
}
});
Ember.Application.initializer({
name: "models",
initialize: function(container, application) {
container.optionsForType('model', { instantiate: false, singleton: true });
container.register('model', 'current', Case.Model.find());
}
});
Ember.Application.initializer({
name: "injectModels",
after: 'models',
initialize: function(container) {
container.injection('controller:application', 'models', 'model:current');
container.typeInjection('route', 'models', 'model:current');
}
});
Case.VehicleController = Ember.ObjectController.extend({
startEditing: function() {
this.set('transaction', this.get('store').transaction());
this.get('transaction').add(this.get('content'));
},
save: function(){
this.get('transaction').commit();
},
stopEditing: function() {
if (this.get('transaction')) {
this.get('transaction').rollback();
this.get('transaction') = null;
}
},
filterModels: function() {
var models = this.get('models');
var vehicle = this.get('content');
return models.filterProperty('make', vehicle.get('make'));
}.property('[email protected]')
});
<div class="main-content container-fluid">
<div class="row-fluid">
<div class="span12">
<h2>Vehicle Details</h2>
</div>
</div>
<form>
<div class="row-fluid">
<span class="label label-info span6">Entered By Chris G on {{ controller.content.enteredAt }}</span>
<span class="label label-info span6">Modified By Chris G on 12/25/12</span>
</div>
<div class="row-fluid">
<h4>Basic Details</h4>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Stock #</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputShowroom">Showroom</label>
<div class="controls">
{{view Ember.Select
prompt="Select one..."
contentBinding="controller.showrooms"
optionLabelPath="content.name"
valueBinding="controller.content.showroom"
class="span12"}}
</div>
</div>
<div class="control-group span2 offset1">
<label class="control-label" for="inputYear">Year</label>
<div class="controls">
{{view Ember.TextField valueBinding="controller.content.year" class="span12"}}
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputMake">Make</label>
<div class="controls">
{{view Ember.Select
prompt="Select one..."
contentBinding="controller.makes"
optionLabelPath="content.name"
valueBinding="controller.content.make"
class="span12"}}
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputModel">Model</label>
<div class="controls">
{{view Ember.Select
prompt="Select one..."
contentBinding="controller.filterModels"
optionLabelPath="content.name"
valueBinding="controller.content.model"
class="span12"}}
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputTrim">Trim</label>
<div class="controls">
<input class="span12" type="text" id="inputTrim"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Vehicle Type</label>
<div class="controls">
<label class="radio">
<input type="radio" id="inputStockNo"/>Vehicle w/ VIN
</label>
<label class="radio">
<input type="radio" id="inputStockNo"/>Motorcycle
</label>
<label class="radio">
<input type="radio" id="inputStockNo"/>Other
</label>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">VIN</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4 disabled">
<label class="control-label" for="inputStockNo">Motorcycle Engine #</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo" disabled/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">License Plate #</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4 disabled">
<label class="control-label" for="inputStockNo">SPCN</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo" disabled/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">State Registered</label>
<div class="controls">
<input class="span4" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Registration Date</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Expiration Date</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Body Style</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span2">
<label class="control-label" for="inputStockNo">Engine Size</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span2">
<label class="control-label" for="inputStockNo"># Cylinders</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Transmission</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Mileage</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Odometer Status</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span2">
<label class="control-label" for="inputStockNo">Drive Train</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span2">
<label class="control-label" for="inputStockNo">Fuel Type</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
</div>
<div class="row-fluid">
<h4>Interior/Exterior</h4>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Main Exterior Color</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Exterior Accent Color</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Main Interior Color</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Interior Accent Color</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Interior Material</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
</div>
<div class="row-fluid">
<h4>Options</h4>
</div>
<div class="row-fluid">
<div class="span4">
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
</div>
<div class="span4">
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
</div>
<div class="span4">
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
<label class="checkbox">
<input type="checkbox" id="options"/>Option Name
</label>
</div>
</div>
<div class="row-fluid">
<h4>Additional Details</h4>
</div>
<div class="row-fluid">
<div class="span4">
<label>Does the vehicle have its original engine?</label>
{{#view Ember.RadioButtonGroup valueBinding="controller.content.originalEngine" name="test-radio-group"}}
<label class="radio inline">{{view RadioButton value=true}}Yes</label>
<label class="radio inline">{{view RadioButton value=false}}No</label>
{{/view}}
</div>
<div class="span4">
<label>Has the vehicle's engine been rebuilt?</label>
{{#view Ember.RadioButtonGroup valueBinding="controller.content.engineRebuilt" name="test-radio-group2"}}
<label class="radio inline">{{view RadioButton value=true}}Yes</label>
<label class="radio inline">{{view RadioButton value=false}}No</label>
{{/view}}
</div>
<div class="control-group span4 disabled">
<label>Miles on the rebuilt engine</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo" disabled/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span4">
<label>Did the owner provide mileage documentation?</label>
{{#view Ember.RadioButtonGroup valueBinding="controller.content.mileageDocs" name="test-radio-group3"}}
<label class="radio inline">{{view RadioButton value=true}}Yes</label>
<label class="radio inline">{{view RadioButton value=false}}No</label>
{{/view}}
</div>
<div class="span4">
<label>Did the owner provide the original vehicle manuals?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
<div class="span4">
<label>Did the owner provide service receipts?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
</div>
<div class="row-fluid">
<div class="span4">
<label>Has the vehicle ever been damaged?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
<div class="span4">
<label>Does the vehicle have any rust?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
<div class="span4">
<label>Did the owner provide any extra parts?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
</div>
<div class="row-fluid">
<div class="span4">
<label>Was a hardtop recieved?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
<div class="span4">
<label>Does the vehicle have a lien?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
<div class="span4">
<label>Did the owner provide extra keys?</label>
<label class="radio inline">
<input type="radio"/>Yes
</label>
<label class="radio inline">
<input type="radio"/>No
</label>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Where was the vehicle originally sold?</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">How long has the seller owned the vehicle?</label>
<div class="controls">
<input class="span6" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Total number of owners of the vehicle</label>
<div class="controls">
<input class="span6" type="text" id="inputStockNo"/>
</div>
</div>
</div>
<div class="row-fluid">
<h4>Consignment Details</h4>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Vehicle Source</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span4 disabled">
<label class="control-label" for="inputStockNo">Vehicle Cost</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo" disabled/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Consigned In Showroom?</label>
<div class="controls">
<label class="radio inline">
<input type="radio" id="inputStockNo"/>Yes
</label>
<label class="radio inline">
<input type="radio" id="inputStockNo"/>No
</label>
</div>
</div>
<div class="control-group span4">
<label class="control-label" for="inputStockNo">Consignment Location</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span2">
<label class="control-label" for="inputStockNo">Term</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
<div class="control-group span2">
<label class="control-label" for="inputStockNo">Status</label>
<div class="controls">
<input class="span12" type="text" id="inputStockNo"/>
</div>
</div>
</div>
</form>
</div>
Case.VehicleFilterRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', this.modelFor('vehicle'));
controller.set('showrooms', this.get('showrooms'));
controller.set('makes', this.get('makes'));
controller.set('models', this.get('models'));
var vehicleController = this.controllerFor('vehicle');
vehicleController.set('lastFilter', this.routeName);
}
});
Case.VehicleDetailsRoute = Case.VehicleFilterRoute.extend();
Case.VehicleConsignorRoute = Case.VehicleFilterRoute.extend();
Case.VehicleAdditionalRoute = Case.VehicleFilterRoute.extend();
Case.VehiclePriceRoute = Case.VehicleFilterRoute.extend();
Case.VehicleDmvRoute = Case.VehicleFilterRoute.extend();
Case.VehicleExpensesRoute = Case.VehicleFilterRoute.extend();
Case.VehicleDescriptionRoute = Case.VehicleFilterRoute.extend();
Case.VehicleTasksRoute = Case.VehicleFilterRoute.extend();
Case.VehicleRoute = Ember.Route.extend({
renderTemplate: function(controller, model) {
this.render();
var lastFilter = controller.get('lastFilter');
this.transitionTo(lastFilter || 'vehicle.details');
},
setupController: function(controller, model) {
controller.set('showrooms', this.get('showrooms'));
controller.set('makes', this.get('makes'));
controller.set('models', this.get('models'));
if(model.get('active') === undefined){
model.set('active', true);
controller.startEditing();
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment