fix: kanban switcher in page custom actions
This commit is contained in:
parent
e54a1262b4
commit
3026801cf0
3 changed files with 38 additions and 18 deletions
|
|
@ -113,16 +113,9 @@ frappe.views.ListViewSelect = class ListViewSelect
|
|||
condition: true,
|
||||
action: () => this.setup_kanban_boards(),
|
||||
current_view_handler: () => {
|
||||
frappe.views.KanbanView.get_kanbans(this.doctype).then((kanbans) => {
|
||||
this.setup_dropdown_in_sidebar(
|
||||
'Kanban',
|
||||
kanbans,
|
||||
{
|
||||
label: __('New Kanban Board'),
|
||||
action: () => frappe.views.KanbanView.show_kanban_dialog(this.doctype)
|
||||
}
|
||||
);
|
||||
});
|
||||
frappe.views.KanbanView.get_kanbans(this.doctype).then((kanbans) =>
|
||||
this.setup_kanban_switcher(kanbans)
|
||||
);
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
@ -154,7 +147,7 @@ frappe.views.ListViewSelect = class ListViewSelect
|
|||
</div>`;
|
||||
} else {
|
||||
items.map(item => {
|
||||
if (item.name == frappe.utils.to_title_case(frappe.get_route().slice(-1)[0] || '')) {
|
||||
if (item.name == this.get_page_name()) {
|
||||
placeholder = item.name;
|
||||
}
|
||||
html += `<li><a class="dropdown-item" href="${item.route}">${item.name}</a></li>`;
|
||||
|
|
@ -173,6 +166,33 @@ frappe.views.ListViewSelect = class ListViewSelect
|
|||
views_wrapper.removeClass('hide');
|
||||
}
|
||||
|
||||
setup_kanban_switcher(kanbans) {
|
||||
const kanban_switcher =
|
||||
this.page.add_custom_button_group(
|
||||
__('Select Kanban'), null, this.list_view.$filter_section
|
||||
);
|
||||
|
||||
kanbans.map(k => {
|
||||
this.page.add_custom_menu_item(
|
||||
kanban_switcher,
|
||||
k.name,
|
||||
() => this.set_route('kanban', k.name),
|
||||
false
|
||||
);
|
||||
});
|
||||
|
||||
this.page.add_custom_menu_item(
|
||||
kanban_switcher,
|
||||
__('Create New Kanban Board'),
|
||||
() => frappe.views.KanbanView.show_kanban_dialog(this.doctype),
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
get_page_name() {
|
||||
return frappe.utils.to_title_case(frappe.get_route().slice(-1)[0] || '')
|
||||
}
|
||||
|
||||
get_reports() {
|
||||
// add reports linked to this doctype to the dropdown
|
||||
let added = [];
|
||||
|
|
|
|||
|
|
@ -436,9 +436,9 @@ frappe.ui.Page = Class.extend({
|
|||
if (standard) {
|
||||
$li.appendTo(parent);
|
||||
} else {
|
||||
this.divider = parent.find(".divider");
|
||||
this.divider = parent.find(".dropdown-divider");
|
||||
if(!this.divider.length) {
|
||||
this.divider = $('<li class="divider user-action"></li>').prependTo(parent);
|
||||
this.divider = $('<li class="dropdown-divider user-action"></li>').prependTo(parent);
|
||||
}
|
||||
$li.addClass("user-action").insertBefore(this.divider);
|
||||
}
|
||||
|
|
@ -506,7 +506,7 @@ frappe.ui.Page = Class.extend({
|
|||
},
|
||||
|
||||
add_divider: function() {
|
||||
return $('<li class="divider"></li>').appendTo(this.menu);
|
||||
return $('<li class="dropdown-divider"></li>').appendTo(this.menu);
|
||||
},
|
||||
|
||||
get_or_add_inner_group_button: function(label) {
|
||||
|
|
@ -693,7 +693,7 @@ frappe.ui.Page = Class.extend({
|
|||
add_custom_button_group: function(label, icon, parent) {
|
||||
let dropdown_label = `<span class="hidden-xs">
|
||||
<span class="custom-btn-group-label">${__(label)}</span>
|
||||
<span class="caret"></span>
|
||||
${frappe.utils.icon('select', 'xs')}
|
||||
</span>`;
|
||||
|
||||
if (icon) {
|
||||
|
|
@ -708,7 +708,7 @@ frappe.ui.Page = Class.extend({
|
|||
}
|
||||
|
||||
let custom_btn_group = $(`
|
||||
<div class="custom-btn-group hide">
|
||||
<div class="custom-btn-group">
|
||||
<button type="button" class="btn btn-default btn-sm ellipsis" data-toggle="dropdown" aria-expanded="false">
|
||||
${dropdown_label}
|
||||
</button>
|
||||
|
|
@ -717,7 +717,7 @@ frappe.ui.Page = Class.extend({
|
|||
`);
|
||||
|
||||
if (!parent) parent = this.custom_actions;
|
||||
this.custom_actions.removeClass('hide').append(custom_btn_group);
|
||||
parent.removeClass('hide').append(custom_btn_group);
|
||||
|
||||
return custom_btn_group.find('.dropdown-menu');
|
||||
},
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ frappe.views.KanbanView.get_kanbans = function (doctype) {
|
|||
.then((kanban_boards) => {
|
||||
if (kanban_boards) {
|
||||
kanban_boards.forEach(board => {
|
||||
let route = `/app/${frappe.router.slug(board.reference_doctype)}/kanban/${board.name}`;
|
||||
let route = `/app/${frappe.router.slug(board.reference_doctype)}/view/kanban/${board.name}`;
|
||||
kanbans.push({ name: board.name, route: route });
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue