bludit/bl-kernel/js/bludit-menu-v8.js

160 lines
3.5 KiB
JavaScript

<script>
var menuV8 = new function() {
this.filenameSelected = null;
this.getFilename = function() {
return this.filenameSelected;
}
this.setFilename = function(filename) {
this.filenameSelected = filename;
}
this.hideMenu = function() {
// Check if the menu is visible.
if($("#bludit-menuV8").is(":visible")) {
// Hide the menu.
$("#bludit-menuV8").hide();
// Clean thumbnail borders.
$(".bludit-thumbnail").css("border", "1px solid #ddd");
}
}
this.showMenu = function(filenameSelected, positonX, positonY) {
// Store the image selected.
this.setFilename( filenameSelected );
console.log("Image selected: " + this.getFilename());
// Position the menu v8.
$("#bludit-menuV8").css({
left: positonX + "px",
top: positonY + "px"
});
// Show the menu v8.
$("#bludit-menuV8").show();
}
}
// This function is the default to add the image to the textarea.
// Only call when the textarea doesn't have a HTML Editor enabled.
function editorAddImageDefault(filename) {
var textarea = $("#jscontent");
var imgHTML = '<img src="'+filename+'" alt="">';
textarea.val(textarea.val() + imgHTML);
}
$(document).ready(function() {
// Click on document.
$(document).bind("click", function(e) {
// Deny hide if the click is over the thumbnail.
if($(e.target).is("img.bludit-thumbnail")) {
return false;
}
// Hide the menu.
menuV8.hideMenu(e);
});
// Click over thumbnail.
$("body").on("click", "img.bludit-thumbnail", function(e) {
console.log("Thumbnail click");
// Clean all thumbnail borders.
$(".bludit-thumbnail").css("border", "1px solid #ddd");
// Thumbnail selected.
var thumbnail = $(this);
// Add border to the thumbnail selected.
thumbnail.css("border", "solid 3px orange");
// Filename of the selected image.
var filenameSelected = thumbnail.attr("data-filename");
// SHow menu in position X and Y of the mouse.
menuV8.showMenu( filenameSelected, e.pageX, e.pageY );
});
// Insert image
$("body").on("click", "#bludit-menuV8-insert", function(e) {
if(typeof editorAddImage == 'function') {
// This function is defined in each editor plugin.
editorAddImage( menuV8.getFilename() );
}
else {
editorAddImageDefault( menuV8.getFilename() );
}
});
// Set cover image
$("body").on("click", "#bludit-menuV8-cover", function(e) {
coverImage.set( menuV8.getFilename() );
});
// Delete image
$("body").on("click", "#bludit-menuV8-delete", function(e) {
var filenameSelected = menuV8.getFilename();
if(filenameSelected==null) {
return false;
}
ajaxRequest = $.ajax({
type: "POST",
data:{ tokenCSRF: tokenCSRF, filename: filenameSelected },
url: "<?php echo HTML_PATH_ADMIN_ROOT.'ajax/delete-file' ?>"
});
// Callback handler that will be called on success
ajaxRequest.done(function (response, textStatus, jqXHR){
// Remove the thumbnail from Images v8
imagesV8.removeThumbnail( filenameSelected );
// Remove the thumbnail from Quick Images
quickImages.removeThumbnail( filenameSelected );
console.log("Delete image: AJAX request done, message: "+response["msg"]);
});
// Callback handler that will be called on failure
ajaxRequest.fail(function (jqXHR, textStatus, errorThrown){
console.log("Delete image: AJAX request fail");
});
// Callback handler that will be called regardless
// if the request failed or succeeded
ajaxRequest.always(function () {
console.log("Delete image: AJAX request always");
});
});
});
</script>