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

set page sequence based on page type

This commit is contained in:
Harvey Kandola 2016-11-10 15:06:59 -08:00
parent f2734edfae
commit c3b13f1626
11 changed files with 42 additions and 35 deletions

View file

@ -163,14 +163,13 @@ export default Ember.Controller.extend(NotifierMixin, {
},
onAddSection(section) {
this.audit.record("added-section");
this.audit.record("added-section-" + section.get('contentType'));
let page = {
documentId: this.get('model.id'),
title: `${section.get('title')} Section`,
title: `${section.get('title')}`,
level: 1,
sequence: 2048,
sequence: 0,
body: "",
contentType: section.get('contentType'),
pageType: section.get('pageType')
@ -194,6 +193,10 @@ export default Ember.Controller.extend(NotifierMixin, {
};
this.get('documentService').addPage(this.get('model.id'), model).then((newPage) => {
let data = this.get('store').normalize('page', newPage);
this.get('store').push(data);
console.log(newPage);
this.transitionToRoute('document.edit',
this.get('folder.id'),
this.get('folder.slug'),
@ -213,4 +216,4 @@ export default Ember.Controller.extend(NotifierMixin, {
});
}
}
});
});

View file

@ -15,7 +15,6 @@ import NotifierMixin from '../../../mixins/notifier';
export default Ember.Controller.extend(NotifierMixin, {
documentService: Ember.inject.service('document'),
templateService: Ember.inject.service('template'),
queryParams: ['page'],
page: null,
folder: {},
@ -92,17 +91,6 @@ export default Ember.Controller.extend(NotifierMixin, {
});
},
// onSaveTemplate(name, desc) {
// this.get('templateService').saveAsTemplate(this.model.get('id'), name, desc).then(function () {});
// },
//
// onDocumentChange(doc) {
// let self = this;
// this.get('documentService').save(doc).then(function () {
// self.set('model', doc);
// });
// },
onPageDeleted(deletePage) {
let self = this;
let documentId = this.get('model.id');

View file

@ -1,2 +1,2 @@
{{document/document-view document=model meta=meta pages=pages attachments=attachments folder=folder
folders=folders isEditor=isEditor gotoPage=(action 'gotoPage') onDeletePage=(action 'onPageDeleted')}}
{{document/document-view document=model meta=meta pages=pages attachments=attachments folder=folder folders=folders isEditor=isEditor
gotoPage=(action 'gotoPage') onDeletePage=(action 'onPageDeleted')}}

View file

@ -1,9 +1,11 @@
{{layout/zone-navigation}}
{{#layout/zone-sidebar}}
{{document/document-sidebar document=model folder=folder pages=pages page=page isEditor=isEditor sections=sections onAddSection=(action 'onAddSection') changePageSequence=(action 'onPageSequenceChange') changePageLevel=(action 'onPageLevelChange') gotoPage=(action 'gotoPage')}}
{{document/document-sidebar document=model folder=folder pages=pages page=page isEditor=isEditor sections=sections
onAddSection=(action 'onAddSection') changePageSequence=(action 'onPageSequenceChange') changePageLevel=(action 'onPageLevelChange') gotoPage=(action 'gotoPage')}}
{{/layout/zone-sidebar}}
{{#layout/zone-content}}
{{document/document-toolbar document=model pages=pages tabs=tabs folder=folder isEditor=isEditor onSaveTemplate=(action 'onSaveTemplate') onDocumentDelete=(action 'onDocumentDelete')}} {{outlet}}
{{document/document-toolbar document=model pages=pages tabs=tabs folder=folder isEditor=isEditor
onSaveTemplate=(action 'onSaveTemplate') onDocumentDelete=(action 'onDocumentDelete')}} {{outlet}}
{{/layout/zone-content}}

View file

@ -16,7 +16,7 @@ export default Ember.Controller.extend(NotifierMixin, {
documentId: this.get('model.document.id'),
title: `${section.get('title')}`,
level: 1,
sequence: 2048,
sequence: 0,
body: "",
contentType: section.get('contentType'),
pageType: section.get('pageType')

View file

@ -144,9 +144,6 @@ export default Ember.Service.extend({
return this.get('ajax').post(url, {
data: JSON.stringify(payload),
contentType: 'json'
}).then((response) => {
let data = this.get('store').normalize('page', response);
return this.get('store').push(data);
});
},

View file

@ -1,3 +1,3 @@
<div id="{{contentId}}" class="dropdown-menu">
<div id="{{contentId}}" class="dropdown-menu non-printable">
{{yield}}
</div>

View file

@ -179,6 +179,8 @@ func processDocument(p request.Persister, filename, job, folderID string, fileRe
page.Sequence = float64(k+1) * 1024.0 // need to start above 0 to allow insertion before the first item
pageID := util.UniqueID()
page.RefID = pageID
page.ContentType = "wysiwyg"
page.PageType = "section"
meta := entity.PageMeta{}
meta.PageID = pageID

View file

@ -194,12 +194,25 @@ type Page struct {
func (p *Page) SetDefaults() {
if len(p.ContentType) == 0 {
p.ContentType = "wysiwyg"
p.PageType = "section"
}
if p.IsTabType() {
p.Sequence = 0
}
p.Title = strings.TrimSpace(p.Title)
}
// IsSectionType tells us that page is "words"
func (p *Page) IsSectionType() bool {
return p.PageType == "section"
}
// IsTabType tells us that page is "SaaS data embed"
func (p *Page) IsTabType() bool {
return p.PageType == "tab"
}
// PageMeta holds raw page data that is used to
// render the actual page data.
type PageMeta struct {

View file

@ -29,24 +29,26 @@ import (
func (p *Persister) AddPage(model models.PageModel) (err error) {
err = nil
model.Page.OrgID = p.Context.OrgID
model.Page.UserID = p.Context.UserID
model.Page.Created = time.Now().UTC()
model.Page.Revised = time.Now().UTC()
model.Page.UserID = p.Context.UserID
model.Page.SetDefaults()
model.Meta.OrgID = p.Context.OrgID
model.Meta.UserID = p.Context.UserID
model.Meta.DocumentID = model.Page.DocumentID
model.Meta.Created = time.Now().UTC()
model.Meta.Revised = time.Now().UTC()
model.Meta.SetDefaults()
// Get maximum page sequence number and increment
row := Db.QueryRow("SELECT max(sequence) FROM page WHERE orgid=? and documentid=?", p.Context.OrgID, model.Page.DocumentID)
var maxSeq float64
err = row.Scan(&maxSeq)
if model.Page.IsSectionType() {
// Get maximum page sequence number and increment
row := Db.QueryRow("SELECT max(sequence) FROM page WHERE orgid=? AND documentid=? AND pagetype='section'", p.Context.OrgID, model.Page.DocumentID)
var maxSeq float64
err = row.Scan(&maxSeq)
if err != nil {
log.Error("unable to select max page.sequence", err)
}
if err == nil {
model.Page.Sequence = maxSeq * 2
}

View file

@ -1,6 +1,6 @@
/* community edition */
ALTER TABLE page ADD COLUMN `pagetype` CHAR(10) NOT NULL DEFAULT 'section' AFTER `contenttype`;
UPDATE page SET pagetype='tab' WHERE refid IN (SELECT pageid FROM pagemeta WHERE externalsource=1);
UPDATE page SET pagetype='tab', sequence=0 WHERE refid IN (SELECT pageid FROM pagemeta WHERE externalsource=1);
ALTER TABLE revision ADD COLUMN `pagetype` CHAR(10) NOT NULL DEFAULT 'section' AFTER `contenttype`;
UPDATE revision SET pagetype='tab' WHERE pageid IN (SELECT pageid FROM pagemeta WHERE externalsource=1);