Refactor: SW 상세 모달 동적 필드 전환 및 클라우드 통합, 자산 유형 명칭 일원화
This commit is contained in:
55
src/main.ts
55
src/main.ts
@@ -20,10 +20,14 @@ async function apiBatchSave(url: string, data: any[], label: string) {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data)
|
||||
});
|
||||
if (!response.ok) throw new Error(`${label} DB 저장 실패`);
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({}));
|
||||
throw new Error(`${label} DB 저장 실패: ${errorData.error || response.statusText}`);
|
||||
}
|
||||
console.log(`✅ ${label} DB 저장 완료`);
|
||||
} catch (err) {
|
||||
console.error(`❌ ${label} DB 저장 오류:`, err);
|
||||
alert(`${label} 저장 중 오류가 발생했습니다: ${err.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,15 +41,16 @@ const savePermSwToDB = () => apiBatchSave('http://localhost:3000/api/sw/perm/bat
|
||||
const saveCloudToDB = () => apiBatchSave('http://localhost:3000/api/cloud/batch', state.masterData.cloud, '클라우드');
|
||||
const saveSwUsersToDB = () => apiBatchSave('http://localhost:3000/api/sw-users/batch', state.masterData.swUsers, 'SW사용자');
|
||||
|
||||
// 모든 하드웨어 DB 동기화
|
||||
async function saveAllHardwareToDB() {
|
||||
await Promise.all([
|
||||
savePcToDB(),
|
||||
saveServerToDB(),
|
||||
saveStorageToDB(),
|
||||
saveEquipToDB(),
|
||||
saveMobileToDB()
|
||||
]);
|
||||
// 화면 갱신 통합 핸들러 (대시보드 vs 리스트)
|
||||
function refreshView() {
|
||||
const mainContent = document.getElementById('main-content')!;
|
||||
if (!mainContent) return;
|
||||
|
||||
if (state.activeSubTab === '대시보드') {
|
||||
renderDashboard(mainContent);
|
||||
} else {
|
||||
renderSWTable(mainContent);
|
||||
}
|
||||
}
|
||||
|
||||
// 모든 소프트웨어 DB 동기화
|
||||
@@ -56,6 +61,22 @@ async function saveAllSoftwareToDB() {
|
||||
saveCloudToDB(),
|
||||
saveSwUsersToDB()
|
||||
]);
|
||||
// 저장 후 최신 데이터 다시 로드 (정합성)
|
||||
await loadMasterDataFromDB();
|
||||
refreshView();
|
||||
}
|
||||
|
||||
// 모든 하드웨어 DB 동기화
|
||||
async function saveAllHardwareToDB() {
|
||||
await Promise.all([
|
||||
savePcToDB(),
|
||||
saveServerToDB(),
|
||||
saveStorageToDB(),
|
||||
saveEquipToDB(),
|
||||
saveMobileToDB()
|
||||
]);
|
||||
await loadMasterDataFromDB();
|
||||
refreshView();
|
||||
}
|
||||
|
||||
// --- App Initialization ---
|
||||
@@ -76,17 +97,15 @@ function initApp() {
|
||||
});
|
||||
|
||||
// 모달 초기화
|
||||
initPcModal(() => { saveAllHardwareToDB(); renderSWTable(mainContent); }, closeAllModals);
|
||||
initHwModal(() => { saveAllHardwareToDB(); renderSWTable(mainContent); }, closeAllModals);
|
||||
initPcModal(() => saveAllHardwareToDB(), closeAllModals);
|
||||
initHwModal(() => saveAllHardwareToDB(), closeAllModals);
|
||||
|
||||
initSwModal(() => {
|
||||
saveAllSoftwareToDB();
|
||||
renderSWTable(mainContent);
|
||||
}, closeAllModals);
|
||||
initSwModal(() => saveAllSoftwareToDB(), closeAllModals);
|
||||
|
||||
initSwUserModal(() => {
|
||||
saveSwUsersToDB();
|
||||
renderSWTable(mainContent);
|
||||
saveSwUsersToDB().then(() => {
|
||||
loadMasterDataFromDB().then(() => refreshView());
|
||||
});
|
||||
}, closeAllModals);
|
||||
|
||||
initDashboardDetailModal();
|
||||
|
||||
Reference in New Issue
Block a user