[IMP] system_dashboard_classic: automatic update
Auto-generated commit based on local changes.
This commit is contained in:
parent
2bbb5a0f2b
commit
02f0b1ae3a
|
|
@ -359,7 +359,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
['holiday_status_id.limit', '=', false],
|
['holiday_status_id.limit', '=', false],
|
||||||
['state', '!=', 'refuse']
|
['state', '!=', 'refuse']
|
||||||
],
|
],
|
||||||
target: 'main',
|
target: 'current',
|
||||||
flags:{
|
flags:{
|
||||||
reload: true,
|
reload: true,
|
||||||
}
|
}
|
||||||
|
|
@ -386,7 +386,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
domain: [
|
domain: [
|
||||||
['user_id', '=', result['user'][0]]
|
['user_id', '=', result['user'][0]]
|
||||||
],
|
],
|
||||||
target: 'main',
|
target: 'current',
|
||||||
flags:{
|
flags:{
|
||||||
reload: true,
|
reload: true,
|
||||||
}
|
}
|
||||||
|
|
@ -411,7 +411,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
'search_default_employee_id': [result['employee'][0][0].id],
|
'search_default_employee_id': [result['employee'][0][0].id],
|
||||||
'default_employee_id': result['employee'][0][0].id,
|
'default_employee_id': result['employee'][0][0].id,
|
||||||
},
|
},
|
||||||
target: 'main',
|
target: 'current',
|
||||||
flags:{
|
flags:{
|
||||||
reload: true,
|
reload: true,
|
||||||
}
|
}
|
||||||
|
|
@ -490,11 +490,11 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
[form_view, 'form']
|
[form_view, 'form']
|
||||||
],
|
],
|
||||||
domain: domain,
|
domain: domain,
|
||||||
target: 'main',
|
target: 'current',
|
||||||
flags:{
|
flags:{
|
||||||
reload: true,
|
reload: true,
|
||||||
}
|
}
|
||||||
}, { on_reverse_breadcrumb: function() { return self.reload(); } });
|
}, { on_reverse_breadcrumb: function() { return self.reload({active_tab: 'self_service'}); } });
|
||||||
});
|
});
|
||||||
|
|
||||||
// triggering click event at the (Create New) button
|
// triggering click event at the (Create New) button
|
||||||
|
|
@ -537,7 +537,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
flags:{
|
flags:{
|
||||||
reload: true,
|
reload: true,
|
||||||
}
|
}
|
||||||
}, { on_reverse_breadcrumb: self.on_reverse_breadcrumb })
|
}, { on_reverse_breadcrumb: function() { return self.reload({active_tab: 'self_service'}); } })
|
||||||
});
|
});
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
@ -1101,7 +1101,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
<div class="timer-label">${isRtl ? 'متبقي' : 'remaining'}</div>
|
<div class="timer-label">${isRtl ? 'متبقي' : 'remaining'}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="timer-progress-bar">
|
<div class="timer-progress-bg">
|
||||||
<div class="timer-progress-fill" style="width: ${data.progress}%"></div>
|
<div class="timer-progress-fill" style="width: ${data.progress}%"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="timer-elapsed">${isRtl ? 'منقضي' : 'Elapsed'}: ${data.elapsed}</div>
|
<div class="timer-elapsed">${isRtl ? 'منقضي' : 'Elapsed'}: ${data.elapsed}</div>
|
||||||
|
|
@ -1165,7 +1165,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
<span class="timer-icon"><i class="fa fa-check-circle"></i></span>
|
<span class="timer-icon"><i class="fa fa-check-circle"></i></span>
|
||||||
<div class="timer-content">
|
<div class="timer-content">
|
||||||
<div class="timer-value">${data.hours_worked_formatted}</div>
|
<div class="timer-value">${data.hours_worked_formatted}</div>
|
||||||
<div class="timer-label">${isRtl ? 'إجمالي ساعات العمل' : 'Total Hours'}</div>
|
<div class="timer-label">${isRtl ? 'ساعات العمل' : 'Total Hours'}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -1173,7 +1173,7 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
<div class="timer-progress-fill ${isOvertime ? 'overtime' : ''}" style="width: ${progress}%"></div>
|
<div class="timer-progress-fill ${isOvertime ? 'overtime' : ''}" style="width: ${progress}%"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="timer-footer" style="display: flex; justify-content: space-between; padding: 0 15px; font-size: 11px; color: #64748b; margin-top: 5px;">
|
<div class="timer-footer" style="justify-content: space-between; padding: 0 15px; font-size: 11px; color: #64748b; margin-top: 5px;">
|
||||||
<span>${isRtl ? 'متبقي' : 'Remaining'}: ${remainingText}</span>
|
<span>${isRtl ? 'متبقي' : 'Remaining'}: ${remainingText}</span>
|
||||||
<span style="display: none">${isRtl ? 'مخطط' : 'Planned'}: ${format(plannedSeconds)}</span>
|
<span style="display: none">${isRtl ? 'مخطط' : 'Planned'}: ${format(plannedSeconds)}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -1346,10 +1346,22 @@ odoo.define('system_dashboard_classic.dashboard_self_services', function(require
|
||||||
$('.attendance-img-section').removeClass('attendance-success-pulse');
|
$('.attendance-img-section').removeClass('attendance-success-pulse');
|
||||||
}, 800);
|
}, 800);
|
||||||
setTimeout(function() { $notification.addClass('show'); }, 50);
|
setTimeout(function() { $notification.addClass('show'); }, 50);
|
||||||
setTimeout(function() {
|
|
||||||
|
// Auto-close after 4 seconds
|
||||||
|
var autoCloseTimer = setTimeout(function() {
|
||||||
$notification.removeClass('show');
|
$notification.removeClass('show');
|
||||||
setTimeout(function() { $notification.remove(); }, 400);
|
setTimeout(function() { $notification.remove(); }, 400);
|
||||||
}, 5500);
|
}, 4000);
|
||||||
|
|
||||||
|
// Click anywhere outside the notification to close it
|
||||||
|
$notification.on('click', function(e) {
|
||||||
|
// If clicked on the overlay (not the notification itself)
|
||||||
|
if ($(e.target).hasClass('attendance-notification-overlay')) {
|
||||||
|
clearTimeout(autoCloseTimer);
|
||||||
|
$notification.removeClass('show');
|
||||||
|
setTimeout(function() { $notification.remove(); }, 400);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// ===== REFRESH WORK TIMER AFTER CHECK-IN/OUT =====
|
// ===== REFRESH WORK TIMER AFTER CHECK-IN/OUT =====
|
||||||
// console.log('[WorkTimer] Attendance changed - will refresh widget...');
|
// console.log('[WorkTimer] Attendance changed - will refresh widget...');
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ $border-color_1: #2eac96;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
p {
|
p {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 3px;
|
||||||
}
|
}
|
||||||
h3 {
|
h3 {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
|
|
|
||||||
|
|
@ -1605,7 +1605,7 @@ p.fn-section.clickable-profile:hover {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
flex-direction: column !important;
|
flex-direction: column !important;
|
||||||
align-items: center !important;
|
align-items: center !important;
|
||||||
padding: 15px !important;
|
// padding: 15px !important;
|
||||||
margin: 0 5px !important;
|
margin: 0 5px !important;
|
||||||
border-radius: 12px !important;
|
border-radius: 12px !important;
|
||||||
gap: 12px !important;
|
gap: 12px !important;
|
||||||
|
|
@ -2554,7 +2554,7 @@ p.fn-section.clickable-profile:hover {
|
||||||
border-radius: 6px !important;
|
border-radius: 6px !important;
|
||||||
height: 12px !important; /* Thicker for visibility */
|
height: 12px !important; /* Thicker for visibility */
|
||||||
overflow: hidden !important;
|
overflow: hidden !important;
|
||||||
margin: 12px 15px !important;
|
margin: 5px 8px !important;
|
||||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1) !important;
|
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1) !important;
|
||||||
position: relative !important;
|
position: relative !important;
|
||||||
border: 1px solid rgba(0,0,0,0.05) !important;
|
border: 1px solid rgba(0,0,0,0.05) !important;
|
||||||
|
|
@ -2563,11 +2563,11 @@ p.fn-section.clickable-profile:hover {
|
||||||
.timer-progress-fill {
|
.timer-progress-fill {
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
border-radius: 6px !important;
|
border-radius: 6px !important;
|
||||||
/* Solid Teal/Cyan - Clear and Professional */
|
/* Uses the Warning color from module settings */
|
||||||
background: linear-gradient(135deg, #0891b2 0%, #06b6d4 50%, #22d3ee 100%) !important;
|
background: var(--dash-warning, #f59e0b) !important;
|
||||||
box-shadow:
|
box-shadow:
|
||||||
inset 0 2px 4px rgba(255, 255, 255, 0.3),
|
inset 0 2px 4px rgba(255, 255, 255, 0.3),
|
||||||
0 2px 6px rgba(8, 145, 178, 0.4) !important;
|
0 2px 6px rgba(0, 0, 0, 0.15) !important;
|
||||||
transition: width 1s ease-out !important;
|
transition: width 1s ease-out !important;
|
||||||
position: relative !important;
|
position: relative !important;
|
||||||
min-width: 2px !important; /* Always show a bit */
|
min-width: 2px !important; /* Always show a bit */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue