(ctx context.Context, app App, record *Record)
| 474 | } |
| 475 | |
| 476 | func (f *FileField) processFilesToDelete(ctx context.Context, app App, record *Record) error { |
| 477 | markedForDelete, _ := record.GetRaw(deletedFilesPrefix + f.Name).([]string) |
| 478 | if len(markedForDelete) == 0 { |
| 479 | return nil |
| 480 | } |
| 481 | |
| 482 | old := list.ToInterfaceSlice(markedForDelete) |
| 483 | new := list.ToInterfaceSlice(f.extractPlainStrings(f.toSliceValue(record.GetRaw(f.Name)))) |
| 484 | diff := f.excludeFiles(old, new) |
| 485 | |
| 486 | toDelete := make([]string, len(diff)) |
| 487 | for i, del := range diff { |
| 488 | toDelete[i] = f.getFileName(del) |
| 489 | } |
| 490 | |
| 491 | failedToDelete, err := f.deleteFilesByNamesList(ctx, app, record, list.ToUniqueStringSlice(toDelete)) |
| 492 | |
| 493 | record.SetRaw(deletedFilesPrefix+f.Name, failedToDelete) |
| 494 | |
| 495 | return err |
| 496 | } |
| 497 | |
| 498 | func (f *FileField) rememberFilesToDelete(app App, record *Record, oldValue any) { |
| 499 | old := list.ToInterfaceSlice(f.extractPlainStrings(f.toSliceValue(oldValue))) |
no test coverage detected