Implement "Create page from item"
This commit is contained in:
parent
67af38f785
commit
760eb11694
|
@ -1,6 +1,8 @@
|
|||
import $ from 'jquery'
|
||||
import 'jquery-contextmenu'
|
||||
import copy from 'copy-text-to-clipboard'
|
||||
import axios from "axios";
|
||||
import qs from "querystring";
|
||||
|
||||
function renderTree(tree) {
|
||||
if (!tree) return []
|
||||
|
@ -22,7 +24,17 @@ function connectContextMenu(editor) {
|
|||
createNewPage: {
|
||||
name: 'Create page from item',
|
||||
callback: function (key, opt) {
|
||||
console.log('Create page from item', key, opt)
|
||||
console.log('Create page from item')
|
||||
editor.flat(this, {base: true}).then(result => {
|
||||
let data = {
|
||||
'json': 1,
|
||||
'p': result.title,
|
||||
'summary': "",
|
||||
'content': JSON.stringify(result.children),
|
||||
};
|
||||
console.log(data)
|
||||
return axios.post('/save/', qs.encode(data))
|
||||
}).then()
|
||||
},
|
||||
className: 'action-new-page'
|
||||
},
|
||||
|
|
|
@ -111,12 +111,13 @@ function editor(root, inputData, options) {
|
|||
});
|
||||
}
|
||||
|
||||
function flat(element) {
|
||||
function flat(element, opt) {
|
||||
opt = opt || {}
|
||||
let item = $(element).parents('.list-item')
|
||||
let id = item.attr('data-id')
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
resolve(store.flat(id));
|
||||
resolve(store.flat(id, opt));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -365,8 +365,23 @@ function Store(inputData) {
|
|||
return [values[from], ..._.takeWhile(items, item => item.indented > values[from].indented)]
|
||||
}
|
||||
|
||||
function flat(from) {
|
||||
return selectItemsFrom(from)
|
||||
function flat(from, opt) {
|
||||
opt = opt || {}
|
||||
let result = selectItemsFrom(from)
|
||||
if (opt.base && result.length > 0) {
|
||||
const first = result[0]
|
||||
let children = _.map(result.slice(1), (item) => {
|
||||
let newItem = _.clone(item)
|
||||
newItem.indented -= first.indented+1
|
||||
newItem.id = ID()
|
||||
return newItem
|
||||
})
|
||||
return {
|
||||
title: first.text,
|
||||
children
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user