Skip to content

Instantly share code, notes, and snippets.

@gib
Forked from skylar-anderson/adapters.application.js
Created August 8, 2016 23:11
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 gib/b1bfb17ab38dd0d613987e2c41735138 to your computer and use it in GitHub Desktop.
Save gib/b1bfb17ab38dd0d613987e2c41735138 to your computer and use it in GitHub Desktop.
Mock Candidate Test #1
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
host: 'https://app-3642.on-aptible.com'
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Ember from 'ember';
export default Ember.Controller.extend({
});
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
addContact(contact) {
contact.save();
}
}
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
firstName: attr('string'),
lastName: attr('string'),
bio: attr('string'),
email: attr('string'),
phoneNumbers: hasMany('phone-number')
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
phoneNumber: attr('string'),
contact: belongsTo('contact')
});
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
this.route('contacts', function() {
this.route('contact', { path: ':contact_id' });
this.route('new');
});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.find('contact', params.contact_id);
},
actions: {
addNumber(newNumber, contact) {
let phone = this.store.createRecord('phone-number', {
phoneNumber: newNumber,
contact: contact
});
phone.save();
}
}
});
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('contact')
}
});
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('contact');
}
});
import JSONAPISerializer from 'ember-data/serializers/json-api';
export default JSONAPISerializer.extend({
normalizeResponse() {
let json = this._super(...arguments);
return json;
},
normalize() {
let json = this._super(...arguments);
return json;
}
});
{{link-to 'Contact Management System' 'application' tagName="h1" class="logo"}}
<style type="text/css">
.sidebar {
float: left;
padding: 15px;
width:200px
background: #f9f9f9;
}
.primary {
float:left;
padding: 15px;
border-left: 1px solid #e0e0e0;
}
h1.logo {
cursor: pointer;
}
h1.logo:hover {
color: blue
}
label {
display: block;
}
form > div {
margin: 15px 0;
}
</style>
{{outlet}}
<h3>{{model.firstName}} {{model.lastName}}</h3>
<p>{{model.bio}}</p>
<h4>Phone Numbers:</h4>
<ul>
{{#each model.phoneNumbers as |phone|}}
<li>{{phone.phoneNumber}} <button>Delete</button></li>
{{else}}
<li>No Phone Numbers</li>
{{/each}}
</ul>
<div class="add-number">
{{input value=newNumber}}
<button {{action 'addNumber' newNumber model}}>Add Number</button>
</div>
<header>
<h2>My Contacts</h2>
{{link-to 'Add New' 'contacts.new'}}
</header>
<div class="sidebar">
<ul>
{{#each model as |contact|}}
<li>
{{link-to contact.firstName 'contacts.contact' contact.id}}
<button>Delete</button>
</li>
{{else}}
<li>No Contacts!</li>
{{/each}}
</ul>
</div>
<div class="primary">
{{outlet}}
</div>
<h3>Add New Contact</h3>
<form>
<div>
<label>First Name</label>
{{input value=model.firstName}}
</div>
<div>
<label>Last Name</label>
{{input value=model.lastName}}
</div>
<div>
<label>Email</label>
{{input value=model.email}}
</div>
<div>
<label>Bio</label>
{{textarea value=model.bio}}
</div>
<div>
<button type="submit" {{action 'addContact' model}}>Add Contact</button>
<button type="cancel" {{action 'cancel'}}>Cancel</button>
</div>
</form>
{{link-to 'View My Contacts' 'contacts'}}
{
"version": "0.10.4",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.7.0",
"ember-data": "2.7.0",
"ember-template-compiler": "2.7.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment