浏览代码

Intègre le frm de saisie

olivier.massot 8 年之前
父节点
当前提交
75d175e1aa
共有 3 个文件被更改,包括 213 次插入185 次删除
  1. 187 136
      MobiParc/index.html
  2. 25 47
      MobiParc/js/mobiparc.js
  3. 1 2
      MobiParc/sw.js

+ 187 - 136
MobiParc/index.html

@@ -2,13 +2,13 @@
 <html lang="fr" dir="ltr">
 <head>
 	<meta charset="utf-8" />
-    <title>CanalPlus</title>
+    <title>MobiParc</title>
     <link rel="manifest" href="manifest.json">
     <meta name="viewport" content="width=device-width">
     <meta name="theme-color" content="#587b8c">
-    <link rel="icon" href="favicon.ico"> 
-    <link rel="shortcut icon" href="favicon.ico"> 
-    <link rel="apple-touch-icon" href="img/iphone-icon.png">
+    <!--<link rel="icon" href="favicon.ico">--> 
+    <!--<link rel="shortcut icon" href="favicon.ico">--> 
+    <!--<link rel="apple-touch-icon" href="img/iphone-icon.png">-->
 	<!--<style type="text/css">
         body.hidden{
         visibility:hidden;
@@ -19,7 +19,7 @@
         background-image:url(img/loading.svg)
         }
     </style>-->
-    <link rel="stylesheet" href="css/canalbis.css" type="text/css" media="all">
+    <link rel="stylesheet" href="css/mobiparc.css" type="text/css" media="all">
     <noscript>
         <style type="text/css">body.nojs{visibility:visible;}</style>
     </noscript>
@@ -27,87 +27,198 @@
     <script src="js/jquery-ui.min.js" defer></script>
     <!--https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js-->
     <script src="js/handlebars.min.js" defer></script>
-    <script src="js/canalbis.js" defer></script>
+    <script src="js/mobiparc.js" defer></script>
    
 </head>
 <body class="nojs">
-        <header>
-            <section>
-                <ul>
-                    <li><span class="modal-open btn">&#8651;</span></li>
-                  
-                    
-                </ul>
-            </section>
-           
-            <section>
-                <nav>
-                    <div>
-                        <button aria-label="Ouvrir menu" class="bt-menu"><svg viewBox="0 0 459 459" enable-background="new 0 0 459 459"><path d="M0 382.5h459v-51h-459v51zm0-127.5h459v-51h-459v51zm0-178.5v51h459v-51h-459z"></path></svg></button>
-                    </div>
-                    <div>
-                        <button aria-label="Fermer menu" class="bt-menu-close">
-                            <svg viewBox="0 0 371.23 371.23" enable-background="new 0 0 371.23 371.23"><path d="M371.23 21.213l-21.212-21.213-164.403 164.402-164.402-164.402-21.213 21.213 164.402 164.402-164.402 164.403 21.213 21.212 164.402-164.402 164.403 164.402 21.212-21.212-164.402-164.403z"></path></svg>
-                        </button>
-                       
-                    </div>
-                    <div>
-                        <a href="#anomalies">Anomalies</a>
-                    </div>
-                    <div>
-                        <a href="#vannes">Vannes</a>
-                    </div>
-                    <div>
-                        <a href="#niveaux">Niveaux</a>
-                    </div>
-                   
-                    <div>
-                        <a href="#contacts">Contacts</a>
-                    </div>
-
-                    <div>
-                        <a href="#interventions">Interventions</a>
-                    </div>
-                    <div>
-                        <a href="#parametres">Paramètres</a>
-                    </div>
-
-                </nav>
-            </section>
-        </header>
-        <section class="main">
-            <noscript>
-                <h1>Appli canal de la Bruche</h1>
-                Pour accéder à toutes les fonctionnalités de ce site, vous devez activer JavaScript. Voici les <a href="//www.enable-javascript.com/fr/" target="js">
-                    instructions pour activer JavaScript dans votre navigateur Web
-                </a>
-            </noscript>
+    <header>
+        <section>
+            <ul>
+                <li><span class="modal-open btn">&#8651;</span></li>
+            </ul>
         </section>
