1020 lines
32 KiB
PHP
Executable File
1020 lines
32 KiB
PHP
Executable File
<?php
|
||
|
||
require_once('config.php');
|
||
require_once('functions.php');
|
||
|
||
if(!defined('LIBRARY_FOLDER_PATH')){
|
||
define('LIBRARY_FOLDER_PATH', 'uploads/');
|
||
}
|
||
|
||
if(!defined('LIBRARY_FOLDER_PATH')){
|
||
$pageURL = 'http';
|
||
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
|
||
$pageURL .= "s";
|
||
}
|
||
$pageURL .= "://";
|
||
if($_SERVER["SERVER_PORT"] != "80"){
|
||
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
|
||
}else{
|
||
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
|
||
}
|
||
if(preg_match("/(.*)\/image\.php/",$pageURL,$matches)){
|
||
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
|
||
}
|
||
}
|
||
|
||
$max_upload = (int)(ini_get('upload_max_filesize'));
|
||
$max_post = (int)(ini_get('post_max_size'));
|
||
$memory_limit = (int)(ini_get('memory_limit'));
|
||
$upload_mb = min($max_upload, $max_post, $memory_limit);
|
||
|
||
if(isset($_GET['src'])){
|
||
$source = clean($_GET['src']);
|
||
}else{
|
||
$source = "";
|
||
}
|
||
|
||
if(isset($_GET['title'])){
|
||
$title = clean($_GET['title']);
|
||
}else{
|
||
$title = "";
|
||
}
|
||
|
||
if(isset($_GET['alt'])){
|
||
$alt = clean($_GET['alt']);
|
||
}else{
|
||
$alt = "";
|
||
}
|
||
|
||
if(isset($_GET['width'])){
|
||
$width = clean($_GET['width']);
|
||
}else{
|
||
$width = "";
|
||
}
|
||
|
||
if(isset($_GET['height'])){
|
||
$height = clean($_GET['height']);
|
||
}else{
|
||
$height = "";
|
||
}
|
||
|
||
if(isset($_GET['align'])){
|
||
$align = clean($_GET['align']);
|
||
}else{
|
||
$align = "";
|
||
}
|
||
|
||
|
||
?>
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>TinyMCE 4 Image Manager</title>
|
||
<link href="bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
|
||
<script src="bootstrap/js/jquery.js"></script>
|
||
<script src="bootstrap/js/bootstrap.min.js"></script>
|
||
|
||
<link href="bootstrap/blueimp/css/style.css" rel="stylesheet" />
|
||
<script src="bootstrap/blueimp/js/jquery.ui.widget.js"></script>
|
||
<script src="bootstrap/blueimp/js/jquery.iframe-transport.js"></script>
|
||
<script src="bootstrap/blueimp/js/jquery.fileupload.js"></script>
|
||
|
||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||
<!--[if lt IE 9]>
|
||
<script src="bootstrap/js/html5shiv.js"></script>
|
||
<![endif]-->
|
||
<style>
|
||
.library-item div.item{
|
||
margin: 9px;
|
||
display: block;
|
||
float: left;
|
||
width: 130px;
|
||
height: 108px;
|
||
margin-bottom: 12px;
|
||
margin-right: 27px;
|
||
}
|
||
|
||
.transparent {
|
||
zoom: 1;
|
||
filter: alpha(opacity=50);
|
||
opacity: 0.5;
|
||
}
|
||
|
||
.transparent:hover {
|
||
zoom: 1;
|
||
filter: alpha(opacity=90);
|
||
opacity: 0.9;
|
||
}
|
||
|
||
.img-polaroid:hover{
|
||
border-color: #0088cc;
|
||
-webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
|
||
-moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
|
||
box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
|
||
}
|
||
|
||
#ajax-loader-div {
|
||
height: 400px;
|
||
position: relative;
|
||
}
|
||
.ajax-loader {
|
||
position: absolute;
|
||
left: 50%;
|
||
top: 50%;
|
||
margin-left: -16px; /* -1 * image width / 2 */
|
||
margin-top: -16px; /* -1 * image height / 2 */
|
||
display: block;
|
||
}
|
||
<?php
|
||
if(!CanDeleteFiles()){
|
||
?>
|
||
.delete-file{
|
||
display: none;
|
||
}
|
||
<?php
|
||
}
|
||
?>
|
||
<?php
|
||
if(!CanDeleteFolder()){
|
||
?>
|
||
.delete-folder{
|
||
display: none;
|
||
}
|
||
<?php
|
||
}
|
||
?>
|
||
|
||
<?php
|
||
if(!CanRenameFiles()){
|
||
?>
|
||
.change-file{
|
||
display: none;
|
||
}
|
||
<?php
|
||
}
|
||
?>
|
||
<?php
|
||
if(!CanRenameFolder()){
|
||
?>
|
||
.change-folder{
|
||
display: none;
|
||
}
|
||
<?php
|
||
}
|
||
?>
|
||
</style>
|
||
<script>
|
||
$(document).ready(function(){
|
||
|
||
var originalWidth, originalHeight, loaded = false;
|
||
|
||
<?php
|
||
if(isset($_GET['src']) AND trim($_GET['src']) != ""){
|
||
echo 'var newImage = false;
|
||
';
|
||
}else{
|
||
echo 'var newImage = true;
|
||
';
|
||
}
|
||
|
||
?>
|
||
|
||
function MySerach(needle, haystack){
|
||
var results = new Array();
|
||
var counter = 0;
|
||
var rgxp = new RegExp(needle, "g");
|
||
var temp = new Array();
|
||
for(i=0;i<haystack.length;i++){
|
||
temp = haystack[i][1].match(rgxp)
|
||
if(temp && temp.length > 0){
|
||
results[counter] = haystack[i];
|
||
counter = counter + 1;
|
||
}
|
||
}
|
||
return results;
|
||
}
|
||
|
||
function getArray(object){
|
||
var array = [];
|
||
for(var key in object){
|
||
var item = object[key];
|
||
array[parseInt(key)] = (typeof(item) == "object")?getArray(item):item;
|
||
}
|
||
return array;
|
||
}
|
||
|
||
var search_haystack = new Array();
|
||
|
||
$("#search").focus(function () {
|
||
$("#lib-back").attr('disabled','disabled');
|
||
$("#newfolder_name").attr('disabled','disabled');
|
||
$("#newfolder_btn").attr('disabled','disabled');
|
||
|
||
$("#refresh").attr("rel", "searching");
|
||
|
||
$('#lib-title').empty();
|
||
$('#lib-title').append('Searching... <a href="" id="clear-search">clear</a>');
|
||
|
||
$.getJSON('search.php',{}, function(returned){
|
||
search_haystack = getArray(returned);
|
||
});
|
||
});
|
||
|
||
$(document).on('click', 'a#clear-search', function () {
|
||
$('#lib-title').empty();
|
||
$('#lib-title').append("Home");
|
||
|
||
$("#newfolder_name").removeAttr("disabled", "disabled");
|
||
$("#newfolder_btn").removeAttr("disabled", "disabled");
|
||
|
||
$("#refresh").attr("rel", "<?php echo LIBRARY_FOLDER_PATH; ?>");
|
||
|
||
$("#search").val("");
|
||
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in library.</center>');
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
$("#search").keyup(function(event) {
|
||
if(this.value.length > 1){
|
||
|
||
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
|
||
var results = MySerach(this.value, search_haystack);
|
||
$('#gallery-images').empty();
|
||
if(results.length > 0){
|
||
for(i=0;i<results.length;i++){
|
||
$('#gallery-images').append('<a href="" class="img-thumbs" rel="' + results[i][0] + '"><img src="timthumb.php?src=' + results[i][0] + '&w=130&h=90" class="img-polaroid" width="130" height="90"></a>');
|
||
}
|
||
}else{
|
||
$('#gallery-images').append('<center>No images match the search.</center>');
|
||
}
|
||
}else if(this.value.length == 0){
|
||
$('#lib-title').empty();
|
||
$('#lib-title').append("Home");
|
||
|
||
$("#newfolder_name").removeAttr("disabled", "disabled");
|
||
$("#newfolder_btn").removeAttr("disabled", "disabled");
|
||
|
||
$("#refresh").attr("rel", "<?php echo LIBRARY_FOLDER_PATH; ?>");
|
||
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in library.</center>');
|
||
}
|
||
});
|
||
}
|
||
});
|
||
|
||
$("#preview").bind("load", function () {
|
||
if(newImage){
|
||
if ($("#preview").get(0).naturalWidth) {
|
||
$("#width").val($("#preview").get(0).naturalWidth);
|
||
$("#height").val($("#preview").get(0).naturalHeight);
|
||
|
||
originalWidth = $("#preview").get(0).naturalWidth;
|
||
originalHeight = $("#preview").get(0).naturalHeight;
|
||
} else if ($("#preview").attr("naturalWidth")) {
|
||
$("#width").val($("#preview").attr("naturalWidth"));
|
||
$("#height").val($("#preview").attr("naturalHeight"));
|
||
|
||
originalWidth = $("#preview").attr("naturalWidth");
|
||
originalHeight = $("#preview").attr("naturalHeight");
|
||
}
|
||
|
||
parent.document.getElementById("width").value= originalWidth;
|
||
parent.document.getElementById("height").value= originalHeight;
|
||
}else{
|
||
newImage = true;
|
||
if ($("#preview").get(0).naturalWidth) {
|
||
originalWidth = $("#preview").get(0).naturalWidth;
|
||
originalHeight = $("#preview").get(0).naturalHeight;
|
||
} else if ($("#preview").attr("naturalWidth")) {
|
||
originalWidth = $("#preview").attr("naturalWidth");
|
||
originalHeight = $("#preview").attr("naturalHeight");
|
||
}
|
||
}
|
||
});
|
||
|
||
$(document).on('click', 'a.mi-close', function () {
|
||
$(this).parent().hide();
|
||
return false;
|
||
});
|
||
|
||
$(document).on('click', 'a.img-thumbs', function () {
|
||
$("#preview").attr("src", "");
|
||
$("#width").val();
|
||
$("#height").val();
|
||
$("#source").val($(this).attr("rel"));
|
||
$("#preview").attr("src", $(this).attr("rel") + '?dummy=' + new Date().getTime());
|
||
$('#myTab a[href="#tab1"]').tab('show');
|
||
parent.document.getElementById("src").value= $(this).attr("rel");
|
||
$.post("update_recent.php" + "?dummy=" + new Date().getTime(), { src: $(this).attr("rel") } );
|
||
return false;
|
||
});
|
||
|
||
$("#source").bind("change", function () {
|
||
$.post("update_recent.php" + "?dummy=" + new Date().getTime(), { src: this.value } );
|
||
$("#preview").attr("src", this.value + '?dummy=' + new Date().getTime());
|
||
parent.document.getElementById("src").value= this.value;
|
||
});
|
||
|
||
$("#alt").bind("change", function () {
|
||
parent.document.getElementById("alt").value= this.value;
|
||
});
|
||
|
||
$("#title").bind("change", function () {
|
||
parent.document.getElementById("title").value= this.value;
|
||
});
|
||
|
||
$("#width").keyup(function(event) {
|
||
parent.document.getElementById("width").value= this.value;
|
||
if($('#constrain').is(':checked') && this.value != originalWidth){
|
||
parent.document.getElementById("height").value= Math.round((this.value / originalWidth) * originalHeight);
|
||
$("#height").val(Math.round((this.value / originalWidth) * originalHeight));
|
||
}else if(this.value == originalWidth){
|
||
parent.document.getElementById("height").value= originalHeight;
|
||
$("#height").val(originalHeight);
|
||
}
|
||
});
|
||
|
||
$("#height").keyup(function(event) {
|
||
parent.document.getElementById("height").value= this.value;
|
||
if($('#constrain').is(':checked') && this.value != originalHeight){
|
||
parent.document.getElementById("width").value= Math.round((this.value / originalHeight) * originalWidth);
|
||
$("#width").val(Math.round((this.value / originalHeight) * originalWidth));
|
||
}else if(this.value == originalHeight){
|
||
parent.document.getElementById("width").value= originalWidth;
|
||
$("#width").val(originalWidth);
|
||
}
|
||
});
|
||
|
||
$("#width").bind("change", function () {
|
||
parent.document.getElementById("width").value= this.value;
|
||
if($('#constrain').is(':checked') && this.value != originalWidth){
|
||
parent.document.getElementById("height").value= Math.round((this.value / originalWidth) * originalHeight);
|
||
$("#height").val(Math.round((this.value / originalWidth) * originalHeight));
|
||
}else if(this.value == originalWidth){
|
||
parent.document.getElementById("height").value= originalHeight;
|
||
$("#height").val(originalHeight);
|
||
}
|
||
});
|
||
|
||
$("#height").bind("change", function () {
|
||
parent.document.getElementById("height").value= this.value;
|
||
if($('#constrain').is(':checked') && this.value != originalHeight){
|
||
parent.document.getElementById("width").value= Math.round((this.value / originalHeight) * originalWidth);
|
||
$("#width").val(Math.round((this.value / originalHeight) * originalWidth));
|
||
}else if(this.value == originalHeight){
|
||
parent.document.getElementById("width").value= originalWidth;
|
||
$("#width").val(originalWidth);
|
||
}
|
||
});
|
||
|
||
$(".dimensions").keydown(function(event) {
|
||
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
|
||
// Allow: Ctrl+A
|
||
(event.keyCode == 65 && event.ctrlKey === true) ||
|
||
// Allow: home, end, left, right
|
||
(event.keyCode >= 35 && event.keyCode <= 39)) {
|
||
// let it happen, don't do anything
|
||
return;
|
||
}else {
|
||
// Ensure that it is a number and stop the keypress
|
||
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
|
||
event.preventDefault();
|
||
}
|
||
}
|
||
});
|
||
|
||
$("#do_link").bind("change", function () {
|
||
if($(this).is(':checked')){
|
||
$("#link_url").removeAttr('disabled');
|
||
$("#target").removeAttr('disabled');
|
||
}else{
|
||
$("#link_url").attr('disabled','disabled');
|
||
parent.document.getElementById("linkURL").value= "";
|
||
|
||
$("#target").attr('disabled','disabled');
|
||
parent.document.getElementById("target").value= "";
|
||
}
|
||
});
|
||
|
||
$("#link_url").bind("change", function () {
|
||
parent.document.getElementById("linkURL").value= this.value;
|
||
});
|
||
|
||
$("#target").bind("change", function () {
|
||
parent.document.getElementById("target").value= this.value;
|
||
});
|
||
|
||
$("#float").bind("change", function () {
|
||
parent.document.getElementById("align").value= this.value;
|
||
});
|
||
|
||
|
||
$("#get-recent").bind("click", function () {
|
||
$('#recent-images').empty();
|
||
$('#recent-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('recent.php',{}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#recent-images').empty();
|
||
$('#recent-images').append(returned.html);
|
||
}else{
|
||
$('#recent-images').empty();
|
||
$('#recent-images').append('<center>No recent images found.</center>');
|
||
}
|
||
});
|
||
});
|
||
|
||
$("#refresh").bind("click", function () {
|
||
if($(this).attr("rel") == 'searching'){
|
||
return false;
|
||
}
|
||
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{path: $(this).attr("rel")}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in the folder.</center>');
|
||
}
|
||
});
|
||
|
||
|
||
|
||
return false;
|
||
});
|
||
|
||
$("#toggle-layout").bind("click", function () {
|
||
if($(this).attr("rel") == 'searching'){
|
||
return false;
|
||
}
|
||
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{path: $(this).attr("rel"), toggle: 1}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in the folder.</center>');
|
||
}
|
||
});
|
||
|
||
|
||
|
||
return false;
|
||
});
|
||
|
||
$("#get-lib").bind("click", function () {
|
||
if(loaded == false){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in library.</center>');
|
||
}
|
||
});
|
||
loaded = true;
|
||
}
|
||
});
|
||
|
||
$(document).on('click', '#newfolder_btn', function () {
|
||
if($('#newfolder_name').val() == ""){
|
||
alert('Please provide a name for the new folder');
|
||
return false;
|
||
}
|
||
|
||
$('#new-folder-msg').empty();
|
||
$('#new-folder-msg').append('Creating... ');
|
||
|
||
$.getJSON('new_folder.php' + '?dummy=' + new Date().getTime(),{path: $("#refresh").attr("rel"), folder: $('#newfolder_name').val()}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#newfolder_name').val("");
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
$('#new-folder-msg').empty();
|
||
$('#new-folder-msg').append('<span style="color: green;">Done... </span>');
|
||
setTimeout(function(){ $('#new-folder-msg').empty() }, 5000);
|
||
}else{
|
||
$('#new-folder-msg').empty();
|
||
$('#new-folder-msg').append('<span style="color: red;">Error... </span>');
|
||
setTimeout(function(){ $('#new-folder-msg').empty() }, 5000);
|
||
if(returned.msg != ""){
|
||
alert(returned.msg);
|
||
}
|
||
}
|
||
});
|
||
|
||
|
||
|
||
return false;
|
||
});
|
||
|
||
$(document).on('click', 'a.delete-file', function () {
|
||
var content = $(this).parent().parent().html();
|
||
var the_parent = $(this).parent().parent();
|
||
var r=confirm("Are you sure you want to delete this file?");
|
||
if(r==false){
|
||
return false;
|
||
}
|
||
$(this).parent().parent().empty().append('<p>Deleting...</p>');
|
||
$.getJSON('delete_file.php' + '?dummy=' + new Date().getTime(),{path: $("#refresh").attr("rel"),file: $(this).attr("rel")}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
the_parent.empty();
|
||
the_parent.html(content);
|
||
if(returned.msg != ""){
|
||
alert(returned.msg);
|
||
}
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
$(document).on('click', 'a.delete-folder', function () {
|
||
var content = $(this).parent().parent().html();
|
||
var the_parent = $(this).parent().parent();
|
||
var r=confirm("Are you sure you want to delete this folder and it's contents?");
|
||
if(r==false){
|
||
return false;
|
||
}
|
||
$(this).parent().parent().empty().append('<p>Deleting...</p>');
|
||
$.getJSON('delete_folder.php' + '?dummy=' + new Date().getTime(),{path: $("#refresh").attr("rel"),folder: $(this).attr("rel")}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
the_parent.empty();
|
||
the_parent.html(content);
|
||
if(returned.msg != ""){
|
||
alert(returned.msg);
|
||
}
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
|
||
$(document).on('click', 'a.change-folder', function () {
|
||
var current_value = $(this).attr("rel");
|
||
var content = $(this).parent().parent().html();
|
||
var the_parent = $(this).parent().parent();
|
||
var r=prompt("Please enter the new name",current_value);
|
||
if(r==null || r==""){
|
||
return false;
|
||
}
|
||
|
||
if(r==current_value){
|
||
return false;
|
||
}
|
||
|
||
$(this).parent().parent().empty().append('<p>Saving...</p>');
|
||
|
||
|
||
$.getJSON('rename_folder.php' + '?dummy=' + new Date().getTime(),{path: $("#refresh").attr("rel"),new_name: r,current_name: current_value}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
the_parent.empty();
|
||
the_parent.html(content);
|
||
if(returned.msg != ""){
|
||
alert(returned.msg);
|
||
}
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
function getExtension(filename) {
|
||
return filename.split('.').pop().toLowerCase();
|
||
}
|
||
|
||
$(document).on('click', 'a.change-file', function () {
|
||
var current_value = $(this).attr("rel");
|
||
var content = $(this).parent().parent().html();
|
||
var the_parent = $(this).parent().parent();
|
||
var extension = getExtension(current_value);
|
||
var current_file_name = current_value.substr(0, current_value.lastIndexOf('.')) || current_value;
|
||
|
||
var r=prompt("Please enter the new name",current_file_name);
|
||
if(r==null || r==""){
|
||
return false;
|
||
}
|
||
|
||
if((r + "." + extension) ==current_value){
|
||
return false;
|
||
}
|
||
|
||
$(this).parent().parent().empty().append('<p>Saving...</p>');
|
||
|
||
$.getJSON('rename_file.php' + '?dummy=' + new Date().getTime(),{path: $("#refresh").attr("rel"),new_name: (r + "." + extension),current_name: current_value}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
the_parent.empty();
|
||
the_parent.html(content);
|
||
if(returned.msg != ""){
|
||
alert(returned.msg);
|
||
}
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
$(document).on('click', '#refresh-dirs', function () {
|
||
$('#select-dir-msg').empty();
|
||
$('#select-dir-msg').append('Loading... ');
|
||
|
||
$.getJSON('refresh_dir_list.php' + '?dummy=' + new Date().getTime(),{}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#select-dir-msg').empty();
|
||
$('#select-dir-msg').append('<span style="color: green;">Done... </span>');
|
||
setTimeout(function(){ $('#select-dir-msg').empty() }, 5000);
|
||
$('#select-dir').empty();
|
||
$('#select-dir').append(returned.html);
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
$(document).on('change', '#select-dir', function () {
|
||
$('#select-dir-msg').empty();
|
||
$('#select-dir-msg').append('Sending... ');
|
||
|
||
$.getJSON('set_upload_directory.php' + '?dummy=' + new Date().getTime(),{path:$(this).val() }, function(returned){
|
||
if(returned.success == 1){
|
||
$('#select-dir-msg').empty();
|
||
$('#select-dir-msg').append('<span style="color: green;">Done... </span>');
|
||
setTimeout(function(){ $('#select-dir-msg').empty() }, 5000);
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
|
||
$(document).on('click', 'a.lib-folder', function () {
|
||
var str = decodeURIComponent($(this).attr("rel"));
|
||
|
||
var stringArray = str.split("/");
|
||
|
||
stringArray.pop();
|
||
|
||
|
||
var current_folder = stringArray[stringArray.length-1];
|
||
if((current_folder + "/") == '<?php echo LIBRARY_FOLDER_PATH; ?>'){
|
||
current_folder = "Home";
|
||
}
|
||
$('#lib-title').empty();
|
||
$('#lib-title').append(current_folder);
|
||
|
||
$("#refresh").attr("rel", $(this).attr("rel"));
|
||
|
||
if($("#lib-back").is(":disabled")){
|
||
$("#lib-back").removeAttr('disabled');
|
||
|
||
}else{
|
||
stringArray.pop();
|
||
|
||
$("#lib-back").attr('rel', stringArray.join("/") + "/");
|
||
|
||
|
||
|
||
}
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{path: $(this).attr("rel")}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in the folder.</center>');
|
||
}
|
||
});
|
||
|
||
|
||
|
||
return false;
|
||
});
|
||
|
||
$(document).on('click', 'button#lib-back', function () {
|
||
if($(this).is(":disabled")){
|
||
return false;
|
||
}
|
||
|
||
if($(this).attr("rel") == '<?php echo LIBRARY_FOLDER_PATH; ?>'){
|
||
$(this).attr('disabled','disabled');
|
||
}
|
||
|
||
$("#refresh").attr("rel", $(this).attr("rel"));
|
||
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<div id="ajax-loader-div"><img src="bootstrap/img/ajax-loader.gif" alt="Loading..." class="ajax-loader"></div>');
|
||
$.getJSON('lib.php' + '?dummy=' + new Date().getTime(),{path: $(this).attr("rel")}, function(returned){
|
||
if(returned.success == 1){
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append(returned.html);
|
||
}else{
|
||
$('#gallery-images').empty();
|
||
$('#gallery-images').append('<center>No images in the folder.</center>');
|
||
}
|
||
});
|
||
|
||
var str = $(this).attr("rel");
|
||
var stringArray = str.split("/");
|
||
|
||
stringArray.pop();
|
||
|
||
var current_folder = stringArray.pop();
|
||
|
||
if((current_folder + "/") == '<?php echo LIBRARY_FOLDER_PATH; ?>'){
|
||
current_folder = "Home";
|
||
$(this).attr("rel", "<?php echo LIBRARY_FOLDER_PATH; ?>");
|
||
}else{
|
||
$(this).attr("rel", stringArray.join("/") + "/");
|
||
}
|
||
|
||
$('#lib-title').empty();
|
||
$('#lib-title').append(current_folder);
|
||
|
||
return false;
|
||
});
|
||
});
|
||
</script>
|
||
</head>
|
||
<body>
|
||
<div class="container-fluid">
|
||
<div class="row-fluid">
|
||
|
||
<div class="span12" style="margin-top: 20px;">
|
||
|
||
|
||
<div class="tabbable tabs-left">
|
||
<ul class="nav nav-tabs" id="myTab">
|
||
<li><a href="#tab1" data-toggle="tab"><i class="icon-globe"></i> Insert from URL</a></li>
|
||
<?php if(CanAcessLibrary()){?>
|
||
<li><a href="#tab2" data-toggle="tab" id="get-lib"><i class="icon-folder-open"></i> Get from Library</a></li>
|
||
<?php }?>
|
||
<?php if(CanAcessUploadForm()){?>
|
||
<li><a href="#tab3" data-toggle="tab"><i class="icon-upload"></i> Upload Now</a></li>
|
||
<?php }?>
|
||
<li><a href="#tab4" data-toggle="tab" id="get-recent"><i class="icon-time"></i> Recent</a></li>
|
||
</ul>
|
||
<div class="tab-content">
|
||
<div class="tab-pane" id="tab1">
|
||
|
||
<div class="row-fluid" style="padding-top: 5px;">
|
||
|
||
<div class="pull-left" style="width: 50%;">
|
||
<form class="form-horizontal" action="" method="">
|
||
<p>
|
||
<input type="text" id="source" name="source" value="<?php echo $source;?>" placeholder="URL" title="URL">
|
||
</p>
|
||
|
||
<p>
|
||
<input type="text" id="title" name="title" value="<?php echo $title;?>" placeholder="Title" title="Title">
|
||
</p>
|
||
|
||
<p>
|
||
<input type="text" id="alt" name="alt" value="<?php echo $alt;?>" placeholder="Description" title="Description">
|
||
</p>
|
||
<br/>
|
||
<p>
|
||
<input type="text" id="width" name="width" class="input-small dimensions" placeholder="Width" title="Width" value="<?php echo $width;?>"> × <input type="text" id="height" name="height" class="input-small dimensions" placeholder="Height" title="Height" value="<?php echo $height;?>"> <br/><input type="checkbox" id="constrain" name="constrain" checked="checked"> Force original aspect ratio
|
||
</p>
|
||
<br/>
|
||
<p>
|
||
<select id="float" name="float">
|
||
<option value="">Alignment: None</option>
|
||
<option value="left" <?php echo ($align == 'left' ? 'selected="selected"' : '');?>>Left</option>
|
||
<option value="right" <?php echo ($align == 'right' ? 'selected="selected"' : '');?>>Right</option>
|
||
</select>
|
||
</p>
|
||
|
||
<?php if(!isset($_GET['src']) OR trim($_GET['src']) == ""){?>
|
||
<br/>
|
||
<p>
|
||
<input type="checkbox" id="do_link" name="do_link"> Wrap image in a link
|
||
</p>
|
||
|
||
<p>
|
||
<input type="text" id="link_url" name="link_url" disabled placeholder="Link URL" title="Link URL">
|
||
</p>
|
||
|
||
<p>
|
||
<select id="target" name="target" disabled>
|
||
<option value="_self">Target: None</option>
|
||
<option value="_blank">New window</option>
|
||
</select>
|
||
</p>
|
||
|
||
<?php }?>
|
||
|
||
</form>
|
||
</div>
|
||
<div class="pull-right" style="width: 50%; height: 70%;">
|
||
<img id="preview" src="<?php echo $source;?>" alt="Preview" style="margin: 2px; padding: 5px; max-width: 300px; overflow:hidden; max-height: 400px; border: 1px solid rgb(192, 192, 192);"/>
|
||
|
||
|
||
|
||
</div>
|
||
<div style="clear: both;"></div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<div class="tab-pane" id="tab2">
|
||
<div>
|
||
<div class="pull-left" style="padding-left: 11px;">
|
||
<button class="btn" disabled id="lib-back" rel="<?php echo LIBRARY_FOLDER_PATH; ?>"><i class="icon-hand-left"></i> Back</button> <a href="" title="refresh" rel="<?php echo LIBRARY_FOLDER_PATH; ?>" id="refresh"><i class="icon-refresh"></i></a>
|
||
|
||
</div>
|
||
|
||
<div class="pull-right" style="padding-right: 12px;">
|
||
<input type="text" class="input-medium" id="search" placeholder="Search">
|
||
</div>
|
||
<?php if(CanCreateFolders()){?>
|
||
<div class="pull-right" style="padding-right: 12px;">
|
||
<span id="new-folder-msg"></span>
|
||
<div class="input-append">
|
||
<input class="input-medium" id="newfolder_name" type="text" placeholder="Create folder here">
|
||
<button id="newfolder_btn" class="btn" type="button"><i class="icon-plus"></i></button>
|
||
</div>
|
||
</div>
|
||
<?php }?>
|
||
<div style="clear: both;"></div>
|
||
</div>
|
||
<div>
|
||
<p class="pull-left muted" id="lib-title" style="padding-left: 12px;">Home</p>
|
||
|
||
<p style="padding-right: 20px;" class="pull-right transparent"><a id="toggle-layout" href="" title="Toggle List/Grid Views"><i class="icon-th-list"></i></a></p>
|
||
<div style="clear: both;"></div>
|
||
</div>
|
||
<div class="library-item" id="gallery-images"></div>
|
||
</div>
|
||
<div class="tab-pane" id="tab3">
|
||
<script>
|
||
$(function(){
|
||
|
||
var ul = $('#upload ul');
|
||
|
||
$('#drop a').click(function(){
|
||
// Simulate a click on the file input button
|
||
// to show the file browser dialog
|
||
$(this).parent().find('input').click();
|
||
});
|
||
|
||
// Initialize the jQuery File Upload plugin
|
||
$('#upload').fileupload({
|
||
dataType: 'json',
|
||
acceptFileTypes: /(\.|\/)(<?php echo implode("|", explode(",", ALLOWED_IMG_EXTENSIONS));?>)$/i,
|
||
maxFileSize: <?php echo MBToBytes($upload_mb);?>,
|
||
|
||
// This element will accept file drag/drop uploading
|
||
dropZone: $('#drop'),
|
||
|
||
// This function is called when a file is added to the queue;
|
||
// either via the browse button, or via drag/drop:
|
||
add: function (e, data) {
|
||
|
||
var tpl = $('<li><div class="alert alert-info"><img class="loader" src="bootstrap/blueimp/img/ajax-loader.gif"> <a class="close" data-dismiss="alert">×</a></div></li>');
|
||
|
||
// Append the file name and file size
|
||
// Append the file name and file size
|
||
tpl.find('div').append(data.files[0].name + ' <small>[<i>' + formatFileSize(data.files[0].size) + '</i>]</small>');
|
||
|
||
// Add the HTML to the UL element
|
||
data.context = tpl.appendTo(ul);
|
||
|
||
// Automatically upload the file once it is added to the queue
|
||
var jqXHR = data.submit();
|
||
},
|
||
|
||
done: function (e, data) {
|
||
if(data.result.success == true){
|
||
data.context.remove();
|
||
$("#uploaded-images").append('<a style="margin: 9px; margin-right: 27px;" href="" class="img-thumbs" rel="' + data.result.file + '"><img src="timthumb.php?src=' + encodeURIComponent(data.result.file) + '&w=130&h=90" class="img-polaroid" width="130" height="90"></a>');
|
||
}else{
|
||
data.context.empty();
|
||
var tpl = $('<li><div class="alert alert-error"><a class="close" data-dismiss="alert">×</a></div></li>');
|
||
tpl.find('div').append('<b>Error:</b> ' + data.files[0].name + ' <small>[<i>' + formatFileSize(data.files[0].size) + '</i>]</small> ' + data.result.reason);
|
||
data.context.append(tpl);
|
||
}
|
||
},
|
||
fail: function (e, data) {
|
||
data.context.empty();
|
||
var tpl = $('<li><div class="alert alert-error"><a class="close" data-dismiss="alert">×</a></div></li>');
|
||
tpl.find('div').append('<b>Error:</b> ' + data.files[0].name + ' <small>[<i>' + formatFileSize(data.files[0].size) + '</i>]</small> ' + data.errorThrown);
|
||
data.context.append(tpl);
|
||
}
|
||
});
|
||
|
||
|
||
// Prevent the default action when a file is dropped on the window
|
||
$(document).on('drop dragover', function (e) {
|
||
e.preventDefault();
|
||
});
|
||
|
||
// Helper function that formats the file sizes
|
||
function formatFileSize(bytes) {
|
||
if (typeof bytes !== 'number') {
|
||
return '';
|
||
}
|
||
|
||
if (bytes >= 1000000000) {
|
||
return (bytes / 1000000000).toFixed(2) + ' GB';
|
||
}
|
||
|
||
if (bytes >= 1000000) {
|
||
return (bytes / 1000000).toFixed(2) + ' MB';
|
||
}
|
||
|
||
return (bytes / 1000).toFixed(2) + ' KB';
|
||
}
|
||
|
||
});
|
||
</script>
|
||
<div>
|
||
<div class="pull-left">
|
||
<p class="muted">Maximum upload file size: <?php echo $upload_mb;?> MB</p>
|
||
</div>
|
||
<div class="pull-right">
|
||
<p>
|
||
<span id="select-dir-msg"></span>
|
||
<select id="select-dir" class="input-medium">
|
||
<?php echo Dirtree(LIBRARY_FOLDER_PATH);?>
|
||
</select> <a href="" title="refresh folders list" id="refresh-dirs"><i class="icon-refresh"></i></a>
|
||
</p>
|
||
</div>
|
||
<div class="clearfix"></div>
|
||
</div>
|
||
<form id="upload" method="post" action="upload.php" enctype="multipart/form-data">
|
||
|
||
<div id="drop">
|
||
|
||
|
||
<a class="btn">Click Or Drop</a>
|
||
<input type="file" name="upl" multiple />
|
||
</div>
|
||
<br/>
|
||
<ul id="upload-msg">
|
||
<!-- The file uploads will be shown here -->
|
||
</ul>
|
||
|
||
</form>
|
||
<br/>
|
||
<div class="library-item" id="uploaded-images"></div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="tab-pane" id="tab4">
|
||
<div class="library-item" id="recent-images"></div>
|
||
</div>
|
||
</div>
|
||
</div> <!-- /tabbable -->
|
||
<script>
|
||
$(function () {
|
||
$('#myTab a[href="#tab1"]').tab('show');
|
||
})
|
||
</script>
|
||
</div>
|
||
</div>
|
||
</div> <!-- /container -->
|
||
</body>
|
||
</html>
|