blur-admin/src/app/pages/components/tree/treeCtrl.js

387 lines
7.4 KiB
JavaScript

/**
* @author a.demeshko
* created on 12/21/15
*/
(function () {
'use strict';
angular.module('BlurAdmin.pages.components.tree')
.controller('treeCtrl', treeCtrl);
/** @ngInject */
function treeCtrl($scope, $timeout) {
$scope.ignoreChanges = false;
var newId = 0;
$scope.ignoreChanges = false;
$scope.newNode = {};
$scope.basicConfig = {
core: {
multiple: false,
check_callback: true,
worker: true
},
'types': {
'folder': {
'icon': 'ion-ios-folder'
},
'default': {
'icon': 'ion-document-text'
}
},
'plugins': ['types'],
'version': 1
};
$scope.dragConfig = {
'core': {
'check_callback': true,
'themes': {
'responsive': false
}
},
'types': {
'folder': {
'icon': 'ion-ios-folder'
},
'default': {
'icon': 'ion-document-text'
}
},
"plugins": ["dnd", 'types']
};
$scope.addNewNode = function () {
$scope.ignoreChanges = true;
var selected = this.basicTree.jstree(true).get_selected()[0];
if (selected)
$scope.treeData.push({
id: (newId++).toString(),
parent: selected,
text: "New node " + newId,
state: {opened: true}
});
$scope.basicConfig.version++;
};
$scope.refresh = function () {
$scope.ignoreChanges = true;
newId = 0;
$scope.treeData = getDefaultData();
$scope.basicConfig.version++;
};
$scope.expand = function () {
$scope.ignoreChanges = true;
$scope.treeData.forEach(function (n) {
n.state.opened = true;
});
$scope.basicConfig.version++;
};
$scope.collapse = function () {
$scope.ignoreChanges = true;
$scope.treeData.forEach(function (n) {
n.state.opened = false;
});
$scope.basicConfig.version++;
};
$scope.readyCB = function() {
$timeout(function() {
$scope.ignoreChanges = false;
});
};
$scope.applyModelChanges = function() {
return !$scope.ignoreChanges;
};
$scope.treeData = getDefaultData();
$scope.dragData = [
{
"id": "nd1",
"parent": "#",
"type": "folder",
"text": "Node 1",
"state": {
"opened": true
}
},
{
"id": "nd2",
"parent": "#",
"type": "folder",
"text": "Node 2",
"state": {
"opened": true
}
},
{
"id": "nd3",
"parent": "#",
"type": "folder",
"text": "Node 3",
"state": {
"opened": true
}
},
{
"id": "nd4",
"parent": "#",
"type": "folder",
"text": "Node 4",
"state": {
"opened": true
}
},
{
"id": "nd5",
"parent": "nd1",
"text": "Node 1.1",
"state": {
"opened": true
}
},
{
"id": "nd6",
"parent": "nd1",
"text": "Node 1.2",
"state": {
"opened": true
}
},
{
"id": "nd7",
"parent": "nd1",
"text": "Node 1.3",
"state": {
"opened": true
}
},
{
"id": "nd8",
"parent": "nd2",
"text": "Node 2.1",
"state": {
"opened": true
}
},
{
"id": "nd9",
"parent": "nd2",
"text": "Node 2.2",
"state": {
"opened": true
}
},
{
"id": "nd10",
"parent": "nd2",
"text": "Node 2.3",
"state": {
"opened": true
}
},
{
"id": "nd11",
"parent": "nd3",
"text": "Node 3.1",
"state": {
"opened": true
}
},
{
"id": "nd12",
"parent": "nd3",
"text": "Node 3.2",
"state": {
"opened": true
}
},
{
"id": "nd13",
"parent": "nd3",
"text": "Node 3.3",
"state": {
"opened": true
}
},
{
"id": "nd14",
"parent": "nd4",
"text": "Node 4.1",
"state": {
"opened": true
}
},
{
"id": "nd15",
"parent": "nd4",
"text": "Node 4.2",
"state": {
"opened": true
}
},
{
"id": "nd16",
"parent": "nd4",
"text": "Node 4.3",
"state": {
"opened": true
}
}
];
function getDefaultData() {
return [
{
"id": "n1",
"parent": "#",
"type": "folder",
"text": "Node 1",
"state": {
"opened": true
}
},
{
"id": "n2",
"parent": "#",
"type": "folder",
"text": "Node 2",
"state": {
"opened": true
}
},
{
"id": "n3",
"parent": "#",
"type": "folder",
"text": "Node 3",
"state": {
"opened": true
}
},
{
"id": "n5",
"parent": "n1",
"text": "Node 1.1",
"state": {
"opened": true
}
},
{
"id": "n6",
"parent": "n1",
"text": "Node 1.2",
"state": {
"opened": true
}
},
{
"id": "n7",
"parent": "n1",
"text": "Node 1.3",
"state": {
"opened": true
}
},
{
"id": "n8",
"parent": "n1",
"text": "Node 1.4",
"state": {
"opened": true
}
},
{
"id": "n9",
"parent": "n2",
"text": "Node 2.1",
"state": {
"opened": true
}
},
{
"id": "n10",
"parent": "n2",
"text": "Node 2.2 (Custom icon)",
"icon": "ion-help-buoy",
"state": {
"opened": true
}
},
{
"id": "n12",
"parent": "n3",
"text": "Node 3.1",
"state": {
"opened": true
}
},
{
"id": "n13",
"parent": "n3",
"type": "folder",
"text": "Node 3.2",
"state": {
"opened": true
}
},
{
"id": "n14",
"parent": "n13",
"text": "Node 3.2.1",
"state": {
"opened": true
}
},
{
"id": "n15",
"parent": "n13",
"text": "Node 3.2.2",
"state": {
"opened": true
}
},
{
"id": "n16",
"parent": "n3",
"text": "Node 3.3",
"state": {
"opened": true
}
},
{
"id": "n17",
"parent": "n3",
"text": "Node 3.4",
"state": {
"opened": true
}
},
{
"id": "n18",
"parent": "n3",
"text": "Node 3.5",
"state": {
"opened": true
}
},
{
"id": "n19",
"parent": "n3",
"text": "Node 3.6",
"state": {
"opened": true
}
}
]
}
}
})();