Completed
Pull Request — master (#415)
by
unknown
02:13
created

FolderCreateFormFactory::getSaveAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 6
rs 9.4285
cc 1
eloc 4
nc 1
nop 1
1
<?php
2
3
namespace SilverStripe\AssetAdmin\Forms;
4
5
use SilverStripe\Assets\File;
6
use SilverStripe\Assets\Folder;
7
use SilverStripe\Control\Controller;
8
use SilverStripe\Forms\FieldList;
9
use SilverStripe\Forms\FormAction;
10
use SilverStripe\Forms\HiddenField;
11
12
class FolderCreateFormFactory extends AssetFormFactory
13
{
14
    public function getRequiredContext()
15
    {
16
        return ['ParentID'];
17
    }
18
    
19
    public function getFormFields(Controller $controller, $name, $context = [])
20
    {
21
        // Add status flag before extensions are triggered
22
        $this->beforeExtending('updateFormFields', function (FieldList $fields) use ($context) {
23
            $record = Folder::create();
24
            $fields->insertAfter(
25
                'TitleHeader',
26
                PreviewImageField::create('PreviewImage')
27
                    ->setSchemaState([
28
                        'data' => [
29
                            'mock' => true,
30
                            'preview' => $record->PreviewLink(),
31
                            'category' => $record instanceof Folder ? 'folder' : $record->appCategory(),
32
                        ]
33
                    ])
34
                    ->addExtraClass('editor__file-preview')
35
            );
36
            $fields->push(HiddenField::create('ParentID', null, $context['ParentID']));
37
            
38
            $title = $fields->fieldByName('TitleHeader');
39
            $titleNew = _t('AssetAdmin.NewFile', 'New {file}', [ 'file' => Folder::config()->singular_name ]);
40
            $title->setTitle($titleNew);
41
        });
42
    
43
        return parent::getFormFields($controller, $name, $context);
44
    }
45
    
46
    /**
47
     * @param File $record
48
     * @return FormAction
49
     */
50
    protected function getSaveAction($record)
51
    {
52
        return FormAction::create('createfolder', _t('CMSMain.CREATE', 'Create'))
53
            ->setIcon('save')
54
            ->setSchemaData(['data' => ['buttonStyle' => 'primary']]);
55
    }
56
    
57
    /**
58
     * @param File $record
59
     * @return null
60
     */
61
    protected function getDeleteAction($record)
62
    {
63
        return null;
64
    }
65
}
66