From b716d69f00e789b1cb81e80329c3c5e9893e9597 Mon Sep 17 00:00:00 2001
From: ali asaria <aliasaria@users.noreply.github.com>
Date: Thu, 11 Jul 2024 14:45:15 -0400
Subject: [PATCH] show start and end time in jobs

---
 package-lock.json                             | 10 ++++-
 package.json                                  |  3 +-
 .../components/Experiment/Train/TrainLoRA.tsx | 37 ++++++++++++++++++-
 3 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 02a25183..f41aa6f8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,7 +5,7 @@
   "requires": true,
   "packages": {
     "": {
-      "version": "0.3.8",
+      "version": "0.3.9",
       "hasInstallScript": true,
       "license": "MIT",
       "dependencies": {
@@ -25,6 +25,7 @@
         "@uppy/status-bar": "^3.2.4",
         "@uppy/xhr-upload": "^3.3.2",
         "command-exists": "^1.2.9",
+        "dayjs": "^1.11.11",
         "debug": "^4.3.4",
         "easy-peasy": "^6.0.2",
         "electron-debug": "^3.2.0",
@@ -8351,6 +8352,11 @@
         "url": "https://opencollective.com/date-fns"
       }
     },
+    "node_modules/dayjs": {
+      "version": "1.11.11",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz",
+      "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
+    },
     "node_modules/debounce-fn": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
@@ -22015,4 +22021,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/package.json b/package.json
index 59bd06f2..efc0be62 100644
--- a/package.json
+++ b/package.json
@@ -105,6 +105,7 @@
     "@uppy/status-bar": "^3.2.4",
     "@uppy/xhr-upload": "^3.3.2",
     "command-exists": "^1.2.9",
+    "dayjs": "^1.11.11",
     "debug": "^4.3.4",
     "easy-peasy": "^6.0.2",
     "electron-debug": "^3.2.0",
@@ -289,4 +290,4 @@
     ],
     "logLevel": "quiet"
   }
-}
\ No newline at end of file
+}
diff --git a/src/renderer/components/Experiment/Train/TrainLoRA.tsx b/src/renderer/components/Experiment/Train/TrainLoRA.tsx
index de1b9400..7667ca9f 100644
--- a/src/renderer/components/Experiment/Train/TrainLoRA.tsx
+++ b/src/renderer/components/Experiment/Train/TrainLoRA.tsx
@@ -38,6 +38,12 @@ import LoRATrainingRunButton from './LoRATrainingRunButton';
 import TensorboardModal from './TensorboardModal';
 import ViewOutputModal from './ViewOutputModal';
 
+import dayjs from 'dayjs';
+import relativeTime from 'dayjs/plugin/relativeTime';
+dayjs.extend(relativeTime);
+var duration = require('dayjs/plugin/duration');
+dayjs.extend(duration);
+
 function formatTemplateConfig(config): ReactElement {
   const c = JSON.parse(config);
 
@@ -337,8 +343,37 @@ export default function TrainLoRA({ experimentInfo }) {
                               '%'}
                         </Chip>
                         <br />
+
+                        {job?.job_data?.start_time && (
+                          <>
+                            Started:{' '}
+                            {dayjs(job?.job_data?.start_time).fromNow()}
+                          </>
+                        )}
                         <br />
-                        <LinearProgress determinate value={job.progress} />
+                        {/* {job?.job_data?.end_time &&
+                          dayjs(job?.job_data?.end_time).fromNow()} */}
+                        {job?.job_data?.start_time &&
+                        job?.job_data?.end_time ? (
+                          <>
+                            Completed in:{' '}
+                            {job?.job_data?.end_time &&
+                              job?.job_data?.end_time &&
+                              dayjs
+                                .duration(
+                                  dayjs(job?.job_data?.end_time).diff(
+                                    dayjs(job?.job_data?.start_time)
+                                  )
+                                )
+                                .humanize()}
+                          </>
+                        ) : (
+                          <LinearProgress
+                            determinate
+                            value={job.progress}
+                            sx={{ my: 1 }}
+                          />
+                        )}
                       </td>
                       <td style={{}}>
                         <ButtonGroup sx={{ justifyContent: 'flex-end' }}>
-- 
GitLab