Imported plupload module git tree as a subtree of gallery3-contrib
This commit is contained in:
commit
ce8e253437
138
3.0/modules/plupload/controllers/uploader.php
Normal file
138
3.0/modules/plupload/controllers/uploader.php
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
<?php defined("SYSPATH") or die("No direct script access.");
|
||||||
|
/**
|
||||||
|
* Gallery - a web based photo album viewer and editor
|
||||||
|
* Copyright (C) 2000-2012 Bharat Mediratta
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
* your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
class Uploader_Controller extends Controller {
|
||||||
|
public function index($id) {
|
||||||
|
$item = ORM::factory("item", $id);
|
||||||
|
access::required("view", $item);
|
||||||
|
access::required("add", $item);
|
||||||
|
if (!$item->is_album()) {
|
||||||
|
$item = $item->parent();
|
||||||
|
}
|
||||||
|
|
||||||
|
print $this->_get_add_form($item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function start() {
|
||||||
|
access::verify_csrf();
|
||||||
|
batch::start();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function add_photo($id) {
|
||||||
|
$album = ORM::factory("item", $id);
|
||||||
|
access::required("view", $album);
|
||||||
|
access::required("add", $album);
|
||||||
|
access::verify_csrf();
|
||||||
|
|
||||||
|
// The Flash uploader not call /start directly, so simulate it here for now.
|
||||||
|
if (!batch::in_progress()) {
|
||||||
|
batch::start();
|
||||||
|
}
|
||||||
|
|
||||||
|
$form = $this->_get_add_form($album);
|
||||||
|
|
||||||
|
// Uploadify adds its own field to the form, so validate that separately.
|
||||||
|
/*$file_validation = new Validation($_FILES);
|
||||||
|
$file_validation->add_rules(
|
||||||
|
"Filedata", "upload::valid", "upload::required",
|
||||||
|
"upload::type[" . implode(",", legal_file::get_extensions()) . "]");*/
|
||||||
|
|
||||||
|
if ($form->validate()) {
|
||||||
|
$temp_filename = upload::save("file");
|
||||||
|
Event::add("system.shutdown", create_function("", "unlink(\"$temp_filename\");"));
|
||||||
|
try {
|
||||||
|
$item = ORM::factory("item");
|
||||||
|
$item->name = substr(basename($temp_filename), 10); // Skip unique identifier Kohana adds
|
||||||
|
$item->title = item::convert_filename_to_title($item->name);
|
||||||
|
$item->parent_id = $album->id;
|
||||||
|
$item->set_data_file($temp_filename);
|
||||||
|
|
||||||
|
// Remove double extensions from the filename - they'll be disallowed in the model but if
|
||||||
|
// we don't do it here then it'll result in a failed upload.
|
||||||
|
$item->name = legal_file::smash_extensions($item->name);
|
||||||
|
|
||||||
|
$path_info = @pathinfo($temp_filename);
|
||||||
|
if (array_key_exists("extension", $path_info) &&
|
||||||
|
in_array(strtolower($path_info["extension"]), array("flv", "mp4", "m4v"))) {
|
||||||
|
$item->type = "movie";
|
||||||
|
$item->save();
|
||||||
|
log::success("content", t("Added a movie"),
|
||||||
|
html::anchor("movies/$item->id", t("view movie")));
|
||||||
|
} else {
|
||||||
|
$item->type = "photo";
|
||||||
|
$item->save();
|
||||||
|
log::success("content", t("Added a photo"),
|
||||||
|
html::anchor("photos/$item->id", t("view photo")));
|
||||||
|
}
|
||||||
|
|
||||||
|
module::event("add_photos_form_completed", $item, $form);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
// The Flash uploader has no good way of reporting complex errors, so just keep it simple.
|
||||||
|
Kohana_Log::add("error", $e->getMessage() . "\n" . $e->getTraceAsString());
|
||||||
|
|
||||||
|
// Ugh. I hate to use instanceof, But this beats catching the exception separately since
|
||||||
|
// we mostly want to treat it the same way as all other exceptions
|
||||||
|
if ($e instanceof ORM_Validation_Exception) {
|
||||||
|
Kohana_Log::add("error", "Validation errors: " . print_r($e->validation->errors(), 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
header("HTTP/1.1 500 Internal Server Error");
|
||||||
|
print "ERROR: " . $e->getMessage();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
print "FILEID: $item->id";
|
||||||
|
} else {
|
||||||
|
header("HTTP/1.1 400 Bad Request");
|
||||||
|
print "ERROR: " . t("Invalid upload");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function status($success_count, $error_count) {
|
||||||
|
if ($error_count) {
|
||||||
|
// The "errors" won't be properly pluralized :-/
|
||||||
|
print t2("Uploaded %count photo (%error errors)",
|
||||||
|
"Uploaded %count photos (%error errors)",
|
||||||
|
(int)$success_count,
|
||||||
|
array("error" => (int)$error_count));
|
||||||
|
} else {
|
||||||
|
print t2("Uploaded %count photo", "Uploaded %count photos", $success_count);}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function finish() {
|
||||||
|
access::verify_csrf();
|
||||||
|
|
||||||
|
batch::stop();
|
||||||
|
json::reply(array("result" => "success"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function _get_add_form($album) {
|
||||||
|
$form = new Forge("uploader/finish", "", "post", array("id" => "g-add-photos-form"));
|
||||||
|
$group = $form->group("add_photos")
|
||||||
|
->label(t("Add photos to %album_title", array("album_title" => html::purify($album->title))));
|
||||||
|
|
||||||
|
$group->plupload("plupload")->album($album);
|
||||||
|
|
||||||
|
$group = $form->group("actions");
|
||||||
|
//$group->plupload_buttons("");
|
||||||
|
|
||||||
|
module::event("add_photos_form", $album, $form);
|
||||||
|
|
||||||
|
return $form;
|
||||||
|
}
|
||||||
|
}
|
1
3.0/modules/plupload/lib/plupload.flash.js
Normal file
1
3.0/modules/plupload/lib/plupload.flash.js
Normal file
File diff suppressed because one or more lines are too long
BIN
3.0/modules/plupload/lib/plupload.flash.swf
Normal file
BIN
3.0/modules/plupload/lib/plupload.flash.swf
Normal file
Binary file not shown.
1
3.0/modules/plupload/lib/plupload.html5.js
Normal file
1
3.0/modules/plupload/lib/plupload.html5.js
Normal file
File diff suppressed because one or more lines are too long
2
3.0/modules/plupload/lib/plupload.js
Normal file
2
3.0/modules/plupload/lib/plupload.js
Normal file
File diff suppressed because one or more lines are too long
73
3.0/modules/plupload/libraries/Form_Plupload.php
Normal file
73
3.0/modules/plupload/libraries/Form_Plupload.php
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<?php defined("SYSPATH") or die("No direct script access.");
|
||||||
|
/**
|
||||||
|
* Gallery - a web based photo album viewer and editor
|
||||||
|
* Copyright (C) 2000-2012 Bharat Mediratta
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
* your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
class Form_Plupload_Core extends Form_Input {
|
||||||
|
protected $data = array(
|
||||||
|
"name" => false,
|
||||||
|
"type" => "UNKNOWN",
|
||||||
|
"url" => "",
|
||||||
|
"text" => "");
|
||||||
|
|
||||||
|
public function __construct($name) {
|
||||||
|
parent::__construct($name);
|
||||||
|
$this->data["script_data"] = array(
|
||||||
|
"g3sid" => Session::instance()->id(),
|
||||||
|
"user_agent" => Input::instance()->server("HTTP_USER_AGENT"),
|
||||||
|
"csrf" => access::csrf_token());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function album(Item_Model $album) {
|
||||||
|
$this->data["album"] = $album;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function script_data($key, $value) {
|
||||||
|
$this->data["script_data"][$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render() {
|
||||||
|
$v = new View("form_plupload.html");
|
||||||
|
$v->album = $this->data["album"];
|
||||||
|
$v->script_data = $this->data["script_data"];
|
||||||
|
$v->simultaneous_upload_limit = module::get_var("gallery", "simultaneous_upload_limit");
|
||||||
|
$v->resize_size = module::get_var("gallery", "resize_size");
|
||||||
|
$v->movies_allowed = (bool) movie::find_ffmpeg();
|
||||||
|
$v->extensions = legal_file::get_filters();
|
||||||
|
$v->suhosin_session_encrypt = (bool) ini_get("suhosin.session.encrypt");
|
||||||
|
|
||||||
|
list ($toolkit_max_filesize_bytes, $toolkit_max_filesize) = graphics::max_filesize();
|
||||||
|
|
||||||
|
$upload_max_filesize = trim(ini_get("upload_max_filesize"));
|
||||||
|
$upload_max_filesize_bytes = num::convert_to_bytes($upload_max_filesize);
|
||||||
|
|
||||||
|
if ($upload_max_filesize_bytes < $toolkit_max_filesize_bytes) {
|
||||||
|
$v->size_limit_bytes = $upload_max_filesize_bytes;
|
||||||
|
$v->size_limit = $upload_max_filesize;
|
||||||
|
} else {
|
||||||
|
$v->size_limit_bytes = $toolkit_max_filesize_bytes;
|
||||||
|
$v->size_limit = $toolkit_max_filesize;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function validate() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
7
3.0/modules/plupload/module.info
Normal file
7
3.0/modules/plupload/module.info
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
name = Plupload
|
||||||
|
description = "Use Plupload to replaces the Flash based uploader"
|
||||||
|
version = 1
|
||||||
|
author_name = "LeTic"
|
||||||
|
author_url = "http://codex.gallery2.org/User:Letic"
|
||||||
|
info_url = "http://codex.gallery2.org/Gallery3:Modules:plupload"
|
||||||
|
discuss_url = "http://gallery.menalto.com/node/107819"
|
28
3.0/modules/plupload/views/admin_plupload.html.php.html
Normal file
28
3.0/modules/plupload/views/admin_plupload.html.php.html
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php defined("SYSPATH") or die("No direct script access.") ?>
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Plupload gallery3 module admin page template
|
||||||
|
*
|
||||||
|
* Copyright (C) Anthony Callegaro
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
*-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* A copy of the GPL2 License is available here :
|
||||||
|
* http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
|
?>
|
||||||
|
<div class="g-block">
|
||||||
|
<h1> <?= t("Plupload") ?> </h1>
|
||||||
|
<div class="g-block-content">
|
||||||
|
<p>
|
||||||
|
<?= t("Plupload admin page") ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
261
3.0/modules/plupload/views/form_plupload.html.php
Normal file
261
3.0/modules/plupload/views/form_plupload.html.php
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
<?php defined("SYSPATH") or die("No direct script access.") ?>
|
||||||
|
<script type="text/javascript" src="<?= url::file("modules/plupload/lib/plupload.js") ?>"></script>
|
||||||
|
<script type="text/javascript" src="<?= url::file("modules/plupload/lib/plupload.flash.js") ?>"></script>
|
||||||
|
<script type="text/javascript" src="<?= url::file("modules/plupload/lib/plupload.html5.js") ?>"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// Convert divs to queue widgets when the DOM is ready
|
||||||
|
$("#g-add-photos-canvas").ready($(function() {
|
||||||
|
var success_count = 0, error_count = 0, updating = 0;
|
||||||
|
var uploader;
|
||||||
|
|
||||||
|
var update_status = function() {
|
||||||
|
if (updating) {
|
||||||
|
// poor man's mutex
|
||||||
|
setTimeout(function() { update_status(); }, 500);
|
||||||
|
}
|
||||||
|
updating = 1;
|
||||||
|
$.get("<?= url::site("uploader/status/_S/_E") ?>"
|
||||||
|
.replace("_S", success_count).replace("_E", error_count),
|
||||||
|
function(data) {
|
||||||
|
$("#g-add-photos-status-message").html(data);
|
||||||
|
updating = 0;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function remove_file_queue(file, spanclass) {
|
||||||
|
$('#g-plupload' + file.id).slideUp("slow").remove();
|
||||||
|
if (spanclass == "g-success") {
|
||||||
|
spantext = <?= t("Completed")->for_js() ?>;
|
||||||
|
} else {
|
||||||
|
spantext = <?= t("Cancelled")->for_js() ?>;
|
||||||
|
}
|
||||||
|
$("#g-add-photos-status ul").append(
|
||||||
|
"<li id=\"q" + file.id + "\" class=\"" + spanclass + "\"><span></span> - " + spantext + "</li>");
|
||||||
|
$("#g-add-photos-status li#q" + file.id + " span").text(file.name);
|
||||||
|
setTimeout(function() { $("#q" + file.id).slideUp("slow").remove() }, 5000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cancel_all_upload() {
|
||||||
|
var files = uploader.files;
|
||||||
|
while (files.length > 0) {
|
||||||
|
_cancel_upload(files[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cancel_upload(id) {
|
||||||
|
_cancel_upload(uploader.getFile(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
function _cancel_upload(file) {
|
||||||
|
var status_before = file.status;
|
||||||
|
remove_file_queue(file, "g-error");
|
||||||
|
uploader.removeFile(file);
|
||||||
|
if(uploader.state == plupload.STARTED && status_before == plupload.UPLOADING) {
|
||||||
|
uploader.stop();
|
||||||
|
uploader.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uploader = new plupload.Uploader({
|
||||||
|
// General settings
|
||||||
|
runtimes : 'html5,flash',
|
||||||
|
url : "<?= url::site("uploader/add_photo/{$album->id}") ?>",
|
||||||
|
max_file_size : <?= $size_limit_bytes ?>,
|
||||||
|
max_file_count: <?= $simultaneous_upload_limit ?>, // user can add no more then 20 files at a time
|
||||||
|
//chunk_size : '1mb',
|
||||||
|
unique_names : true,
|
||||||
|
multiple_queues : true,
|
||||||
|
browse_button : 'g-add-photos-button',
|
||||||
|
container : "g-add-photos-canvas",
|
||||||
|
multipart : true,
|
||||||
|
multipart_params : <?= json_encode($script_data) ?>,
|
||||||
|
|
||||||
|
// Resize images on clientside if we can
|
||||||
|
resize : {width : <?= $resize_size ?>, height : <?= $resize_size ?>, quality : 90},
|
||||||
|
|
||||||
|
// Rename files by clicking on their titles
|
||||||
|
rename: true,
|
||||||
|
|
||||||
|
// Sort files
|
||||||
|
sortable: true,
|
||||||
|
|
||||||
|
// Specify what files to browse for
|
||||||
|
filters : [
|
||||||
|
{title : "Image files", extensions : "jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG"},
|
||||||
|
{title : "Movie files", extensions : "flv,FLV,mp4,MP4,m4v,M4V"},
|
||||||
|
],
|
||||||
|
|
||||||
|
// Flash settings
|
||||||
|
flash_swf_url : 'modules/plupload/lib/plupload.flash.swf',
|
||||||
|
onError: function(event, queueID, fileObj, errorObj) {
|
||||||
|
if (errorObj.type == "HTTP") {
|
||||||
|
if (errorObj.info == "500") {
|
||||||
|
error_msg = <?= t("Unable to process this photo")->for_js() ?>;
|
||||||
|
} else if (errorObj.info == "404") {
|
||||||
|
error_msg = <?= t("The upload script was not found")->for_js() ?>;
|
||||||
|
} else if (errorObj.info == "400") {
|
||||||
|
error_msg = <?= t("This photo is too large (max is %size bytes)",
|
||||||
|
array("size" => $size_limit))->for_js() ?>;
|
||||||
|
} else {
|
||||||
|
msg += (<?= t("Server error: __INFO__ (__TYPE__)")->for_js() ?>
|
||||||
|
.replace("__INFO__", errorObj.info)
|
||||||
|
.replace("__TYPE__", errorObj.type));
|
||||||
|
}
|
||||||
|
} else if (errorObj.type == "File Size") {
|
||||||
|
error_msg = <?= t("This photo is too large (max is %size bytes)",
|
||||||
|
array("size" => $size_limit))->for_js() ?>;
|
||||||
|
} else {
|
||||||
|
error_msg = <?= t("Server error: __INFO__ (__TYPE__)")->for_js() ?>
|
||||||
|
.replace("__INFO__", errorObj.info)
|
||||||
|
.replace("__TYPE__", errorObj.type);
|
||||||
|
}
|
||||||
|
msg = " - <a target=\"_blank\" href=\"http://codex.gallery2.org/Gallery3:Troubleshooting:Uploading\">" +
|
||||||
|
error_msg + "</a>";
|
||||||
|
|
||||||
|
$("#g-add-photos-status ul").append(
|
||||||
|
"<li id=\"q" + queueID + "\" class=\"g-error\"><span></span>" + msg + "</li>");
|
||||||
|
$("#g-add-photos-status li#q" + queueID + " span").text(fileObj.name);
|
||||||
|
$("#g-plupload").uploadifyCancel(queueID);
|
||||||
|
error_count++;
|
||||||
|
update_status();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
// http://www.plupload.com/example_jquery_ui.php
|
||||||
|
//var uploader = $("#g-plupload").plupload('getUploader');
|
||||||
|
|
||||||
|
uploader.bind('Init', function(up, params) {
|
||||||
|
$('#filelist').html("<div><b>Debug :</b>Current runtime: " + params.runtime + "</div>");
|
||||||
|
});
|
||||||
|
|
||||||
|
uploader.init();
|
||||||
|
|
||||||
|
uploader.bind('FilesAdded', function(up, files) {
|
||||||
|
$('#g-add-photos-canvas').append(
|
||||||
|
'<div id="g-pluploadQueue" class="uploadifyQueue">');
|
||||||
|
$.each(files, function(i, file) {
|
||||||
|
$('#g-pluploadQueue').append(
|
||||||
|
'<div id="g-plupload' + file.id + '" class="uploadifyQueueItem">' +
|
||||||
|
'<div class="cancel">' +
|
||||||
|
'<a id="g-plupload' + file.id + 'Cancel" href="#" ><img src="/lib/uploadify/cancel.png" border="0"></a>' +
|
||||||
|
'</div>' +
|
||||||
|
'<span class="fileName">"' + file.name + '" (' + plupload.formatSize(file.size) + ')</span>' +
|
||||||
|
'<span id="g-plupload' + file.id + 'Percentage" class="percentage"></span>' +
|
||||||
|
'<div class="uploadifyProgress">' +
|
||||||
|
'<div id="g-plupload' + file.id + 'ProgressBar" class="uploadifyProgressBar"><!--Progress Bar--></div>' +
|
||||||
|
'</div>' +
|
||||||
|
'</div>');
|
||||||
|
$('#g-plupload' + file.id + 'Cancel').bind('click', function(event) {
|
||||||
|
var reg = /g-plupload(.*)Cancel/g;
|
||||||
|
cancel_upload(reg.exec(this.id)[1]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
uploader.start();
|
||||||
|
if ($("#g-upload-cancel-all").hasClass("ui-state-disabled")) {
|
||||||
|
$("#g-upload-cancel-all")
|
||||||
|
.removeClass("ui-state-disabled")
|
||||||
|
.attr("disabled", null);
|
||||||
|
$("#g-upload-done")
|
||||||
|
.addClass("ui-state-disabled")
|
||||||
|
.attr("disabled", "disabled");
|
||||||
|
}
|
||||||
|
up.refresh(); // Reposition Flash/Silverlight
|
||||||
|
});
|
||||||
|
|
||||||
|
uploader.bind('UploadProgress', function(up, file) {
|
||||||
|
$('#g-plupload' + file.id + 'ProgressBar').css('width', file.percent + '%');
|
||||||
|
if (file.percent != 100) {
|
||||||
|
$('#g-plupload' + file.id + 'Percentage').text(' - ' +file.percent + '%');
|
||||||
|
} else {
|
||||||
|
$('#g-plupload' + file.id + 'Percentage').text(' - Completed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
uploader.bind('Error', function(up, err) {
|
||||||
|
$('#filelist').append("<div>Error: " + err.code +
|
||||||
|
", Message: " + err.message +
|
||||||
|
(err.file ? ", File: " + err.file.name : "") +
|
||||||
|
"</div>"
|
||||||
|
);
|
||||||
|
|
||||||
|
up.refresh(); // Reposition Flash/Silverlight
|
||||||
|
});
|
||||||
|
|
||||||
|
uploader.bind('FileUploaded', function(up, file) {
|
||||||
|
/* $('#g-plupload' + file.id).slideUp("slow").remove();
|
||||||
|
$("#g-add-photos-status ul").append(
|
||||||
|
"<li id=\"q" + file.id + "\" class=\"g-success\"><span></span> - " +
|
||||||
|
<?= t("Completed")->for_js() ?> + "</li>");
|
||||||
|
$("#g-add-photos-status li#q" + file.id + " span").text(file.name);
|
||||||
|
setTimeout(function() { $("#q" + file.id).slideUp("slow").remove() }, 5000); */
|
||||||
|
remove_file_queue(file, "g-success");
|
||||||
|
success_count++;
|
||||||
|
update_status();
|
||||||
|
});
|
||||||
|
|
||||||
|
uploader.bind('UploadComplete', function(up, files) {
|
||||||
|
$("#g-upload-cancel-all")
|
||||||
|
.addClass("ui-state-disabled")
|
||||||
|
.attr("disabled", "disabled");
|
||||||
|
$("#g-upload-done")
|
||||||
|
.removeClass("ui-state-disabled")
|
||||||
|
.attr("disabled", null);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#g-upload-cancel-all').bind('click', function(event){
|
||||||
|
cancel_all_upload();
|
||||||
|
uploader.trigger('UploadComplete');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
})
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
<div>
|
||||||
|
<? if ($suhosin_session_encrypt || (identity::active_user()->admin && !$movies_allowed)): ?>
|
||||||
|
<div class="g-message-block g-info">
|
||||||
|
<? if ($suhosin_session_encrypt): ?>
|
||||||
|
<p class="g-error">
|
||||||
|
<?= t("Error: your server is configured to use the <a href=\"%encrypt_url\"><code>suhosin.session.encrypt</code></a> setting from <a href=\"%suhosin_url\">Suhosin</a>. You must disable this setting to upload photos.",
|
||||||
|
array("encrypt_url" => "http://www.hardened-php.net/suhosin/configuration.html#suhosin.session.encrypt",
|
||||||
|
"suhosin_url" => "http://www.hardened-php.net/suhosin/")) ?>
|
||||||
|
</p>
|
||||||
|
<? endif ?>
|
||||||
|
|
||||||
|
<? if (identity::active_user()->admin && !$movies_allowed): ?>
|
||||||
|
<p class="g-warning">
|
||||||
|
<?= t("Can't find <i>ffmpeg</i> on your system. Movie uploading disabled. <a href=\"%help_url\">Help!</a>", array("help_url" => "http://codex.gallery2.org/Gallery3:FAQ#Why_does_it_say_I.27m_missing_ffmpeg.3F")) ?>
|
||||||
|
</p>
|
||||||
|
<? endif ?>
|
||||||
|
</div>
|
||||||
|
<? endif ?>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul class="g-breadcrumbs">
|
||||||
|
<? foreach ($album->parents() as $i => $parent): ?>
|
||||||
|
<li<? if ($i == 0) print " class=\"g-first\"" ?>> <?= html::clean($parent->title) ?> </li>
|
||||||
|
<? endforeach ?>
|
||||||
|
<li class="g-active"> <?= html::purify($album->title) ?> </li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="g-add-photos-canvas">
|
||||||
|
<button id="g-add-photos-button" class="g-button ui-state-default ui-corner-all" href="#"><?= t("Select photos (%size max per file)...", array("size" => $size_limit)) ?></button>
|
||||||
|
<div id="filelist">No runtime found.</div>
|
||||||
|
<span id="g-plupload"></span>
|
||||||
|
</div>
|
||||||
|
<div id="g-add-photos-status">
|
||||||
|
<ul id="g-action-status" class="g-message-block">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- Proxy the done request back to our form, since its been ajaxified -->
|
||||||
|
<div>
|
||||||
|
<button id="g-upload-done" class="ui-state-default ui-corner-all" onclick="$('#g-add-photos-form').submit();return false;">
|
||||||
|
<?= t("Done") ?>
|
||||||
|
</button>
|
||||||
|
<button id="g-upload-cancel-all" class="ui-state-default ui-corner-all ui-state-disabled" disabled="disabled">
|
||||||
|
<?= t("Cancel uploads") ?>
|
||||||
|
</button>
|
||||||
|
<span id="g-add-photos-status-message" />
|
||||||
|
</div>
|
||||||
|
</div>
|
Reference in New Issue
Block a user