Skip to content

Commit 38854e4

Browse files
committed
Merge branch 'normalize-titles' into 9.0
# Conflicts: # src/EntityList/Commands/QuickCreate/QuickCreationCommand.php
2 parents aa45d71 + 19d2509 commit 38854e4

31 files changed

+179
-126
lines changed

demo/app/Sharp/Posts/PostForm.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,9 @@ public function buildFormLayout(FormLayout $formLayout): void
193193

194194
public function buildFormConfig(): void
195195
{
196-
$this->configureDisplayShowPageAfterCreation();
197-
// TODO handle configureEditTitle('Edit post')
198-
// TODO handle configureCreateTitle('New post')
196+
$this->configureDisplayShowPageAfterCreation()
197+
->configureEditTitle('Edit post')
198+
->configureCreateTitle('New post');
199199
}
200200

201201
public function find($id): array

resources/js/Pages/EntityList/EntityList.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
>
9090
<template #card-header>
9191
<CardTitle>
92-
{{ breadcrumb.items[0].label }}
92+
{{ entityList.title }}
9393
</CardTitle>
9494
</template>
9595
</EntityListComponent>

resources/js/Pages/Form/Form.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
@submit="submit"
7373
>
7474
<template #title>
75-
{{ breadcrumb.items.at(-1).documentTitleLabel }}
75+
{{ form.title }}
7676
</template>
7777
<template #footer>
7878
<div class="flex gap-4">

resources/js/entity-list/EntityList.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export class EntityList implements EntityListData {
1818
pageAlert: EntityListData['pageAlert'];
1919
query: EntityListData['query'];
2020
filterValues: EntityListData['filterValues'];
21+
title: EntityListData['title'];
2122

2223
entityKey: string;
2324
hiddenFilters?: Record<string, FilterData['value']>;

resources/js/form/Form.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export class Form implements FormData, CommandFormData {
2525
layout: FormData['layout'];
2626
locales: FormData['locales'];
2727
pageAlert: FormData['pageAlert'];
28+
title: FormData['title'];
2829

2930
state = reactive<{
3031
data: FormData['data'],

resources/js/show/Show.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export class Show implements ShowData {
2020
layout: ShowData['layout'];
2121
locales: ShowData['locales'];
2222
pageAlert: ShowData['pageAlert'];
23+
title: ShowData['title'];
2324

2425
entityKey: string;
2526
instanceId?: string;
@@ -65,15 +66,10 @@ export class Show implements ShowData {
6566
}
6667

6768
getTitle(locale: string): string | null {
68-
if(!this.config.titleAttribute) {
69-
return null;
70-
}
71-
if(this.fields[this.config.titleAttribute]) {
72-
const field = this.fields[this.config.titleAttribute] as ShowTextFieldData;
73-
const value = this.data[this.config.titleAttribute] as ShowTextFieldData['value'];
74-
return field.localized && typeof value?.text === 'object'
75-
? value?.text?.[locale]
76-
: value?.text as string;
69+
if(this.title) {
70+
return typeof this.title === 'object'
71+
? this.title?.[locale]
72+
: this.title;
7773
}
7874
return null;
7975
}

resources/js/types/generated.d.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ export type EntityListData = {
149149
data: Array<{ [key: string]: any }>;
150150
filterValues: FilterValuesData;
151151
query: EntityListQueryParamsData | null;
152+
title: string | null;
152153
forms: { [key: string]: EntityListMultiformData } | null;
153154
meta: PaginatorMetaData | null;
154155
pageAlert: PageAlertData | null;
@@ -274,9 +275,7 @@ export type FormConditionalDisplayData = {
274275
fields: Array<{ key: string; values: string | boolean | Array<string> }>;
275276
};
276277
export type FormConfigData = {
277-
hasShowPage: boolean;
278278
isSingle: boolean;
279-
breadcrumbAttribute: string | null;
280279
};
281280
export type FormCustomFieldData = {
282281
value?: any;
@@ -295,6 +294,7 @@ export type FormData = {
295294
fields: { [key: string]: FormFieldData };
296295
layout: FormLayoutData;
297296
locales: Array<string>;
297+
title: string | null;
298298
pageAlert: PageAlertData | null;
299299
};
300300
export type FormDateFieldData = {
@@ -575,8 +575,6 @@ export type FormUploadFieldData = {
575575
allowedExtensions: Array<string> | null;
576576
maxFileSize: number | null;
577577
validationRule: Array<string> | null;
578-
storageBasePath: string | null;
579-
storageDisk: string | null;
580578
label: string | null;
581579
readOnly: boolean | null;
582580
conditionalDisplay: FormConditionalDisplayData | null;
@@ -764,6 +762,7 @@ export type ShowData = {
764762
fields: { [key: string]: ShowFieldData };
765763
layout: ShowLayoutData;
766764
locales: Array<string> | null;
765+
title: string | { [locale: string]: string } | null;
767766
pageAlert: PageAlertData | null;
768767
};
769768
export type ShowEntityListFieldData = {

src/Data/EntityList/EntityListData.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
final class EntityListData extends Data
1616
{
1717
public function __construct(
18+
public ?string $title,
1819
public EntityListAuthorizationsData $authorizations,
1920
public EntityListConfigData $config,
2021
/** @var EntityListFieldData[] */
@@ -32,6 +33,7 @@ public function __construct(
3233
public static function from(array $entityList): self
3334
{
3435
return new self(
36+
title: $entityList['title'] ?? null,
3537
authorizations: new EntityListAuthorizationsData(...$entityList['authorizations']),
3638
config: EntityListConfigData::from($entityList['config']),
3739
fields: EntityListFieldData::collection($entityList['fields']),

src/Data/Form/FormConfigData.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
final class FormConfigData extends Data
1111
{
1212
public function __construct(
13-
public bool $hasShowPage,
1413
public bool $isSingle = false,
15-
public ?string $breadcrumbAttribute = null,
1614
) {}
1715

1816
public static function from(array $config): self

src/Data/Form/FormData.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
final class FormData extends Data
1515
{
1616
public function __construct(
17+
public ?string $title,
1718
public InstanceAuthorizationsData $authorizations,
1819
public FormConfigData $config,
1920
#[LiteralTypeScriptType('{ [key:string]: FormFieldData["value"] }')]
@@ -29,6 +30,7 @@ public function __construct(
2930
public static function from(array $form): self
3031
{
3132
return new self(
33+
title: $form['title'],
3234
authorizations: InstanceAuthorizationsData::from($form['authorizations']),
3335
config: FormConfigData::from($form['config']),
3436
data: $form['data'],

0 commit comments

Comments
 (0)