From d9e18196454674837068c46119d25e0f62bbbd46 Mon Sep 17 00:00:00 2001 From: Markus Grigull Date: Wed, 20 Jul 2016 16:54:20 +0200 Subject: [PATCH] Add simulation-model model and routes --- app/controllers/simulation-model/delete.js | 4 ++ app/controllers/simulation-model/edit.js | 4 ++ app/controllers/simulation-model/index.js | 4 ++ app/controllers/simulation-model/new.js | 39 +++++++++++++++++++ app/models/simulation-model.js | 19 +++++++++ app/models/user.js | 1 + app/router.js | 8 ++++ app/routes/simulation-model/delete.js | 4 ++ app/routes/simulation-model/edit.js | 4 ++ app/routes/simulation-model/index.js | 4 ++ app/routes/simulation-model/new.js | 14 +++++++ app/routes/simulation-models.js | 21 ++++++++++ app/serializers/simulation-model.js | 17 ++++++++ app/templates/application.hbs | 1 + app/templates/simulation-model/delete.hbs | 1 + app/templates/simulation-model/edit.hbs | 1 + app/templates/simulation-model/index.hbs | 1 + app/templates/simulation-model/new.hbs | 11 ++++++ app/templates/simulation-models.hbs | 9 +++++ .../simulation-model/delete-test.js | 12 ++++++ .../controllers/simulation-model/edit-test.js | 12 ++++++ .../simulation-model/index-test.js | 12 ++++++ .../controllers/simulation-model/new-test.js | 12 ++++++ tests/unit/models/simulation-model-test.js | 12 ++++++ tests/unit/routes/models-test.js | 11 ++++++ .../routes/simulation-model/delete-test.js | 11 ++++++ .../unit/routes/simulation-model/edit-test.js | 11 ++++++ .../routes/simulation-model/index-test.js | 11 ++++++ .../unit/routes/simulation-model/new-test.js | 11 ++++++ .../unit/serializers/simulation-model-test.js | 15 +++++++ 30 files changed, 297 insertions(+) create mode 100644 app/controllers/simulation-model/delete.js create mode 100644 app/controllers/simulation-model/edit.js create mode 100644 app/controllers/simulation-model/index.js create mode 100644 app/controllers/simulation-model/new.js create mode 100644 app/models/simulation-model.js create mode 100644 app/routes/simulation-model/delete.js create mode 100644 app/routes/simulation-model/edit.js create mode 100644 app/routes/simulation-model/index.js create mode 100644 app/routes/simulation-model/new.js create mode 100644 app/routes/simulation-models.js create mode 100644 app/serializers/simulation-model.js create mode 100644 app/templates/simulation-model/delete.hbs create mode 100644 app/templates/simulation-model/edit.hbs create mode 100644 app/templates/simulation-model/index.hbs create mode 100644 app/templates/simulation-model/new.hbs create mode 100644 app/templates/simulation-models.hbs create mode 100644 tests/unit/controllers/simulation-model/delete-test.js create mode 100644 tests/unit/controllers/simulation-model/edit-test.js create mode 100644 tests/unit/controllers/simulation-model/index-test.js create mode 100644 tests/unit/controllers/simulation-model/new-test.js create mode 100644 tests/unit/models/simulation-model-test.js create mode 100644 tests/unit/routes/models-test.js create mode 100644 tests/unit/routes/simulation-model/delete-test.js create mode 100644 tests/unit/routes/simulation-model/edit-test.js create mode 100644 tests/unit/routes/simulation-model/index-test.js create mode 100644 tests/unit/routes/simulation-model/new-test.js create mode 100644 tests/unit/serializers/simulation-model-test.js diff --git a/app/controllers/simulation-model/delete.js b/app/controllers/simulation-model/delete.js new file mode 100644 index 0000000..55ff9aa --- /dev/null +++ b/app/controllers/simulation-model/delete.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ +}); diff --git a/app/controllers/simulation-model/edit.js b/app/controllers/simulation-model/edit.js new file mode 100644 index 0000000..55ff9aa --- /dev/null +++ b/app/controllers/simulation-model/edit.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ +}); diff --git a/app/controllers/simulation-model/index.js b/app/controllers/simulation-model/index.js new file mode 100644 index 0000000..55ff9aa --- /dev/null +++ b/app/controllers/simulation-model/index.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ +}); diff --git a/app/controllers/simulation-model/new.js b/app/controllers/simulation-model/new.js new file mode 100644 index 0000000..a5d0eba --- /dev/null +++ b/app/controllers/simulation-model/new.js @@ -0,0 +1,39 @@ +/** + * File: new.js + * Author: Markus Grigull + * Date: 20.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +import Ember from 'ember'; + +export default Ember.Controller.extend({ + sessionUser: Ember.inject.service('session-user'), + + actions: { + newModel() { + // get current user + var user = this.get('sessionUser.user'); + + // create new model from properties + var properties = this.getProperties('name'); + properties['owner'] = user; + + var simulationModel = this.store.createRecord('simulation-model', properties); + var controller = this; + + simulationModel.save().then(function() { + Ember.debug('Saved new model'); + controller.transitionToRoute('/simulation-models'); + }, function() { + Ember.debug('Error saving new model'); + }); + }, + + cancelNewModel() { + this.transitionToRoute('/simulation-models'); + } + } +}); diff --git a/app/models/simulation-model.js b/app/models/simulation-model.js new file mode 100644 index 0000000..f970b7e --- /dev/null +++ b/app/models/simulation-model.js @@ -0,0 +1,19 @@ +/** + * File: simulation-model.js + * Author: Markus Grigull + * Date: 20.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +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'), + running: attr('boolean'), + owner: belongsTo('user', { async: true }), + projects: hasMany('project', { async: true }) +}); diff --git a/app/models/user.js b/app/models/user.js index 2015875..9acf731 100644 --- a/app/models/user.js +++ b/app/models/user.js @@ -16,5 +16,6 @@ export default Model.extend({ password: attr('string'), adminLevel: attr('number'), projects: hasMany('project', { async: true }), + simulationModels: hasMany('simulation-model', { async: true }), mail: attr('string') }); diff --git a/app/router.js b/app/router.js index a2e4e7a..b0d9b40 100644 --- a/app/router.js +++ b/app/router.js @@ -42,6 +42,14 @@ Router.map(function() { }); this.route('404', { path: '/*path' }); + + this.route('simulation-model', function() { + this.route('index', { path: '/:modelid' }); + this.route('new'); + this.route('delete', { path: '/delete/:modelid' }); + this.route('edit', { path: '/edit/:modelid' }); + }); + this.route('simulation-models'); }); export default Router; diff --git a/app/routes/simulation-model/delete.js b/app/routes/simulation-model/delete.js new file mode 100644 index 0000000..26d9f31 --- /dev/null +++ b/app/routes/simulation-model/delete.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ +}); diff --git a/app/routes/simulation-model/edit.js b/app/routes/simulation-model/edit.js new file mode 100644 index 0000000..26d9f31 --- /dev/null +++ b/app/routes/simulation-model/edit.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ +}); diff --git a/app/routes/simulation-model/index.js b/app/routes/simulation-model/index.js new file mode 100644 index 0000000..26d9f31 --- /dev/null +++ b/app/routes/simulation-model/index.js @@ -0,0 +1,4 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ +}); diff --git a/app/routes/simulation-model/new.js b/app/routes/simulation-model/new.js new file mode 100644 index 0000000..79bcf5f --- /dev/null +++ b/app/routes/simulation-model/new.js @@ -0,0 +1,14 @@ +/** + * File: new.js + * Author: Markus Grigull + * Date: 20.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +import Ember from 'ember'; +import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; + +export default Ember.Route.extend(AuthenticatedRouteMixin, { +}); diff --git a/app/routes/simulation-models.js b/app/routes/simulation-models.js new file mode 100644 index 0000000..f026c22 --- /dev/null +++ b/app/routes/simulation-models.js @@ -0,0 +1,21 @@ +/** + * File: simulation-models.js + * Author: Markus Grigull + * Date: 20.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +import Ember from 'ember'; +import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; + +export default Ember.Route.extend(AuthenticatedRouteMixin, { + sessionUser: Ember.inject.service('session-user'), + + model() { + // get models for current user + var user = this.get('sessionUser.user'); + return user.get('simulationModels'); + } +}); diff --git a/app/serializers/simulation-model.js b/app/serializers/simulation-model.js new file mode 100644 index 0000000..ee69978 --- /dev/null +++ b/app/serializers/simulation-model.js @@ -0,0 +1,17 @@ +/** + * File: simulation-model.js + * Author: Markus Grigull + * Date: 20.07.2016 + * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC + * This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential. + * Unauthorized copying of this file, via any medium is strictly prohibited. + **********************************************************************************/ + +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + attrs: { + owner: { serialize: 'ids' }, + projects: { serialize: 'ids' } + } +}); diff --git a/app/templates/application.hbs b/app/templates/application.hbs index 457586e..0309741 100644 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -9,6 +9,7 @@
  • {{#link-to 'index'}}Home{{/link-to}}
  • {{#link-to 'projects'}}Projects{{/link-to}}
  • +
  • {{#link-to 'simulation-models'}}Models{{/link-to}}
  • {{#link-to 'me'}}Account{{/link-to}}
  • {{#link-to 'logout'}}Logout{{/link-to}}
diff --git a/app/templates/simulation-model/delete.hbs b/app/templates/simulation-model/delete.hbs new file mode 100644 index 0000000..c24cd68 --- /dev/null +++ b/app/templates/simulation-model/delete.hbs @@ -0,0 +1 @@ +{{outlet}} diff --git a/app/templates/simulation-model/edit.hbs b/app/templates/simulation-model/edit.hbs new file mode 100644 index 0000000..c24cd68 --- /dev/null +++ b/app/templates/simulation-model/edit.hbs @@ -0,0 +1 @@ +{{outlet}} diff --git a/app/templates/simulation-model/index.hbs b/app/templates/simulation-model/index.hbs new file mode 100644 index 0000000..c24cd68 --- /dev/null +++ b/app/templates/simulation-model/index.hbs @@ -0,0 +1 @@ +{{outlet}} diff --git a/app/templates/simulation-model/new.hbs b/app/templates/simulation-model/new.hbs new file mode 100644 index 0000000..8056de7 --- /dev/null +++ b/app/templates/simulation-model/new.hbs @@ -0,0 +1,11 @@ +

New model

+ +
+

+ + {{input id='name' placeholder='Enter model name' value=name}} +

+ + + +
diff --git a/app/templates/simulation-models.hbs b/app/templates/simulation-models.hbs new file mode 100644 index 0000000..e92a9cf --- /dev/null +++ b/app/templates/simulation-models.hbs @@ -0,0 +1,9 @@ +

Models

+ +
    + {{#each model as |simulationModel|}} +
  • {{#link-to "simulation-model.index" simulationModel.id}}{{simulationModel.name}}{{/link-to}}
  • + {{/each}} +
+ +{{#link-to "simulation-model.new"}}New model{{/link-to}} diff --git a/tests/unit/controllers/simulation-model/delete-test.js b/tests/unit/controllers/simulation-model/delete-test.js new file mode 100644 index 0000000..b8ccc6b --- /dev/null +++ b/tests/unit/controllers/simulation-model/delete-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:simulation-model/delete', 'Unit | Controller | simulation-model/delete', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); diff --git a/tests/unit/controllers/simulation-model/edit-test.js b/tests/unit/controllers/simulation-model/edit-test.js new file mode 100644 index 0000000..252b107 --- /dev/null +++ b/tests/unit/controllers/simulation-model/edit-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:simulation-model/edit', 'Unit | Controller | simulation-model/edit', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); diff --git a/tests/unit/controllers/simulation-model/index-test.js b/tests/unit/controllers/simulation-model/index-test.js new file mode 100644 index 0000000..023e3c5 --- /dev/null +++ b/tests/unit/controllers/simulation-model/index-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:simulation-model/index', 'Unit | Controller | simulation-model/index', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); diff --git a/tests/unit/controllers/simulation-model/new-test.js b/tests/unit/controllers/simulation-model/new-test.js new file mode 100644 index 0000000..ae144f9 --- /dev/null +++ b/tests/unit/controllers/simulation-model/new-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:simulation-model/new', 'Unit | Controller | simulation-model/new', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); diff --git a/tests/unit/models/simulation-model-test.js b/tests/unit/models/simulation-model-test.js new file mode 100644 index 0000000..01f173b --- /dev/null +++ b/tests/unit/models/simulation-model-test.js @@ -0,0 +1,12 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('simulation-model', 'Unit | Model | simulation-model', { + // 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/models-test.js b/tests/unit/routes/models-test.js new file mode 100644 index 0000000..a6182e6 --- /dev/null +++ b/tests/unit/routes/models-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:models', 'Unit | Route | models', { + // 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/simulation-model/delete-test.js b/tests/unit/routes/simulation-model/delete-test.js new file mode 100644 index 0000000..b333a4a --- /dev/null +++ b/tests/unit/routes/simulation-model/delete-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:simulation-model/delete', 'Unit | Route | simulation-model/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/simulation-model/edit-test.js b/tests/unit/routes/simulation-model/edit-test.js new file mode 100644 index 0000000..8da4968 --- /dev/null +++ b/tests/unit/routes/simulation-model/edit-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:simulation-model/edit', 'Unit | Route | simulation-model/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/simulation-model/index-test.js b/tests/unit/routes/simulation-model/index-test.js new file mode 100644 index 0000000..ae828d2 --- /dev/null +++ b/tests/unit/routes/simulation-model/index-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:simulation-model/index', 'Unit | Route | simulation-model/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/simulation-model/new-test.js b/tests/unit/routes/simulation-model/new-test.js new file mode 100644 index 0000000..67f77f4 --- /dev/null +++ b/tests/unit/routes/simulation-model/new-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:simulation-model/new', 'Unit | Route | simulation-model/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); +}); diff --git a/tests/unit/serializers/simulation-model-test.js b/tests/unit/serializers/simulation-model-test.js new file mode 100644 index 0000000..32b3e21 --- /dev/null +++ b/tests/unit/serializers/simulation-model-test.js @@ -0,0 +1,15 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('simulation-model', 'Unit | Serializer | simulation-model', { + // Specify the other units that are required for this test. + needs: ['serializer:simulation-model'] +}); + +// Replace this with your real tests. +test('it serializes records', function(assert) { + let record = this.subject(); + + let serializedRecord = record.serialize(); + + assert.ok(serializedRecord); +});