new static files.
Signed-off-by: rscnt <rascnt@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								83e792bcaa
							
						
					
				
			
			
				commit
				
					
						fe4f6c97d5
					
				
			
		
					 778 changed files with 71557 additions and 0 deletions
				
			
		
							
								
								
									
										114
									
								
								static/admin/js/SelectBox.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								static/admin/js/SelectBox.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,114 @@
 | 
			
		|||
var SelectBox = {
 | 
			
		||||
    cache: new Object(),
 | 
			
		||||
    init: function(id) {
 | 
			
		||||
        var box = document.getElementById(id);
 | 
			
		||||
        var node;
 | 
			
		||||
        SelectBox.cache[id] = new Array();
 | 
			
		||||
        var cache = SelectBox.cache[id];
 | 
			
		||||
        for (var i = 0; (node = box.options[i]); i++) {
 | 
			
		||||
            cache.push({value: node.value, text: node.text, displayed: 1});
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    redisplay: function(id) {
 | 
			
		||||
        // Repopulate HTML select box from cache
 | 
			
		||||
        var box = document.getElementById(id);
 | 
			
		||||
        box.options.length = 0; // clear all options
 | 
			
		||||
        for (var i = 0, j = SelectBox.cache[id].length; i < j; i++) {
 | 
			
		||||
            var node = SelectBox.cache[id][i];
 | 
			
		||||
            if (node.displayed) {
 | 
			
		||||
                var new_option = new Option(node.text, node.value, false, false);
 | 
			
		||||
                // Shows a tooltip when hovering over the option
 | 
			
		||||
                new_option.setAttribute("title", node.text);
 | 
			
		||||
                box.options[box.options.length] = new_option;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    filter: function(id, text) {
 | 
			
		||||
        // Redisplay the HTML select box, displaying only the choices containing ALL
 | 
			
		||||
        // the words in text. (It's an AND search.)
 | 
			
		||||
        var tokens = text.toLowerCase().split(/\s+/);
 | 
			
		||||
        var node, token;
 | 
			
		||||
        for (var i = 0; (node = SelectBox.cache[id][i]); i++) {
 | 
			
		||||
            node.displayed = 1;
 | 
			
		||||
            for (var j = 0; (token = tokens[j]); j++) {
 | 
			
		||||
                if (node.text.toLowerCase().indexOf(token) == -1) {
 | 
			
		||||
                    node.displayed = 0;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        SelectBox.redisplay(id);
 | 
			
		||||
    },
 | 
			
		||||
    delete_from_cache: function(id, value) {
 | 
			
		||||
        var node, delete_index = null;
 | 
			
		||||
        for (var i = 0; (node = SelectBox.cache[id][i]); i++) {
 | 
			
		||||
            if (node.value == value) {
 | 
			
		||||
                delete_index = i;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        var j = SelectBox.cache[id].length - 1;
 | 
			
		||||
        for (var i = delete_index; i < j; i++) {
 | 
			
		||||
            SelectBox.cache[id][i] = SelectBox.cache[id][i+1];
 | 
			
		||||
        }
 | 
			
		||||
        SelectBox.cache[id].length--;
 | 
			
		||||
    },
 | 
			
		||||
    add_to_cache: function(id, option) {
 | 
			
		||||
        SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1});
 | 
			
		||||
    },
 | 
			
		||||
    cache_contains: function(id, value) {
 | 
			
		||||
        // Check if an item is contained in the cache
 | 
			
		||||
        var node;
 | 
			
		||||
        for (var i = 0; (node = SelectBox.cache[id][i]); i++) {
 | 
			
		||||
            if (node.value == value) {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    },
 | 
			
		||||
    move: function(from, to) {
 | 
			
		||||
        var from_box = document.getElementById(from);
 | 
			
		||||
        var to_box = document.getElementById(to);
 | 
			
		||||
        var option;
 | 
			
		||||
        for (var i = 0; (option = from_box.options[i]); i++) {
 | 
			
		||||
            if (option.selected && SelectBox.cache_contains(from, option.value)) {
 | 
			
		||||
                SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1});
 | 
			
		||||
                SelectBox.delete_from_cache(from, option.value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        SelectBox.redisplay(from);
 | 
			
		||||
        SelectBox.redisplay(to);
 | 
			
		||||
    },
 | 
			
		||||
    move_all: function(from, to) {
 | 
			
		||||
        var from_box = document.getElementById(from);
 | 
			
		||||
        var to_box = document.getElementById(to);
 | 
			
		||||
        var option;
 | 
			
		||||
        for (var i = 0; (option = from_box.options[i]); i++) {
 | 
			
		||||
            if (SelectBox.cache_contains(from, option.value)) {
 | 
			
		||||
                SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1});
 | 
			
		||||
                SelectBox.delete_from_cache(from, option.value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        SelectBox.redisplay(from);
 | 
			
		||||
        SelectBox.redisplay(to);
 | 
			
		||||
    },
 | 
			
		||||
    sort: function(id) {
 | 
			
		||||
        SelectBox.cache[id].sort( function(a, b) {
 | 
			
		||||
            a = a.text.toLowerCase();
 | 
			
		||||
            b = b.text.toLowerCase();
 | 
			
		||||
            try {
 | 
			
		||||
                if (a > b) return 1;
 | 
			
		||||
                if (a < b) return -1;
 | 
			
		||||
            }
 | 
			
		||||
            catch (e) {
 | 
			
		||||
                // silently fail on IE 'unknown' exception
 | 
			
		||||
            }
 | 
			
		||||
            return 0;
 | 
			
		||||
        } );
 | 
			
		||||
    },
 | 
			
		||||
    select_all: function(id) {
 | 
			
		||||
        var box = document.getElementById(id);
 | 
			
		||||
        for (var i = 0; i < box.options.length; i++) {
 | 
			
		||||
            box.options[i].selected = 'selected';
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue