@if (!ShowForm) {
| Need Code | Title | Domain | Source | Priority | Audience | Raised By | Raised On | Status | Actions |
|---|---|---|---|---|---|---|---|---|---|
| {{ need.NeedCode }} | {{ need.NeedTitle }} @if (getSubtitle(need)) { {{ getSubtitle(need) }} } | {{ need.DomainName }} | {{ SOURCE_LABELS[need.NeedSourceType] ?? '—' }} | • {{ PRIORITY_LABELS[need.Priority] ?? '—' }} | {{ getAudienceDisplay(need) }} | {{ getRaisedBy(need) }} | {{ formatDate(need.RaisedOn) }} | {{ STATUS_LABELS[need.NeedStatus] ?? '—' }} |
@if (rejectingId() === need.TrainingNeedId) {
} @else if (need.NeedStatus === 0) {
|
| No training needs found | |||||||||
Domain is matched by name against the Training Domain master automatically — no need to look up a numeric id. Employee Id / Raised By still need the actual numeric employee id (the Employee master is too large to match by name here) — leave blank if not applicable.
@if (bulkLookupsLoading()) {Expected columns:
| # | @for (col of bulkColumns; track col.key) {{{ col.label }} | }Status |
|---|---|---|
| {{ row._rowNum }} | @for (col of bulkColumns; track col.key) {{{ row[col.key] }} | }
{{ row._status }}
@if (row._errors.length) { {{ row._errors.join(', ') }} }
@if (row._message) { {{ row._message }} }
|