diff --git a/.gitignore b/.gitignore index 9f2f255..a1ff39d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ __pycache__/ .env frontend/node_modules/ -static/dist/ \ No newline at end of file +static/dist/ +venv/ \ No newline at end of file diff --git a/frontend/src/App.vue b/frontend/src/App.vue index cf57aec..a755f4d 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -49,6 +49,10 @@ const showFolderForm = ref(false); const showEditHost = ref(false); const showAuditLog = ref(false); const showApiKeys = ref(false); +const showSftpPanel = ref(false); +function toggleSftp() { + showSftpPanel.value = !showSftpPanel.value; +} const auditLoading = ref(false); const auditErr = ref(""); const auditRows = ref([]); @@ -705,6 +709,14 @@ async function deleteIdentityRow(id: number) {
+
diff --git a/frontend/src/components/TabContent.vue b/frontend/src/components/TabContent.vue index 46c4277..a3359bb 100644 --- a/frontend/src/components/TabContent.vue +++ b/frontend/src/components/TabContent.vue @@ -14,6 +14,7 @@ import SftpPanel from "./SftpPanel.vue"; const props = defineProps<{ hostId: number; visible: boolean; + showSftp: boolean; }>(); const termEl = ref(null); @@ -187,17 +188,19 @@ watch( class="h-full min-h-[320px] rounded-lg border border-slate-800 bg-[#0a0e12] p-1" /> - - + diff --git a/run.sh b/run.sh index 278b524..3d39c5f 100755 --- a/run.sh +++ b/run.sh @@ -12,5 +12,14 @@ else source venv/bin/activate fi -cd frontend && npm run build && cd .. +echo "Building frontend..." +( + cd frontend + if [ ! -d "node_modules" ]; then + echo "Installing frontend dependencies..." + npm install + fi + npm run build +) + exec gunicorn --bind 0.0.0.0:5000 --workers 1 --worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker app:app --log-level info \ No newline at end of file