위젯 커스텀 제목 및 헤더 표시/숨김 기능 추가

- 위젯 설정에서 제목 변경 가능
- 위젯 헤더 표시/숨김 토글 추가
- DB 마이그레이션 자동 실행 (custom_title, show_header 컬럼)
- 편집 모드/보기 모드 모두 지원
- DashboardTopMenu 레이아웃 유지
This commit is contained in:
leeheejin
2025-10-16 14:59:07 +09:00
parent 26d27ac881
commit 6d51aced2c
9 changed files with 105 additions and 26 deletions

View File

@@ -32,6 +32,7 @@ export function ElementConfigModal({ element, isOpen, onClose, onSave }: Element
const [queryResult, setQueryResult] = useState<QueryResult | null>(null);
const [currentStep, setCurrentStep] = useState<1 | 2>(1);
const [customTitle, setCustomTitle] = useState<string>(element.customTitle || "");
const [showHeader, setShowHeader] = useState<boolean>(element.showHeader !== false);
// 차트 설정이 필요 없는 위젯 (쿼리/API만 필요)
const isSimpleWidget =
@@ -122,13 +123,14 @@ export function ElementConfigModal({ element, isOpen, onClose, onSave }: Element
dataSource,
chartConfig,
customTitle: customTitle.trim() || undefined, // 빈 문자열이면 undefined
showHeader, // 헤더 표시 여부
};
console.log(" 저장할 element:", updatedElement);
onSave(updatedElement);
onClose();
}, [element, dataSource, chartConfig, customTitle, onSave, onClose]);
}, [element, dataSource, chartConfig, customTitle, showHeader, onSave, onClose]);
// 모달이 열려있지 않으면 렌더링하지 않음
if (!isOpen) return null;
@@ -218,6 +220,20 @@ export function ElementConfigModal({ element, isOpen, onClose, onSave }: Element
💡 (: "maintenance_schedules 목록")
</p>
</div>
{/* 헤더 표시 여부 */}
<div className="mt-4 flex items-center">
<input
type="checkbox"
id="showHeader"
checked={showHeader}
onChange={(e) => setShowHeader(e.target.checked)}
className="h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary"
/>
<label htmlFor="showHeader" className="ml-2 block text-sm text-gray-700">
</label>
</div>
</div>
{/* 진행 상황 표시 - 간단한 위젯은 표시 안 함 */}