From 052ffa309070bebc6a6b432f865bef7c56f03e2f Mon Sep 17 00:00:00 2001 From: zinyando Date: Wed, 24 Aug 2016 13:10:54 +0200 Subject: [PATCH] Fix user edit and adding document section --- app/app/components/settings/user-list.js | 15 ++-- app/app/models/page.js | 6 +- app/app/models/user.js | 19 +---- app/app/pods/document/wizard/controller.js | 77 +++++++++++-------- app/app/serializers/page-meta.js | 11 +++ app/app/serializers/page.js | 11 +++ .../protected-folder-participant.js | 13 ++++ app/app/services/user.js | 2 +- 8 files changed, 91 insertions(+), 63 deletions(-) create mode 100644 app/app/serializers/page-meta.js create mode 100644 app/app/serializers/page.js create mode 100644 app/app/serializers/protected-folder-participant.js diff --git a/app/app/components/settings/user-list.js b/app/app/components/settings/user-list.js index c03ec12b..32bc4a25 100644 --- a/app/app/components/settings/user-list.js +++ b/app/app/components/settings/user-list.js @@ -1,11 +1,11 @@ // Copyright 2016 Documize Inc. . All rights reserved. // -// This software (Documize Community Edition) is licensed under +// This software (Documize Community Edition) is licensed under // GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html // // You can operate outside the AGPL restrictions by purchasing // Documize Enterprise Edition and obtaining a commercial license -// by contacting . +// by contacting . // // https://documize.com @@ -54,7 +54,8 @@ export default Ember.Component.extend({ let self = this; let user = this.users.findBy("id", id); - this.set('editUser', user.copy()); + let userCopy = user.getProperties('id', 'created', 'revised', 'firstname', 'lastname', 'email', 'initials', 'active', 'editor', 'admin', 'accounts'); + this.set('editUser', userCopy); this.set('password', { password: "", confirmation: "" @@ -112,15 +113,15 @@ export default Ember.Component.extend({ let user = this.get('editUser'); let password = this.get('password'); - if (is.empty(user.get('firstname'))) { + if (is.empty(user.firstname)) { $("#edit-firstname").addClass("error").focus(); return; } - if (is.empty(user.get('lastname'))) { + if (is.empty(user.lastname)) { $("#edit-lastname").addClass("error").focus(); return; } - if (is.empty(user.get('email'))) { + if (is.empty(user.email)) { $("#edit-email").addClass("error").focus(); return; } @@ -144,4 +145,4 @@ export default Ember.Component.extend({ this.attrs.onDelete(user); } } -}); \ No newline at end of file +}); diff --git a/app/app/models/page.js b/app/app/models/page.js index f0955782..bf7a5b4b 100644 --- a/app/app/models/page.js +++ b/app/app/models/page.js @@ -25,8 +25,6 @@ export default Model.extend({ body: attr('string'), rawBody: attr('string'), meta: attr(), - created: attr(), - revised: attr(), tagName: Ember.computed('level', function () { return "h" + this.get('level'); @@ -39,5 +37,7 @@ export default Model.extend({ tocIndentCss: Ember.computed('tocIndent', function () { let tocIndent = this.get('tocIndent'); return `margin-left-${tocIndent}`; - }) + }), + created: attr(), + revised: attr() }); diff --git a/app/app/models/user.js b/app/app/models/user.js index d2eaa869..7c3fc94f 100644 --- a/app/app/models/user.js +++ b/app/app/models/user.js @@ -34,22 +34,5 @@ export default Model.extend({ let first = this.get('firstname').trim(); let last = this.get('lastname').trim(); this.set('initials', first.substr(0, 1) + last.substr(0, 1)); - }, - // - // copy() { - // let copy = UserModel.create(); - // copy.id = this.id; - // copy.created = this.created; - // copy.revised = this.revised; - // copy.firstname = this.firstname; - // copy.lastname = this.lastname; - // copy.email = this.email; - // copy.initials = this.initials; - // copy.active = this.active; - // copy.editor = this.editor; - // copy.admin = this.admin; - // copy.accounts = this.accounts; - // - // return copy; - // } + } }); diff --git a/app/app/pods/document/wizard/controller.js b/app/app/pods/document/wizard/controller.js index a67d82ee..d2421e3d 100644 --- a/app/app/pods/document/wizard/controller.js +++ b/app/app/pods/document/wizard/controller.js @@ -3,47 +3,56 @@ import models from '../../../utils/model'; import NotifierMixin from '../../../mixins/notifier'; export default Ember.Controller.extend(NotifierMixin, { - documentService: Ember.inject.service('document'), + documentService: Ember.inject.service('document'), - actions: { - onCancel() { - this.transitionToRoute('document'); - }, + actions: { + onCancel() { + this.transitionToRoute('document'); + }, - onAddSection(section) { + onAddSection(section) { let self = this; + debugger; + + console.log(section.get('contentType')); this.audit.record("added-section"); - this.audit.record("added-section-" + section.contentType); + this.audit.record("added-section-" + section.get('contentType')); - let page = models.PageModel.create({ - documentId: this.get('model.document.id'), - title: `${section.title} Section`, - level: 1, - sequence: 2048, - body: "", - contentType: section.contentType - }); + let page = { + documentId: this.get('model.document.id'), + title: `${section.get('contentType')} Section`, + level: 1, + sequence: 2048, + body: "", + contentType: section.get('contentType') + }; - let meta = models.PageMetaModel.create({ - documentId: this.get('model.document.id'), - rawBody: "", - config: "" - }); + let data = this.get('store').normalize('page', page); + let pageData = this.get('store').push({ data: data }); - let model = { - page: page, - meta: meta - }; + let meta = { + documentId: this.get('model.document.id'), + rawBody: "", + config: "" + }; - this.get('documentService').addPage(this.get('model.document.id'), model).then(function(newPage) { - self.transitionToRoute('document.edit', - self.get('model.folder.id'), - self.get('model.folder.slug'), - self.get('model.document.id'), - self.get('model.document.slug'), - newPage.id); - }); - } - } + let metaData = this.get('store').normalize('page-meta', meta); + let pageMetaData = this.get('store').push({ data: metaData }); + + let model = { + page: pageData, + meta: pageMetaData + }; + + this.get('documentService').addPage(this.get('model.document.id'), model).then((newPage) => { + this.transitionToRoute('document.edit', + this.get('model.folder.id'), + this.get('model.folder.slug'), + this.get('model.document.id'), + this.get('model.document.slug'), + newPage.id); + }); + } + } }); diff --git a/app/app/serializers/page-meta.js b/app/app/serializers/page-meta.js new file mode 100644 index 00000000..6372f524 --- /dev/null +++ b/app/app/serializers/page-meta.js @@ -0,0 +1,11 @@ +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + normalize(modelClass, resourceHash) { + return { + id: resourceHash.id ? resourceHash.id : resourceHash.documentId, + type: modelClass.modelName, + attributes: resourceHash + }; + } +}); diff --git a/app/app/serializers/page.js b/app/app/serializers/page.js new file mode 100644 index 00000000..6372f524 --- /dev/null +++ b/app/app/serializers/page.js @@ -0,0 +1,11 @@ +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + normalize(modelClass, resourceHash) { + return { + id: resourceHash.id ? resourceHash.id : resourceHash.documentId, + type: modelClass.modelName, + attributes: resourceHash + }; + } +}); diff --git a/app/app/serializers/protected-folder-participant.js b/app/app/serializers/protected-folder-participant.js new file mode 100644 index 00000000..d38ff5dd --- /dev/null +++ b/app/app/serializers/protected-folder-participant.js @@ -0,0 +1,13 @@ +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + normalize(modelClass, resourceHash) { + return { + data: { + id: resourceHash.id ? resourceHash.id : resourceHash.folderId + resourceHash.userId, + type: modelClass.modelName, + attributes: resourceHash + } + }; + } +}); diff --git a/app/app/services/user.js b/app/app/services/user.js index e28bc394..5cdea303 100644 --- a/app/app/services/user.js +++ b/app/app/services/user.js @@ -76,7 +76,7 @@ export default Ember.Service.extend({ // Updates an existing user record. save(user) { - let userId = user.get('id'); + let userId = user.id; let url = `users/${userId}`; return this.get('ajax').request(url, {