Skip to content

Commit 87656fd

Browse files
authored
Feat: Basic languages page (#128)
* installs shadcn select component * adds list of available languages * fixes linking user project fk in base migration * adds language dropdown to project creation flow for selecting base language * fixes typings in select shadcn ui components * adds shadcn base table components * moves language select folder * adds label column to languages table * refactor: Update import path for language-related modules * feat: add base_language_label field to createProjectSchema * feat: update base_language_label schema with enum and default value * makes project creation work with fallback language * adjusts main content and header component styles * adds aider specific stuff to gitignore * adds language path specific code for project * make left join to allow empty fallback language * feat: add console warning for existing languages in project load function * feat: implement individual language updates in LanguageTable * refactor: simplify getLanguagesForProject function and update return type * feat: add updateLanguage function to language repository * feat: implement updateLanguage method for updating language entries * use json datatype for languages superform due to nested table * adds unit tests for language-service * adds integration tests for language repository * adds add button to add a new language to the table * reflects delete and upsert languages on the client and add unit and integration test cases * fixes language service tests after merge * disallows deletetion of base language from ui and base language cannot have a fallback * makes create project e2e test use language select * only allows for saving languages once form got tainted * relaxes schema to have code as string and add deletion of language * checks for locale already used * improves deletion and upserting of languages * fixes calls after refacoring service methods * adds confirmation dialog to confirm deletion of language * removes commented code * fixes broken unit tests * fixes integration tests * adds pr improvements
1 parent 06fb112 commit 87656fd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1961
-38
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,5 @@ vite.config.ts.timestamp-*
4141
docs/.vitepress/cache
4242
docs/.vitepress/dist
4343

44-
44+
aider
45+
.aider*

e2e/specs/create-project-flow.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ test.describe('create project', () => {
1212
await page.getByTestId('create-project-modal-trigger').click()
1313

1414
await page.getByTestId('create-project-name-input').fill(projectName)
15-
await page.getByTestId('create-project-base-language-input').fill('en')
16-
15+
await page.getByTestId('create-project-base-language-select').click()
16+
await page.getByRole('option', { name: 'en - English' }).click()
1717
await page.getByTestId('create-project-submit-button').click()
1818

1919
await expect(page.getByTestId('project-card-name')).toHaveText(projectName)

services/src/kysely/migrations/2024-04-28T09_init.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export async function up(db: Kysely<unknown>): Promise<void> {
2525

2626
await createTableMigration(tx, 'languages')
2727
.addColumn('code', 'text', (col) => col.notNull())
28+
.addColumn('label', 'text', (col) => col.notNull())
2829
.addColumn('fallback_language', 'integer', (col) => col.references('languages.id'))
2930
.addColumn('project_id', 'integer', (col) =>
3031
col.references('projects.id').onDelete('cascade').notNull()
@@ -51,7 +52,7 @@ export async function up(db: Kysely<unknown>): Promise<void> {
5152

5253
await createTableMigration(tx, 'projects_users', false, false)
5354
.addColumn('project_id', 'integer', (col) => col.references('projects.id').notNull())
54-
.addColumn('user_id', 'integer', (col) => col.references('user.id').notNull())
55+
.addColumn('user_id', 'integer', (col) => col.references('users.id').notNull())
5556
.addColumn('permission', 'text', (col) =>
5657
col.check(sql`permission in ('READONLY', 'WRITE', 'ADMIN')`)
5758
)

0 commit comments

Comments
 (0)