fix: separate timer conversion workflow from case switch
This commit is contained in:
parent
cabe0395ed
commit
97218d61a8
@ -728,6 +728,14 @@
|
||||
#bbSwitchCaseModal .bb-switch-case-actions .btn { white-space: nowrap; }
|
||||
#bbSwitchCaseModal .bb-switch-empty { grid-column: 1 / -1; padding: 1.4rem; text-align: center; color: var(--text-secondary); border: 1px dashed rgba(var(--text-primary-rgb), 0.14); border-radius: 11px; }
|
||||
#bbSwitchCaseModal .bb-convert-panel { padding: 0.9rem; border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--accent) 6%, var(--bg-card)); }
|
||||
#bbSwitchCaseModal.is-converting .bb-switch-search,
|
||||
#bbSwitchCaseModal.is-converting #bbSwitchTimerActions,
|
||||
#bbSwitchCaseModal.is-converting .bb-switch-section-title,
|
||||
#bbSwitchCaseModal.is-converting #bbSwitchTimersList,
|
||||
#bbSwitchCaseModal.is-converting #bbSwitchRecentCasesList { display: none !important; }
|
||||
#bbSwitchCaseModal.is-converting .bb-switch-toolbar { grid-template-columns: 1fr; }
|
||||
#bbSwitchCaseModal.is-converting .modal-dialog { max-width: 980px; }
|
||||
#bbSwitchCaseModal.is-converting .modal-body { padding-bottom: 1.5rem; }
|
||||
|
||||
#bbSwitchCaseModal .list-group-item {
|
||||
border-color: rgba(var(--text-primary-rgb), 0.08);
|
||||
@ -1492,7 +1500,7 @@
|
||||
|
||||
<div id="bbConvertTimePanel" class="bb-convert-panel d-none mb-3">
|
||||
<div class="d-flex justify-content-between align-items-start gap-3 mb-3">
|
||||
<div><div class="fw-bold">Konverter afsluttet tid</div><div id="bbConvertTimeName" class="small text-muted"></div></div>
|
||||
<div><div class="fw-bold">Konverter afsluttet tid</div><div id="bbConvertTimeName" class="bb-switch-timer-info small mt-1"></div></div>
|
||||
<button type="button" class="btn-close" data-bb-cancel-convert aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="row g-2">
|
||||
@ -1578,7 +1586,7 @@ if (bmcOriginalFetch) {
|
||||
<script src="/static/js/telefoni.js?v=2.4"></script>
|
||||
<script src="/static/js/sms.js?v=1.1"></script>
|
||||
<script src="/static/js/bug-report.js?v=1.4"></script>
|
||||
<script src="/static/js/bottom-bar.js?v=2.62"></script>
|
||||
<script src="/static/js/bottom-bar.js?v=2.63"></script>
|
||||
<script>
|
||||
// Dark Mode Toggle Logic
|
||||
window.BMC_CAN_CLICK_TO_CALL = true;
|
||||
|
||||
@ -1931,6 +1931,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
function setTimeConversionMode(enabled) {
|
||||
const modalEl = byId('bbSwitchCaseModal');
|
||||
const titleEl = byId('bbSwitchCaseModalLabel');
|
||||
const panel = byId('bbConvertTimePanel');
|
||||
if (modalEl) modalEl.classList.toggle('is-converting', Boolean(enabled));
|
||||
if (panel && !enabled) panel.classList.add('d-none');
|
||||
if (titleEl) {
|
||||
titleEl.innerHTML = enabled
|
||||
? '<i class="bi bi-clock-history me-2"></i>Registrer afsluttet tid'
|
||||
: '<i class="bi bi-arrow-left-right me-2"></i>Skift sag';
|
||||
}
|
||||
}
|
||||
|
||||
function timerDisplayName(timer) {
|
||||
const sagId = Number((timer && timer.sag_id) || 0);
|
||||
const title = (timer && (timer.sag_navn || timer.title || timer.beskrivelse || timer.desc)) || '';
|
||||
@ -2073,6 +2086,7 @@
|
||||
window.location.href = '/timetracking/registrations';
|
||||
return;
|
||||
}
|
||||
setTimeConversionMode(true);
|
||||
modal.show();
|
||||
|
||||
if (!timer) {
|
||||
@ -2087,7 +2101,7 @@
|
||||
return;
|
||||
}
|
||||
panel.dataset.timeId = String(timeId);
|
||||
byId('bbConvertTimeName').textContent = String((timer.sag_navn || timer.title) || ('Sag #' + (timer.sag_id || '')));
|
||||
byId('bbConvertTimeName').innerHTML = timerCaseInfo(timer, true);
|
||||
byId('bbConvertWorkType').value = timer.work_type || 'support';
|
||||
byId('bbConvertMinutes').value = Number(timer.fakturerbar_tid_min != null ? timer.fakturerbar_tid_min : (timer.faktisk_tid_min || 0));
|
||||
select.innerHTML = '<option>Henter muligheder...</option>';
|
||||
@ -2140,8 +2154,10 @@
|
||||
const result = await response.json().catch(function () { return {}; });
|
||||
if (!response.ok) throw new Error(result.detail || 'Kunne ikke konvertere tiden');
|
||||
panel.classList.add('d-none');
|
||||
await loadSwitchCaseData();
|
||||
if (activeKey === 'timer') await loadTimerWorkQueue(timerPanelState.scope);
|
||||
setTimeConversionMode(false);
|
||||
const modal = getSwitchCaseModal();
|
||||
if (modal) modal.hide();
|
||||
} catch (err) {
|
||||
switchCaseStatusMessage('<i class="bi bi-exclamation-triangle me-1 text-danger"></i>' + escapeHtml(err.message || 'Kunne ikke konvertere tiden.'));
|
||||
} finally {
|
||||
@ -2205,6 +2221,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
setTimeConversionMode(false);
|
||||
modal.show();
|
||||
try {
|
||||
await loadSwitchCaseData(options);
|
||||
@ -3022,6 +3039,10 @@
|
||||
if (btn.hasAttribute('data-bb-cancel-convert')) {
|
||||
const panel = byId('bbConvertTimePanel');
|
||||
if (panel) panel.classList.add('d-none');
|
||||
setTimeConversionMode(false);
|
||||
loadSwitchCaseData().catch(function (err) {
|
||||
switchCaseStatusMessage('<i class="bi bi-exclamation-triangle me-1 text-danger"></i>' + escapeHtml(err.message || 'Kunne ikke hente timeroversigten.'));
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user