%PDF- %PDF-
Direktori : /home/nailstv/www/es.nails.tv/include/kcfinder/js/browser/ |
Current File : /home/nailstv/www/es.nails.tv/include/kcfinder/js/browser/files.js |
<?php /** This file is part of KCFinder project * * @desc File related functionality * @package KCFinder * @version 2.2 * @author Pavel Tzonkov <pavelc@users.sourceforge.net> * @copyright 2010 KCFinder Project * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 * @link http://kcfinder.sunhater.com */?> browser.initFiles = function() { $(document).unbind('keypress'); $(document).keypress(function(e) { if ((e.which == 65) || (e.which == 97)) browser.selectAll(); }); $('#files').unbind(); $('#files').scroll(function() { browser.hideDialog(); }); $('.file').unbind(); $('.file').click(function(e) { _.unselect(); browser.selectFile($(this), e); }); $('.file').rightClick(function(e) { _.unselect(); browser.menuFile($(this), e); }); $('.file').dblclick(function() { _.unselect(); browser.returnFile($(this)); }); $('.file').mouseup(function() { _.unselect(); }); $('.file').mouseout(function() { _.unselect(); }); $.each(this.shows, function(i, val) { var display = (_.kuki.get('show' + val) == 'off') ? 'none' : 'block'; $('#files .file div.' + val).css('display', display); }); this.statusDir(); }; browser.loadFiles = function(files) { this.files = []; $.each(files, function(i, file) { browser.files[i] = { name: browser.xmlData(file.getElementsByTagName('name')[0].childNodes), size: file.getAttribute('size'), mtime: file.getAttribute('mtime'), date: file.getAttribute('date'), readable: file.getAttribute('readable') == 'yes', writable: file.getAttribute('writable') == 'yes', bigIcon: file.getAttribute('bigIcon') == 'yes', smallIcon: file.getAttribute('smallIcon') == 'yes', thumb: file.getAttribute('thumb') == 'yes', smallThumb: file.getAttribute('smallThumb') == 'yes' }; }); }; browser.showFiles = function(callBack, selected) { this.fadeFiles(); setTimeout(function() { var html = ''; $.each(browser.files, function(i, file) { if (_.kuki.get('view') == 'list') { if (!i) html += '<table summary="list">'; var icon = _.getFileExtension(file.name); if (file.thumb) icon = ".image"; else if (!icon.length || !file.smallIcon) icon = "."; icon = 'themes/' + browser.theme + '/img/files/small/' + icon + '.png'; html += '<tr class="file">' + '<td class="name" style="background-image:url(' + icon + ')">' + _.htmlData(file.name) + '</td>' + '<td class="time">' + file.date + '</td>' + '<td class="size">' + browser.humanSize(file.size) + '</td>' + '</tr>'; if (i == browser.files.length - 1) html += '</table>'; } else { if (file.thumb) var icon = browser.baseGetData('thumb') + '&file=' + encodeURIComponent(file.name); else if (file.smallThumb) { var icon = browser.uploadURL + '/' + browser.dir + '/' + file.name; icon = _.escapeDirs(icon).replace(/\'/g, "%27"); } else { var icon = file.bigIcon ? _.getFileExtension(file.name) : "."; if (!icon.length) icon = "."; icon = 'themes/' + browser.theme + '/img/files/big/' + icon + '.png'; } html += '<div class="file">' + '<div class="thumb" style="background-image:url(\'' + icon + '\')" ></div>' + '<div class="name">' + _.htmlData(file.name) + '</div>' + '<div class="time">' + file.date + '</div>' + '<div class="size">' + browser.humanSize(file.size) + '</div>' + '</div>'; } }); $('#files').html('<div>' + html + '<div>'); $.each(browser.files, function(i, file) { var item = $('#files .file').get(i); $(item).data(file); if (file.name == selected) $(item).addClass('selected'); }); $('#files > div').css({opacity:'', filter:''}); if (callBack) callBack(); browser.initFiles(); }, 200); }; browser.selectFile = function(file, e) { if (e.ctrlKey) { if (file.hasClass('selected')) file.removeClass('selected'); else file.addClass('selected'); var files = $('.file.selected').get(); var size = 0; if (!files.length) this.statusDir(); else { $.each(files, function(i, cfile) { size += parseInt($(cfile).data('size')); }); size = this.humanSize(size); if (files.length > 1) $('#fileinfo').html(files.length + ' ' + this.label("selected files") + ' (' + size + ')'); else { var data = $(files[0]).data(); $('#fileinfo').html(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); } } } else { var data = file.data(); $('.file').removeClass('selected'); file.addClass('selected'); $('#fileinfo').html(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); } }; browser.selectAll = function() { var files = $('.file').get(); if (files.length) { var size = 0; $.each(files, function(i, file) { if (!$(file).hasClass('selected')) $(file).addClass('selected'); size += parseInt($(file).data('size')); }); size = this.humanSize(size); $('#fileinfo').html(files.length + ' ' + this.label("selected files") + ' (' + size + ')'); } }; browser.returnFile = function(file) { var fileURL = file.substr ? file : browser.uploadURL + '/' + browser.dir + '/' + file.data('name'); //baseUrl = window.location.protocol + "//" + window.location.host; baseUrl = ''; fileURL = baseUrl + _.escapeDirs(fileURL); if (this.opener.CKEditor) { this.opener.CKEditor.object.tools.callFunction(this.opener.CKEditor.funcNum, fileURL, ''); window.close(); } else if (this.opener.FCKeditor) { window.opener.SetUrl(fileURL) ; window.close() ; } else if (this.opener.TinyMCE) { var win = tinyMCEPopup.getWindowArg('window'); win.document.getElementById(tinyMCEPopup.getWindowArg('input')).value = fileURL; if (win.getImageData) win.getImageData(); if (typeof(win.ImageDialog) != "undefined") { if (win.ImageDialog.getImageData) win.ImageDialog.getImageData(); if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(fileURL); } tinyMCEPopup.close(); } else if (this.opener.callBack) { if (window.opener && window.opener.KCFinder) { this.opener.callBack(fileURL); window.close(); } if (window.parent && window.parent.KCFinder) { var button = $('#toolbar a[href="kcact:maximize"]'); if (button.hasClass('selected')) this.maximize(button); this.opener.callBack(fileURL); } } else if (this.opener.callBackMultiple) { if (window.opener && window.opener.KCFinder) { this.opener.callBackMultiple([fileURL]); window.close(); } if (window.parent && window.parent.KCFinder) { var button = $('#toolbar a[href="kcact:maximize"]'); if (button.hasClass('selected')) this.maximize(button); this.opener.callBackMultiple([fileURL]); } } }; browser.returnFiles = function(files) { if (this.opener.callBackMultiple && files.length) { var rfiles = []; //baseUrl = window.location.protocol + "//" + window.location.host; baseUrl = ''; $.each(files, function(i, file) { rfiles[i] = browser.uploadURL + '/' + browser.dir + '/' + $(file).data('name'); rfiles[i] = baseUrl + _.escapeDirs(rfiles[i]); }); this.opener.callBackMultiple(rfiles); if (window.opener) window.close() } }; browser.returnThumbnails = function(files) { if (this.opener.callBackMultiple) { var rfiles = []; var j = 0; baseUrl = window.location.protocol + "//" + window.location.host; $.each(files, function(i, file) { if ($(file).data('thumb')) { rfiles[j] = browser.thumbsURL + '/' + browser.dir + '/' + $(file).data('name'); rfiles[j] = baseUrl + _.escapeDirs(rfiles[j++]); } }); this.opener.callBackMultiple(rfiles); if (window.opener) window.close() } }; browser.menuFile = function(file, e) { var data = file.data(); var path = this.dir + '/' + data.name; var files = $('.file.selected').get(); var html = ''; if (file.hasClass('selected') && files.length && (files.length > 1)) { var thumb = false; var notWritable = 0; var cdata; $.each(files, function(i, cfile) { cdata = $(cfile).data(); if (cdata.thumb) thumb = true; if (!data.writable) notWritable++; }); if (this.opener.callBackMultiple) { html += '<a href="kcact:pick">' + this.label("Select") + '</a>'; if (thumb) html += '<a href="kcact:pick_thumb">' + this.label("Select Thumbnails") + '</a>'; html += '<div class="delimiter"></div>'; } if (this.support.zip) html+= '<a href="kcact:download">' + this.label("Download") + '</a>'; if (!this.readonly) html += '<div class="delimiter"></div>' + '<a href="kcact:clpbrdadd">' + this.label("Add to Clipboard") + '</a>' + '<div class="delimiter"></div>' + '<a href="kcact:rm"' + ((notWritable == files.length) ? ' class="denied"' : '') + '>' + this.label("Delete") + '</a>'; if (html.length) { html = '<div class="menu">' + html + '</div>'; $('#dialog').html(html); this.showMenu(e); } else return; $('.menu a[href="kcact:pick"]').click(function() { browser.returnFiles(files); browser.hideDialog(); return false; }); $('.menu a[href="kcact:pick_thumb"]').click(function() { browser.returnThumbnails(files); browser.hideDialog(); return false; }); $('.menu a[href="kcact:download"]').click(function() { browser.hideDialog(); var pfiles = []; $.each(files, function(i, cfile) { pfiles[i] = $(cfile).data('name'); }); browser.post(browser.baseGetData('downloadSelected'), {dir:browser.dir, files:pfiles}); return false; }); $('.menu a[href="kcact:clpbrdadd"]').click(function() { browser.hideDialog(); var msg = ''; $.each(files, function(i, cfile) { var cdata = $(cfile).data(); var failed = false; for (i = 0; i < browser.clipboard.length; i++) if ((browser.clipboard[i].name == cdata.name) && (browser.clipboard[i].dir == browser.dir) ) { failed = true msg += cdata.name + ": " + browser.label("This file is already added to the Clipboard.") + "\n"; break; } if (!failed) { cdata.dir = browser.dir; browser.clipboard[browser.clipboard.length] = cdata; } }); browser.initClipboard(); if (msg.length) alert(msg.substr(0, msg.length - 1)); return false; }); $('.menu a[href="kcact:rm"]').click(function() { if ($(this).hasClass('denied')) return false; browser.hideDialog(); var failed = 0; var dfiles = []; $.each(files, function(i, cfile) { var cdata = $(cfile).data(); if (!cdata.writable) failed++; else dfiles[dfiles.length] = browser.dir + "/" + cdata.name; }); if (failed == files.length) { alert(browser.label("The selected files are not removable.")) return false; } if (failed) { if (!confirm(browser.label("{count} selected files are not removable. Do you want to delete the rest?", {count:failed}))) return false; } else if (!confirm(browser.label("Are you sure you want to delete all selected files?"))) return false; browser.fadeFiles(); $.ajax({ type: 'POST', url: browser.baseGetData('rm_cbd'), data: {files:dfiles}, async: false, success: function(xml) { browser.errors(xml); browser.refresh(); }, error: function(request, error) { $('#files > div').css('opacity', ''); $('#files > div').css('filter', ''); alert(browser.label("Unknown error.")); } }); return false; }); } else { html += '<div class="menu">'; $('.file').removeClass('selected'); file.addClass('selected'); $('#fileinfo').html(data.name + ' (' + this.humanSize(data.size) + ', ' + data.date + ')'); if (this.opener.callBack || this.opener.callBackMultiple) { html += '<a href="kcact:pick">' + this.label("Select") + '</a>'; if (data.thumb) html += '<a href="kcact:pick_thumb">' + this.label("Select Thumbnail") + '</a>'; html += '<div class="delimiter"></div>'; } if (data.thumb) html +='<a href="kcact:view">' + this.label("View") + '</a>'; html += '<a href="kcact:download">' + this.label("Download") + '</a>'; if (!this.readonly) html += '<div class="delimiter"></div>' + '<a href="kcact:clpbrdadd">' + this.label("Add to Clipboard") + '</a>' + '<div class="delimiter"></div>' + '<a href="kcact:mv"' + (!data.writable ? ' class="denied"' : '') + '>' + this.label("Rename...") + '</a>' + '<a href="kcact:rm"' + (!data.writable ? ' class="denied"' : '') + '>' + this.label("Delete") + '</a>'; html += '</div>'; $('#dialog').html(html); this.showMenu(e); $('.menu a[href="kcact:pick"]').click(function() { browser.returnFile(file); browser.hideDialog(); return false; }); $('.menu a[href="kcact:pick_thumb"]').click(function() { var path = browser.thumbsURL + "/" + browser.dir + '/' + data.name; browser.returnFile(path); browser.hideDialog(); return false; }); $('.menu a[href="kcact:view"]').click(function() { browser.hideDialog(); $('#loading').html(browser.label("Loading image...")); $('#loading').css('display', 'inline'); var img = new Image(); var url = _.escapeDirs(browser.uploadURL + '/' + path); img.src = url; img.onload = function() { $('#loading').css('display', 'none'); $('#dialog').html('<img />'); $('#dialog img').attr('src', url); var o_w = $('#dialog').outerWidth(); var o_h = $('#dialog').outerHeight(); var f_w = $(window).width() - 30; var f_h = $(window).height() - 30; if ((o_w > f_w) || (o_h > f_h)) { if ((f_w / f_h) > (o_w / o_h)) f_w = parseInt((o_w * f_h) / o_h); else if ((f_w / f_h) < (o_w / o_h)) f_h = parseInt((o_h * f_w) / o_w); $('#dialog img').attr('width', f_w); $('#dialog img').attr('height', f_h); } $('#dialog').click(function() { browser.hideDialog(); }); browser.showDialog(); } return false; }); $('.menu a[href="kcact:download"]').click(function() { var html = '<form id="downloadForm" method="post" action="' + browser.baseGetData('download') + '">' + '<input type="hidden" name="dir" />' + '<input type="hidden" name="file" />' + '</form>'; $('#dialog').html(html); $('#downloadForm input').get(0).value = browser.dir; $('#downloadForm input').get(1).value = data.name; $('#downloadForm').submit(); return false; }); $('.menu a[href="kcact:clpbrdadd"]').click(function() { for (i = 0; i < browser.clipboard.length; i++) if ((browser.clipboard[i].name == data.name) && (browser.clipboard[i].dir == browser.dir) ) { browser.hideDialog(); alert(browser.label("This file is already added to the Clipboard.")); return false; } var cdata = data; cdata.dir = browser.dir; browser.clipboard[browser.clipboard.length] = cdata; browser.initClipboard(); browser.hideDialog(); return false; }); $('.menu a[href="kcact:mv"]').click(function(e) { if (!data.writable) return false; browser.fileNameDialog( e, {dir: browser.dir, file: data.name}, 'newName', data.name, browser.baseGetData('rename'), { title: "New file name:", errEmpty: "Please enter new file name.", errSlash: "Unallowable characters in file name.", errDot: "File name shouldn't begins with '.'" }, function() { browser.refresh(); } ); return false; }); $('.menu a[href="kcact:rm"]').click(function() { if (!data.writable) return false; browser.hideDialog(); if (confirm(browser.label( "Are you sure you want to delete this file?" ))) $.ajax({ type: 'POST', url: browser.baseGetData('delete'), data: {dir:browser.dir, file:data.name}, async: false, success: function(xml) { browser.clearClipboard(); if (browser.errors(xml)) return; browser.refresh(); }, error: function(request, error) { alert(browser.label("Unknown error.")); } }); return false; }); } };