mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUG If a nested page editable but parent not, user can't expand tree
If you're logged in as a specific user in a group who has view/edit permissions of a page that has a parent page which doesn't have permissions, you can't expand the tree node to get access to that nested page. This fixes LeftAndMain.Tree.js to allow expanding if there are immediate children tree nodes that are not disabled. Also fixes styling so that only immediate children nodes are greyed out. Fixes this ticket: http://open.silverstripe.org/ticket/7913
This commit is contained in:
parent
a86b54b3ed
commit
b186626b73
@ -649,7 +649,7 @@ form.import-form label.left { width: 250px; }
|
|||||||
.cms .jstree a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree a > .jstree-icon { margin-right: 3px; }
|
.cms .jstree a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree a > .jstree-icon { margin-right: 3px; }
|
||||||
.cms .jstree li.jstree-open > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-open > ul { display: block; }
|
.cms .jstree li.jstree-open > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-open > ul { display: block; }
|
||||||
.cms .jstree li.jstree-closed > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-closed > ul { display: none; }
|
.cms .jstree li.jstree-closed > ul, .TreeDropdownField .treedropdownfield-panel .jstree li.jstree-closed > ul { display: none; }
|
||||||
.cms .jstree li.disabled a, .TreeDropdownField .treedropdownfield-panel .jstree li.disabled a { color: #aaaaaa; }
|
.cms .jstree li.disabled > a, .TreeDropdownField .treedropdownfield-panel .jstree li.disabled > a { color: #aaaaaa; }
|
||||||
.cms .jstree-rtl a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; }
|
.cms .jstree-rtl a > .jstree-icon, .TreeDropdownField .treedropdownfield-panel .jstree-rtl a > .jstree-icon { margin-left: 3px; margin-right: 0; }
|
||||||
.cms .jstree-rtl li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl li { margin-left: 0; margin-right: 18px; }
|
.cms .jstree-rtl li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl li { margin-left: 0; margin-right: 18px; }
|
||||||
.cms .jstree-rtl > ul > li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl > ul > li { margin-right: 0px; }
|
.cms .jstree-rtl > ul > li, .TreeDropdownField .treedropdownfield-panel .jstree-rtl > ul > li { margin-right: 0px; }
|
||||||
|
@ -75,9 +75,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($.inArray(data.func, ['check_node', 'uncheck_node'])) {
|
if($.inArray(data.func, ['check_node', 'uncheck_node'])) {
|
||||||
//Don't allow check and uncheck if parent is disabled
|
// don't allow check and uncheck if parent is disabled
|
||||||
var node = $(data.args[0]).parents('li:first');
|
var node = $(data.args[0]).parents('li:first');
|
||||||
if(node.hasClass('disabled')) {
|
var allowedChildren = node.find('li:not(.disabled)');
|
||||||
|
|
||||||
|
// if there are child nodes that aren't disabled, allow expanding the tree
|
||||||
|
if(node.hasClass('disabled') && allowedChildren == 0) {
|
||||||
e.stopImmediatePropagation();
|
e.stopImmediatePropagation();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
li.disabled a {
|
li.disabled > a {
|
||||||
color: #aaaaaa;
|
color: #aaaaaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -638,4 +638,4 @@ li.class-ErrorPage > a .jstree-pageicon {
|
|||||||
a.jstree-loading .jstree-pageicon {
|
a.jstree-loading .jstree-pageicon {
|
||||||
background: url(../images/throbber.gif) top left no-repeat;
|
background: url(../images/throbber.gif) top left no-repeat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user