1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-23 15:19:42 +02:00

Create attachment model and push attachment data into store

This commit is contained in:
zinyando 2016-08-11 14:38:36 +02:00
parent d47f1e11b8
commit b638d6a114
5 changed files with 67 additions and 49 deletions

View file

@ -19,7 +19,7 @@ export default Ember.Component.extend({
didInitAttrs() { didInitAttrs() {
if (this.get("session.authenticated")) { 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 // TODO: do not mutate account.active here
account.active = account.orgId === this.get("appMeta.orgId"); account.active = account.orgId === this.get("appMeta.orgId");
}); });

View file

@ -1,7 +1,19 @@
import Model from 'ember-data/model'; 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'; // import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({ 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()
}); });

View file

@ -256,9 +256,9 @@ export default Ember.Service.extend({
method: 'GET' method: 'GET'
}).then((response) => { }).then((response) => {
let data = []; let data = [];
_.each(response, function (obj) { _.each(response, (obj) => {
let data = this.get('store').normalize('attachment', obj); let attachmentData = this.get('store').normalize('attachment', obj);
let attachments = this.get('store').push({ data: data }); let attachments = this.get('store').push({ data: attachmentData });
data.pushObject(attachments); data.pushObject(attachments);
}); });
return data; return data;

View file

@ -38,8 +38,9 @@ export default SimpleAuthSession.extend({
user: computed('isAuthenticated', 'session.content.authenticated.user', function () { user: computed('isAuthenticated', 'session.content.authenticated.user', function () {
if (this.get('isAuthenticated')) { if (this.get('isAuthenticated')) {
let user = this.get('session.content.authenticated.user') || { id: '' }; let user = this.get('session.content.authenticated.user') || { id: '' };
let data = this.get('store').normalize('user', user); // let data = this.get('store').normalize('user', user);
return this.get('store').push({ data: data }); // return this.get('store').push({ data: data });
return models.UserModel.create(user);
} }
}), }),

View file

@ -12,52 +12,58 @@
import Ember from 'ember'; import Ember from 'ember';
import models from '../utils/model'; import models from '../utils/model';
const {
inject: { service }
} = Ember;
export default Ember.Service.extend({ export default Ember.Service.extend({
sessionService: Ember.inject.service('session'), sessionService: service('session'),
ajax: Ember.inject.service(), ajax: service(),
store: service(),
importStockTemplate: function(folderId, templateId) { importStockTemplate: function (folderId, templateId) {
let url = `templates/${templateId}/folder/${folderId}?type=stock`; let url = `templates/${templateId}/folder/${folderId}?type=stock`;
return this.get('ajax').request(url, { return this.get('ajax').request(url, {
method: "POST" method: "POST"
}); });
}, },
importSavedTemplate: function(folderId, templateId) { importSavedTemplate: function (folderId, templateId) {
let url = `templates/${templateId}/folder/${folderId}?type=saved`; let url = `templates/${templateId}/folder/${folderId}?type=saved`;
return this.get('ajax').post(url).then((doc)=>{ return this.get('ajax').post(url).then((doc) => {
let docModel = models.DocumentModel.create(doc); let data = this.get('store').normalize('document', doc);
return docModel; return this.get('store').push({ data: data });
}); });
}, },
getSavedTemplates() { getSavedTemplates() {
return this.get('ajax').request(`templates`, { return this.get('ajax').request(`templates`, {
method: 'GET' method: 'GET'
}).then((response) => { }).then((response) => {
if (is.not.array(response)) { if (is.not.array(response)) {
response = []; response = [];
} }
let templates = Ember.ArrayProxy.create({ let templates = Ember.ArrayProxy.create({
content: Ember.A([]) content: Ember.A([])
}); });
_.each(response, function(template) { _.each(response, (template) => {
let templateModel = models.TemplateModel.create(template); let data = this.get('store').normalize('template', template);
templates.pushObject(templateModel); let templateModel = this.get('store').push({ data: data });
}); templates.pushObject(templateModel);
});
return templates; return templates;
}); });
}, },
getStockTemplates() { getStockTemplates() {
return this.get('ajax').request(`templates/stock`, { return this.get('ajax').request(`templates/stock`, {
method: 'GET' method: 'GET'
}); });
}, },
saveAsTemplate(documentId, name, excerpt) { saveAsTemplate(documentId, name, excerpt) {
let payload = { let payload = {
@ -66,10 +72,9 @@ export default Ember.Service.extend({
Excerpt: excerpt Excerpt: excerpt
}; };
return this.get('ajax').request(`templates`, { return this.get('ajax').request(`templates`, {
method: 'POST', method: 'POST',
data: JSON.stringify(payload) data: JSON.stringify(payload)
}).then(() => { }).then(() => {});
});
} }
}); });