From b638d6a1145a61895da2ff1a049bafafc2a0e6c2 Mon Sep 17 00:00:00 2001 From: zinyando Date: Thu, 11 Aug 2016 14:38:36 +0200 Subject: [PATCH] Create attachment model and push attachment data into store --- app/app/components/layout/zone-navigation.js | 2 +- app/app/models/template.js | 14 ++- app/app/services/document.js | 6 +- app/app/services/session.js | 5 +- app/app/services/template.js | 89 +++++++++++--------- 5 files changed, 67 insertions(+), 49 deletions(-) diff --git a/app/app/components/layout/zone-navigation.js b/app/app/components/layout/zone-navigation.js index cf52fc08..6ec0c85b 100644 --- a/app/app/components/layout/zone-navigation.js +++ b/app/app/components/layout/zone-navigation.js @@ -19,7 +19,7 @@ export default Ember.Component.extend({ didInitAttrs() { if (this.get("session.authenticated")) { - this.get("session.user.accounts").forEach((account)=>{ + this.get("session.user.accounts").forEach((account) => { // TODO: do not mutate account.active here account.active = account.orgId === this.get("appMeta.orgId"); }); diff --git a/app/app/models/template.js b/app/app/models/template.js index 1246b0de..2f9cbac8 100644 --- a/app/app/models/template.js +++ b/app/app/models/template.js @@ -1,7 +1,19 @@ import Model from 'ember-data/model'; -// import attr from 'ember-data/attr'; +import attr from 'ember-data/attr'; +import stringUtil from '../utils/string'; +import Ember from 'ember'; // import { belongsTo, hasMany } from 'ember-data/relationships'; export default Model.extend({ + author: attr('string'), + dated: attr(), + description: attr('string'), + title: attr('string'), + type: attr('number', { defaultValue: 0 }), + slug: Ember.computed('title', function () { + return stringUtil.makeSlug(this.get('title')); + }), + created: attr(), + revised: attr() }); diff --git a/app/app/services/document.js b/app/app/services/document.js index 96d0e9c8..d0fa3283 100644 --- a/app/app/services/document.js +++ b/app/app/services/document.js @@ -256,9 +256,9 @@ export default Ember.Service.extend({ method: 'GET' }).then((response) => { let data = []; - _.each(response, function (obj) { - let data = this.get('store').normalize('attachment', obj); - let attachments = this.get('store').push({ data: data }); + _.each(response, (obj) => { + let attachmentData = this.get('store').normalize('attachment', obj); + let attachments = this.get('store').push({ data: attachmentData }); data.pushObject(attachments); }); return data; diff --git a/app/app/services/session.js b/app/app/services/session.js index 5194923e..d95bdf5d 100644 --- a/app/app/services/session.js +++ b/app/app/services/session.js @@ -38,8 +38,9 @@ export default SimpleAuthSession.extend({ user: computed('isAuthenticated', 'session.content.authenticated.user', function () { if (this.get('isAuthenticated')) { let user = this.get('session.content.authenticated.user') || { id: '' }; - let data = this.get('store').normalize('user', user); - return this.get('store').push({ data: data }); + // let data = this.get('store').normalize('user', user); + // return this.get('store').push({ data: data }); + return models.UserModel.create(user); } }), diff --git a/app/app/services/template.js b/app/app/services/template.js index eeea0646..9f9af1d8 100644 --- a/app/app/services/template.js +++ b/app/app/services/template.js @@ -12,52 +12,58 @@ import Ember from 'ember'; import models from '../utils/model'; +const { + inject: { service } +} = Ember; + export default Ember.Service.extend({ - sessionService: Ember.inject.service('session'), - ajax: Ember.inject.service(), + sessionService: service('session'), + ajax: service(), + store: service(), - importStockTemplate: function(folderId, templateId) { - let url = `templates/${templateId}/folder/${folderId}?type=stock`; + importStockTemplate: function (folderId, templateId) { + let url = `templates/${templateId}/folder/${folderId}?type=stock`; - return this.get('ajax').request(url, { - method: "POST" - }); - }, + return this.get('ajax').request(url, { + method: "POST" + }); + }, - importSavedTemplate: function(folderId, templateId) { - let url = `templates/${templateId}/folder/${folderId}?type=saved`; + importSavedTemplate: function (folderId, templateId) { + let url = `templates/${templateId}/folder/${folderId}?type=saved`; - return this.get('ajax').post(url).then((doc)=>{ - let docModel = models.DocumentModel.create(doc); - return docModel; - }); - }, + return this.get('ajax').post(url).then((doc) => { + let data = this.get('store').normalize('document', doc); + return this.get('store').push({ data: data }); + }); + }, - getSavedTemplates() { - return this.get('ajax').request(`templates`, { - method: 'GET' - }).then((response) => { - if (is.not.array(response)) { - response = []; - } - let templates = Ember.ArrayProxy.create({ - content: Ember.A([]) - }); + getSavedTemplates() { + return this.get('ajax').request(`templates`, { + method: 'GET' + }).then((response) => { + if (is.not.array(response)) { + response = []; + } + let templates = Ember.ArrayProxy.create({ + content: Ember.A([]) + }); - _.each(response, function(template) { - let templateModel = models.TemplateModel.create(template); - templates.pushObject(templateModel); - }); + _.each(response, (template) => { + let data = this.get('store').normalize('template', template); + let templateModel = this.get('store').push({ data: data }); + templates.pushObject(templateModel); + }); - return templates; - }); - }, + return templates; + }); + }, - getStockTemplates() { - return this.get('ajax').request(`templates/stock`, { - method: 'GET' - }); - }, + getStockTemplates() { + return this.get('ajax').request(`templates/stock`, { + method: 'GET' + }); + }, saveAsTemplate(documentId, name, excerpt) { let payload = { @@ -66,10 +72,9 @@ export default Ember.Service.extend({ Excerpt: excerpt }; - return this.get('ajax').request(`templates`, { - method: 'POST', - data: JSON.stringify(payload) - }).then(() => { - }); + return this.get('ajax').request(`templates`, { + method: 'POST', + data: JSON.stringify(payload) + }).then(() => {}); } });