Первая копия
This commit is contained in:
259
metadata/include/kcfinder/js/050.init.js
Normal file
259
metadata/include/kcfinder/js/050.init.js
Normal file
@ -0,0 +1,259 @@
|
||||
/** This file is part of KCFinder project
|
||||
*
|
||||
* @desc Object initializations
|
||||
* @package KCFinder
|
||||
* @version 3.12
|
||||
* @author Pavel Tzonkov <sunhater@sunhater.com>
|
||||
* @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
|
||||
*/
|
||||
|
||||
_.init = function() {
|
||||
if (!_.checkAgent()) return;
|
||||
|
||||
$('body').click(function() {
|
||||
_.menu.hide();
|
||||
}).rightClick();
|
||||
|
||||
$('#menu').unbind().click(function() {
|
||||
return false;
|
||||
});
|
||||
|
||||
_.initOpeners();
|
||||
_.initSettings();
|
||||
_.initContent();
|
||||
_.initToolbar();
|
||||
_.initResizer();
|
||||
_.initDropUpload();
|
||||
|
||||
var div = $('<div></div>')
|
||||
.css({width: 100, height: 100, overflow: 'auto', position: 'absolute', top: -1000, left: -1000})
|
||||
.prependTo('body').append('<div></div>').find('div').css({width: '100%', height: 200});
|
||||
_.scrollbarWidth = 100 - div.width();
|
||||
div.parent().remove();
|
||||
|
||||
$.each($.agent, function(i) {
|
||||
if (i != "platform")
|
||||
$('body').addClass(i)
|
||||
});
|
||||
|
||||
if ($.agent.platform)
|
||||
$.each($.agent.platform, function(i) {
|
||||
$('body').addClass(i)
|
||||
});
|
||||
|
||||
if ($.mobile)
|
||||
$('body').addClass("mobile");
|
||||
};
|
||||
|
||||
_.checkAgent = function() {
|
||||
if (($.agent.msie && !$.agent.opera && !$.agent.chromeframe && (parseInt($.agent.msie) < 9)) ||
|
||||
($.agent.opera && (parseInt($.agent.version) < 10)) ||
|
||||
($.agent.firefox && (parseFloat($.agent.firefox) < 1.8))
|
||||
) {
|
||||
var html = '<div style="padding:10px">Your browser is not capable to display KCFinder. Please update your browser or install another one: <a href="http://www.mozilla.com/firefox/" target="_blank">Mozilla Firefox</a>, <a href="http://www.apple.com/safari" target="_blank">Apple Safari</a>, <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a>, <a href="http://www.opera.com/browser" target="_blank">Opera</a>.';
|
||||
if ($.agent.msie && !$.agent.opera)
|
||||
html += ' You may also install <a href="http://www.google.com/chromeframe" target="_blank">Google Chrome Frame ActiveX plugin</a> to get Internet Explorer 6, 7, 8 working.';
|
||||
html += '</div>';
|
||||
$('body').html(html);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
_.initOpeners = function() {
|
||||
|
||||
try {
|
||||
|
||||
// TinyMCE 3
|
||||
if (_.opener.name == "tinymce") {
|
||||
if (typeof tinyMCEPopup == "undefined")
|
||||
_.opener.name = null;
|
||||
else
|
||||
_.opener.callBack = true;
|
||||
|
||||
// TinyMCE 4
|
||||
} else if (_.opener.name == "tinymce4")
|
||||
_.opener.callBack = true;
|
||||
|
||||
// CKEditor
|
||||
else if (_.opener.name == "ckeditor") {
|
||||
if (window.parent && window.parent.CKEDITOR)
|
||||
_.opener.CKEditor.object = window.parent.CKEDITOR;
|
||||
else if (window.opener && window.opener.CKEDITOR) {
|
||||
_.opener.CKEditor.object = window.opener.CKEDITOR;
|
||||
_.opener.callBack = true;
|
||||
} else
|
||||
_.opener.CKEditor = null;
|
||||
|
||||
// FCKeditor
|
||||
} else if ((!_.opener.name || (_.opener.name == "fckeditor")) && window.opener && window.opener.SetUrl) {
|
||||
_.opener.name = "fckeditor";
|
||||
_.opener.callBack = true;
|
||||
}
|
||||
|
||||
// Custom callback
|
||||
if (!_.opener.callBack) {
|
||||
if ((window.opener && window.opener.KCFinder && window.opener.KCFinder.callBack) ||
|
||||
(window.parent && window.parent.KCFinder && window.parent.KCFinder.callBack)
|
||||
)
|
||||
_.opener.callBack = window.opener
|
||||
? window.opener.KCFinder.callBack
|
||||
: window.parent.KCFinder.callBack;
|
||||
|
||||
if ((
|
||||
window.opener &&
|
||||
window.opener.KCFinder &&
|
||||
window.opener.KCFinder.callBackMultiple
|
||||
) || (
|
||||
window.parent &&
|
||||
window.parent.KCFinder &&
|
||||
window.parent.KCFinder.callBackMultiple
|
||||
)
|
||||
)
|
||||
_.opener.callBackMultiple = window.opener
|
||||
? window.opener.KCFinder.callBackMultiple
|
||||
: window.parent.KCFinder.callBackMultiple;
|
||||
}
|
||||
|
||||
} catch(e) {}
|
||||
};
|
||||
|
||||
_.initContent = function() {
|
||||
$('div#folders').html(_.label("Loading folders..."));
|
||||
$('div#files').html(_.label("Loading files..."));
|
||||
$.ajax({
|
||||
type: "get",
|
||||
dataType: "json",
|
||||
url: _.getURL("init"),
|
||||
async: false,
|
||||
success: function(data) {
|
||||
if (_.check4errors(data))
|
||||
return;
|
||||
_.dirWritable = data.dirWritable;
|
||||
$('#folders').html(_.buildTree(data.tree));
|
||||
_.setTreeData(data.tree);
|
||||
_.setTitle("KCFinder: /" + _.dir);
|
||||
_.initFolders();
|
||||
_.files = data.files ? data.files : [];
|
||||
_.orderFiles();
|
||||
},
|
||||
error: function() {
|
||||
$('div#folders').html(_.label("Unknown error."));
|
||||
$('div#files').html(_.label("Unknown error."));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
_.initResizer = function() {
|
||||
var cursor = ($.agent.opera) ? 'move' : 'col-resize';
|
||||
$('#resizer').css('cursor', cursor).draggable({
|
||||
axis: 'x',
|
||||
start: function() {
|
||||
$(this).css({
|
||||
opacity: "0.4",
|
||||
filter: "alpha(opacity=40)"
|
||||
});
|
||||
$('#all').css('cursor', cursor);
|
||||
},
|
||||
stop: function() {
|
||||
$(this).css({
|
||||
opacity: "0",
|
||||
filter: "alpha(opacity=0)"
|
||||
});
|
||||
$('#all').css('cursor', "");
|
||||
|
||||
var jLeft = $('#left'),
|
||||
jRight = $('#right'),
|
||||
jFiles = $('#files'),
|
||||
jFolders = $('#folders'),
|
||||
left = parseInt($(this).css('left')) + parseInt($(this).css('width')),
|
||||
w = 0, r;
|
||||
|
||||
$('#toolbar a').each(function() {
|
||||
if ($(this).css('display') != "none")
|
||||
w += $(this).outerWidth(true);
|
||||
});
|
||||
|
||||
r = $(window).width() - w;
|
||||
|
||||
if (left < 100)
|
||||
left = 100;
|
||||
|
||||
if (left > r)
|
||||
left = r;
|
||||
|
||||
var right = $(window).width() - left;
|
||||
|
||||
jLeft.css('width', left);
|
||||
jRight.css('width', right);
|
||||
jFiles.css('width', jRight.innerWidth() - jFiles.outerHSpace());
|
||||
|
||||
$('#resizer').css({
|
||||
left: jLeft.outerWidth() - jFolders.outerRightSpace('m'),
|
||||
width: jFolders.outerRightSpace('m') + jFiles.outerLeftSpace('m')
|
||||
});
|
||||
|
||||
_.fixFilesHeight();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
_.resize = function() {
|
||||
var jLeft = $('#left'),
|
||||
jRight = $('#right'),
|
||||
jStatus = $('#status'),
|
||||
jFolders = $('#folders'),
|
||||
jFiles = $('#files'),
|
||||
jResizer = $('#resizer'),
|
||||
jWindow = $(window);
|
||||
|
||||
jLeft.css({
|
||||
width: "25%",
|
||||
height: jWindow.height() - jStatus.outerHeight()
|
||||
});
|
||||
jRight.css({
|
||||
width: "75%",
|
||||
height: jWindow.height() - jStatus.outerHeight()
|
||||
});
|
||||
$('#toolbar').css('height', $('#toolbar a').outerHeight());
|
||||
|
||||
jResizer.css('height', $(window).height());
|
||||
|
||||
jFolders.css('height', jLeft.outerHeight() - jFolders.outerVSpace());
|
||||
_.fixFilesHeight();
|
||||
var width = jLeft.outerWidth() + jRight.outerWidth();
|
||||
jStatus.css('width', width);
|
||||
while (jStatus.outerWidth() > width)
|
||||
jStatus.css('width', parseInt(jStatus.css('width')) - 1);
|
||||
while (jStatus.outerWidth() < width)
|
||||
jStatus.css('width', parseInt(jStatus.css('width')) + 1);
|
||||
jFiles.css('width', jRight.innerWidth() - jFiles.outerHSpace());
|
||||
jResizer.css({
|
||||
left: jLeft.outerWidth() - jFolders.outerRightSpace('m'),
|
||||
width: jFolders.outerRightSpace('m') + jFiles.outerLeftSpace('m')
|
||||
});
|
||||
};
|
||||
|
||||
_.setTitle = function(title) {
|
||||
document.title = title;
|
||||
if (_.opener.name == "tinymce")
|
||||
tinyMCEPopup.editor.windowManager.setTitle(window, title);
|
||||
else if (_.opener.name == "tinymce4") {
|
||||
var ifr = $('iframe[src*="browse.php?opener=tinymce4&"]', window.parent.document),
|
||||
path = ifr.attr('src').split('browse.php?')[0];
|
||||
ifr.parent().parent().find('div.mce-title').html('<span style="padding:0 0 0 28px;margin:-2px 0 -3px -6px;display:block;font-size:1em;font-weight:bold;background:url(' + path + 'themes/default/img/kcf_logo.png) left center no-repeat">' + title + '</span>');
|
||||
}
|
||||
};
|
||||
|
||||
_.fixFilesHeight = function() {
|
||||
var jFiles = $('#files'),
|
||||
jSettings = $('#settings');
|
||||
|
||||
jFiles.css('height',
|
||||
$('#left').outerHeight() - $('#toolbar').outerHeight() - jFiles.outerVSpace() -
|
||||
((jSettings.css('display') != "none") ? jSettings.outerHeight() : 0)
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user