plugins/ckeditor/templates/admin/ck_file_browser/js.stpl
{js()}
var bconf = {
func_num : '{ck_funcnum}',
url_core : '{url(/@object/get_node)}',
url_delete : '{url(/@object/delete_node)}',
url_create : '{url(/@object/create_node)}',
url_rename : '{url(/@object/rename_node)}',
url_move : '{url(/@object/move_node)}',
url_copy : '{url(/@object/copy_node)}',
url_contents : '{url(/@object/get_content/%id)}',
url_edit : '{url(/@object/edit)}',
url_del_img : '{url(/@object/delete_img)}',
t_are_you_sure : '{t(Are you sure?)}',
t_select_file : '{t('Select a file from the tree')}',
__last : null
}
function refreshjstree() {
$('#tree').jstree(true).refresh();
}
{/js}
{jquery()}
if (window.opener) {
$('#data').on("click", '.ck_select_image a.img-select', function() {
try {
window.opener.CKEDITOR.tools.callFunction(bconf.func_num, $('img', this).attr('src'));
window.close();
return false;
} catch (e) {
console.log('CKeditor opener not found', e)
}
});
$('#data').on("click", '#add_image_url', function() {
try {
window.opener.CKEDITOR.tools.callFunction(bconf.func_num, $('#image_src').attr('src'));
window.close();
return false;
} catch (e) {
console.log('CKeditor opener not found', e)
}
});
} else {
$('#data').on("click", '.ck_select_image a.img-select', function() {
window.open($('img', this).attr('src'), '_blank');
return false;
});
}
$('#data').on("click", '.ck_select_image .img-actions a.btn', function() {
var _this = $(this)
var img = _this.closest('.ck_select_image').find('.img-select img')
var img_src = img.attr('src')
if (img_src.substr(0,2) == '//') {
img_src = 'http:' + img_src
}
var img_uploads_path = img.data('uploads-path');
if (_this.hasClass('btn-delete')) {
if (confirm(bconf.t_are_you_sure)) {
$.post(bconf.url_del_img, {'path' : img_src})
.always(function(data) {
console.log(data)
_this.closest('.ck_select_image').remove()
})
.fail(function() {
alert("error");
})
}
} else if (_this.hasClass('btn-edit')) {
var url_edit = bconf.url_edit
if (url_edit.substr(0,2) == '//') {
url_edit = 'http:' + url_edit
}
var pixlr_url = 'http://www.pixlr.com/editor/'
+ '?target=' + encodeURIComponent(url_edit)
+ '&method=GET'
+ '&referer=' + encodeURIComponent(url_edit)
+ '&image=' + encodeURIComponent(img_src)
+ '&title=' + encodeURIComponent(img_uploads_path.split('.')[0])
+ '&locktarget=true'
+ '&locktitle=true'
console.log(pixlr_url)
window.location.href = pixlr_url;
}
return false;
});
$(window).resize(function () {
var h = Math.max($(window).height() - 0, 420);
$('#container, #data, #tree, #data').height(h).filter('.default').css('lineHeight', h + 'px');
}).resize();
$(window).resize(function () {
var h = Math.max($(window).height() - 0, 420);
$('#container, #data, #tree, #data').height(h).filter('.default').css('lineHeight', h + 'px');
}).resize();
$('#tree').jstree({
'core' : {
'data' : {
'url' : bconf.url_core,
'data' : function (node) {
return { 'id' : node.id };
}
},
'check_callback' : function(o, n, p, i, m) {
if (m && m.dnd && m.pos !== 'i') { return false; }
if (o === "move_node" || o === "copy_node") {
if(this.get_node(n).parent === this.get_node(p).id) { return false; }
}
return true;
},
'themes' : {
'responsive' : false,
'variant' : 'small',
'stripes' : true
}
},
'sort' : function(a, b) {
return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : (this.get_type(a) >= this.get_type(b) ? 1 : -1);
},
'contextmenu' : {
'items' : function(node) {
var tmp = $.jstree.defaults.contextmenu.items();
delete tmp.create.action;
tmp.create.label = "New";
tmp.create.submenu = {
"create_folder" : {
"separator_after" : true,
"label" : "Folder",
"action" : function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.create_node(obj, { type : "default" }, "last", function (new_node) {
setTimeout(function () { inst.edit(new_node); },0);
});
}
}
};
if(this.get_type(node) === "file") {
delete tmp.create;
}
return tmp;
}
},
'types' : {
'default' : { 'icon' : 'fa fa-folder fa-lg' },
'file' : { 'valid_children' : [], 'icon' : 'fa fa-file-image-o fa-lg' }
},
'unique' : {
'duplicate' : function (name, counter) {
return name + ' ' + counter;
}
},
'plugins' : ['state','dnd','sort','types','contextmenu','unique']
})
.on('delete_node.jstree', function (e, data) {
if (confirm(bconf.t_are_you_sure)) {
$.get(bconf.url_delete, { 'id' : data.node.id })
.fail(function () { data.instance.refresh(); });
}
})
.on('create_node.jstree', function (e, data) {
$.get(bconf.url_create, { 'type' : data.node.type, 'id' : data.node.parent, 'text' : data.node.text })
.done(function (d) { data.instance.set_id(data.node, d.id); })
.fail(function () { data.instance.refresh(); });
})
.on('rename_node.jstree', function (e, data) {
$.get(bconf.url_rename, { 'id' : data.node.id, 'text' : data.text })
.done(function (d) { data.instance.set_id(data.node, d.id); })
.fail(function () { data.instance.refresh(); });
})
.on('move_node.jstree', function (e, data) {
if (confirm(bconf.t_are_you_sure)) {
$.get(bconf.url_move, { 'id' : data.node.id, 'parent' : data.parent })
.done(function (d) { data.instance.refresh(); })
.fail(function () { data.instance.refresh(); });
}
})
.on('copy_node.jstree', function (e, data) {
if (confirm(bconf.t_are_you_sure)) {
$.get(bconf.url_copy, { 'id' : data.original.id, 'parent' : data.parent })
.done(function (d) { data.instance.refresh(); })
.fail(function () { data.instance.refresh(); });
}
})
.on('changed.jstree', function (e, data) {
if (data && data.selected && data.selected.length) {
$.get(bconf.url_contents.replace('%id', data.selected.join(':')), function (d) {
if(d && typeof d.type !== 'undefined') {
$('#data .content').hide();
switch(d.type) {
case 'text':
case 'txt':
case 'md':
case 'htaccess':
case 'log':
case 'sql':
case 'php':
case 'js':
case 'json':
case 'css':
case 'html':
$('#data .code').show();
$('#code').val(d.content);
break;
case 'png':
case 'jpg':
case 'jpeg':
case 'bmp':
case 'gif':
$('#data .image img').attr('src',d.content);
$('#image_src_href').attr('href',d.content);
$('#image_info').html(d.info);
$('#data .image').show();
break;
default:
$('#data .default').html(d.content).show();
break;
}
}
});
} else {
$('#data .content').hide();
$('#data .default').html(bconf.t_select_file).show();
}
});
{/jquery}