-        <section class="footer-top">
-    
-            <pre class="results__display-wrapper"><code class="results-display"></code></pre>       
-                
-            
+           
+        <section>
+            <nav>
+                <div>
+                    <button aria-label="Ouvrir menu" class="bt-menu">
+                        <svg viewBox="0 0 459 459" enable-background="new 0 0 459 459">
+                            <path d="M0 382.5h459v-51h-459v51zm0-127.5h459v-51h-459v51zm0-178.5v51h459v-51h-459z"></path>
+                        </svg>
+                    </button>
+                </div>
+                <div>
+                    <button aria-label="Fermer menu" class="bt-menu-close">
+                        <svg viewBox="0 0 371.23 371.23" enable-background="new 0 0 371.23 371.23">
+                            <path d="M371.23 21.213l-21.212-21.213-164.403 164.402-164.402-164.402-21.213 21.213 164.402 164.402-164.402 164.403 21.213 21.212 164.402-164.402 164.403 164.402 21.212-21.212-164.402-164.403z"></path>
+                        </svg>
+                    </button>
+                </div>
+
+                <div>
+                    <a href="#activite">Activité</a>
+                </div>
+                <div>
+                    <a href="#contacts">Contacts</a>
+                </div>
+                <div>
+                    <a href="#parametres">Paramètres</a>
+                </div>
+
+            </nav>
         </section>
+    </header>
+
+    <section class="main">
+        <noscript>
+            <h1>Suivi mobile d'Activités</h1>
+            Pour accéder à toutes les fonctionnalités de ce site, vous devez activer JavaScript. Voici les 
+            <a href="//www.enable-javascript.com/fr/" target="js"> instructions pour activer JavaScript dans votre navigateur Web</a>
+        </noscript>
+    </section>
+
+    <section class="footer-top">
+        <pre class="results__display-wrapper"><code class="results-display"></code></pre>       
+    </section>
         
-        <footer>
-            <nav class="obs">
-                <div><span class="modal-open">Alerte</span></div>
-                <div></div>
-               
-            </nav>
-            <span id="cRetour" class="cInvisible"></span>
-        </footer>
+    <footer>
+        <!--<nav class="obs">
+            <div><span class="modal-open">Alerte</span></div>
+            <div></div>
+        </nav>-->
+        <span id="cRetour" class="cInvisible"></span>
+    </footer>
+    
     <section class="modal-background"></section>
 
     <section class="modal-content">
-            <button class="data-sync" disabled>Sync</button>
-            <div class="sync-result"></div>
-            <br>
-            <span class="modal-close">X</span>
-        
+        <button class="data-sync" disabled>Sync</button>
+        <div class="sync-result"></div>
+        <br>
+        <span class="modal-close">X</span>
     </section>
 
