From 64ba898944da2aaf0a7f5ebe07d96036b88dea68 Mon Sep 17 00:00:00 2001 From: plegall Date: Wed, 17 Aug 2011 19:56:07 +0000 Subject: feature 2406 added: if the user wants a new album in the upload form, the album is created before the start of the upload. The ergonomy is now simpler, the page is smaller and cleaner. bug 2373 fixed: now that album is created before upload, uploadify.php gets the category_id and the level: as soon as it is uploaded (function add_uploaded_file) the photo gets its final privacy level and is directly associated to the album. This way, we can have an error on a photo without making orphan all photos of the same upload group. feature 2405 added: as soon as a photo is uploaded, its thumbnail is displayed in the "Uploaded Photos" fieldset, without waiting for other photos to be uploaded. The latest photos comes first. I have slighlty changed the integration of colorbox in core. Now we have 2 styles available and by default, we use style2 (overlay in black, title and control icons outside the popup). It is also used for zooming on bulk manager in unit mode. display change: on each uploading photos, instead of showing the transfer speed, we display the transfer progression in % bug fixed: the color of the "Start Upload" button was not correct because the button was not a submit button but a simple type=button. language: "Upload" button becomes "Start Upload" button. git-svn-id: http://piwigo.org/svn/trunk@11962 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/include/photos_add_direct_process.inc.php | 84 ++--------- admin/include/uploadify/uploadify.php | 27 +++- admin/themes/clear/theme.css | 3 +- .../default/template/include/colorbox.inc.tpl | 2 +- .../themes/default/template/photos_add_direct.tpl | 166 +++++++++++++++------ admin/themes/default/theme.css | 4 + include/ws_functions.inc.php | 21 ++- language/en_UK/admin.lang.php | 5 +- language/fr_FR/admin.lang.php | 4 +- themes/default/images/ajax-loader-small.gif | Bin 0 -> 723 bytes themes/default/images/colorbox-controls.png | Bin 2928 -> 0 bytes themes/default/images/colorbox-loading.gif | Bin 9427 -> 0 bytes .../js/plugins/colorbox/style1/colorbox.css | 82 ++++++++++ .../js/plugins/colorbox/style1/images/border.png | Bin 0 -> 112 bytes .../js/plugins/colorbox/style1/images/controls.png | Bin 0 -> 1249 bytes .../style1/images/ie6/borderBottomCenter.png | Bin 0 -> 111 bytes .../style1/images/ie6/borderBottomLeft.png | Bin 0 -> 215 bytes .../style1/images/ie6/borderBottomRight.png | Bin 0 -> 217 bytes .../style1/images/ie6/borderMiddleLeft.png | Bin 0 -> 108 bytes .../style1/images/ie6/borderMiddleRight.png | Bin 0 -> 108 bytes .../colorbox/style1/images/ie6/borderTopCenter.png | Bin 0 -> 111 bytes .../colorbox/style1/images/ie6/borderTopLeft.png | Bin 0 -> 216 bytes .../colorbox/style1/images/ie6/borderTopRight.png | Bin 0 -> 214 bytes .../js/plugins/colorbox/style1/images/loading.gif | Bin 0 -> 9427 bytes .../colorbox/style1/images/loading_background.png | Bin 0 -> 157 bytes .../js/plugins/colorbox/style1/images/overlay.png | Bin 0 -> 182 bytes .../default/js/plugins/colorbox/style1/index.html | 87 +++++++++++ .../js/plugins/colorbox/style2/colorbox.css | 42 ++++++ .../js/plugins/colorbox/style2/images/controls.png | Bin 0 -> 643 bytes .../colorbox/style2/images/controls.png.old | Bin 0 -> 570 bytes .../js/plugins/colorbox/style2/images/loading.gif | Bin 0 -> 9427 bytes .../default/js/plugins/colorbox/style2/index.html | 87 +++++++++++ themes/default/js/plugins/jquery.colorbox.css | 32 ---- ws.php | 1 + 34 files changed, 484 insertions(+), 163 deletions(-) create mode 100644 themes/default/images/ajax-loader-small.gif delete mode 100644 themes/default/images/colorbox-controls.png delete mode 100644 themes/default/images/colorbox-loading.gif create mode 100644 themes/default/js/plugins/colorbox/style1/colorbox.css create mode 100644 themes/default/js/plugins/colorbox/style1/images/border.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/controls.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderBottomCenter.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderBottomLeft.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderBottomRight.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderMiddleLeft.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderMiddleRight.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderTopCenter.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderTopLeft.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/ie6/borderTopRight.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/loading.gif create mode 100644 themes/default/js/plugins/colorbox/style1/images/loading_background.png create mode 100644 themes/default/js/plugins/colorbox/style1/images/overlay.png create mode 100644 themes/default/js/plugins/colorbox/style1/index.html create mode 100644 themes/default/js/plugins/colorbox/style2/colorbox.css create mode 100644 themes/default/js/plugins/colorbox/style2/images/controls.png create mode 100644 themes/default/js/plugins/colorbox/style2/images/controls.png.old create mode 100644 themes/default/js/plugins/colorbox/style2/images/loading.gif create mode 100644 themes/default/js/plugins/colorbox/style2/index.html delete mode 100644 themes/default/js/plugins/jquery.colorbox.css diff --git a/admin/include/photos_add_direct_process.inc.php b/admin/include/photos_add_direct_process.inc.php index 27cb0b9a1..15c7abebb 100644 --- a/admin/include/photos_add_direct_process.inc.php +++ b/admin/include/photos_add_direct_process.inc.php @@ -43,44 +43,7 @@ if (isset($_GET['processed'])) ); } - $category_id = null; - if (!isset($_POST['category_type'])) - { - // nothing to do, we certainly have the post_max_size issue - } - elseif ('existing' == $_POST['category_type']) - { - $category_id = $_POST['category']; - } - elseif ('new' == $_POST['category_type']) - { - $output_create = create_virtual_category( - $_POST['category_name'], - (0 == $_POST['category_parent'] ? null : $_POST['category_parent']) - ); - - $category_id = $output_create['id']; - - if (isset($output_create['error'])) - { - array_push($page['errors'], $output_create['error']); - } - else - { - $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); - // information - array_push( - $page['infos'], - sprintf( - l10n('Album "%s" has been added'), - ''.$category_name.'' - ) - ); - // TODO: add the onclick="window.open(this.href); return false;" - // attribute with jQuery on upload.tpl side for href containing - // "cat_modify" - } - } + $category_id = $_POST['category']; $image_ids = array(); @@ -206,20 +169,6 @@ if (isset($_GET['processed'])) if (isset($_SESSION['uploads'][ $_POST['upload_id'] ])) { $image_ids = $_SESSION['uploads'][ $_POST['upload_id'] ]; - - associate_images_to_categories( - $image_ids, - array($category_id) - ); - - $query = ' -UPDATE '.IMAGES_TABLE.' - SET level = '.$_POST['level'].' - WHERE id IN ('.implode(', ', $image_ids).') -;'; - pwg_query($query); - - invalidate_user_cache(); } } @@ -291,28 +240,25 @@ SELECT ); } - if ('existing' == $_POST['category_type']) - { - $query = ' + $query = ' SELECT COUNT(*) FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id = '.$category_id.' ;'; - list($count) = pwg_db_fetch_row(pwg_query($query)); - $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); - - // information - array_push( - $page['infos'], - sprintf( - l10n('Album "%s" now contains %d photos'), - ''.$category_name.'', - $count - ) - ); - } - + list($count) = pwg_db_fetch_row(pwg_query($query)); + $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); + + // information + array_push( + $page['infos'], + sprintf( + l10n('Album "%s" now contains %d photos'), + ''.$category_name.'', + $count + ) + ); + $page['batch_link'] = PHOTOS_ADD_BASE_URL.'&batch='.implode(',', $image_ids); } } diff --git a/admin/include/uploadify/uploadify.php b/admin/include/uploadify/uploadify.php index 8b3f49bb5..948280d90 100644 --- a/admin/include/uploadify/uploadify.php +++ b/admin/include/uploadify/uploadify.php @@ -19,7 +19,7 @@ echo '$user'."\n"; print_r($user); $tmp = ob_get_contents(); ob_end_clean(); -// error_log($tmp, 3, "/tmp/php-".date('YmdHis').'-'.sprintf('%020u', rand()).".log"); +error_log($tmp, 3, "/tmp/php-".date('YmdHis').'-'.sprintf('%020u', rand()).".log"); if ($_FILES['Filedata']['error'] !== UPLOAD_ERR_OK) { @@ -43,8 +43,8 @@ ob_start(); $image_id = add_uploaded_file( $_FILES['Filedata']['tmp_name'], $_FILES['Filedata']['name'], - null, - 8 + array($_POST['category_id']), + $_POST['level'] ); if (!isset($_SESSION['uploads'])) @@ -62,12 +62,31 @@ array_push( $image_id ); +$query = ' +SELECT + id, + path, + tn_ext + FROM '.IMAGES_TABLE.' + WHERE id = '.$image_id.' +;'; +$image_infos = pwg_db_fetch_assoc(pwg_query($query)); + +$thumbnail_url = preg_replace('#^'.PHPWG_ROOT_PATH.'#', './', get_thumbnail_url($image_infos)); + +$return = array( + 'image_id' => $image_id, + 'category_id' => $_POST['category_id'], + 'thumbnail_url' => $thumbnail_url, + ); + $output = ob_get_contents(); ob_end_clean(); if (!empty($output)) { add_upload_error($_POST['upload_id'], $output); + $return['error_message'] = $output; } -echo "1"; +echo json_encode($return); ?> \ No newline at end of file diff --git a/admin/themes/clear/theme.css b/admin/themes/clear/theme.css index aa8b97a19..af5dcb768 100644 --- a/admin/themes/clear/theme.css +++ b/admin/themes/clear/theme.css @@ -20,7 +20,7 @@ body, h3, dt, h2, .throw, .content, label { color:#777; } th { color: #888; } INPUT, select, textarea { color:#666; background-color: #ccc; } input[type="radio"], input[type="checkbox"] { background-color: transparent; } -INPUT[type="submit"], INPUT[type="reset"] { color:#666; border: 1px solid #777; background-color: #bbb; padding: 1px 15px; } +INPUT[type="submit"], INPUT[type="button"], INPUT[type="reset"] { color:#666; border: 1px solid #777; background-color: #bbb; padding: 1px 15px; } legend, h3 { color: #777; } h2 { color: #777; } @@ -50,6 +50,7 @@ input[type="button"], input[type="submit"], input[type="reset"] { } input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { + cursor:pointer; color:#666; border-color: #999; } diff --git a/admin/themes/default/template/include/colorbox.inc.tpl b/admin/themes/default/template/include/colorbox.inc.tpl index 6ca8e0502..76651eafd 100644 --- a/admin/themes/default/template/include/colorbox.inc.tpl +++ b/admin/themes/default/template/include/colorbox.inc.tpl @@ -1,2 +1,2 @@ {combine_script id='jquery.colorbox' load='footer' require='jquery' path='themes/default/js/plugins/jquery.colorbox.min.js'} -{combine_css path="themes/default/js/plugins/jquery.colorbox.css"} \ No newline at end of file +{combine_css path="themes/default/js/plugins/colorbox/style2/colorbox.css"} diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index ffcb265d5..7f17663f8 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -6,6 +6,8 @@ {combine_css path="admin/include/uploadify/uploadify.css"} {/if} +{include file='include/colorbox.inc.tpl'} + {footer_script}{literal} jQuery(document).ready(function(){ function checkUploadStart() { @@ -13,11 +15,6 @@ jQuery(document).ready(function(){ jQuery("#formErrors").hide(); jQuery("#formErrors li").hide(); - if (jQuery("input[name=category_type]:checked").val() == "new" && jQuery("input[name=category_name]").val() == "") { - jQuery("#formErrors #emptyCategoryName").show(); - nbErrors++; - } - var nbFiles = 0; if (jQuery("#uploadBoxes").size() == 1) { jQuery("input[name^=image_upload]").each(function() { @@ -65,15 +62,79 @@ jQuery(document).ready(function(){ return byteSize+suffix; } - if (jQuery("select[name=category] option").length == 0) { - jQuery('input[name=category_type][value=existing]').attr('disabled', true); - jQuery('input[name=category_type]').attr('checked', false); - jQuery('input[name=category_type][value=new]').attr('checked', true); + function fillCategoryListbox(selectId, selectedValue) { + jQuery.getJSON( + "ws.php?format=json&method=pwg.categories.getList", + { + recursive: true, + fullname: true, + format: "json", + }, + function(data) { + jQuery.each( + data.result.categories, + function(i,category) { + var selected = ""; + if (category.id == selectedValue) { + selected = "selected"; + } + + jQuery("