Skip to content

Commit 190cde3

Browse files
Merge pull request #2 from we-bridge/add_preview_option
Add an option for the form type to show a preview once uploaded
2 parents 7fd8b11 + 15caa64 commit 190cde3

3 files changed

Lines changed: 25 additions & 2 deletions

File tree

Form/LargeFileType.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ public function setDefaultOptions(OptionsResolverInterface $resolver)
3232
$resolver->setRequired(array('media'));
3333
$resolver->setRequired(array('mimeTypesMessage'));
3434
$resolver->setRequired(array('maxSizeMessage'));
35+
$resolver->setOptional(array('previewContainerId'));
36+
37+
$resolver->setDefaults(array(
38+
'previewContainerId' =>''
39+
));
3540
}
3641

3742
/**
@@ -70,6 +75,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
7075
$view->vars['largefile_media'] = $options['media'];
7176
$view->vars['mimeTypesMessage'] = $options['mimeTypesMessage'];
7277
$view->vars['maxSizeMessage'] = $options['maxSizeMessage'];
78+
$view->vars['previewContainerId'] = $options['previewContainerId'];
7379
}
7480

7581
public function getName()

Resources/public/js/largefile.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ var LargeFile = (function() {
1515
uploadProgress(this, progress);
1616
},
1717
error: function(e, data) {
18-
console.log('error');
1918
var inputField = document.getElementById(this.fileInput[0].id);
2019
uploadFinished(inputField, false);
2120
},
@@ -39,6 +38,8 @@ var LargeFile = (function() {
3938
inputField.removeAttribute('required');
4039
uploadFinished(inputField, true);
4140

41+
//show preview of loaded item
42+
showPreview(inputField, files.files[0].url);
4243
}
4344
});
4445
};
@@ -102,6 +103,21 @@ var LargeFile = (function() {
102103
);
103104
};
104105

106+
var showPreview = function (inputField, url) {
107+
if (inputField.hasAttribute('data-previewcontainer') &&
108+
inputField.getAttribute('data-previewcontainer') != ''
109+
) {
110+
var container = document.getElementById(
111+
inputField.getAttribute('data-previewcontainer')
112+
);
113+
container.src = '/' + url;
114+
115+
if (container.load) {
116+
container.load();
117+
}
118+
}
119+
};
120+
105121
return {
106122
setup: setup
107123
};

Resources/views/Form/largefile.html.twig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
'data-largefile-field': largefile_field,
2121
'data-mimeTypesMessage': mimeTypesMessage,
2222
'data-maxSizeMessage': maxSizeMessage,
23-
'data-url': oneup_uploader_endpoint(largefile_media)
23+
'data-url': oneup_uploader_endpoint(largefile_media),
24+
'data-previewcontainer': previewContainerId
2425
}}
2526
)
2627
}}

0 commit comments

Comments
 (0)