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:
parent
f2734edfae
commit
c3b13f1626
11 changed files with 42 additions and 35 deletions
|
@ -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, {
|
|||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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')}}
|
||||
|
|
|
@ -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}}
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div id="{{contentId}}" class="dropdown-menu">
|
||||
<div id="{{contentId}}" class="dropdown-menu non-printable">
|
||||
{{yield}}
|
||||
</div>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue