Edit {project.title}
-
-
+
+
+
diff --git a/studio/web/app/home/organisations/[organisationId]/projects/new/page.tsx b/studio/web/app/home/organisations/[organisationId]/projects/new/page.tsx
index 3f06614..0172c3d 100644
--- a/studio/web/app/home/organisations/[organisationId]/projects/new/page.tsx
+++ b/studio/web/app/home/organisations/[organisationId]/projects/new/page.tsx
@@ -4,14 +4,6 @@ import { Button } from "@/components/ui/Button";
import { Input } from "@/components/dataEntry/input";
import { Label } from "@/components/dataEntry/label";
import { Textarea } from "@/components/dataEntry/textarea";
-import {
- Select,
- SelectContent,
- SelectGroup,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
import Link from "next/link";
import { useForm } from "react-hook-form";
import { useOrganisationsStore } from "@/lib/zustand/organisation";
@@ -38,6 +30,7 @@ export default function Page({
handleSubmit,
register,
formState: { errors },
+ watch
} = useForm
({
resolver: zodResolver(createProjectSchema),
});
@@ -60,40 +53,14 @@ export default function Page({
getOrganisations();
}, []);
+ const watchTitle = watch("title");
+ const disableButton = watchTitle === undefined || watchTitle === "" || orgId === undefined || orgId === "";
+
return (
Create New Project
-
-
+
+
+
diff --git a/studio/web/app/home/organisations/new/page.tsx b/studio/web/app/home/organisations/new/page.tsx
index bed1f8b..c4821d1 100644
--- a/studio/web/app/home/organisations/new/page.tsx
+++ b/studio/web/app/home/organisations/new/page.tsx
@@ -114,16 +114,6 @@ export default function Page() {
-
-
-
-
-
+
+
+
+
+
diff --git a/studio/web/app/home/organisations/page.tsx b/studio/web/app/home/organisations/page.tsx
index 8570dd4..8e7109f 100644
--- a/studio/web/app/home/organisations/page.tsx
+++ b/studio/web/app/home/organisations/page.tsx
@@ -1,5 +1,6 @@
"use client";
import React, { useEffect } from "react";
+import { useRouter } from "next/navigation";
import { SearchBar } from "@/components/ui/searchBar";
import { Organisation } from "../../../components/ui/Organisation";
import { Organisation as OrganisationType } from "@/types/organisation";
@@ -17,6 +18,7 @@ export default function Page() {
const [loading, setLoading] = React.useState(true);
const { organisations, setOrganisations } = useOrganisationsStore();
const serverUrl = getServerUrl();
+ const router = useRouter();
useEffect(() => {
async function getOrganisations() {
@@ -29,6 +31,10 @@ export default function Page() {
...kavachAxiosConfig,
});
setOrganisations(resp.data.organisations);
+ if (resp.data.organisations.length === 0) {
+ router.push("/home/organisations/new");
+ toast.error("No organisations found. Create a new one");
+ }
} catch (err) {
console.log(err);
toast.error("Error getting organisations");
@@ -36,7 +42,7 @@ export default function Page() {
setLoading(false);
}
}
- getOrganisations();
+ getOrganisations()
}, []);
const [selectedOrg, setSelectedOrg] = React.useState(null);
@@ -57,6 +63,8 @@ export default function Page() {
}
};
+
+
return (
diff --git a/studio/web/assets/document.png b/studio/web/assets/document.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d2dda926927435d8e0f4da69681f46177de781e
GIT binary patch
literal 8385
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
literal 0
HcmV?d00001
diff --git a/studio/web/components/ui/feature/searchSql.tsx b/studio/web/components/ui/feature/searchSql.tsx
index 8b91254..6e3c0ab 100644
--- a/studio/web/components/ui/feature/searchSql.tsx
+++ b/studio/web/components/ui/feature/searchSql.tsx
@@ -8,6 +8,13 @@ import {
fetchRowsForTable,
fetchSchemaForTable,
} from "@/lib/actions/features/getSchema";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
import { convertTextToSql } from "@/lib/actions/features/textToSql";
import Loading from "../loading";
import { fetchSqlForQuery } from "@/lib/actions/features/searchSql";
@@ -77,6 +84,11 @@ function SearchSql({ dataset }: { dataset: File }) {
setLoading(false);
}
};
+
+ const selectOptions = [
+ { label: "Schema", value: "Schema" },
+ { label: "Rows", value: "Rows" },
+ ];
return (
@@ -106,20 +118,22 @@ function SearchSql({ dataset }: { dataset: File }) {
{textToSqlEnabled ? (
<>
-
+
Search Results in:
-
- Schema
-
- setSelectedOption(
- selectedOption === "Rows" ? "Schema" : "Rows",
- )
- }
- />
- Rows
-
+