1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-25 08:09:43 +02:00

Add document model and push document data to store

This commit is contained in:
zinyando 2016-08-09 13:16:29 +02:00
parent a78a73d552
commit 624d00402e
10 changed files with 140 additions and 21 deletions

View file

@ -0,0 +1,14 @@
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
documentId: attr('string'),
extension: attr('string'),
fileId: attr('string'),
filename: attr('string'),
job: attr('string'),
orgId: attr('string'),
created: attr(),
revised: attr(),
});

View file

@ -0,0 +1,23 @@
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import Ember from 'ember';
import stringUtil from '../utils/string';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
name: attr('string'),
excerpt: attr('string'),
job: attr('string'),
location: attr('string'),
orgId: attr('string'),
folderId: attr('string'),
userId: attr('string'),
tags: attr('string'),
template: attr('string'),
// client-side property
selected: attr('boolean', { defaultValue: false }),
slug: Ember.computed('name', function () {
return stringUtil.makeSlug(this.get('name'));
})
});

7
app/app/models/folder.js Normal file
View file

@ -0,0 +1,7 @@
import Model from 'ember-data/model';
// import attr from 'ember-data/attr';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
});

View file

@ -0,0 +1,7 @@
import Model from 'ember-data/model';
// import attr from 'ember-data/attr';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
});

View file

@ -0,0 +1,14 @@
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
pageId: attr('string'),
documentId: attr('string'),
orgId: attr('string'),
rawBody: attr('string'),
config: attr(),
externalSource: attr('boolean', { defaultValue: false }),
created: attr(),
revised: attr(),
});

32
app/app/models/page.js Normal file
View file

@ -0,0 +1,32 @@
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import Ember from 'ember';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
documentId: attr('string'),
orgId: attr('string'),
contentType: attr('string'),
level: attr('number', { defaultValue: 1 }),
sequence: attr('number', { defaultValue: 0 }),
revisions: attr('number', { defaultValue: 0 }),
title: attr('string'),
body: attr('string'),
rawBody: attr('string'),
meta: attr(),
created: attr(),
revised: attr(),
tagName: Ember.computed('level', function () {
return "h" + this.get('level');
}),
tocIndent: Ember.computed('level', function () {
return (this.get('level') - 1) * 20;
}),
tocIndentCss: Ember.computed('tocIndent', function () {
let tocIndent = this.get('tocIndent');
return `margin-left-${tocIndent}`;
})
});

View file

@ -0,0 +1,7 @@
import Model from 'ember-data/model';
// import attr from 'ember-data/attr';
// import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
});

View file

@ -10,18 +10,23 @@
// https://documize.com
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(),
// Returns document model for specified document id.
getDocument(documentId) {
return this.get('ajax').request(`documents/${documentId}`, {
method: "GET"
}).then((response) => {
return models.DocumentModel.create(response);
let doc = this.get('store').normalize('document', response);
return this.get('store').push({ data: doc });
});
},
@ -34,8 +39,9 @@ export default Ember.Service.extend({
content: Ember.A([])
});
_.each(response, function (doc) {
let documentModel = models.DocumentModel.create(doc);
_.each(response, (doc) => {
let data = this.get('store').normalize('document', doc);
let documentModel = this.get('store').push({ data: data });
documents.pushObject(documentModel);
});
@ -53,7 +59,8 @@ export default Ember.Service.extend({
});
_.each(response, function (doc) {
let documentModel = models.DocumentModel.create(doc);
let data = this.get('store').normalize('document', doc);
let documentModel = this.get('store').push({ data: data });
documents.pushObject(documentModel);
});
@ -192,8 +199,10 @@ export default Ember.Service.extend({
method: 'GET'
}).then((response) => {
let data = [];
_.each(response, function (obj) {
data.pushObject(models.PageModel.create(obj));
_.each(response, (obj) => {
let data = this.get('store').normalize('page', obj);
let tableOfContents = this.get('store').push({ data: data });
data.pushObject(tableOfContents);
});
return data;
@ -208,8 +217,10 @@ export default Ember.Service.extend({
}).then((response) => {
let pages = [];
_.each(response, function (page) {
pages.pushObject(models.PageModel.create(page));
_.each(response, (page) => {
let data = this.get('store').normalize('page', page);
let pageData = this.get('store').push({ data: data });
pages.pushObject(pageData);
});
return pages;
@ -222,8 +233,8 @@ export default Ember.Service.extend({
return this.get('ajax').request(`documents/${documentId}/pages/${pageId}`, {
method: 'GET'
}).then((response) => {
let page = models.PageModel.create(response);
return page;
let data = this.get('store').normalize('page', response);
return this.get('store').push({ data: data });
});
},
@ -233,8 +244,8 @@ export default Ember.Service.extend({
return this.get('ajax').request(`documents/${documentId}/pages/${pageId}/meta`, {
method: 'GET'
}).then((response) => {
let meta = models.PageMetaModel.create(response);
return meta;
let data = this.get('store').normalize('page-meta', response);
return this.get('store').push({ data: data });
});
},
@ -246,7 +257,9 @@ export default Ember.Service.extend({
}).then((response) => {
let data = [];
_.each(response, function (obj) {
data.pushObject(models.AttachmentModel.create(obj));
let data = this.get('store').normalize('attachment', obj);
let attachments = this.get('store').push({ data: data });
data.pushObject(attachments);
});
return data;
});

View file

@ -14,13 +14,15 @@ import models from '../utils/model';
import BaseService from '../services/base';
const {
get
get,
inject: { service }
} = Ember;
export default BaseService.extend({
sessionService: Ember.inject.service('session'),
ajax: Ember.inject.service(),
localStorage: Ember.inject.service(),
sessionService: service('session'),
ajax: service(),
localStorage: service(),
store: service(),
// selected folder
currentFolder: null,
@ -203,4 +205,4 @@ export default BaseService.extend({
});
});
},
});
});