fix: minor fixes
This commit is contained in:
parent
f484bf408c
commit
cb5543665f
2 changed files with 66 additions and 35 deletions
|
|
@ -11,10 +11,8 @@ from frappe.model.document import Document
|
|||
class InternalWikiPage(Document):
|
||||
|
||||
def before_insert(self):
|
||||
if frappe.db.count('Internal Wiki Page') == 0:
|
||||
self.sequence_id = 1
|
||||
else:
|
||||
self.sequence_id = frappe.get_last_doc('Internal Wiki Page').sequence_id + 1
|
||||
sequence_id_list = frappe.get_all('Internal Wiki Page', {'sequence_id'})
|
||||
self.sequence_id = max([page.sequence_id for page in sequence_id_list]) + 1
|
||||
|
||||
@frappe.whitelist()
|
||||
def save_wiki_page(title, parent, sb_items, deleted_pages, new_widgets, blocks, save=True):
|
||||
|
|
|
|||
|
|
@ -10,12 +10,10 @@ frappe.views.Wiki = class Wiki {
|
|||
this.sidebar_items = {};
|
||||
this.sorted_sidebar_items = [];
|
||||
this.deleted_sidebar_items = [];
|
||||
this.tools = {};
|
||||
this.isReadOnly = true;
|
||||
this.new_page = null;
|
||||
this.prepare_container();
|
||||
this.setup_wiki_pages();
|
||||
|
||||
this.tools = {
|
||||
header: {
|
||||
class: frappe.wiki_block.blocks['header'],
|
||||
|
|
@ -63,16 +61,16 @@ frappe.views.Wiki = class Wiki {
|
|||
if (this.all_pages) {
|
||||
frappe.wiki_pages = {};
|
||||
let root_pages = this.all_pages.filter(page => page.parent_page == '' || page.parent_page == null);
|
||||
for (let page of this.all_pages || []) {
|
||||
for (let page of this.all_pages) {
|
||||
frappe.wiki_pages[frappe.router.slug(page.name)] = page;
|
||||
}
|
||||
if (this.new_page) {
|
||||
frappe.set_route(`wiki/${frappe.router.slug(this.new_page)}`);
|
||||
this.new_page = null;
|
||||
}
|
||||
this.make_sidebar(root_pages);
|
||||
frappe.router.route();
|
||||
}
|
||||
if (this.new_page) {
|
||||
frappe.set_route(`wiki/${frappe.router.slug(this.new_page)}`);
|
||||
this.new_page = null;
|
||||
}
|
||||
frappe.router.route();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -96,30 +94,13 @@ frappe.views.Wiki = class Wiki {
|
|||
}
|
||||
|
||||
append_item(item, container) {
|
||||
let is_current_page = frappe.router.slug(item.name) == frappe.router.slug(this.get_page_to_show()) || item.name == this.new_page;
|
||||
let is_current_page = frappe.router.slug(item.name) == frappe.router.slug(this.get_page_to_show());
|
||||
if (is_current_page) {
|
||||
item.selected = true;
|
||||
this.current_page_name = item.name;
|
||||
}
|
||||
|
||||
const item_container = function (item) {
|
||||
return $(`
|
||||
<div class="sidebar-item-container" item-parent="${item.parent_page}" item-name="${item.name}">
|
||||
<div class="desk-sidebar-item standard-sidebar-item ${item.selected ? "selected" : ""}">
|
||||
<a
|
||||
href="/app/wiki/${frappe.router.slug(item.name)}"
|
||||
class="item-anchor" title="${item.name}"
|
||||
>
|
||||
<span>${frappe.utils.icon(item.icon || "folder-normal", "md")}</span>
|
||||
<span class="sidebar-item-label">${item.label || item.name}<span>
|
||||
</a>
|
||||
<div class="sidebar-item-control"></div>
|
||||
</div>
|
||||
</div>
|
||||
`);
|
||||
};
|
||||
|
||||
let $item_container = item_container(item);
|
||||
let $item_container = this.sidebar_item_container(item);
|
||||
let sidebar_control = $item_container.find('.sidebar-item-control');
|
||||
|
||||
this.add_sidebar_actions(item, sidebar_control);
|
||||
|
|
@ -151,6 +132,23 @@ frappe.views.Wiki = class Wiki {
|
|||
}
|
||||
}
|
||||
|
||||
sidebar_item_container(item) {
|
||||
return $(`
|
||||
<div class="sidebar-item-container" item-parent="${item.parent_page}" item-name="${item.name}">
|
||||
<div class="desk-sidebar-item standard-sidebar-item ${item.selected ? "selected" : ""}">
|
||||
<a
|
||||
href="/app/wiki/${frappe.router.slug(item.name)}"
|
||||
class="item-anchor" title="${item.name}"
|
||||
>
|
||||
<span>${frappe.utils.icon(item.icon || "folder-normal", "md")}</span>
|
||||
<span class="sidebar-item-label">${item.label || item.name}<span>
|
||||
</a>
|
||||
<div class="sidebar-item-control"></div>
|
||||
</div>
|
||||
</div>
|
||||
`);
|
||||
}
|
||||
|
||||
show() {
|
||||
if (!this.all_pages) {
|
||||
// pages not yet loaded, call again after a bit
|
||||
|
|
@ -256,9 +254,7 @@ frappe.views.Wiki = class Wiki {
|
|||
this.editor.readOnly.toggle();
|
||||
this.editor.isReady
|
||||
.then(() => {
|
||||
this.undo = new Undo({ editor: this.editor });
|
||||
this.undo.initialize({blocks: JSON.parse(this.content)});
|
||||
this.undo.readOnly = false;
|
||||
this.initialize_editorjs_undo();
|
||||
this.setup_customization_buttons();
|
||||
this.show_sidebar_actions();
|
||||
this.make_sidebar_sortable();
|
||||
|
|
@ -272,6 +268,12 @@ frappe.views.Wiki = class Wiki {
|
|||
});
|
||||
}
|
||||
|
||||
initialize_editorjs_undo() {
|
||||
this.undo = new Undo({ editor: this.editor });
|
||||
this.undo.initialize({blocks: JSON.parse(this.content)});
|
||||
this.undo.readOnly = false;
|
||||
}
|
||||
|
||||
show_sidebar_actions() {
|
||||
this.sidebar.find('.standard-sidebar-section').addClass('show-control');
|
||||
}
|
||||
|
|
@ -326,7 +328,7 @@ frappe.views.Wiki = class Wiki {
|
|||
animation: 150,
|
||||
fallbackOnBody: true,
|
||||
swapThreshold: 0.65,
|
||||
onEnd: function (evt) {
|
||||
onEnd: function () {
|
||||
me.sorted_sidebar_items = [];
|
||||
for (let page of $('.standard-sidebar-section').find('.sidebar-item-container')) {
|
||||
let parent_page = "";
|
||||
|
|
@ -410,6 +412,7 @@ frappe.views.Wiki = class Wiki {
|
|||
primary_action_label: __('Create'),
|
||||
primary_action: (values) => {
|
||||
d.hide();
|
||||
this.initialize_editorjs_undo();
|
||||
this.setup_customization_buttons();
|
||||
this.title = values.title;
|
||||
this.parent = values.parent;
|
||||
|
|
@ -428,6 +431,8 @@ frappe.views.Wiki = class Wiki {
|
|||
this.isReadOnly = false;
|
||||
this.editor.readOnly.toggle();
|
||||
}
|
||||
this.add_page_to_sidebar(values);
|
||||
this.show_sidebar_actions();
|
||||
this.make_sidebar_sortable();
|
||||
this.make_blocks_sortable();
|
||||
});
|
||||
|
|
@ -436,6 +441,32 @@ frappe.views.Wiki = class Wiki {
|
|||
d.show();
|
||||
}
|
||||
|
||||
add_page_to_sidebar({title, parent}) {
|
||||
let $sidebar = $('.standard-sidebar-section');
|
||||
let item = {
|
||||
name: title,
|
||||
parent_page: parent,
|
||||
};
|
||||
let $sidebar_item = this.sidebar_item_container(item);
|
||||
|
||||
this.add_custom_button(
|
||||
frappe.utils.icon('drag', 'xs'),
|
||||
null,
|
||||
"drag-handle",
|
||||
`${__('Drag')}`,
|
||||
null,
|
||||
$sidebar_item.find('.sidebar-item-control')
|
||||
);
|
||||
|
||||
if (!parent) {
|
||||
$sidebar_item.appendTo($sidebar);
|
||||
} else {
|
||||
let $child_section = $sidebar.find(`[item-name="${parent}"] .sidebar-child-item`);
|
||||
$sidebar_item.appendTo($child_section);
|
||||
$child_section.removeClass('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
initialize_editorjs(blocks) {
|
||||
const data = {
|
||||
blocks: blocks || []
|
||||
|
|
@ -456,6 +487,8 @@ frappe.views.Wiki = class Wiki {
|
|||
if (!this.title && this.current_page_name) {
|
||||
this.title = this.current_page_name;
|
||||
save = '';
|
||||
} else {
|
||||
this.current_page_name = this.title;
|
||||
}
|
||||
let me = this;
|
||||
this.editor.save().then((outputData) => {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue