fixed treeview order
gitea/salix/dev This commit looks good Details

This commit is contained in:
Joan Sanchez 2019-02-20 12:31:08 +01:00
parent 687e000e60
commit 90092a4f48
4 changed files with 26 additions and 39 deletions

View File

@ -26,7 +26,7 @@ class Icon {
Icon.$inject = ['$attrs']; Icon.$inject = ['$attrs'];
ngModule.component('vnIcon', { ngModule.component('vnIcon', {
template: '<i class="{{::$ctrl.iconClass}}">{{::$ctrl.iconContent}}</i>', template: '<i class="{{::$ctrl.iconClass}} unselectable">{{::$ctrl.iconContent}}</i>',
controller: Icon, controller: Icon,
bindings: { bindings: {
icon: '@' icon: '@'

View File

@ -2,6 +2,7 @@ vn-icon {
display: inline-block; display: inline-block;
font-size: 18pt; font-size: 18pt;
text-align: center; text-align: center;
outline: 0;
& > i, & > i,
& > i.material-icons { & > i.material-icons {

View File

@ -23,28 +23,6 @@ export default class Treeview extends Component {
}); });
} }
/* hasCheckedChilds(node) {
if (!node.childs) return false;
const childs = node.childs;
for (let i = 0; i < childs.length; i++) {
if (childs[i].selected || this.hasCheckedChilds(childs[i]))
return true;
}
return false;
}
hasCheckedParents(node) {
if (!node.parent) return false;
const parent = node.parent;
if (parent.selected || this.hasCheckedParents(parent))
return true;
return false;
} */
onSelection(item, value) { onSelection(item, value) {
this.emit('selection', {item, value}); this.emit('selection', {item, value});
} }
@ -67,12 +45,15 @@ export default class Treeview extends Component {
} }
item.childs = newData.sort((a, b) => { item.childs = newData.sort((a, b) => {
let priority = (b.isIncluded - a.isIncluded) - 1; if (b.isIncluded !== a.isIncluded) {
if (a.isIncluded == null)
return 1;
if (b.isIncluded == null)
return -1;
return b.isIncluded - a.isIncluded;
}
if (b.name > a.name) return a.name.localeCompare(b.name);
priority++;
return priority;
}); });
}); });
} }

View File

@ -116,16 +116,7 @@ module.exports = Self => {
const parentNodes = nodes.filter(element => { const parentNodes = nodes.filter(element => {
return element.depth === minorDepth; return element.depth === minorDepth;
}); });
const leaves = Object.assign([], sortNodes(parentNodes));
const sortedLeaves = parentNodes.sort((a, b) => {
let priority = (b.isIncluded - a.isIncluded) - 1;
if (b.name > a.name)
priority++;
return priority;
});
const leaves = Object.assign([], sortedLeaves);
nestLeaves(leaves); nestLeaves(leaves);
@ -143,9 +134,23 @@ module.exports = Self => {
&& element.depth === parent.depth + 1; && element.depth === parent.depth + 1;
}); });
return elements; return sortNodes(elements);
} }
return leaves; return leaves;
}; };
function sortNodes(nodes) {
return nodes.sort((a, b) => {
if (b.isIncluded !== a.isIncluded) {
if (a.isIncluded == null)
return 1;
if (b.isIncluded == null)
return -1;
return b.isIncluded - a.isIncluded;
}
return a.name.localeCompare(b.name);
});
}
}; };