|
|
@@ -50,7 +50,10 @@ class EsgResource extends Resource
|
|
50
|
50
|
TextInput::make('title')
|
|
51
|
51
|
->label("標題")
|
|
52
|
52
|
->columnSpan(1)
|
|
53
|
|
- ->required($locale == "zh_TW"),
|
|
|
53
|
+ ->required($locale == "zh_TW")
|
|
|
54
|
+ ->validationMessages([
|
|
|
55
|
+ 'required' => '請填寫標題',
|
|
|
56
|
+ ])
|
|
54
|
57
|
])->locales(["zh_TW", "en"])
|
|
55
|
58
|
->columnSpanFull()->columns(3),
|
|
56
|
59
|
]),
|
|
|
@@ -58,15 +61,24 @@ class EsgResource extends Resource
|
|
58
|
61
|
FileUpload::make('banner_pc')->label("Banner (PC)")
|
|
59
|
62
|
->disk("public")
|
|
60
|
63
|
// ->helperText('建議寬高限制為:1280*720px,檔案大小限制為1M以下')->maxSize('1024')
|
|
61
|
|
- ->directory("esg")->required(),
|
|
|
64
|
+ ->directory("esg")->required()
|
|
|
65
|
+ ->validationMessages([
|
|
|
66
|
+ 'required' => '請上傳圖片',
|
|
|
67
|
+ ]),
|
|
62
|
68
|
FileUpload::make('banner_mobile')->label("Banner (Mobile)")
|
|
63
|
69
|
->disk("public")
|
|
64
|
70
|
// ->helperText('建議寬高限制為:600*896px,檔案大小限制為1M以下')->maxSize('1024')
|
|
65
|
|
- ->directory("esg")->required(),
|
|
|
71
|
+ ->directory("esg")->required()
|
|
|
72
|
+ ->validationMessages([
|
|
|
73
|
+ 'required' => '請上傳圖片',
|
|
|
74
|
+ ]),
|
|
66
|
75
|
Translate::make()->schema(fn (string $locale) => [
|
|
67
|
76
|
TextInput::make('banner_alt')
|
|
68
|
77
|
->label("Banner 圖片註釋")
|
|
69
|
|
- ->required($locale == "zh_TW"),
|
|
|
78
|
+ ->required($locale == "zh_TW")
|
|
|
79
|
+ ->validationMessages([
|
|
|
80
|
+ 'required' => '請填寫圖片註釋',
|
|
|
81
|
+ ]),
|
|
70
|
82
|
Textarea::make("description")->rows(5)->columnSpanFull()->label("短文"),
|
|
71
|
83
|
])->locales(["zh_TW", "en"])
|
|
72
|
84
|
->columnSpanFull(),
|
|
|
@@ -95,7 +107,10 @@ class EsgResource extends Resource
|
|
95
|
107
|
->fileAttachmentsDirectory('attachments')
|
|
96
|
108
|
->fileAttachmentsVisibility('private')
|
|
97
|
109
|
->disableToolbarButtons(['attachFiles'])
|
|
98
|
|
- ->required($locale == "zh_TW"),
|
|
|
110
|
+ ->required($locale == "zh_TW")
|
|
|
111
|
+ ->validationMessages([
|
|
|
112
|
+ 'required' => '請填寫文字內容',
|
|
|
113
|
+ ]),
|
|
99
|
114
|
])
|
|
100
|
115
|
->locales(["zh_TW", "en"])
|
|
101
|
116
|
->id(fn ($get) => "para_text_" . $get('item_key')),
|
|
|
@@ -126,7 +141,10 @@ class EsgResource extends Resource
|
|
126
|
141
|
// ->visible(fn (Get $get) => in_array($get('block_type'), ['title', 'subtitle', 'highlight'])),
|
|
127
|
142
|
RichEditor::make('block_content')
|
|
128
|
143
|
->disableToolbarButtons(['attachFiles'])
|
|
129
|
|
- ->required($locale == "zh_TW"),
|
|
|
144
|
+ ->required($locale == "zh_TW")
|
|
|
145
|
+ ->validationMessages([
|
|
|
146
|
+ 'required' => '請填寫文字內容',
|
|
|
147
|
+ ]),
|
|
130
|
148
|
])
|
|
131
|
149
|
->locales(["zh_TW", "en"])
|
|
132
|
150
|
->id(fn ($get) => "text_block_" . $get('block_item_key')),
|
|
|
@@ -192,7 +210,10 @@ class EsgResource extends Resource
|
|
192
|
210
|
Translate::make()->schema(fn (string $locale) => [
|
|
193
|
211
|
Grid::make(2) // 改用 Grid 來支援動態 columns
|
|
194
|
212
|
->schema([
|
|
195
|
|
- TextInput::make('content.head1')->label('標題第1欄')->required(),
|
|
|
213
|
+ TextInput::make('content.head1')->label('標題第1欄')->required()
|
|
|
214
|
+ ->validationMessages([
|
|
|
215
|
+ 'required' => '請填寫',
|
|
|
216
|
+ ]),
|
|
196
|
217
|
Radio::make('content.head_align1')
|
|
197
|
218
|
->label('對齊')
|
|
198
|
219
|
->options([
|
|
|
@@ -201,7 +222,10 @@ class EsgResource extends Resource
|
|
201
|
222
|
3 => '置右'
|
|
202
|
223
|
])
|
|
203
|
224
|
->default(1),
|
|
204
|
|
- TextInput::make('content.head2')->label('標題第2欄')->required(),
|
|
|
225
|
+ TextInput::make('content.head2')->label('標題第2欄')->required()
|
|
|
226
|
+ ->validationMessages([
|
|
|
227
|
+ 'required' => '請填寫',
|
|
|
228
|
+ ]),
|
|
205
|
229
|
Radio::make('content.head_align2')
|
|
206
|
230
|
->label('對齊')
|
|
207
|
231
|
->options([
|
|
|
@@ -260,7 +284,10 @@ class EsgResource extends Resource
|
|
260
|
284
|
RichEditor::make('col1')
|
|
261
|
285
|
->label('第1欄')
|
|
262
|
286
|
->disableToolbarButtons(['attachFiles'])
|
|
263
|
|
- ->required($locale == "zh_TW"),
|
|
|
287
|
+ ->required($locale == "zh_TW")
|
|
|
288
|
+ ->validationMessages([
|
|
|
289
|
+ 'required' => '請填寫',
|
|
|
290
|
+ ]),
|
|
264
|
291
|
// TextInput::make('col2')->label('第2欄')->required(),
|
|
265
|
292
|
Radio::make('align2')
|
|
266
|
293
|
->label('對齊')
|
|
|
@@ -273,7 +300,10 @@ class EsgResource extends Resource
|
|
273
|
300
|
RichEditor::make('col2')
|
|
274
|
301
|
->label('第2欄')
|
|
275
|
302
|
->disableToolbarButtons(['attachFiles'])
|
|
276
|
|
- ->required($locale == "zh_TW"),
|
|
|
303
|
+ ->required($locale == "zh_TW")
|
|
|
304
|
+ ->validationMessages([
|
|
|
305
|
+ 'required' => '請填寫',
|
|
|
306
|
+ ]),
|
|
277
|
307
|
Radio::make('align3')
|
|
278
|
308
|
->label('對齊')
|
|
279
|
309
|
->options([
|
|
|
@@ -287,7 +317,10 @@ class EsgResource extends Resource
|
|
287
|
317
|
->label('第3欄')
|
|
288
|
318
|
->disableToolbarButtons(['attachFiles'])
|
|
289
|
319
|
->visible(fn (Get $get) => intval($get('../../../content.column_count')) >= 3)
|
|
290
|
|
- ->required($locale == "zh_TW" && fn (Get $get)=> intval($get("../../../content.column_count")) >= 3),
|
|
|
320
|
+ ->required($locale == "zh_TW" && fn (Get $get)=> intval($get("../../../content.column_count")) >= 3)
|
|
|
321
|
+ ->validationMessages([
|
|
|
322
|
+ 'required' => '請填寫',
|
|
|
323
|
+ ]),
|
|
291
|
324
|
Radio::make('align4')
|
|
292
|
325
|
->label('對齊')
|
|
293
|
326
|
->options([
|
|
|
@@ -301,7 +334,10 @@ class EsgResource extends Resource
|
|
301
|
334
|
->label('第4欄')
|
|
302
|
335
|
->disableToolbarButtons(['attachFiles'])
|
|
303
|
336
|
->visible(fn (Get $get) => intval($get('../../../content.column_count')) >= 4)
|
|
304
|
|
- ->required($locale == "zh_TW" && fn (Get $get)=> intval($get("../../../content.column_count")) >= 4),
|
|
|
337
|
+ ->required($locale == "zh_TW" && fn (Get $get)=> intval($get("../../../content.column_count")) >= 4)
|
|
|
338
|
+ ->validationMessages([
|
|
|
339
|
+ 'required' => '請填寫',
|
|
|
340
|
+ ]),
|
|
305
|
341
|
])
|
|
306
|
342
|
->reactive() // 加入響應式
|
|
307
|
343
|
])->locales(["zh_TW", "en"]),
|
|
|
@@ -325,13 +361,16 @@ class EsgResource extends Resource
|
|
325
|
361
|
}),
|
|
326
|
362
|
Translate::make()->schema(fn (string $locale) => [
|
|
327
|
363
|
TextInput::make('image_alt')->label("圖片註文")
|
|
328
|
|
- ->required($locale == "zh_TW"),
|
|
329
|
364
|
])->locales(["zh_TW", "en"])
|
|
330
|
365
|
->id(fn ($get) => "para_img_mul_" . $get('para_img_item_key')),
|
|
331
|
366
|
FileUpload::make('image_url')->label("")->disk("public")
|
|
332
|
367
|
// ->helperText('建議寬高限制為:1080*675px,檔案大小限制為1M以下')->maxSize('1024')
|
|
333
|
368
|
->directory("esg/paragraphPhoto")
|
|
334
|
|
- ->maxFiles(10),
|
|
|
369
|
+ ->maxFiles(10)
|
|
|
370
|
+ ->required()
|
|
|
371
|
+ ->validationMessages([
|
|
|
372
|
+ 'required' => '請上傳圖片',
|
|
|
373
|
+ ]),
|
|
335
|
374
|
])
|
|
336
|
375
|
->addActionLabel('新增')
|
|
337
|
376
|
->label("")
|
|
|
@@ -344,7 +383,10 @@ class EsgResource extends Resource
|
|
344
|
383
|
->disk("public")
|
|
345
|
384
|
->directory("esg/paragraphVideo")
|
|
346
|
385
|
->helperText('建議寬高限制為:2000*720px,出血寬度720px,主要圖像範圍為:1280*720px,檔案大小限制為1M以下')->maxSize('1024'),
|
|
347
|
|
- TextInput::make('content.link')->label("網址")->required(),
|
|
|
386
|
+ TextInput::make('content.link')->label("網址")->required()
|
|
|
387
|
+ ->validationMessages([
|
|
|
388
|
+ 'required' => '請附上連結',
|
|
|
389
|
+ ]),
|
|
348
|
390
|
Translate::make()->schema(fn (string $locale) => [
|
|
349
|
391
|
TextInput::make('content.video_alt')->label("影片註文"),
|
|
350
|
392
|
])->locales(["zh_TW", "en"])
|