+    <script id="activite" type="x-tmpl-mustache">
+        <h1>Activité</h1>
+        <h2>Nouvelle saisie</h2>
+
+        <form class="data-form niveau" enctype="multipart/form-data">
+
+            <h3>Activité</h3>
+
+            <div class="input-group">
+                <label class="label" for="dateint">Date: </label>
+                <input class="input-text" id="dateint" name="date-int" type="date" title="Date de l'intervention'" required />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="datefin">Date de fin: </label>
+                <input class="input-text" id="datefin" name="date-fin" type="date" title="Date de fin de l'intervention'" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="localisation">Localisation: </label>
+                <select class="input-select" id="localisation" name="localisation">
+                    <option value="6703400">BERSTETT</option>
+                    <option value="6711200">DUTTLENHEIM</option>
+                </select>
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="engin">Engin: </label>
+                <select class="input-select" id="engin" name="engin">
+                    <option value="01P037">MINI PELLE CASE P037</option>
+                    <option value="01P038">PELLE LIEBHERR P038 R313/2013</option>
+                </select>
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="realisation">Réalisation: </label>
+                <select class="input-select" id="realisation" name="realisation">
+                    <option value="13">Pose d'enrochements</option>
+                    <option value="16">Terrassement:déblais,remblais,tranchées</option>
+                </select>
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="commentaire">Commentaire: </label>
+                <input class="input-text" id="commentaire" name="commentaire" type="text" title="Commentaire" />
+            </div>
+
+            <h3>Heures supplémentaires</h3>
+
+            <div class="input-group">
+                <label class="label" for="hsjour">Jour (7h-7h30, 16h30-22h): </label>
+                <input class="input-text" id="hsjour" name="hsjour" type="number" title="Heures sup. (jour)" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="hsnuit">Nuit: </label>
+                <input class="input-text" id="hsnuit" name="hsnuit" type="number" title="Heures sup. (nuit)" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="hsdim">Dimanche et jours fériés: </label>
+                <input class="input-text" id="hsdim" name="hsdim" type="number" title="Heures sup. (dimanche et jours feriés)" />
+            </div>
+
+            <h3>Frais</h3>
+
+            <div class="input-group">
+                <label class="label" for="nbrepas">Nombre de repas: </label>
+                <input class="input-text" id="nbrepas" name="nbrepas" type="number" title="Nombre de repas" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="depart">Départ: </label>
+                <select class="input-select" id="depart" name="depart">
+                    <option value="6703400">BERSTETT</option>
+                    <option value="6711200">DUTTLENHEIM</option>
+                </select>
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="kmstt">Kilomètres sur temps de travail (7h30 - 16h30): </label>
+                <input class="input-text" id="kmstt" name="kmstt" type="number" title="Kilomètres sur temps de travail" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="vpstt">Avec véhicule personnel</label>
+                <input class="input-text" id="vpstt" name="vpstt" type="checkbox" title="Avec véhicule personnel" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="kmhtt">Kilomètres hors temps de travail : </label>
+                <input class="input-text" id="kmhtt" name="kmhtt" type="number" title="Kilomètres hors temps de travail" />
+            </div>
+
+            <div class="input-group">
+                <label class="label" for="vphtt">Avec véhicule personnel</label>
+                <input class="input-text" id="vphtt" name="vphtt" type="checkbox" title="Avec véhicule personnel" />
+            </div>
+
+            <button class="button-submit btn btn-save" type="submit">Enregistrer</button>
+        </form>
+
+
+        {{#if data}}
+        <button class="del btn btn-delete" disabled>Supprimer</button>
+
+        <h2>Les données</h2>
+        <table class="selectable">
+            <thead>
+                <tr><td>Camp</td><td>date</td><td>niv</td><td>pt</td></tr>
+            </thead>
+            <tbody>
+                {{#data}}
+                <tr data-id="{{tstamp}}" data-type="niveaux"><td>{{campaign}}</td><td>{{#todate}}{{tstamp}}{{/todate}}</td><td>{{level}}</td><td>{{point}}</td></tr>
+                {{/data}}
+            </tbody>
+        </table>
+        {{/if}}
+
+    </script>
+
     <section class="modal-content-1" style="display:none">
         <form class="contact" enctype="multipart/form-data">
             <h2>Contact</h2>
@@ -153,66 +264,7 @@
             </div>
             <button class="button-submit btn btn-save" type="submit">Sauvegarder</button>
         </form>
-
-       
-</script>
-
-    <script id="niveaux" type="x-tmpl-mustache">
-        <h1>Niveaux</h1>
-        <h2>Créer un enregistrement</h2>
-        <form class="data-form niveau" enctype="multipart/form-data">
-            <div class="input-group">
-
-                <label class="label" for="point">Point de relevé</label>
-                <select class="input-select" id="point" name="point">
-                    <option value="ECH_S1">Station n°1 - Bief n°1</option>
-                    <option value="ECH_BA1">Echelle ouvrage AD</option>
-                    <option value="ECH_BA2">Echelle ouvrage AS</option>
-                    <option value="ECH_PA1">Echelle ouvrage PA1</option>
-                    <option value="ECH_E1">Echelle écluse n°1</option>
-                    <option value="ECH_E2">Echelle écluse n°2</option>
-                    <option value="ECH_E7">Echelle écluse n°7</option>
-                    <option value="ECH_S2">Station n°2 - Bief n°8</option>
-                    <option value="ECH_E8">Echelle écluse n°8</option>
-                    <option value="ECH_RD222">Echelle pont RD 222</option>
-                    <option value="ECH_S3">Station n°3 - Bief n°9</option>
-                    <option value="ECH_S4">Station n°4 - Bief n°11</option>
-                    <option value="ECH_E4">Echelle écluse n°4</option>
-                    <option value="ECH_PF">Echelle pont SNCF Bief 11</option>
-                    <option value="ECH_D6">Echelle déversoir D6</option>
-                    <option value="ECH_D11AM">Echelle amont D11</option>
-                    <option value="ECH_D11AV">Echelle aval D11</option>
-                </select>
-            </div>
-
-            <div class="input-group">
-                <label class="label" for="level">Niveau</label>
-                <input class="input-text" id="level" name="level" type="number" title="doit être un numérique" required />
-            </div>
-            <button class="button-submit btn btn-save" type="submit">Sauvegarder</button>
-        </form>
-
-
-        {{#if data}}
-        <button class="del btn btn-delete" disabled>Supprimer</button>
-
-        <h2>Les données</h2>
-        <table class="selectable">
-            <thead>
-                <tr><td>Camp</td><td>date</td><td>niv</td><td>pt</td></tr>
-            </thead>
-            <tbody>
-                {{#data}}
-                <tr data-id="{{tstamp}}" data-type="niveaux"><td>{{campaign}}</td><td>{{#todate}}{{tstamp}}{{/todate}}</td><td>{{level}}</td><td>{{point}}</td></tr>
-                {{/data}}
-            </tbody>
-        </table>
-        {{/if}}
-
-
-
-
-</script>
+    </script>
 
     <script id="anomalies" type="x-tmpl-mustache">
         <h1>Anomalie</h1>
@@ -228,7 +280,6 @@
                     <option value="4">Dégradation hors ouvrage</option>,
                     <option value="5">Occupation illicite du Domaine</option>,
                     <option value="6">Autre</option>
-
                 </select>
             </div>
             <div class="input-group">

+ 25 - 47
MobiParc/js/mobiparc.js

@@ -1,19 +1,13 @@
 //$(function () {
 
-
+    // JS s'execute: Retire l'avertissement 'Javascript est requis'
     document.body.classList.remove("nojs");
-    //$("body").removeClass("nojs");
-
-    // $('<link rel="stylesheet" href="css/canalbis.css" type="text/css" media="all">').insertBefore("script:first");
 
     if ('serviceWorker' in navigator) {
-        console.log("install");
+        console.log("[ServiceWorker] Installe");
         navigator.serviceWorker.register('../sw.js');
     }
 
-
-  
-
     Handlebars.registerHelper('lower', function (options) {
         return options.fn(this).toLowerCase();
     });
@@ -40,10 +34,10 @@
             return opts.inverse(this);
     });
 
-
-
+    // Main <div>
     var main = document.getElementsByClassName('main')[0];
 
+    // ???
     var template = Handlebars.compile(document.getElementById(getUrldest()).innerHTML);
 
 
@@ -53,29 +47,30 @@
             return v.toString(16);
         });
     }
-
-
+    function uuidv4() {
+        return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
+            (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
+        )
+    }
+  
     var contacts;
     function callback(response) {
         contacts = response;
-
        // localStorage.setItem("contacts", JSON.stringify(response))
-        
     }
 
-
-        $.ajax({
-            url: "data/contacts.json", success: function (result) {
-                callback(result);
-            }
-        });
-
+    $.ajax({
+        url: "data/contacts.json", success: function (result) {
+            callback(result);
+        }
+    });
 
     try {
-
         getLocation();
     }
-    catch (e){       console.log("error loc");}
+    catch (e) {
+        console.log("error loc");
+    }
     
     Date.prototype.getWeekNumber = function () {
         var d = new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate()));
@@ -86,15 +81,11 @@
     };
 
     $('.bt-menu').on('click', 'svg', function () {
-
         $(this).closest('nav').find('div:not(:first)').toggleClass('sidebar');
-
     });
 
     $(document).on('click', '.sidebar', function () {
-
         $(this).closest('nav').find('div:not(:first)').toggleClass('sidebar');
-
     });
 
     //param first
@@ -106,9 +97,10 @@
         $(".data-sync").removeAttr("disabled");
     }
     else {
-        //$(".data-sync").("disabled")
-        if ($(".data-sync").is(":disabled")) { }
-        else { $(".data-sync").attr("disabled") }
+        if (!$(".data-sync").is(":disabled"))
+        {
+            $(".data-sync").attr("disabled")
+        }
     }
 
     //syncro
@@ -256,12 +248,6 @@
             // main.innerHTML = template(data);
         };
 
-
-
-        
-
-
-
         //location.reload();
     })
 
@@ -275,19 +261,12 @@
 
         template = Handlebars.compile(document.getElementById(urldest).innerHTML);
 
-
-      
-
-
-
-
         try {
-
             getLocation();
         }
-        catch (e) { console.log("error loc"); }
-  
-
+        catch (e) {
+            console.log("error loc");
+        }
 
         if (urldest != 'interventions' && urldest != 'contacts') {
 
@@ -312,7 +291,6 @@
 
         }
 
-
         if (urldest == 'interventions') {
 
             //$.ajax({

+ 1 - 2
MobiParc/sw.js

@@ -17,7 +17,6 @@ const pageCached = [
           '/img/tools_512.png',
           '/img/tools_128.png',
           '/img/tools.svg',
-
 ];
 
 self.addEventListener('install', e => {
@@ -36,7 +35,7 @@ self.addEventListener('activate', function (e) {
         caches.keys().then(keyList => {
             return Promise.all(keyList.map(key => {
                 if (key !== cacheName) {
-                    //console.log('[ServiceWorker] Removing old cache', key);
+                    console.log('[ServiceWorker] Removing old cache', key);
                     return caches.delete(key);
                 }
             }));