diff --git a/Dockerfile b/Dockerfile index 98fb7d9..75276db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,5 +23,6 @@ RUN apk add --no-cache libgcc sqlite-libs openssl COPY --from=frontend-builder /app/build /app/build COPY --from=backend-builder /app/server/target/release/server /app/server ENV PORT=3000 +ENV STATIC_DIR=/app/build EXPOSE 3000 CMD ["/app/server"] diff --git a/server/src/db.rs b/server/src/db.rs index f1f7d2c..bf5b26f 100644 --- a/server/src/db.rs +++ b/server/src/db.rs @@ -53,12 +53,14 @@ CREATE TABLE IF NOT EXISTS files ( id TEXT PRIMARY KEY, owner_id TEXT NOT NULL, document_id TEXT, + folder_id TEXT, name TEXT NOT NULL, mime_type TEXT NOT NULL, data BLOB NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY(owner_id) REFERENCES users(id), - FOREIGN KEY(document_id) REFERENCES documents(id) + FOREIGN KEY(document_id) REFERENCES documents(id), + FOREIGN KEY(folder_id) REFERENCES folders(id) ); "#, ) @@ -76,5 +78,9 @@ CREATE TABLE IF NOT EXISTS files ( .execute(&pool) .await; + let _ = sqlx::query("ALTER TABLE files ADD COLUMN folder_id TEXT REFERENCES folders(id)") + .execute(&pool) + .await; + pool } diff --git a/server/src/main.rs b/server/src/main.rs index 7615612..ec04a42 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -84,10 +84,12 @@ async fn main() { let yjs_routes = Router::new() .route("/{id}", get(yjs_handler)); + let static_dir = std::env::var("STATIC_DIR").unwrap_or_else(|_| "../build".to_string()); + let app = Router::new() .nest("/api", api_routes.layer(TraceLayer::new_for_http())) .nest("/yjs", yjs_routes.layer(TraceLayer::new_for_http())) - .fallback_service(ServeDir::new("../build").fallback(ServeFile::new("../build/index.html"))) + .fallback_service(ServeDir::new(&static_dir).fallback(ServeFile::new(format!("{}/index.html", static_dir)))) .with_state(state); let listener = tokio::net::TcpListener::bind("0.0.0.0:3000") diff --git a/src/routes/dashboard/+page.svelte b/src/routes/dashboard/+page.svelte index 27f9b04..0dad742 100644 --- a/src/routes/dashboard/+page.svelte +++ b/src/routes/dashboard/+page.svelte @@ -422,31 +422,6 @@ {/if} -{#if showShareModal && shareTarget} - - showShareModal = false} /> -{/if} - -{#if showDeleteModal && deleteTarget} - showDeleteModal = false} /> -{/if} - -{#if showInfoModal && selectedInfo} - showInfoModal = false} /> -{/if} - -{#if showRenameModal} - showRenameModal = false} /> -{/if} - -{#if showCreateModal} - showCreateModal = false} /> -{/if} - -{#if showCreateFolderModal} - showCreateFolderModal = false} /> -{/if} - {#if documents.length > 0 || files.length > 0}
@@ -474,6 +449,32 @@
{/if} {/if} + +{#if showShareModal && shareTarget} + + showShareModal = false} /> +{/if} + +{#if showDeleteModal && deleteTarget} + showDeleteModal = false} /> +{/if} + +{#if showInfoModal && selectedInfo} + showInfoModal = false} /> +{/if} + +{#if showRenameModal} + showRenameModal = false} /> +{/if} + +{#if showCreateModal} + showCreateModal = false} /> +{/if} + +{#if showCreateFolderModal} + showCreateFolderModal = false} /> +{/if} +