Skip to content

Commit b4971a3

Browse files
Merge pull request #5 from we-bridge/add_cancel_button
Add a cancel button when uploading
2 parents facf0ec + b983f21 commit b4971a3

3 files changed

Lines changed: 45 additions & 2 deletions

File tree

Form/LargeFileType.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ public function setDefaultOptions(OptionsResolverInterface $resolver)
3333
$resolver->setRequired(array('mimeTypesMessage'));
3434
$resolver->setRequired(array('maxSizeMessage'));
3535
$resolver->setOptional(array('previewContainerId'));
36+
$resolver->setOptional(array('cancelMessage'));
3637

3738
$resolver->setDefaults(array(
38-
'previewContainerId' =>''
39+
'previewContainerId' => '',
40+
'cancelMessage' => 'Cancel'
3941
));
4042
}
4143

@@ -85,6 +87,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
8587
$view->vars['mimeTypesMessage'] = $options['mimeTypesMessage'];
8688
$view->vars['maxSizeMessage'] = $options['maxSizeMessage'];
8789
$view->vars['previewContainerId'] = $options['previewContainerId'];
90+
$view->vars['cancelMessage'] = $options['cancelMessage'];
8891
}
8992

9093
public function getName()

Resources/public/js/largefile.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ var LargeFile = (function() {
1414
var progress = parseInt(data.loaded / data.total * 100, 10);
1515
uploadProgress(this, progress);
1616
},
17+
add: function (e, data) {
18+
showCancel(this, data.submit());
19+
},
1720
error: function(e, data) {
1821
var inputField = document.getElementById(this.fileInput[0].id);
1922
uploadFinished(inputField, false);
@@ -75,6 +78,7 @@ var LargeFile = (function() {
7578
);
7679
progressBar.html('');
7780
}
81+
hideCancel(inputField);
7882
};
7983

8084
var displayError = function(inputField, error) {
@@ -126,6 +130,32 @@ var LargeFile = (function() {
126130
}
127131
};
128132

133+
var showCancel = function(inputField, uploader) {
134+
135+
$('#' + inputField.getAttribute('data-largefile-field') + '-upload').
136+
addClass('hidden');
137+
138+
var cancelButton =
139+
$('#' + inputField.getAttribute('data-largefile-field') + '-cancel');
140+
141+
cancelButton.removeClass('hidden');
142+
143+
cancelButton.click(function() {
144+
uploader.abort();
145+
});
146+
};
147+
148+
var hideCancel = function(inputField) {
149+
150+
$('#' + inputField.getAttribute('data-largefile-field') + '-cancel').
151+
addClass('hidden');
152+
153+
var uploadButton =
154+
$('#' + inputField.getAttribute('data-largefile-field') + '-upload');
155+
156+
uploadButton.removeClass('hidden');
157+
};
158+
129159
return {
130160
setup: setup
131161
};

Resources/views/Form/largefile.html.twig

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,17 @@
1010

1111
{% spaceless %}
1212

13-
<span class="file-input btn btn-block panel-heading-highlighted btn-file">
13+
<span
14+
id="{{ view_id_prefix ~ largefile_field }}-cancel"
15+
class="btn btn-block btn-danger largefile-cancel hidden"
16+
>
17+
{{ cancelMessage }}
18+
</span>
19+
20+
<span
21+
id="{{ view_id_prefix ~ largefile_field }}-upload"
22+
class="file-input btn btn-block panel-heading-highlighted btn-file"
23+
>
1424
{{ label }}
1525

1626
{{ form_widget(

0 commit comments

Comments
 (0)