Skip to content

Instantly share code, notes, and snippets.

@validkeys
Created September 20, 2017 17:19
Show Gist options
  • Select an option

  • Save validkeys/8377547faf46af30ce49c0c220e94813 to your computer and use it in GitHub Desktop.

Select an option

Save validkeys/8377547faf46af30ce49c0c220e94813 to your computer and use it in GitHub Desktop.
New Twiddle
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Ember from 'ember';
import DS from 'ember-data';
export default Ember.Mixin.create({
ownedBoards: DS.hasMany('board', { inverse: "owner" }),
ownedCards: DS.hasMany('card', { inverse: "owner" })
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
title: DS.attr('string'),
owner: DS.belongsTo('resourceOwner', { inverse: "ownedBoards", polymorphic: true})
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
title: DS.attr('string'),
owner: DS.belongsTo('resourceOwner', { inverse: "ownedCards", polymorphic: true})
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
import ResourceOwnerMixin from 'app/mixins/resource-owner';
export default Model.extend(ResourceOwnerMixin,{
name: DS.attr('string')
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
import ResourceOwnerMixin from 'app/mixins/resource-owner';
export default Model.extend(ResourceOwnerMixin,{
name: DS.attr('string')
});
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel: function() {
var boards = [
{ id: 1, title: "Org Board", ownerType: "organization", ownerId: 1 },
{ id: 2, title: "Team Board", ownerType: "team", ownerId: 1 }
];
var cards = [
{ id: 1, title: "Org Card", ownerType: "organization", ownerId: 1 },
{ id: 2, title: "Team Card", ownerType: "team", ownerId: 1 }
];
var teams = [
{id: 1, name: "Team"}
];
var organizations = [
{id: 1, name: "Organization"}
];
this.store.pushPayload({boards, cards, teams, organizations});
},
model() {
return Ember.RSVP.hash({
boards: this.store.peekAll('board'),
cards: this.store.peekAll('card'),
org: this.store.peekRecord('organization',1),
team: this.store.peekRecord('team', 1)
});
}
});
import DS from 'ember-data';
import Ember from 'ember';
export default DS.RESTSerializer.extend({
normalize(model, hash, prop) {
if (prop === "clientStrategies") {
if (hash.hasOwnProperty('clientStrategyReviewIds')) {
delete hash.clientStrategyReviewIds;
}
}
return this._super(...arguments);
},
keyForRelationship(key, relationship/*, method*/) {
let str = Ember.String.singularize(key);
if (relationship === "hasMany") {
str += "Ids";
} else {
str += "Id";
}
return str;
},
keyForPolymorphicType(key/*, typeClass, method*/) {
return `${key}Type`;
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<h3>Boards</h3>
<ul>
{{#each model.boards as |board|}}
<li>{{board.title}} is owned by {{board.owner.name}}</li>
{{/each}}
</ul>
<h3>Cards</h3>
<ul>
{{#each model.cards as |card|}}
<li>{{card.title}} is owned by {{card.owner.name}}</li>
{{/each}}
</ul>
<h3>{{model.org.name}} Owned Resources</h3>
<ul>
{{#each model.org.ownedBoards as |board|}}
<li>{{board.title}}</li>
{{/each}}
{{#each model.org.ownedCards as |card|}}
<li>{{card.title}}</li>
{{/each}}
</ul>
<h3>{{model.team.name}} Owned Resources</h3>
<ul>
{{#each model.team.ownedBoards as |board|}}
<li>{{board.title}}</li>
{{/each}}
{{#each model.team.ownedCards as |card|}}
<li>{{card.title}}</li>
{{/each}}
</ul>
<br>
<br>
{
"version": "0.12.1",
"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.12.0",
"ember-template-compiler": "2.12.0",
"ember-testing": "2.12.0"
},
"addons": {
"ember-data": "2.12.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment