diff --git a/app/models/plot.js b/app/models/plot.js new file mode 100644 index 0000000..0f3204d --- /dev/null +++ b/app/models/plot.js @@ -0,0 +1,12 @@ +import Model from 'ember-data/model'; +import attr from 'ember-data/attr'; +// import { belongsTo, hasMany } from 'ember-data/relationships'; + +export default Model.extend({ + name: attr('string'), + signal: attr('string'), + //position: + //size: + title: attr('string') + //backgroundColor: +}); diff --git a/app/models/project.js b/app/models/project.js index 377d618..2ff9490 100644 --- a/app/models/project.js +++ b/app/models/project.js @@ -1,8 +1,9 @@ import Model from 'ember-data/model'; import attr from 'ember-data/attr'; -import { belongsTo } from 'ember-data/relationships'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ name: attr('string'), - owner: belongsTo('user', { async: true }) + owner: belongsTo('user', { async: true }), + visualizations: hasMany('visualization', { async: true }) }); diff --git a/app/models/visualization.js b/app/models/visualization.js new file mode 100644 index 0000000..709e47c --- /dev/null +++ b/app/models/visualization.js @@ -0,0 +1,8 @@ +import Model from 'ember-data/model'; +import attr from 'ember-data/attr'; +import { hasMany } from 'ember-data/relationships'; + +export default Model.extend({ + name: attr('string'), + plots: hasMany('plot', { async: true }) +}); diff --git a/app/router.js b/app/router.js index c17bdab..3b52f3d 100644 --- a/app/router.js +++ b/app/router.js @@ -19,6 +19,12 @@ Router.map(function() { this.route('user', function() { this.route('edit'); }); + this.route('visualization', function() { + this.route('index', { path: '/:visualizationid' }); + this.route('new'); + this.route('edit', { path: '/edit/:visualizationid' }); + this.route('delete', { path: '/delete/:visualizationid' }); + }); }); export default Router; diff --git a/app/routes/visualization/delete.js b/app/routes/visualization/delete.js new file mode 100644 index 0000000..398a1e3 --- /dev/null +++ b/app/routes/visualization/delete.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; +import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; + +export default Ember.Route.extend(AuthenticatedRouteMixin, { + model(params) { + return this.store.findRecord('visualization', params.visualizationid); + } +}); diff --git a/app/routes/visualization/edit.js b/app/routes/visualization/edit.js new file mode 100644 index 0000000..398a1e3 --- /dev/null +++ b/app/routes/visualization/edit.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; +import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; + +export default Ember.Route.extend(AuthenticatedRouteMixin, { + model(params) { + return this.store.findRecord('visualization', params.visualizationid); + } +}); diff --git a/app/routes/visualization/index.js b/app/routes/visualization/index.js new file mode 100644 index 0000000..398a1e3 --- /dev/null +++ b/app/routes/visualization/index.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; +import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; + +export default Ember.Route.extend(AuthenticatedRouteMixin, { + model(params) { + return this.store.findRecord('visualization', params.visualizationid); + } +}); diff --git a/app/routes/visualization/new.js b/app/routes/visualization/new.js new file mode 100644 index 0000000..30e4e30 --- /dev/null +++ b/app/routes/visualization/new.js @@ -0,0 +1,5 @@ +import Ember from 'ember'; +import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; + +export default Ember.Route.extend(AuthenticatedRouteMixin, { +}); diff --git a/app/templates/project/index.hbs b/app/templates/project/index.hbs index 24f0c61..2ecd482 100644 --- a/app/templates/project/index.hbs +++ b/app/templates/project/index.hbs @@ -1,4 +1,24 @@

{{model.name}}

-{{#link-to "project.edit" model.id}}Edit project{{/link-to}} -{{#link-to "project.delete" model.id}}Delete project{{/link-to}} +
+ +

+

Visualizations

+ + + +
+ + {{#link-to 'visualization.new'}}New visualization{{/link-to}} +

+ +
+ +

+ {{#link-to "project.edit" model.id}}Edit project{{/link-to}} + {{#link-to "project.delete" model.id}}Delete project{{/link-to}} +

diff --git a/app/templates/visualization/delete.hbs b/app/templates/visualization/delete.hbs new file mode 100644 index 0000000..49e85ea --- /dev/null +++ b/app/templates/visualization/delete.hbs @@ -0,0 +1 @@ +

Delete

diff --git a/app/templates/visualization/edit.hbs b/app/templates/visualization/edit.hbs new file mode 100644 index 0000000..a835e09 --- /dev/null +++ b/app/templates/visualization/edit.hbs @@ -0,0 +1 @@ +

Edit

diff --git a/app/templates/visualization/index.hbs b/app/templates/visualization/index.hbs new file mode 100644 index 0000000..1156777 --- /dev/null +++ b/app/templates/visualization/index.hbs @@ -0,0 +1,6 @@ +

{{model.name}}

+ +

+ {{#link-to "visualization.edit" model.id}}Edit visualization{{/link-to}} + {{#link-to "visualization.delete" model.id}}Delete visualization{{/link-to}} +

diff --git a/app/templates/visualization/new.hbs b/app/templates/visualization/new.hbs new file mode 100644 index 0000000..c9904d4 --- /dev/null +++ b/app/templates/visualization/new.hbs @@ -0,0 +1 @@ +

New visualization

diff --git a/tests/unit/models/plot-test.js b/tests/unit/models/plot-test.js new file mode 100644 index 0000000..50a2df7 --- /dev/null +++ b/tests/unit/models/plot-test.js @@ -0,0 +1,12 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('plot', 'Unit | Model | plot', { + // Specify the other units that are required for this test. + needs: [] +}); + +test('it exists', function(assert) { + let model = this.subject(); + // let store = this.store(); + assert.ok(!!model); +}); diff --git a/tests/unit/models/visualization-test.js b/tests/unit/models/visualization-test.js new file mode 100644 index 0000000..f84f9bc --- /dev/null +++ b/tests/unit/models/visualization-test.js @@ -0,0 +1,12 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('visualization', 'Unit | Model | visualization', { + // Specify the other units that are required for this test. + needs: [] +}); + +test('it exists', function(assert) { + let model = this.subject(); + // let store = this.store(); + assert.ok(!!model); +}); diff --git a/tests/unit/routes/visualization/delete-test.js b/tests/unit/routes/visualization/delete-test.js new file mode 100644 index 0000000..635f4ac --- /dev/null +++ b/tests/unit/routes/visualization/delete-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:visualization/delete', 'Unit | Route | visualization/delete', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); diff --git a/tests/unit/routes/visualization/edit-test.js b/tests/unit/routes/visualization/edit-test.js new file mode 100644 index 0000000..d04fad6 --- /dev/null +++ b/tests/unit/routes/visualization/edit-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:visualization/edit', 'Unit | Route | visualization/edit', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); diff --git a/tests/unit/routes/visualization/index-test.js b/tests/unit/routes/visualization/index-test.js new file mode 100644 index 0000000..8dae607 --- /dev/null +++ b/tests/unit/routes/visualization/index-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:visualization/index', 'Unit | Route | visualization/index', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); diff --git a/tests/unit/routes/visualization/new-test.js b/tests/unit/routes/visualization/new-test.js new file mode 100644 index 0000000..0f09f4a --- /dev/null +++ b/tests/unit/routes/visualization/new-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:visualization/new', 'Unit | Route | visualization/new', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +});