dashboard: resolve employee names from directory/user, GE monogram photo fallback, kiosk sweep + label
- notifications shopfloor feed: resolve the employee name live when the stored value is a bare SSO (WJ notifications imported as SSOs, never converted), for both single and split-per-employee cards - employee name resolver: after a directory miss, fall back to the shopdb User account (firstname/lastname, keyed by SSO username) so users from other locations still show a name - shopfloor dashboard: employee photo falls back to the GE monogram (own asset, independent of the site_logo setting) with a loop-guarded onerror; recognition + recert tiles both covered - shopfloor dashboard: 'All Business Units' filter label -> 'All Locations' - geenforce display dispatcher: startup sweep also matches the imaging installers' 'GE Aerospace Dashboard/Lobby' shortcuts by name
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
<div class="header-right">
|
||||
<div class="clock">{{ currentTime }}</div>
|
||||
<select v-model="businessUnit" class="filter-select" @change="loadData">
|
||||
<option value="">All Business Units</option>
|
||||
<option value="">All Locations</option>
|
||||
<option v-for="bu in businessUnits" :key="bu.businessunitid" :value="bu.businessunitid">
|
||||
{{ bu.businessunit }}
|
||||
</option>
|
||||
@@ -55,8 +55,8 @@
|
||||
/>
|
||||
<img
|
||||
v-else
|
||||
:src="siteLogo"
|
||||
alt="Site logo"
|
||||
:src="employeePhotoFallback"
|
||||
alt="No photo"
|
||||
class="recognition-photo ge-logo-fallback"
|
||||
/>
|
||||
</div>
|
||||
@@ -99,8 +99,8 @@
|
||||
/>
|
||||
<img
|
||||
v-else
|
||||
:src="siteLogo"
|
||||
alt="Site logo"
|
||||
:src="employeePhotoFallback"
|
||||
alt="No photo"
|
||||
class="recert-photo ge-logo-fallback"
|
||||
/>
|
||||
<div class="recert-name">{{ rec.employeename || rec.employeesso }}</div>
|
||||
@@ -193,6 +193,10 @@ import { withBase } from '@/utils/basePath'
|
||||
const loading = ref(true)
|
||||
const facilityName = ref('ShopDB')
|
||||
const siteLogo = ref(withBase('/ge-aerospace-logo.svg'))
|
||||
// Employee photo placeholder: the shipped GE monogram (square avatar). Kept
|
||||
// separate from siteLogo so a blank/broken site_logo setting never leaves an
|
||||
// employee tile with no image.
|
||||
const employeePhotoFallback = ref(withBase('/ge-monogram.svg'))
|
||||
// ServiceNow ticket-link config; loaded on mount. Empty/disabled = plain text.
|
||||
const servicenowConfig = ref({ enabled: true, incidentUrl: '', changeUrl: '' })
|
||||
const businessUnit = ref('')
|
||||
@@ -436,7 +440,11 @@ function getTicketUrl(ticketnumber) {
|
||||
}
|
||||
|
||||
function handlePhotoError(e) {
|
||||
e.target.src = siteLogo.value
|
||||
// Photo URL 404'd (e.g. no photo file for this SSO): fall back to the GE
|
||||
// monogram. Guard against a loop if the fallback itself fails to load.
|
||||
if (e.target.dataset.fellback) { return }
|
||||
e.target.dataset.fellback = '1'
|
||||
e.target.src = employeePhotoFallback.value
|
||||
e.target.classList.add('ge-logo-fallback')
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user