Add lastStamp to availability and show it on people tiles
Server query extended with MAX(BU_BU) per user as LAST_STAMP, exposed via the Availability model. Client formats it as DD.MM. HH:mm next to the loggedIn dot, replacing the mocked time.
This commit is contained in:
+7
-2
@@ -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 = '<span class="tapi-dot ' + dotClass + '"></span><small>' + mockedTime + '</small>';
|
||||
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 = '<span class="tapi-dot ' + dotClass + '"></span><small>' + time + '</small>';
|
||||
}
|
||||
updateSquare(square) {
|
||||
var extension = square.dataset.tapiExtension;
|
||||
|
||||
@@ -2,4 +2,5 @@ export class AvailabilityInfo {
|
||||
public user: string;
|
||||
public loggedIn: boolean;
|
||||
public extension: string;
|
||||
public lastStamp: string;
|
||||
}
|
||||
|
||||
@@ -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 = '<span class="tapi-dot ' + dotClass + '"></span><small>' + mockedTime + '</small>'
|
||||
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 = '<span class="tapi-dot ' + dotClass + '"></span><small>' + time + '</small>'
|
||||
}
|
||||
|
||||
private updateSquare(square: HTMLElement) {
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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
|
||||
""";
|
||||
|
||||
Reference in New Issue
Block a user