diff options
author | plegall <plg@piwigo.org> | 2014-05-28 16:41:56 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2014-05-28 16:41:56 +0000 |
commit | 7b3783c9814173d05d5efb216d5b383a4aa2a8fe (patch) | |
tree | afd9c25ae0bc1becaf4ce2bed3467f69152e2219 | |
parent | 5ddf8e00f634ab294e15dc9373e764e019cc6c6d (diff) |
feature 2616: better behavior at the end of upload (more like with uploadify, but no page reload)
git-svn-id: http://piwigo.org/svn/trunk@28554 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | admin/themes/default/template/photos_add_direct.tpl | 87 | ||||
-rw-r--r-- | include/ws_functions/pwg.images.php | 15 |
2 files changed, 60 insertions, 42 deletions
diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index 8f7bee6e1..0a23ca8f0 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -1,3 +1,4 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} {combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js'} {combine_script id='jquery.plupload' load='footer' require='jquery' path='themes/default/js/plugins/plupload/plupload.full.min.js'} {combine_script id='jquery.plupload.queue' load='footer' require='jquery' path='themes/default/js/plugins/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js'} @@ -35,14 +36,12 @@ categoriesCache.selectize(jQuery('[data-selectize=categories]'), { jQuery('[data-add-album]').pwgAddAlbum({ cache: categoriesCache }); -var uploadify_path = '{$uploadify_path}'; -var upload_id = '{$upload_id}'; -var session_id = '{$session_id}'; var pwg_token = '{$pwg_token}'; -var buttonText = "{'Select files'|@translate}"; -var sizeLimit = Math.round({$upload_max_filesize} / 1024); /* in KBytes */ - -var noAlbum_message = "{'Select an album'|translate}"; +var photosUploaded_label = "{'%d photos uploaded'|translate}"; +var batch_Label = "{'Manage this set of %d photos'|translate}"; +var albumSummary_label = "{'Album "%s" now contains %d photos'|translate|escape}"; +var uploadedPhotos = []; +var uploadCategory = null; {literal} jQuery(document).ready(function(){ @@ -94,6 +93,9 @@ jQuery(document).ready(function(){ BeforeUpload: function(up, file) { console.log('[BeforeUpload]', file); + // no more change on category/level + jQuery("select[name=level]").attr("disabled", "disabled"); + // You can override settings before the file is uploaded // up.setOption('url', 'upload.php?id=' + file.id); up.setOption( @@ -121,7 +123,38 @@ jQuery(document).ready(function(){ jQuery("#uploadedPhotos").prepend(html); - up.removeFile(file); + // do not remove file, or it will reset the progress bar :-/ + // up.removeFile(file); + uploadedPhotos.push(parseInt(data.result.image_id)); + uploadCategory = data.result.category; + }, + + UploadComplete: function(up, files) { + // Called when all files are either uploaded or failed + console.log('[UploadComplete]'); + + jQuery(".selectAlbum, .selectFiles, #permissions, .showFieldset").hide(); + + jQuery(".infos").append('<ul><li>'+sprintf(photosUploaded_label, uploadedPhotos.length)+'</li></ul>'); + + html = sprintf( + albumSummary_label, + '<a href="admin.php?page=album-'+uploadCategory.id+'">'+uploadCategory.label+'</a>', + parseInt(uploadCategory.nb_photos) + ); + + jQuery(".infos ul").append('<li>'+html+'</li>'); + + jQuery(".infos").show(); + + // TODO: use a new method pwg.caddie.empty + + // pwg.caddie.add(uploadedPhotos) instead of relying on huge GET parameter + // (and remove useless code from admin/photos_add_direct.php) + + jQuery(".batchLink").attr("href", "admin.php?page=photos_add§ion=direct&batch="+uploadedPhotos.join(",")); + jQuery(".batchLink").html(sprintf(batch_Label, uploadedPhotos.length)); + + jQuery(".afterUploadActions").show(); } } }); @@ -136,13 +169,9 @@ jQuery(document).ready(function(){ <div id="photosAddContent"> -{* -<div class="infos"> - <ul> - <li>%d photos added..</li> - </ul> -</div> -*} +<div class="infos" style="display:none"></div> + +<p class="afterUploadActions" style="margin:10px; display:none;"><a class="batchLink"></a> | <a href="">{'Add another set of photos'|@translate}</a></p> {if count($setup_errors) > 0} <div class="errors"> @@ -166,27 +195,8 @@ jQuery(document).ready(function(){ {/if} -{if !empty($thumbnails)} -<fieldset> - <legend>{'Uploaded Photos'|@translate}</legend> - <div> - {foreach from=$thumbnails item=thumbnail} - <a href="{$thumbnail.link}" class="externalLink"> - <img src="{$thumbnail.src}" alt="{$thumbnail.file}" title="{$thumbnail.title}" class="thumbnail"> - </a> - {/foreach} - </div> - <p id="batchLink"><a href="{$batch_link}">{$batch_label}</a></p> -</fieldset> -<p style="margin:10px"><a href="{$another_upload_link}">{'Add another set of photos'|@translate}</a></p> -{else} - <form id="uploadForm" enctype="multipart/form-data" method="post" action="{$form_action}"> -{if $upload_mode eq 'multiple'} - <input name="upload_id" value="{$upload_id}" type="hidden"> -{/if} - - <fieldset> + <fieldset class="selectAlbum"> <legend>{'Drop into album'|@translate}</legend> <span id="albumSelection" style="display:none"> @@ -230,18 +240,11 @@ jQuery(document).ready(function(){ </form> -<div id="uploadProgress" style="display:none"> -{'Photo %s of %s'|@translate:'<span id="progressCurrent">1</span>':'<span id="progressMax">10</span>'} -<br> -<div id="progressbar"></div> -</div> - <fieldset style="display:none"> <legend>{'Uploaded Photos'|@translate}</legend> <div id="uploadedPhotos"></div> </fieldset> -{/if} {* empty($thumbnails) *} {/if} {* $setup_errors *} </div> <!-- photosAddContent --> diff --git a/include/ws_functions/pwg.images.php b/include/ws_functions/pwg.images.php index 70a7f694f..bb43be983 100644 --- a/include/ws_functions/pwg.images.php +++ b/include/ws_functions/pwg.images.php @@ -1365,10 +1365,25 @@ SELECT ;'; $image_infos = pwg_db_fetch_assoc(pwg_query($query)); + $query = ' +SELECT + COUNT(*) AS nb_photos + FROM '.IMAGE_CATEGORY_TABLE.' + WHERE category_id = '.$params['category'][0].' +;'; + $category_infos = pwg_db_fetch_assoc(pwg_query($query)); + + $category_name = get_cat_display_name_from_id($params['category'][0], null); + return array( 'image_id' => $image_id, 'src' => DerivativeImage::thumb_url($image_infos), 'name' => $image_infos['name'], + 'category' => array( + 'id' => $params['category'][0], + 'nb_photos' => $category_infos['nb_photos'], + 'label' => $category_name, + ) ); } } |