HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /home/barbeatleanalyti/public_html/manage.beatleanalytics.com/theme/black/js new--/app.js
angular.module("app", [
    'ngAnimate',
    'ADM-treeView'
])
.config(['ADMtrvProvider', function(ADMtrv) {
    ADMtrv.setConfigs({
        // Custom configs ...
    });
}])
.filter('sce', ['$sce', function ($sce) {
    return $sce.trustAsHtml;
}])
.controller("bodyCtrl", ['$scope', '$q', function($scope, $q) {

    Prism.plugins.NormalizeWhitespace.setDefaults({
        'remove-initial-line-feed': true,
    });
    
    $scope.ctrl = {};
    
    $scope.availableOptions = [
        {name:'childName', type:'String', default:'childs', description:"Set the name of childs wrapper. (e.g. 'childs', 'categories', ...)"},
        {name:'title', type:'String', default:'$item.title', description:"Set path to 'title'. '$item' can be ignore and path can be nested. (e.g. '$item.titleHolder1.titleHolder2.title') "},
        {name:'singleRoot', type:'Boolean', default:'False', description:"When it's true only one main root can be add."},
        {name:'readOnly', type:'Boolean', default:'False', description:"This option disable add, edit and delete methods."},
        {name:'selectable', type:'Boolean', default:'False', description:"Add checkbox before title to enable multi selecting."},
        {name:'trackBy', type:'String', default:'--', description:"For selectable mode, can be useful for finding items. '$item' can be ignore and path can be nested. (e.g. '$item.mainDS.id')"},
        {name:'maxDepth', type:'Number', default:'--', description:"Set maxDepth for treeView."},
        {name:'direction', type:'String', default:'ltr', description:"Change treeView direction. (e.g. 'ltr', 'rtl')"},
        {name:'dictionary', type:'Object', default:'(EN)', description:"Change buttons and placeholders name upon your language. Check the Docs below."},
        {name:'onKidOpen', type:'Function', default:'--', description:"Pass HTML content to show it on leaf clicking. accept both 'string' and 'promise' to fill the content."},
        {name:'onAdd', type:'Function', default:'--', description:"Event on adding item to tree. Can return promise to wait for server response and add server 'id' to object."},
        {name:'onEdit', type:'Function', default:'--', description:"Event on editing item. Can return promise to wait for server response."},
        {name:'onDelete', type:'Function', default:'--', description:"Event on deleting item. Can return promise to wait for server response."},
    ];
    
    var fakePromise = function(data, delay) {
        var deferred = $q.defer();
        setTimeout(function() {
            deferred.resolve(data);
        }, delay);
        return deferred.promise;
    }
    
    $scope.ctrl.model1 = [
        {
            title: 'Creat Owner',
            levels: [
                {
                    title: 'Creat Manager',
                    levels: [
                        {title: 'Creat Line Manager'},
                       
                    ]
                },
                
            ]
        },
        
    ];
    $scope.tree1Options = {
        childName: 'levels',
    };
    

    $scope.ctrl.model2 = [
        {title: 'Papa Category'}
    ];
    $scope.tree2Options = {
        childName: 'categories',
        maxDepth: 2,
        singleRoot: true
    };
    $scope.tree2_2Options = {
        childName: 'categories',
        readOnly: true,
        onKidOpen: function(node) {
            var deferred = $q.defer();
            setTimeout(function() {
                deferred.resolve('The Node title is: "' + node.title + '"');
            }, 2000);
            return deferred.promise;
        }
    }
    
    
    $scope.tree3_1Options = {
        childName: 'organizations',
        dictionary: {
            titlePlaceholder: 'A-Z only ...'
        },
        onAdd: function(parentNode, newNode, titleOnly) {
            return !/[^a-zA-Z]/.test(titleOnly);
        }
    }
    $scope.tree3_2Options = {
        childName: 'organizations',
        onAdd: function(parentNode, newNode, titleOnly) {
            var deferred = $q.defer();
            setTimeout(function() {
                deferred.resolve({
                    id: Math.floor(Math.random() * 1000)
                });
            }, 500);
            return deferred.promise;
        }
    }
    
    
  
   
    
   
	
    

}]);