diff --git a/3CX_TAPI.user.js b/3CX_TAPI.user.js
index 1915297..2a2aa61 100644
--- a/3CX_TAPI.user.js
+++ b/3CX_TAPI.user.js
@@ -853,8 +853,13 @@ class Availability {
return;
}
var dotClass = entry.loggedIn ? 'tapi-dot-on' : 'tapi-dot-off';
- var mockedTime = '13.04. 08:30';
- indicator.innerHTML = '' + mockedTime + '';
+ var time = '';
+ if (entry.lastStamp) {
+ var d = new Date(entry.lastStamp);
+ var pad = (n) => n.toString().padStart(2, '0');
+ time = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '. ' + pad(d.getHours()) + ':' + pad(d.getMinutes());
+ }
+ indicator.innerHTML = '' + time + '';
}
updateSquare(square) {
var extension = square.dataset.tapiExtension;
diff --git a/client/src/availability-info.ts b/client/src/availability-info.ts
index 06a96ef..93ba93e 100644
--- a/client/src/availability-info.ts
+++ b/client/src/availability-info.ts
@@ -2,4 +2,5 @@ export class AvailabilityInfo {
public user: string;
public loggedIn: boolean;
public extension: string;
+ public lastStamp: string;
}
diff --git a/client/src/availability.ts b/client/src/availability.ts
index 275aadd..39cfdb0 100644
--- a/client/src/availability.ts
+++ b/client/src/availability.ts
@@ -65,8 +65,13 @@ export class Availability {
return
}
var dotClass = entry.loggedIn ? 'tapi-dot-on' : 'tapi-dot-off'
- var mockedTime = '13.04. 08:30'
- indicator.innerHTML = '' + mockedTime + ''
+ var time = ''
+ if (entry.lastStamp) {
+ var d = new Date(entry.lastStamp)
+ var pad = (n: number) => n.toString().padStart(2, '0')
+ time = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '. ' + pad(d.getHours()) + ':' + pad(d.getMinutes())
+ }
+ indicator.innerHTML = '' + time + ''
}
private updateSquare(square: HTMLElement) {
diff --git a/server/src/CPATapi.Server/Models/Availability.cs b/server/src/CPATapi.Server/Models/Availability.cs
index 73e295c..b8b8beb 100644
--- a/server/src/CPATapi.Server/Models/Availability.cs
+++ b/server/src/CPATapi.Server/Models/Availability.cs
@@ -11,4 +11,6 @@ public class Availability
public bool LOGGED_IN { get; set; }
[JsonPropertyName("extension")]
public string? US_EXTENSION { get; set; }
+ [JsonPropertyName("lastStamp")]
+ public DateTime? LAST_STAMP { get; set; }
}
diff --git a/server/src/CPATapi.Server/Repository/ZeitConsensRepository.cs b/server/src/CPATapi.Server/Repository/ZeitConsensRepository.cs
index 4772d1c..aea63f7 100644
--- a/server/src/CPATapi.Server/Repository/ZeitConsensRepository.cs
+++ b/server/src/CPATapi.Server/Repository/ZeitConsensRepository.cs
@@ -11,6 +11,7 @@ internal class ZeitConsensRepository(IConfiguration config) : Repository(config)
ma.MA_USER_NAME
,bu.LOGGED_IN
,us.US_EXTENSION
+ ,buLastStamp.LAST_STAMP
FROM dbo.MA_DATEN ma
INNER JOIN projectmanagement.dbo.CP_USER us on us.US_LOGINNAME = ma.MA_USER_NAME
OUTER APPLY (
@@ -20,6 +21,11 @@ internal class ZeitConsensRepository(IConfiguration config) : Repository(config)
AND
BU_BU >= @from AND BU_BU < @to
) bu
+ OUTER APPLY (
+ SELECT MAX(BU_BU) AS LAST_STAMP
+ FROM dbo.BU
+ WHERE bu.BU_MA_NR = ma.MA_NR
+ ) buLastStamp
WHERE
ma.MA_USER_AKTIV = 1
""";