Skip to content

Instantly share code, notes, and snippets.

@stephencattaneo
Last active June 8, 2016 00:14
Show Gist options
  • Save stephencattaneo/1eb5c5fc6e772ea5ce39c20f643a92f4 to your computer and use it in GitHub Desktop.
Save stephencattaneo/1eb5c5fc6e772ea5ce39c20f643a92f4 to your computer and use it in GitHub Desktop.
Outlet as Table Row
import Ember from 'ember';
export default Ember.Controller.extend({
});
import Ember from 'ember';
export default Ember.Controller.extend({
});
import Ember from 'ember';
const { getOwner } = Ember;
export default Ember.Controller.extend({
model: [
{name: 'org1', id: 1},
{name: 'org2', id: 2},
],
application: Ember.inject.controller(),
actions: {
activate(route, org_id) {
const currentPath = this.get('application.currentPath');
const currentId = this.get('activeId');
if (currentId === org_id && currentPath === route) {
this.transitionTo('dashboard');
this.set('activeId', null);
} else {
this.set('activeId', org_id);
this.transitionToRoute(route, org_id);
}
},
},
});
import Ember from 'ember';
export default Ember.Controller.extend({
});
import Ember from 'ember';
export function eq(params/*, hash*/) {
return params[0] === params[1];
}
export default Ember.Helper.helper(eq);
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none'
});
Router.map(function() {
this.route('dashboard', function() {
this.route('summary', {path: '/:organization_id/summary'});
this.route('collectors', {path: '/:organization_id/collectors'});
});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
model: Ember.K,
});
import Ember from 'ember';
export default Ember.Route.extend({
model: Ember.K,
});
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel() { this.transitionTo('dashboard'); },
});
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
td {
border: 1px solid #333;
}
tbody {
border: 1px solid red;
}
<table>
<thead>
<tr>
<th>name</th>
<th>collectors</th>
</tr>
</thead>
<tbody>
{{#each model as |org|}}
<tr>
<td {{action (action 'activate' 'dashboard.summary' org.id)}}>{{org.name}}</td>
<td {{action (action 'activate' 'dashboard.collectors' org.id)}}>collectors</td>
</tr>
{{#if (eq org.id activeId)}}
<tr>
<td colspan='2'>
{{outlet}}
</td>
</tr>
{{/if}}
{{/each}}
</tbody>
</table>
{
"version": "0.8.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": "1.13.13",
"ember-data": "1.13.15",
"ember-template-compiler": "1.13.13"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment