%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/lightco1/www/lightingrepublic.com.au/media/com_docman/js/
Upload File :
Create Path :
Current File : /home/lightco1/www/lightingrepublic.com.au/media/com_docman/js/files.js

window.addEvent('domready', function() {
	document.id('files-grid').addEvent('click', function(event) {
		if (Files.app.grid.layout !== 'details') {
			return;
		}
		
		var target = event.target;
		if (target.get('tag') === 'a' || target.get('tag') === 'input') {
			return;
		}
		
		var node = target.getParent('.files-node-shadow') || target.getParent('.files-node');

        if(node) {
            row = node.retrieve('row');

            if (row) {
                Files.app.grid.checkNode(row);
            }
        }
    });
	
	['clickImage', 'clickFile'].each(function(event) {
		Files.app.grid.removeEvents(event);
		Files.app.grid.addEvent(event, function(e) {
			var target = document.id(e.target),
				node = target.getParent('.files-node-shadow') || target.getParent('.files-node'),
				row = node.retrieve('row');

			var url = Files.app.createRoute({
				option: 'com_docman', view: 'documents', format: 'json',
				storage_type: 'file', storage_path: row.path, routed: 0});
			new Request.JSON({
				url: url,
				onSuccess: function(response) {
					if (typeOf(response) == 'object') {
						var copy = Object.append({}, row);
						copy.documents = response.documents.items;

						copy.template = 'documents_list';
						var render = copy.render();

                        //Setting display to inline-block for the dynamic width/height to work, also adding css hooks
                        render.setStyle('display', 'inline-block').addClass('com_docman modal-inspector');

                        var template = render.inject(document.body);
						template.getElements('a.document-link').addEvent('click', function(e) {
							e.stop();
							var url = Files.app.createRoute({
								option: 'com_docman', view: 'document', format: 'html',
								routed: 0, container: false,
								id: this.get('data-id')
							});
							window.parent.open(url);
						});
						SqueezeBox.open(template, {
							handler: 'adopt',
                            size: template.measure(function(){return this.getSize();})
						});
					}
				}
			}).get();
		});
	});
	
	$$('a.toolbar').addEvent('click', function(e) {
		if (this.hasClass('unauthorized')) {
			return false;
		}
	});

	document.id('toolbar-upload').getElement('a').addEvent('click', function(e) {
		e.stop();
		
		if (this.hasClass('unauthorized')) {
			return;
		}
		
		document.id('files-show-uploader').fireEvent('click', e);
	});

	document.id('toolbar-new').getElement('a').addEvent('click', function(e) {
		e.stop();

		if (this.hasClass('unauthorized')) {
			return;
		}
		
		document.id('files-new-folder-toolbar').fireEvent('click', e);
	});

	document.id('toolbar-delete').getElement('a').addEvent('click', function(e) {
		e.stop();

		if (this.hasClass('unauthorized')) {
			return;
		}
		
		document.id('files-batch-delete').fireEvent('click', e);
	});

	var enableButton = function(button) {
		document.id(button).getElement('a').removeClass('disabled');
	};
	var disableButton = function(button) {
		document.id(button).getElement('a').addClass('disabled');
	};
	
	var checkbox_dependents = $$('#toolbar-delete', '#toolbar-create-documents');
	checkbox_dependents.each(function(el) {
		disableButton(el);
	});
	
	Files.app.grid.addEvent('afterCheckNode', function() {
		var checked = Files.app.grid.nodes.filter(function(row) { return row.checked }),
			folders = Object.getLength(checked.filter(function(row) { return row.type == 'folder'})),
			files = Object.getLength(checked) - folders;

		if (files || folders) {
			enableButton('toolbar-delete');
			if (files) {
				enableButton('toolbar-create-documents');
			}
		} else {
			checkbox_dependents.each(function(el) {
				disableButton(el);
			});
		}
		
	}.bind(this));

	Files.app.addEvent('afterNavigate', function() {
		checkbox_dependents.each(function(el) {
			el.getElement('a').addClass('disabled');
		});
	});
	
	Files.app.addEvent('uploadFile', function(row) {
		Files.app.grid.checkNode(row);
	});

	document.id('toolbar-create-documents').getElement('a').addEvent('click', function(e) {
		e.stop();
		
		var checked_files = Files.app.grid.nodes.filter(function(row) { return row.checked && row.type !== 'folder' }),
			paths = [];

		Object.each(checked_files, function(row) {
			paths.push(row.path);
		});

		if (!paths.length) {
			return;
		}
		
		var form = jQuery('<form></form>'),
			createField = function(name, value) {
				var field = jQuery('<input></input>');
	
		        field.attr('type', 'hidden');
		        field.attr('name', name);
		        field.attr('value', value);
		        
		        return field;
			};

	    form.attr('method', 'post');
	    form.attr('action', 'index.php?option=com_docman&view=files&layout=form');
	    form.append(createField('_method', 'GET'));

	    jQuery.each(paths, function(key, value) {
	        form.append(createField('paths[]', value));
	    });

	    jQuery(document.body).append(form);
	    form.submit();
	});

	var fileCountAdder = function() {
		if (Files.app.grid.layout !== 'details') {
			return;
		}

		var counts = {},
			requests = new Chain(),
			files = Files.app.grid.getFiles(),
			count = files.length,
			url = Files.app.createRoute({
				option: 'com_docman', view: 'documents', format: 'json',
                limit: 1000,
                storage_type: 'file', routed: 0
			}),
		    request = new Request.JSON({
			    url: url,
                method: 'POST',
                data: {
                    _method: 'GET',
                    storage_path: []
                },
                onComplete: function() {
                    requests.callChain();
                },
                onSuccess: function(response) {
                    if (typeof response != 'object' || typeof response.documents != 'object') {
                        return;
                    }

                    Object.each(response.documents.items, function(row) {
                        var data = row.data;
                        if (!counts[data.storage_path]) {
                            counts[data.storage_path] = 0;
                        }
                        counts[data.storage_path]++;
                    });

                    Files.app.grid.nodes.each(function(row) {
                        var count = counts[row.path] || 0;
                        row.document_count = count;
                        var count_box = row.element.getElement('.file-count');
                        if (count_box) {
                            count_box.set('html', '<a href="#" class="navigate">'+count+'</a>');
                        }
                    });
                }
			});

			var i;
			for(i = 0; i < count; i += 30) {
				requests.chain(function() {
					var slice = files.splice(0, Math.min(30, count));
					request.options.data.storage_path = slice;
					request.send();
					count -= 30;
				});
			}
			requests.callChain();
	};
	
	// If we already have files, run it
	if (Files.app.grid.getFiles()) {
		fileCountAdder();
	}
	
	Files.app.grid.addEvent('afterInsertRows', fileCountAdder);

    var attachCheckAllHandlers = function(){
        document.id('select-orphans').addEvent('click', function(e) {
            e.preventDefault();
            var check = false;
            Files.app.grid.nodes.each(function(row) {
                if (row.type !== 'folder' && !row.checked && row.document_count === 0) {
                    Files.app.grid.checkNode(row);
                    check = true;
                } else if(row.checked && (row.document_count !== 0 || row.type === 'folder')) {
                    Files.app.grid.checkNode(row);
                }
            });
            document.id('select-check-all').checked = check;
        });

        document.id('select-all').addEvent('click', function(e) {
            e.preventDefault();
            Files.app.grid.nodes.each(function(row) {
                if (!row.checked) {
                    Files.app.grid.checkNode(row);
                }
            });
            document.id('select-check-all').checked = true;
        });
        document.id('select-none').addEvent('click', function(e) {
            e.preventDefault();
            Files.app.grid.nodes.each(function(row) {
                if (row.checked) {
                    Files.app.grid.checkNode(row);
                }
            });
            document.id('select-check-all').checked = false;
        });
        document.id('select-check-all').addEvent('click', function(e){
            e.stopPropagation();
            var value = document.id('select-check-all').checked,
                grid = Files.app.grid,
                nodes = grid.nodes;

            Object.each(nodes, function(node) {
                if (value && !node.checked) {
                    grid.checkNode(node);
                } else if (!value && node.checked) {
                    grid.checkNode(node);
                }

            });
        });
    };
    if(Files.app.grid.layout == 'details') {
        attachCheckAllHandlers();
    }
    Files.app.grid.addEvent('afterRender', function() {
        if(Files.app.grid.layout == 'details')
        {
            attachCheckAllHandlers();
        }
    });
});

Zerion Mini Shell 1.0