Index: /extensions/upload_form/include/functions_upload.inc.php
===================================================================
--- /extensions/upload_form/include/functions_upload.inc.php	(revision 4806)
+++ /extensions/upload_form/include/functions_upload.inc.php	(revision 4807)
@@ -122,4 +122,6 @@
   
   invalidate_user_cache();
+
+  return $image_id;
 }
 
Index: /extensions/upload_form/language/en_UK/plugin.lang.php
===================================================================
--- /extensions/upload_form/language/en_UK/plugin.lang.php	(revision 4806)
+++ /extensions/upload_form/language/en_UK/plugin.lang.php	(revision 4807)
@@ -31,3 +31,7 @@
 $lang['Category name'] = 'Category name';
 $lang['Category "%s" has been added'] = 'Category "%s" has been added';
+$lang['Uploaded Photos'] = 'Uploaded Photos';
+$lang['%d photos uploaded'] = '%d photos uploaded';
+$lang['Privacy level set to "%s"'] = 'Privacy level set to "%s"';
+$lang['Category "%s" now contains %d photos'] = 'Category "%s" now contains %d photos';
 ?>
Index: /extensions/upload_form/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/upload_form/language/fr_FR/plugin.lang.php	(revision 4806)
+++ /extensions/upload_form/language/fr_FR/plugin.lang.php	(revision 4807)
@@ -31,3 +31,7 @@
 $lang['Category name'] = 'Nom de la catégorie';
 $lang['Category "%s" has been added'] = 'La catégorie "%s" a été ajoutée';
+$lang['Uploaded Photos'] = 'Photos ajoutées ';
+$lang['%d photos uploaded'] = '%d photos ajoutées';
+$lang['Privacy level set to "%s"'] = 'Niveau de confidentialité "%s"';
+$lang['Category "%s" now contains %d photos'] = 'La catégorie "%s" contient désormais %d photos';
 ?>
Index: /extensions/upload_form/upload.php
===================================================================
--- /extensions/upload_form/upload.php	(revision 4806)
+++ /extensions/upload_form/upload.php	(revision 4807)
@@ -30,4 +30,5 @@
 
 $admin_base_url = get_root_url().'admin.php?page=plugin&section=upload_form%2Fupload.php';
+$thumbnails = array();
 
 // +-----------------------------------------------------------------------+
@@ -53,4 +54,6 @@
       (0 == $_POST['category_parent'] ? null : $_POST['category_parent'])
       );
+    
+    $category_id = $output_create['id'];
 
     if (isset($output_create['error']))
@@ -60,4 +63,5 @@
     else
     {
+      $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&amp;cat_id=');
       // information
       array_push(
@@ -65,10 +69,11 @@
         sprintf(
           l10n('Category "%s" has been added'),
-          '<em>'.get_cat_display_name_from_id($output_create['id']).'</em>'
-          )
-        );
-    }
-
-    $category_id = $output_create['id'];
+          '<em>'.$category_name.'</em>'
+          )
+        );
+      // TODO: add the onclick="window.open(this.href); return false;"
+      // attribute with jQuery on upload.tpl side for href containing
+      // "cat_modify"
+    }
   }
   
@@ -81,5 +86,54 @@
       $source_filepath = $_FILES['image_upload']['tmp_name'][$idx];
       $original_filename = $_FILES['image_upload']['name'][$idx];
-      add_uploaded_file($source_filepath, $original_filename, array($category_id), $_POST['level']);
+      
+      $image_id = add_uploaded_file(
+        $source_filepath,
+        $original_filename,
+        array($category_id),
+        $_POST['level']
+        );
+
+      // TODO: if $image_id is not an integer, something went wrong
+
+      // we could return the list of properties from the add_uploaded_file
+      // function, but I like the "double check". And it costs nothing
+      // compared to the upload process.
+      $thumbnail = array();
+      
+      $query = '
+SELECT
+    file,
+    path,
+    tn_ext
+  FROM '.IMAGES_TABLE.'
+  WHERE id = '.$image_id.'
+;';
+      $image_infos = mysql_fetch_assoc(pwg_query($query));
+
+      $thumbnail['file'] = $image_infos['file'];
+      
+      $thumbnail['src'] = get_thumbnail_location(
+        array(
+          'path' => $image_infos['path'],
+          'tn_ext' => $image_infos['tn_ext'],
+          )
+        );
+
+      // TODO: when implementing this plugin in Piwigo core, we should have
+      // a function get_image_name($name, $file) (if name is null, then
+      // compute a temporary name from filename) that would be also used in
+      // picture.php. UPDATE: in fact, "get_name_from_file($file)" already
+      // exists and is used twice (element_set_unit + comments, but not in
+      // picture.php I don't know why) with the same pattern if
+      // (empty($name)) {$name = get_name_from_file($file)}, a clean
+      // function get_image_name($name, $file) would be better
+      $thumbnail['title'] = get_name_from_file($image_infos['file']);
+
+      $thumbnail['link'] = PHPWG_ROOT_PATH.'admin.php?page=picture_modify'
+        .'&amp;image_id='.$image_id
+        .'&amp;cat_id='.$category_id
+        ;
+
+      array_push($thumbnails, $thumbnail);
     }
   }
@@ -88,4 +142,50 @@
   $elapsed = ($endtime - $starttime) * 1000;
   // printf('%.2f ms', $elapsed);
+
+  if (!empty($thumbnails))
+  {
+    array_push(
+      $page['infos'],
+      sprintf(
+        l10n('%d photos uploaded'),
+        count($thumbnails)
+        )
+      );
+    
+    if (0 != $_POST['level'])
+    {
+      array_push(
+        $page['infos'],
+        sprintf(
+          l10n('Privacy level set to "%s"'),
+          l10n(
+            sprintf('Level %d', $_POST['level'])
+            )
+          )
+        );
+    }
+
+    if ('existing' == $_POST['category_type'])
+    {
+      $query = '
+SELECT
+    COUNT(*)
+  FROM '.IMAGE_CATEGORY_TABLE.'
+  WHERE category_id = '.$category_id.'
+;';
+      list($count) = mysql_fetch_row(pwg_query($query));
+      $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&amp;cat_id=');
+      
+      // information
+      array_push(
+        $page['infos'],
+        sprintf(
+          l10n('Category "%s" now contains %d photos'),
+          '<em>'.$category_name.'</em>',
+          $count
+          )
+        );
+    }
+  }
 }
 
@@ -104,4 +204,5 @@
       'F_ADD_ACTION'=> $admin_base_url,
       'plugin_path' => UPLOAD_FORM_PATH,
+      'thumbnails' => $thumbnails,
     )
   );
@@ -131,5 +232,4 @@
     )
   );
-
 
 // +-----------------------------------------------------------------------+
Index: /extensions/upload_form/upload.tpl
===================================================================
--- /extensions/upload_form/upload.tpl	(revision 4806)
+++ /extensions/upload_form/upload.tpl	(revision 4807)
@@ -39,4 +39,19 @@
 </div>
 {else}
+
+{if !empty($thumbnails)}
+<fieldset>
+  <legend>{'Uploaded Photos'|@translate}</legend>
+  <div>
+  {foreach from=$thumbnails item=thumbnail}
+    <a href="{$thumbnail.link}" onclick="window.open(this.href); return false;">
+      <img src="{$thumbnail.src}" alt="{$thumbnail.file}" title="{$thumbnail.title}" class="thumbnail">
+    </a>
+  {/foreach}
+  </div>
+</fieldset>
+{/if}
+
+
 <form enctype="multipart/form-data" method="post" action="{$F_ACTION}" class="properties">
   <fieldset>
