import { state } from '../../core/state'; import { openHwModal } from '../../components/Modal/HWModal'; import { sortAssets, formatInline } from '../../core/utils'; import { ASSET_SCHEMA } from '../../core/schema'; import { createListView } from './ListFactory'; export function renderNetworkList(container: HTMLElement) { createListView(container, { title: '네트워크', dataSource: () => sortAssets(state.masterData.network || []), searchKeys: ['MODEL_NAME', 'CURRENT_USER', 'ASSET_MFR'], filterOptions: { keywordLabel: `통합 검색 (${ASSET_SCHEMA.MODEL_NAME.ui}/${ASSET_SCHEMA.ASSET_MFR.ui})`, showLoc: true, showDept: true }, onRowClick: (asset) => openHwModal(asset, 'view'), columns: [ { header: ASSET_SCHEMA.HW_STATUS.ui, sortKey: ASSET_SCHEMA.HW_STATUS.key, align: 'center', render: a => `${a[ASSET_SCHEMA.HW_STATUS.key] || '운영중'}` }, { header: ASSET_SCHEMA.CURRENT_USER.ui, sortKey: ASSET_SCHEMA.CURRENT_USER.key, align: 'center', render: a => a[ASSET_SCHEMA.CURRENT_USER.key] || '-' }, { header: ASSET_SCHEMA.ASSET_TYPE.ui, sortKey: ASSET_SCHEMA.ASSET_TYPE.key, align: 'center', render: a => a[ASSET_SCHEMA.ASSET_TYPE.key] || '' }, { header: ASSET_SCHEMA.ASSET_MFR.ui, sortKey: ASSET_SCHEMA.ASSET_MFR.key, align: 'center', render: a => a[ASSET_SCHEMA.ASSET_MFR.key] || '' }, { header: ASSET_SCHEMA.MODEL_NAME.ui, sortKey: ASSET_SCHEMA.MODEL_NAME.key, render: a => formatInline(a[ASSET_SCHEMA.MODEL_NAME.key] || '-') }, { header: ASSET_SCHEMA.ASSET_COUNT.ui, sortKey: ASSET_SCHEMA.ASSET_COUNT.key, align: 'center', render: a => a[ASSET_SCHEMA.ASSET_COUNT.key] || '1' }, { header: ASSET_SCHEMA.LOCATION.ui, sortKey: ASSET_SCHEMA.LOCATION.key, align: 'center', render: a => { const loc = a[ASSET_SCHEMA.LOCATION.key] || ''; const detail = a[ASSET_SCHEMA.LOC_DETAIL.key] || ''; return detail ? `${loc}(${detail})` : (loc || '-'); } }, { header: ASSET_SCHEMA.MEMO.ui, sortKey: ASSET_SCHEMA.MEMO.key, className: 'col-memo', render: a => formatInline(a[ASSET_SCHEMA.MEMO.key] || '-') } ] }); }