From b3bdb8dfaff55cc9751ce23aff1f5265adbb60ee Mon Sep 17 00:00:00 2001
From: unknown <n.santhanam@redkarma.eu>
Date: Fri, 26 Feb 2021 13:32:26 +0530
Subject: [PATCH] TMSS-494

Changes updated based on review comments
---
 .../src/components/Spreadsheet/DegreeInputmask.js      |  6 +++---
 .../src/components/Spreadsheet/TimeInputmask.js        |  6 +++---
 .../frontend/tmss_webapp/src/layout/_overrides.scss    |  6 ++++++
 SAS/TMSS/frontend/tmss_webapp/src/utils/validator.js   | 10 ++++++++--
 4 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/DegreeInputmask.js b/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/DegreeInputmask.js
index 320f815503e..66ac10063cc 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/DegreeInputmask.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/DegreeInputmask.js
@@ -33,10 +33,10 @@ export default class DegreeInputMask extends Component {
 
   render() {
     return (
-        <InputMask mask="99:99:99" value={this.props.value}
-        placeholder="DD:mm:ss" 
+      <InputMask mask="99:99:99.9999" value={this.props.value}
+        placeholder="DD:mm:ss.ssss" 
         className="inputmask"
-        onComplete={this.callbackUpdateAngle}
+        onChange={this.callbackUpdateAngle}
         autoFocus
         ref={input =>{this.input = input}} />
     );
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/TimeInputmask.js b/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/TimeInputmask.js
index d8047ddebd0..3b80b7a82e7 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/TimeInputmask.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/components/Spreadsheet/TimeInputmask.js
@@ -33,10 +33,10 @@ export default class TimeInputMask extends Component {
     return (
         <InputMask 
           value={this.props.value}
-          mask="99:99:99" 
-          placeholder="HH:mm:ss" 
+          mask="99:99:99.9999"
+          placeholder="HH:mm:ss.ssss"
           className="inputmask" 
-          onComplete={this.callbackUpdateAngle}
+          onChange={this.callbackUpdateAngle}
           ref={input =>{this.input = input}}
          />
     );
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss b/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss
index ab16a8fe25e..53104f01b65 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss
+++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/_overrides.scss
@@ -235,3 +235,9 @@ In Excel View the for Accordion  background color override
 .p-grid {
     width: -webkit-fill-available;
 }
+.inputmask {
+    height: 35px;
+    width: 100px;
+    text-align: left;
+    border-color: transparent !important;
+}
\ No newline at end of file
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/utils/validator.js b/SAS/TMSS/frontend/tmss_webapp/src/utils/validator.js
index 79107d64b50..4f4b1b2aba5 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/utils/validator.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/utils/validator.js
@@ -1,13 +1,16 @@
 const Validator = {
     validateTime(value) {
     const splitOutput = value.split(':');
+    const seconds = splitOutput[2]?splitOutput[2].split('.')[0].split('.')[0]:splitOutput[2];
+        let milliSeconds = value.split('.')[1] || '0000';
+        milliSeconds = milliSeconds.padEnd(4,0);
         if (splitOutput.length < 3) {
             return false;
         }   else {
             if (parseInt(splitOutput[0]) > 23 || parseInt(splitOutput[1])>59 || parseInt(splitOutput[2])>59) {
                 return false;
             }
-            const timeValue = parseInt(splitOutput[0]*60*60) + parseInt(splitOutput[1]*60) + parseInt(splitOutput[2]);
+            const timeValue = parseInt(splitOutput[0]*60*60) + parseInt(splitOutput[1]*60) + parseInt(seconds) + milliSeconds/10000;
             if (timeValue >= 86400) {
                 return false;
             }
@@ -16,13 +19,16 @@ const Validator = {
     },
     validateAngle(value) {
         const splitOutput = value.split(':');
+        const seconds = splitOutput[2]?splitOutput[2].split('.')[0].split('.')[0]:splitOutput[2];
+        let milliSeconds = value.split('.')[1] || '0000';
+        milliSeconds = milliSeconds.padEnd(4,0);
         if (splitOutput.length < 3) {
             return false;
         }   else {
             if (parseInt(splitOutput[0]) > 90 || parseInt(splitOutput[1])>59 || parseInt(splitOutput[2])>59) {
                 return false;
             }
-            const timeValue = parseInt(splitOutput[0]*60*60) + parseInt(splitOutput[1]*60) + parseInt(splitOutput[2]);
+            const timeValue = parseInt(splitOutput[0]*60*60) + parseInt(splitOutput[1]*60) + parseInt(seconds) + milliSeconds/10000;
             if (timeValue > 324000) {
                 return false;
             }
-- 
GitLab