UI fixes
This commit is contained in:
@@ -321,6 +321,50 @@
|
|||||||
|
|
||||||
<script src="shared.js"></script>
|
<script src="shared.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
function normalizeUtcDateString(dateStr) {
|
||||||
|
if (!dateStr) return null;
|
||||||
|
let utcDateStr = String(dateStr).trim();
|
||||||
|
if (!utcDateStr.includes('T')) {
|
||||||
|
utcDateStr = utcDateStr.replace(' ', 'T');
|
||||||
|
}
|
||||||
|
if (!/[zZ]|[+-]\d{2}:?\d{2}$/.test(utcDateStr)) {
|
||||||
|
utcDateStr += 'Z';
|
||||||
|
}
|
||||||
|
return utcDateStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseUtcDate(dateStr) {
|
||||||
|
const normalized = normalizeUtcDateString(dateStr);
|
||||||
|
return normalized ? new Date(normalized) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcDateInput(date) {
|
||||||
|
return date.toISOString().slice(0, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcTimeInput(date) {
|
||||||
|
return date.toISOString().slice(11, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatTimeOnly(dateStr) {
|
||||||
|
const date = parseUtcDate(dateStr);
|
||||||
|
return date && !Number.isNaN(date.getTime()) ? formatUtcTimeInput(date) : '-';
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcDayMonth(dateStr) {
|
||||||
|
const date = parseUtcDate(dateStr);
|
||||||
|
if (!date || Number.isNaN(date.getTime())) return '-';
|
||||||
|
const isoDate = formatUtcDateInput(date);
|
||||||
|
return `${isoDate.slice(8, 10)}/${isoDate.slice(5, 7)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcWeekdayDayMonth(dateStr) {
|
||||||
|
const date = parseUtcDate(dateStr);
|
||||||
|
if (!date || Number.isNaN(date.getTime())) return '-';
|
||||||
|
const dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][date.getUTCDay()];
|
||||||
|
return `${dayName} ${formatUtcDayMonth(dateStr)}`;
|
||||||
|
}
|
||||||
|
|
||||||
async function loadPPRs() {
|
async function loadPPRs() {
|
||||||
if (!accessToken) return;
|
if (!accessToken) return;
|
||||||
|
|
||||||
|
|||||||
@@ -300,6 +300,50 @@
|
|||||||
|
|
||||||
<script src="shared.js"></script>
|
<script src="shared.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
function normalizeUtcDateString(dateStr) {
|
||||||
|
if (!dateStr) return null;
|
||||||
|
let utcDateStr = String(dateStr).trim();
|
||||||
|
if (!utcDateStr.includes('T')) {
|
||||||
|
utcDateStr = utcDateStr.replace(' ', 'T');
|
||||||
|
}
|
||||||
|
if (!/[zZ]|[+-]\d{2}:?\d{2}$/.test(utcDateStr)) {
|
||||||
|
utcDateStr += 'Z';
|
||||||
|
}
|
||||||
|
return utcDateStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseUtcDate(dateStr) {
|
||||||
|
const normalized = normalizeUtcDateString(dateStr);
|
||||||
|
return normalized ? new Date(normalized) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcDateInput(date) {
|
||||||
|
return date.toISOString().slice(0, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcTimeInput(date) {
|
||||||
|
return date.toISOString().slice(11, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatTimeOnly(dateStr) {
|
||||||
|
const date = parseUtcDate(dateStr);
|
||||||
|
return date && !Number.isNaN(date.getTime()) ? formatUtcTimeInput(date) : '-';
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcDayMonth(dateStr) {
|
||||||
|
const date = parseUtcDate(dateStr);
|
||||||
|
if (!date || Number.isNaN(date.getTime())) return '-';
|
||||||
|
const isoDate = formatUtcDateInput(date);
|
||||||
|
return `${isoDate.slice(8, 10)}/${isoDate.slice(5, 7)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatUtcWeekdayDayMonth(dateStr) {
|
||||||
|
const date = parseUtcDate(dateStr);
|
||||||
|
if (!date || Number.isNaN(date.getTime())) return '-';
|
||||||
|
const dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][date.getUTCDay()];
|
||||||
|
return `${dayName} ${formatUtcDayMonth(dateStr)}`;
|
||||||
|
}
|
||||||
|
|
||||||
async function loadPPRs() {
|
async function loadPPRs() {
|
||||||
if (!accessToken) return;
|
if (!accessToken) return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user