|
9 | 9 | use App\Sharp\Utils\Embeds\CodeEmbed; |
10 | 10 | use App\Sharp\Utils\Embeds\RelatedPostEmbed; |
11 | 11 | use App\Sharp\Utils\Embeds\TableOfContentsEmbed; |
| 12 | +use Carbon\Carbon; |
12 | 13 | use Code16\Sharp\Form\Eloquent\Uploads\Transformers\SharpUploadModelFormAttributeTransformer; |
13 | 14 | use Code16\Sharp\Form\Eloquent\WithSharpFormEloquentUpdater; |
14 | 15 | use Code16\Sharp\Form\Fields\Editor\Uploads\SharpFormEditorUpload; |
|
28 | 29 | use Code16\Sharp\Form\Layout\FormLayoutTab; |
29 | 30 | use Code16\Sharp\Form\SharpForm; |
30 | 31 | use Code16\Sharp\Utils\Fields\FieldsContainer; |
| 32 | +use Illuminate\Support\Arr; |
31 | 33 | use Illuminate\Support\Facades\Blade; |
| 34 | +use Illuminate\Support\Facades\Storage; |
| 35 | +use Illuminate\Support\Str; |
32 | 36 |
|
33 | 37 | class PostForm extends SharpForm |
34 | 38 | { |
@@ -152,6 +156,23 @@ public function buildFormFields(FieldsContainer $formFields): void |
152 | 156 | ->setStorageDisk('local') |
153 | 157 | ->setStorageBasePath('data/posts/{id}') |
154 | 158 | ->addConditionalDisplay('!is_link'), |
| 159 | + ) |
| 160 | + ->addItemField( |
| 161 | + SharpFormHtmlField::make('document_infos') |
| 162 | + ->setTemplate(function (array $data, string $fieldKey) { |
| 163 | + $itemData = Arr::get($data, Str::beforeLast($fieldKey, '.')); |
| 164 | + if (! isset($itemData['document']['file_name'])) { |
| 165 | + return ''; |
| 166 | + } |
| 167 | + |
| 168 | + return sprintf( |
| 169 | + 'File last modified at : %s', |
| 170 | + Carbon::createFromTimestamp( |
| 171 | + Storage::disk($itemData['document']['disk']) |
| 172 | + ->lastModified($itemData['document']['file_name']) |
| 173 | + ) |
| 174 | + ); |
| 175 | + }) |
155 | 176 | ), |
156 | 177 | ) |
157 | 178 | ->when(sharp()->context()->isUpdate(), fn ($formFields) => $formFields->addField( |
@@ -193,7 +214,8 @@ public function buildFormLayout(FormLayout $formLayout): void |
193 | 214 | ->withListField('attachments', function (FormLayoutColumn $item) { |
194 | 215 | $item->withFields(title: 8, is_link: 4) |
195 | 216 | ->withField('link_url') |
196 | | - ->withField('document'); |
| 217 | + ->withField('document') |
| 218 | + ->withField('document_infos'); |
197 | 219 | }); |
198 | 220 | }) |
199 | 221 | ->addColumn(6, function (FormLayoutColumn $column) { |
|
0 commit comments