Files
static/app/templates/upload.html
KWON 7121f250bc feat: Flask 애플리케이션 모듈화 및 웹 대시보드 구현
- Flask Blueprint 아키텍처로 전환 (dashboard, upload, backup, status)
- app.py 681줄  95줄로 축소 (86% 감소)
- HTML 템플릿 모듈화 (base.html + 기능별 templates)
- CSS/JS 파일 분리 (common + 기능별 파일)
- 대시보드 기능 추가 (통계, 주간 예보, 방문객 추이)
- 파일 업로드 웹 인터페이스 구현
- 백업/복구 관리 UI 구현
- Docker 배포 환경 개선
- .gitignore 업데이트 (uploads, backups, cache 등)
2025-12-26 17:31:37 +09:00

70 lines
2.7 KiB
HTML

{% extends "base.html" %}
{% block title %}파일 업로드 - First Garden POS{% endblock %}
{% block extra_css %}
<link href="{{ url_for('static', filename='css/upload.css') }}" rel="stylesheet">
{% endblock %}
{% block content %}
<div class="tab-pane fade show active" id="upload-panel" role="tabpanel">
<!-- 시스템 상태 -->
<div class="alert alert-info" role="alert">
<i class="bi bi-info-circle"></i>
<strong>시스템 상태:</strong>
데이터베이스: <span id="db-status" class="badge bg-danger">연결 중...</span>
업로드 폴더: <span id="upload-folder-status" class="badge bg-danger">확인 중...</span>
</div>
<!-- 드래그 앤 드롭 영역 -->
<div class="drop-zone" id="drop-zone">
<i class="bi bi-cloud-upload" style="font-size: 48px; color: var(--primary-color); margin-bottom: 15px;"></i>
<h5 style="color: #333; margin: 10px 0;">파일을 여기에 드래그하세요</h5>
<p style="color: #666; margin: 0;">또는</p>
<button class="btn btn-primary btn-custom" id="file-select-btn" style="margin-top: 10px;">
파일 선택
</button>
<p style="color: #999; font-size: 12px; margin-top: 15px;">
지원 형식: OKPOS (일자별 상품별, 영수증별매출상세현황), UPSOLUTION<br>
최대 파일 크기: 100MB
</p>
</div>
<!-- 선택된 파일 목록 -->
<div class="file-list" id="file-list"></div>
<!-- 액션 버튼 -->
<div style="display: flex; gap: 10px; margin-top: 20px;">
<button class="btn btn-success btn-custom" id="upload-btn" onclick="uploadFiles()">
<i class="bi bi-check-circle"></i> 업로드
</button>
<button class="btn btn-secondary btn-custom" id="clear-btn" onclick="clearFileList()">
<i class="bi bi-x-circle"></i> 초기화
</button>
</div>
<!-- 업로드 진행 표시 -->
<div id="upload-progress" style="margin-top: 20px; display: none;">
<div class="progress" style="height: 25px;">
<div class="progress-bar bg-success" id="progress-bar" style="width: 0%;">
<span id="progress-text">0%</span>
</div>
</div>
<p id="progress-message" style="margin-top: 10px; color: #666;"></p>
</div>
<!-- 업로드 결과 -->
<div id="upload-result" style="margin-top: 20px;"></div>
</div>
{% endblock %}
{% block extra_js %}
<script src="{{ url_for('static', filename='js/upload.js') }}"></script>
<script>
// 파일 업로드 UI 초기화
document.addEventListener('DOMContentLoaded', function() {
initializeUploadUI();
});
</script>
{% endblock %}