/** This file is part of KCFinder project * * @desc Toolbar functionality * @package KCFinder * @version 3.12 * @author Pavel Tzonkov * @copyright 2010-2014 KCFinder Project * @license http://opensource.org/licenses/GPL-3.0 GPLv3 * @license http://opensource.org/licenses/LGPL-3.0 LGPLv3 * @link http://kcfinder.sunhater.com */ _.initToolbar = function() { $('#toolbar').disableTextSelect(); $('#toolbar a').click(function() { _.menu.hide(); }); if (!$.$.kuki.isSet('displaySettings')) $.$.kuki.set('displaySettings', "off"); if ($.$.kuki.get('displaySettings') == "on") { $('#toolbar a[href="kcact:settings"]').addClass('selected'); $('#settings').show(); _.resize(); } $('#toolbar a[href="kcact:settings"]').click(function () { var jSettings = $('#settings'); if (jSettings.css('display') == "none") { $(this).addClass('selected'); $.$.kuki.set('displaySettings', "on"); jSettings.show(); _.fixFilesHeight(); } else { $(this).removeClass('selected'); $.$.kuki.set('displaySettings', "off"); jSettings.hide(); _.fixFilesHeight(); } return false; }); $('#toolbar a[href="kcact:refresh"]').click(function() { _.refresh(); return false; }); $('#toolbar a[href="kcact:maximize"]').click(function() { _.maximize(this); return false; }); $('#toolbar a[href="kcact:about"]').click(function() { var html = '
' + '
KCFinder ' + _.version + '
'; if (_.support.check4Update) html += '
' + _.label("Checking for new version...") + '
'; html += '
' + _.label("Licenses:") + ' GPLv3 & LGPLv3
' + '
Copyright ©2010-2014 Pavel Tzonkov
' + '
'; var dlg = _.dialog(_.label("About"), html, {width: 301}); setTimeout(function() { $.ajax({ dataType: "json", url: _.getURL('check4Update'), async: true, success: function(data) { if (!dlg.html().length) return; var span = $('#checkver'); span.removeClass('loading'); if (!data.version) { span.html(_.label("Unable to connect!")); return; } if (_.version < data.version) span.html('' + _.label("Download version {version} now!", {version: data.version}) + ''); else span.html(_.label("KCFinder is up to date!")); }, error: function() { if (!dlg.html().length) return; $('#checkver').removeClass('loading').html(_.label("Unable to connect!")); } }); }, 1000); return false; }); _.initUploadButton(); }; _.initUploadButton = function() { var btn = $('#toolbar a[href="kcact:upload"]'); if (!_.access.files.upload) { btn.hide(); return; } var top = btn.get(0).offsetTop, width = btn.outerWidth(), height = btn.outerHeight(), jInput = $('#upload input'); $('#toolbar').prepend('
'); jInput.css('margin-left', "-" + (jInput.outerWidth() - width)); $('#upload').mouseover(function() { $('#toolbar a[href="kcact:upload"]').addClass('hover'); }).mouseout(function() { $('#toolbar a[href="kcact:upload"]').removeClass('hover'); }); }; _.uploadFile = function(form) { if (!_.dirWritable) { _.alert(_.label("Cannot write to upload folder.")); $('#upload').detach(); _.initUploadButton(); return; } form.elements[1].value = _.dir; $('').prependTo(document.body); $('#loading').html(_.label("Uploading file...")).show(); form.submit(); $('#uploadResponse').load(function() { var response = $(this).contents().find('body').text(); $('#loading').hide(); response = response.split("\n"); _.refreshDir($('div.folder > a > span.folder').parent()); var selected = [], errors = []; $.each(response, function(i, row) { if (row.substr(0, 1) == "/") selected[selected.length] = row.substr(1, row.length - 1); else errors[errors.length] = row; }); if (errors.length) { errors = errors.join("\n"); if (errors.replace(/^\s+/g, "").replace(/\s+$/g, "").length) _.alert(errors); } if (!selected.length) selected = null; _.refresh(selected); $('#upload').detach(); setTimeout(function() { $('#uploadResponse').detach(); }, 1); _.initUploadButton(); }); }; _.maximize = function(button) { // TINYMCE 3 if (_.opener.name == "tinymce") { var par = window.parent.document, ifr = $('iframe[src*="browse.php?opener=tinymce&"]', par), id = parseInt(ifr.attr('id').replace(/^mce_(\d+)_ifr$/, "$1")), win = $('#mce_' + id, par); if ($(button).hasClass('selected')) { $(button).removeClass('selected'); win.css({ left: _.maximizeMCE.left, top: _.maximizeMCE.top, width: _.maximizeMCE.width, height: _.maximizeMCE.height }); ifr.css({ width: _.maximizeMCE.width - _.maximizeMCE.Hspace, height: _.maximizeMCE.height - _.maximizeMCE.Vspace }); } else { $(button).addClass('selected') _.maximizeMCE = { width: parseInt(win.css('width')), height: parseInt(win.css('height')), left: win.position().left, top: win.position().top, Hspace: parseInt(win.css('width')) - parseInt(ifr.css('width')), Vspace: parseInt(win.css('height')) - parseInt(ifr.css('height')) }; var width = $(window.top).width(), height = $(window.top).height(); win.css({ left: $(window.parent).scrollLeft(), top: $(window.parent).scrollTop(), width: width, height: height }); ifr.css({ width: width - _.maximizeMCE.Hspace, height: height - _.maximizeMCE.Vspace }); } // TINYMCE 4 } else if (_.opener.name == "tinymce4") { var par = window.parent.document, ifr = $('iframe[src*="browse.php?opener=tinymce4&"]', par).parent(), win = ifr.parent(); if ($(button).hasClass('selected')) { $(button).removeClass('selected'); win.css({ left: _.maximizeMCE4.left, top: _.maximizeMCE4.top, width: _.maximizeMCE4.width, height: _.maximizeMCE4.height }); ifr.css({ width: _.maximizeMCE4.width, height: _.maximizeMCE4.height - _.maximizeMCE4.Vspace }); } else { $(button).addClass('selected'); _.maximizeMCE4 = { width: parseInt(win.css('width')), height: parseInt(win.css('height')), left: win.position().left, top: win.position().top, Vspace: win.outerHeight(true) - ifr.outerHeight(true) - 1 }; var width = $(window.top).width(), height = $(window.top).height(); win.css({ left: 0, top: 0, width: width, height: height }); ifr.css({ width: width, height: height - _.maximizeMCE4.Vspace }); } // PUPUP WINDOW } else if (window.opener) { window.moveTo(0, 0); width = screen.availWidth; height = screen.availHeight; if ($.agent.opera) height -= 50; window.resizeTo(width, height); } else { if (window.parent) { var el = null; $(window.parent.document).find('iframe').each(function() { if (this.src.replace('/?', '?') == window.location.href.replace('/?', '?')) { el = this; return false; } }); // IFRAME if (el !== null) $(el).toggleFullscreen(window.parent.document); // SELF WINDOW else $('body').toggleFullscreen(); } else $('body').toggleFullscreen(); } }; _.refresh = function(selected) { _.fadeFiles(); $.ajax({ type: "post", dataType: "json", url: _.getURL("chDir"), data: {dir: _.dir}, async: false, success: function(data) { if (_.check4errors(data)) { $('#files > div').css({opacity: "", filter: ""}); return; } _.dirWritable = data.dirWritable; _.files = data.files ? data.files : []; _.orderFiles(null, selected); _.statusDir(); }, error: function() { $('#files > div').css({opacity: "", filter: ""}); $('#files').html(_.label("Unknown error.")); } }); };