diff --git a/web-admin/src/features/projects/github/GithubConnectionDialog.svelte b/web-admin/src/features/projects/github/GithubConnectionDialog.svelte index 9133bdcd5c5..2e1e1b42d83 100644 --- a/web-admin/src/features/projects/github/GithubConnectionDialog.svelte +++ b/web-admin/src/features/projects/github/GithubConnectionDialog.svelte @@ -25,6 +25,7 @@ export let open = false; export let organization: string; export let project: string; + export let hideTrigger = false; const FORM_ID = "github-connect-form"; @@ -159,18 +160,20 @@ } }} > - - - + {#if !hideTrigger} + + + + {/if}
@@ -178,7 +181,15 @@
Connect to GitHub - Connect this project to a new repo. + Enable version control and collaboration for your project. + + Learn more +
diff --git a/web-admin/src/features/projects/status/ProjectAiConnector.svelte b/web-admin/src/features/projects/status/ProjectAiConnector.svelte new file mode 100644 index 00000000000..34f8baece01 --- /dev/null +++ b/web-admin/src/features/projects/status/ProjectAiConnector.svelte @@ -0,0 +1,162 @@ + + +
+

AI

+ {#if isLoading} +
+ +
+ {:else if error} +
+ Error loading AI connector +
+ {:else if isUserConfigured} +
+
+ + + {getDriverDisplayName(userConnectorConfig?.type)} + +
+ {#if configDetails.length > 0} +
+ {#each configDetails as detail} +
+ {detail.label}: + {detail.value} +
+ {/each} +
+ {/if} +
+ {:else} +
+
+ + + Rill AI + (default) + +
+
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/ProjectOlapConnector.svelte b/web-admin/src/features/projects/status/ProjectOlapConnector.svelte new file mode 100644 index 00000000000..d5590d5b09c --- /dev/null +++ b/web-admin/src/features/projects/status/ProjectOlapConnector.svelte @@ -0,0 +1,104 @@ + + +
+

OLAP Engine

+ {#if isLoading} +
+ +
+ {:else if error} +
+ Error loading OLAP connector +
+ {:else} +
+ {#if IconComponent} + + {:else} + + {/if} + + {displayName} + {#if !isUserConfigured} + (default) + {/if} + +
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/display-utils.ts b/web-admin/src/features/projects/status/display-utils.ts index d4e7a35cd8c..09cd4f1ae8f 100644 --- a/web-admin/src/features/projects/status/display-utils.ts +++ b/web-admin/src/features/projects/status/display-utils.ts @@ -92,7 +92,7 @@ export const deploymentChipDisplays: Record = [V1DeploymentStatus.DEPLOYMENT_STATUS_RUNNING]: { icon: CheckCircle, iconProps: { className: "text-primary-600 hover:text-primary-500" }, - text: "Ready", + text: "Running", textClass: "text-primary-600", wrapperClass: "bg-primary-50 border-primary-300", }, diff --git a/web-admin/src/features/projects/status/project-info/InfoRow.svelte b/web-admin/src/features/projects/status/project-info/InfoRow.svelte new file mode 100644 index 00000000000..4abd186afb7 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/InfoRow.svelte @@ -0,0 +1,37 @@ + + +
+
{label}
+
+ +
+
+ + diff --git a/web-admin/src/features/projects/status/project-info/InfoRowAi.svelte b/web-admin/src/features/projects/status/project-info/InfoRowAi.svelte new file mode 100644 index 00000000000..52fd3bb17d5 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/InfoRowAi.svelte @@ -0,0 +1,138 @@ + + + + {#if isLoading} + + {:else if error} + Error loading AI connector + {:else if isUserConfigured} +
+ {#if IconComponent} + + {:else} + + {/if} + + {getDriverDisplayName(userConnectorConfig?.type)} + + {#if configDetails.length > 0} + {#each configDetails as detail} + + + {detail.label}: + {detail.value} + + {/each} + {/if} +
+ {:else} +
+ Rill-managed +
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/project-info/InfoRowDeployment.svelte b/web-admin/src/features/projects/status/project-info/InfoRowDeployment.svelte new file mode 100644 index 00000000000..c305bf40ae8 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/InfoRowDeployment.svelte @@ -0,0 +1,57 @@ + + + + {#if isLoading} + + {:else if error} + Error loading deployment status + {:else} +
+
+ + + {currentStatusDisplay.text} + +
+ {#if deployment?.statusMessage} + {deployment.statusMessage} + {/if} +
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/project-info/InfoRowGit.svelte b/web-admin/src/features/projects/status/project-info/InfoRowGit.svelte new file mode 100644 index 00000000000..7b85e610486 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/InfoRowGit.svelte @@ -0,0 +1,136 @@ + + + + {#if isLoading} + + {:else if error} + Error loading GitHub status + {:else if isGithubConnected && !isManagedGit} +
+ + + {repoName} + + + branch: {prodBranch} + {#if subpath} + + /{subpath} + {/if} + {#if lastUpdated} + + Synced {formatSyncTime(lastUpdated)} + {/if} +
+ {:else} + + {/if} +
+ + + + diff --git a/web-admin/src/features/projects/status/project-info/InfoRowOlap.svelte b/web-admin/src/features/projects/status/project-info/InfoRowOlap.svelte new file mode 100644 index 00000000000..bc0c5bccd41 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/InfoRowOlap.svelte @@ -0,0 +1,87 @@ + + + + {#if isLoading} + + {:else if error} + Error loading OLAP connector + {:else} +
+ {#if isUserConfigured} + {#if IconComponent} + + {:else} + + {/if} + {/if} + + {#if !isUserConfigured}Rill-managed + {/if}{displayName} + +
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte b/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte new file mode 100644 index 00000000000..f355eb5ae09 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte @@ -0,0 +1,24 @@ + + +
+ + + + +
+ + diff --git a/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte b/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte index ba2ab04ec94..05a4bfe0a1f 100644 --- a/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte +++ b/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte @@ -1,22 +1,13 @@ -
-
- - -
- +
+
diff --git a/web-common/src/components/icons/connectors/OpenAIIcon.svelte b/web-common/src/components/icons/connectors/OpenAIIcon.svelte new file mode 100644 index 00000000000..6b7f594b97b --- /dev/null +++ b/web-common/src/components/icons/connectors/OpenAIIcon.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/web-common/src/features/connectors/connector-icon-mapping.ts b/web-common/src/features/connectors/connector-icon-mapping.ts index a5e581f0395..b987cd3aa89 100644 --- a/web-common/src/features/connectors/connector-icon-mapping.ts +++ b/web-common/src/features/connectors/connector-icon-mapping.ts @@ -8,6 +8,7 @@ import AthenaIcon from "../../components/icons/connectors/AthenaIcon.svelte"; import PostgresIcon from "../../components/icons/connectors/PostgresIcon.svelte"; import MySqlIcon from "../../components/icons/connectors/MySqlIcon.svelte"; import MotherDuckIcon from "../../components/icons/connectors/MotherDuckIcon.svelte"; +import OpenAIIcon from "../../components/icons/connectors/OpenAIIcon.svelte"; import RedshiftIcon from "../../components/icons/connectors/RedshiftIcon.svelte"; import SnowflakeIcon from "../../components/icons/connectors/SnowflakeIcon.svelte"; import ClickHouseCloudIcon from "../../components/icons/connectors/ClickHouseCloudIcon.svelte"; @@ -21,6 +22,7 @@ export const connectorIconMapping = { druid: ApacheDruidIcon, duckdb: DuckDbIcon, mysql: MySqlIcon, + openai: OpenAIIcon, pinot: ApachePinotIcon, postgres: PostgresIcon, redshift: RedshiftIcon,