1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/web/ synced 2025-03-09 00:00:01 +01:00

Add project and user edit, add user email

This commit is contained in:
Markus Grigull 2016-06-28 10:00:38 +02:00
parent 548bbb5e15
commit 75c8464b6c
13 changed files with 119 additions and 6 deletions

View file

@ -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);
}
}
});

View file

@ -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);

View file

@ -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();
}
}
});

View file

@ -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')
});

View file

@ -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;

View file

@ -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);
}
});

12
app/routes/user/edit.js Normal file
View file

@ -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);
}
});

View file

@ -9,8 +9,8 @@
<ul>
<li>{{#link-to 'index'}}Home{{/link-to}}</li>
<li>{{#link-to 'projects'}}Projects{{/link-to}}</li>
<li>Preferences</li>
<li><a {{action 'invalidateSession'}}>Logout</a></li>
<li>{{#link-to 'user.edit'}}Preferences{{/link-to}}</li>
<li><a href="" {{action 'invalidateSession'}}>Logout</a></li>
</ul>
</div>

View file

@ -1 +1,15 @@
<h1>Edit {{model.name}}</h1>
<h1>Edit project</h1>
<form id="project-edit-form" {{action 'saveEdit' on='submit'}} >
<p>
<label for="name">Name</label>
{{input id='name' placeholder='Enter project name' value=model.name}}
</p>
<button {{action 'cancelEdit'}}>Cancel</button>
<button type="submit">Save</button>
{{#if errorMessage}}
<p>{{errorMessage.message}}</p>
{{/if}}
</form>

View file

@ -0,0 +1,14 @@
<h1>Preferences</h1>
<form id="user-edit-form" {{action 'changeUser' on='submit'}} >
<p>
<label for="username">Username</label>
{{input id='username' value=model.username readonly=true}}
</p>
<p>
<label for="mail">Mail</label>
{{input id='mail' value=model.mail placeholder='Enter e-mail'}}
</p>
<button type="submit">Save</button>
</form>

View file

@ -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);
});

View file

@ -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);
});

View file

@ -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);
});