commit d4e538ff54bc4cf88b01ec16328eb688dfeb08b5
Author: Jocelyn Delande <jocelyn at delalande dot fr>
Date:   Tue Dec 24 00:05:51 2013 +0100

    can set the title of the panorama from the form

diff --git a/envoyer.php b/envoyer.php
index d18799c..a618a68 100644
--- a/envoyer.php
+++ b/envoyer.php
@@ -15,6 +15,13 @@
     <link type="image/x-icon" rel="shortcut icon" href="images/tsf.png"/>
     <link rel="stylesheet" media="screen" href="css/base.css" />
     <title>Envoi d'une image sur le serveur</title>
+    <script src="js/send.js"></script>
+    <script>
+    window.onload = function() {
+      link_file_to_input(document.getElementById('file'), 
+                         document.getElementById('titre'));
+    };
+    </script>
   </head>
   <body id="main_body">
     <header>
@@ -27,22 +34,29 @@
 	  <li>
 
 		  <fieldset>
-			<legend>Envoyer le fichier:</legend>
+			<legend>Fichier image</legend>
 			<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key"
 			value="panoramas"/>
 			<ul>
-			  <li><input type="file" name="files[]" id="file" multiple="multiple"/></li>
-
-			  <li><input type="checkbox" name="loop" value="true">Panorama bouclant
-			  (360°)</li>
-			</ul>
-		<p class="help">
+			  <li><input type="file" name="files[]" id="file" multiple="multiple"/>
+		    <p class="help">
 		  Le fichier à envoyer doit être une image de taille maximale 300 Mo ;
 		  il peut s'agir d'un panorama (par exemple assemblé
-		  avec <a href="http://hugin.sourceforge.net/">hugin</a>), faisant 360°
-		  ou non, ou encore d'une simple photo.
-		</p>
+		  avec <a href="http://hugin.sourceforge.net/">hugin</a>), ou d'une simple photo.
+		    </p>
+</li>
 
+		    <li>
+          <input type="text" name="titre" id="titre" placeholder="Titre" value=""/>
+		<p class="help">Nom d'usage, explicite sur le lieu de prise de vue </p>
+          
+        </li>
+
+			  <li><input type="checkbox" name="loop" value="true"> Panorama bouclant
+			  (360°)
+		      <p class="help">Ne sélectionner cette option que si les bords droite et gauche de l'image coïncident.</p>
+</li>
+			</ul>
 		</fieldset>
 	  </li>
 	  <li>
diff --git a/genererPano.php b/genererPano.php
index 8e1effa..81a7fdd 100644
--- a/genererPano.php
+++ b/genererPano.php
@@ -12,7 +12,7 @@ require_once 'class/utils.class.php';
 require_once 'class/site_point.class.php';
 require_once 'class/TilesGenerator.php';
 require_once 'constants.inc.php';
-utils::init();
+
 if (isset($_GET['name'])) {
   $image_path = UPLOAD_PATH.'/'.$_GET['name'];
   // We init the panorama with the same name as image.
diff --git a/js/send.js b/js/send.js
new file mode 100644
index 0000000..b3e3d9d
--- /dev/null
+++ b/js/send.js
@@ -0,0 +1,7 @@
+function link_file_to_input(file_input, text_input) {
+	file_input.onchange = function(e) {
+		// remove the extension, that's a good default title :-)
+		text_input.value = e.target.value.replace(/\.[^/.]+$/, "");
+	};
+}
+
diff --git a/uploadReceive.php b/uploadReceive.php
index ecf0bcd..caab3cc 100644
--- a/uploadReceive.php
+++ b/uploadReceive.php
@@ -39,7 +39,7 @@ function handle_upload() {
 
 function existant_and_set($list, $keys) {
   /** For HTTP data : keys of $keys are set within $list and they are not empty
-  * or false nor empty
+  * nor false.
   */
   foreach($keys as $key) {
     if (!isset($list[$key]) || !$list[$key]) {
@@ -55,6 +55,7 @@ $fields_spec = array('lat'         => array('numeric', 'positive'),
                      'lon'         => array('numeric', 'positive'),
                      'alt'  => array('numeric', 'positive'),
                      'loop'  => array('boolean'),
+                     'titre'  => array('required'),
 );
 
 $validator = new FormValidator($fields_spec);
@@ -84,7 +85,7 @@ if ($upload_success) {
   $vals = $validator->sane_values();
   // There is no point setting a part of the parameters only ; check that all
   // are present.  
-  if (existant_and_set($vals, array('lat', 'alt', 'lon'))) {
+  if (existant_and_set($vals, array('lat', 'alt', 'lon', 'titre'))) {
     try {
       $panorama = site_point::create($uploaded_filepath);
       $panorama->set_param('titre', 'Sans nom 1');//FIXME
@@ -92,6 +93,7 @@ if ($upload_success) {
       $panorama->set_param('longitude', $vals['lon']);
       $panorama->set_param('altitude',  $vals['alt']);
       $panorama->set_param('image_loop', $vals['loop']);
+      $panorama->set_param('titre', $vals['titre']);
       $panorama->save_params();
       $params_success = true;
     } catch (Exception $e) {
