Explorar o código

Create ability to pause and resume a tracker.

Lee Morgan %!s(int64=4) %!d(string=hai) anos
pai
achega
371b201089
Modificáronse 2 ficheiros con 63 adicións e 4 borrados
  1. 10 0
      controllers/tracker.js
  2. 53 4
      views/timeTracker/tracker.html

+ 10 - 0
controllers/tracker.js

@@ -37,6 +37,10 @@ module.exports = {
         project: String
         project: String
         description: String
         description: String
         end: Date
         end: Date
+        pause: {
+            start: Date
+            end: Date
+        }
     }
     }
     */
     */
     update: function(req, res){
     update: function(req, res){
@@ -48,6 +52,12 @@ module.exports = {
                 if(req.body.project) tracker.project = req.body.project;
                 if(req.body.project) tracker.project = req.body.project;
                 if(req.body.description) tracker.description = req.body.description;
                 if(req.body.description) tracker.description = req.body.description;
                 if(req.body.end) tracker.end = new Date(req.body.end);
                 if(req.body.end) tracker.end = new Date(req.body.end);
+                if(req.body.pause){
+                    tracker.pauses.push({
+                        start: new Date(req.body.pause.start),
+                        end: new Date(req.body.pause.end)
+                    });
+                }
 
 
                 return tracker.save();
                 return tracker.save();
             })
             })

+ 53 - 4
views/timeTracker/tracker.html

@@ -22,7 +22,7 @@
 
 
         <button id="startStop" onclick="startStop()">Start</button>
         <button id="startStop" onclick="startStop()">Start</button>
 
 
-        <button id="pause" style="display:none">Pause</button>
+        <button id="pause" style="display:none" onclick="pause()">Pause</button>
 
 
         <script>
         <script>
             let tracker = null
             let tracker = null
@@ -46,6 +46,7 @@
                         .then(r=>r.json())
                         .then(r=>r.json())
                         .then((response)=>{
                         .then((response)=>{
                             if(typeof(response) === "string"){
                             if(typeof(response) === "string"){
+                                console.error(response);
                             }else{
                             }else{
                                 document.getElementById("startStop").innerText = "Stop";
                                 document.getElementById("startStop").innerText = "Stop";
                                 document.getElementById("pause").style.display = "block";
                                 document.getElementById("pause").style.display = "block";
@@ -69,15 +70,63 @@
                     })
                     })
                         .then(r=>r.json())
                         .then(r=>r.json())
                         .then((response)=>{
                         .then((response)=>{
-                            document.getElementById("startStop").innerText = "Start";
-                            document.getElementById("pause").style.display = "none";
-                            tracker = null;
+                            if(typeof(response) === "string"){
+                                console.error(response);
+                            }else{
+                                document.getElementById("startStop").innerText = "Start";
+                                document.getElementById("pause").style.display = "none";
+                                tracker = null;
+                            }
                         })
                         })
                         .catch((err)=>{
                         .catch((err)=>{
                             console.error(err);
                             console.error(err);
                         });
                         });
                 }
                 }
             }
             }
+
+            let pause = ()=>{
+                let pause = {
+                    start: new Date(),
+                    end: ""
+                };
+
+                tracker.pauses.push(pause);
+
+                let pauseButton = document.getElementById("pause");
+                document.getElementById("startStop").style.display = "none";
+                pauseButton.innerText = "Resume";
+                pauseButton.onclick = ()=>{resume(pause)};
+            }
+
+            let resume = (pause)=>{
+                pause.end = new Date();
+
+                fetch("/tracker", {
+                    method: "put",
+                    headers: {
+                        "Content-Type": "application/json"
+                    },
+                    body: JSON.stringify({
+                        id: tracker._id,
+                        pause: pause
+                    })
+                })
+                    .then(r=>r.json())
+                    .then((response)=>{
+                        if(typeof(response) === "response"){
+                            console.error(response);
+                        }else{
+                            console.log(response);
+                            let pauseButton = document.getElementById("pause");
+                            document.getElementById("startStop").style.display = "block";
+                            pauseButton.innerText = "Pause";
+                            pauseButton.onclick = ()=>{pause()};
+                        }
+                    })
+                    .catch((err)=>{
+                        console.error(err);
+                    });
+            }
         </script>
         </script>
     </body>
     </body>
 </html>
 </html>