diff --git a/app/controllers/project/edit.js b/app/controllers/project/edit.js new file mode 100644 index 0000000..1cd1566 --- /dev/null +++ b/app/controllers/project/edit.js @@ -0,0 +1,21 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + actions: { + saveEdit() { + // save the changes + var project = this.get('model'); + let projectId = project.get('id'); + var controller = this; + + project.save().then(function() { + controller.transitionToRoute('/project/' + projectId); + }); + }, + + cancelEdit() { + let projectId = this.get('model.id'); + this.transitionToRoute('/project/' + projectId); + } + } +}); diff --git a/app/controllers/project/new.js b/app/controllers/project/new.js index 01229ab..1834a47 100644 --- a/app/controllers/project/new.js +++ b/app/controllers/project/new.js @@ -18,8 +18,6 @@ export default Ember.Controller.extend({ // save the project and user project.save().then(function() { - console.log(project.get('id')); - // add the project to the user user.get('projects').pushObject(project); diff --git a/app/controllers/user/edit.js b/app/controllers/user/edit.js new file mode 100644 index 0000000..d66f684 --- /dev/null +++ b/app/controllers/user/edit.js @@ -0,0 +1,11 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + actions: { + changeUser() { + // save the changes + var user = this.get('model'); + user.save(); + } + } +}); diff --git a/app/models/user.js b/app/models/user.js index e028eff..bc61b02 100644 --- a/app/models/user.js +++ b/app/models/user.js @@ -6,5 +6,6 @@ export default Model.extend({ username: attr('string'), password: attr('string'), adminLevel: attr('number'), - projects: hasMany('project', { async: true }) + projects: hasMany('project', { async: true }), + mail: attr('string') }); diff --git a/app/router.js b/app/router.js index 63851c6..c17bdab 100644 --- a/app/router.js +++ b/app/router.js @@ -15,6 +15,10 @@ Router.map(function() { this.route('edit', { path: '/edit/:projectid' }); this.route('delete', { path: '/delete/:projectid' }); }); + + this.route('user', function() { + this.route('edit'); + }); }); export default Router; diff --git a/app/routes/project/edit.js b/app/routes/project/edit.js index 30e4e30..b603665 100644 --- a/app/routes/project/edit.js +++ b/app/routes/project/edit.js @@ -2,4 +2,7 @@ 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('project', params.projectid); + } }); diff --git a/app/routes/user/edit.js b/app/routes/user/edit.js new file mode 100644 index 0000000..9def44d --- /dev/null +++ b/app/routes/user/edit.js @@ -0,0 +1,12 @@ +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 session user + var userId = this.get('sessionUser.user.id'); + return this.store.findRecord('user', userId); + } +}); diff --git a/app/templates/application.hbs b/app/templates/application.hbs index 4767d55..deb95e2 100644 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -9,8 +9,8 @@ diff --git a/app/templates/project/edit.hbs b/app/templates/project/edit.hbs index 5f7d84b..064d830 100644 --- a/app/templates/project/edit.hbs +++ b/app/templates/project/edit.hbs @@ -1 +1,15 @@ -

Edit {{model.name}}

+

Edit project

+ +
+

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

+ + + + + {{#if errorMessage}} +

{{errorMessage.message}}

+ {{/if}} +
diff --git a/app/templates/user/edit.hbs b/app/templates/user/edit.hbs new file mode 100644 index 0000000..55622f9 --- /dev/null +++ b/app/templates/user/edit.hbs @@ -0,0 +1,14 @@ +

Preferences

+ +
+

+ + {{input id='username' value=model.username readonly=true}} +

+

+ + {{input id='mail' value=model.mail placeholder='Enter e-mail'}} +

+ + +
diff --git a/tests/unit/controllers/project/edit-test.js b/tests/unit/controllers/project/edit-test.js new file mode 100644 index 0000000..9100007 --- /dev/null +++ b/tests/unit/controllers/project/edit-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:project/edit', 'Unit | Controller | project/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/user/edit-test.js b/tests/unit/controllers/user/edit-test.js new file mode 100644 index 0000000..f06d390 --- /dev/null +++ b/tests/unit/controllers/user/edit-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:user/edit', 'Unit | Controller | user/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/routes/user/edit-test.js b/tests/unit/routes/user/edit-test.js new file mode 100644 index 0000000..754cb31 --- /dev/null +++ b/tests/unit/routes/user/edit-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:user/edit', 'Unit | Route | user/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); +});