Skip to content

Commit de3ecb6

Browse files
committed
feat: changing framework_version to be a little more flexible
1 parent 081d594 commit de3ecb6

6 files changed

Lines changed: 33 additions & 13 deletions

File tree

app/actions/framework_versions/get_framework_versions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ import FrameworkVersion from '#models/framework_version'
22

33
export default class GetFrameworkVersions {
44
static async handle() {
5-
return await FrameworkVersion.query().orderBy('name')
5+
return await FrameworkVersion.query().orderBy('slug')
66
}
77
}

app/dtos/framework_version.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,24 @@ import { BaseModelDto } from '@adocasts.com/dto/base'
33

44
export default class FrameworkVersionDto extends BaseModelDto {
55
declare id: number
6-
declare name: string
6+
declare framework: string
7+
declare version: string
78
declare slug: string
89
declare createdAt: string
910
declare updatedAt: string
11+
declare name: string
1012

1113
constructor(frameworkVersion?: FrameworkVersion) {
1214
super()
1315

1416
if (!frameworkVersion) return
1517
this.id = frameworkVersion.id
16-
this.name = frameworkVersion.name
18+
this.framework = frameworkVersion.framework
19+
this.version = frameworkVersion.version
1720
this.slug = frameworkVersion.slug
1821
this.createdAt = frameworkVersion.createdAt?.toISO()!
1922
this.updatedAt = frameworkVersion.updatedAt?.toISO()!
23+
24+
this.name = `${frameworkVersion.framework} ${frameworkVersion.version}`
2025
}
2126
}

app/models/framework_version.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ export default class FrameworkVersion extends AppBaseModel {
1010
declare id: number
1111

1212
@column()
13-
declare name: string
13+
declare framework: string
14+
15+
@column()
16+
declare version: string
1417

1518
@column()
1619
declare slug: string

app/validators/framework_version.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export const frameworkVersionIndexValidator = vine.compile(
1010

1111
export const frameworkVersionValidator = vine.compile(
1212
vine.object({
13-
name: vine.string().trim().maxLength(100),
13+
framework: vine.string().trim().maxLength(100),
14+
version: vine.string().trim().maxLength(10),
1415
slug: vine
1516
.string()
1617
.trim()

database/migrations/1779553200000_create_framework_versions_table.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ export default class extends BaseSchema {
66
async up() {
77
this.schema.createTable(this.tableName, (table) => {
88
table.increments('id')
9-
table.string('name', 100).notNullable().unique()
9+
table.string('framework', 100).notNullable()
10+
table.string('version', 10).notNullable()
1011
table.string('slug', 100).notNullable().unique()
12+
table.integer('sort').nullable()
13+
table.boolean('is_active').defaultTo(true)
1114
table.timestamp('created_at')
1215
table.timestamp('updated_at')
1316
})

inertia/pages/framework_versions/form.vue

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ const props = defineProps<{
1010
}>()
1111
1212
const form = useForm({
13-
name: props.frameworkVersion?.name ?? '',
13+
framework: props.frameworkVersion?.framework ?? '',
14+
version: props.frameworkVersion?.version ?? '',
1415
slug: props.frameworkVersion?.slug ?? '',
1516
})
1617
@@ -41,7 +42,7 @@ function onSubmit() {
4142
<BreadcrumbSeparator class="hidden md:block" />
4243
<BreadcrumbItem>
4344
<BreadcrumbPage>{{
44-
frameworkVersion?.id ? `Editing "${frameworkVersion.name}"` : 'New Framework Version'
45+
frameworkVersion?.id ? `Editing "${frameworkVersion.framework} ${frameworkVersion.version}"` : 'New Framework Version'
4546
}}</BreadcrumbPage>
4647
</BreadcrumbItem>
4748
</BreadcrumbList>
@@ -60,16 +61,23 @@ function onSubmit() {
6061
class="flex flex-col gap-4 bg-white shadow-xl p-3 lg:p-6 border border-slate-200 rounded-lg w-full lg:w-3/5"
6162
>
6263
<FormInput
63-
v-model="form.name"
64-
label="Name"
65-
placeholder="e.g., Vue 3, React 18, Laravel 10"
66-
:error="form.errors.name"
64+
v-model="form.framework"
65+
label="Framework"
66+
placeholder="e.g., AdonisJS, Vue, Inertia"
67+
:error="form.errors.framework"
68+
/>
69+
70+
<FormInput
71+
v-model="form.version"
72+
label="Version"
73+
placeholder="e.g., 3, 18, 10"
74+
:error="form.errors.version"
6775
/>
6876

6977
<FormInput
7078
v-model="form.slug"
7179
label="Slug"
72-
placeholder="e.g., vue-3, react-18, laravel-10"
80+
placeholder="e.g., adonisjs-7, vue-3, inertia-2"
7381
:error="form.errors.slug"
7482
/>
7583

0 commit comments

Comments
 (0)