Skip to content

Commit a2d79d9

Browse files
author
Zane
committed
Article editor: images gallery
1 parent 6b6041f commit a2d79d9

File tree

5 files changed

+73
-9
lines changed

5 files changed

+73
-9
lines changed

‎assets/article-edit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ import './js/article-edit-contenteditable';
44
import './js/modal-ajax';
55
import './js/article-edit-authors';
66
import './js/article-edit-tags';
7-
import './js/article-edit-images';
7+
import './js/article-edit-upload-images';

‎assets/js/article-edit-images.js

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
//import $ from 'jquery';
2+
3+
4+
jQuery(document).on('click', '.tli-image-upload', function(event) {
5+
$(this).siblings('input[type="file"]').click();
6+
});
7+
8+
9+
$(document).on('change', '#tli-article-editor-image-gallery input[type="file"]', function() {
10+
11+
const files = this.files;
12+
if (files.length === 0) {
13+
return;
14+
}
15+
16+
const formData = new FormData();
17+
for (let i = 0; i < files.length; i++) {
18+
formData.append('images[]', files[i]);
19+
}
20+
21+
const uploadCommandContainer = $('.tli-image-upload');
22+
uploadCommandContainer.addClass('d-none');
23+
24+
const progressBarContainer = $('#tli-image-upload-progress');
25+
progressBarContainer.removeClass('d-none');
26+
27+
const progressBar = progressBarContainer.find('.progress-bar');
28+
progressBar.addClass('progress-bar-animated progress-bar-striped');
29+
progressBar.removeClass('bg-success bg-danger');
30+
31+
$.ajax({
32+
url: $('#tli-article-editor-image-gallery').data('save-url'),
33+
type: 'POST',
34+
data: formData,
35+
processData: false,
36+
contentType: false,
37+
xhr: function() {
38+
const xhr = new window.XMLHttpRequest();
39+
// Upload progress
40+
xhr.upload.addEventListener('progress', function(evt) {
41+
if (evt.lengthComputable) {
42+
const percentComplete = Math.round((evt.loaded / evt.total) * 100);
43+
progressBar.width(percentComplete + '%');
44+
progressBar.attr('aria-valuenow', percentComplete).text(percentComplete + '%');
45+
}
46+
}, false);
47+
return xhr;
48+
},
49+
success: function(response) {
50+
debugger;
51+
progressBar.addClass('bg-success');
52+
//progressBarContainer.append('<div class="alert alert-success mt-2">✅ ' + response.message + '</div>');
53+
},
54+
error: function(jqXHR, textStatus, errorThrown) {
55+
debugger;
56+
progressBar.addClass('bg-danger');
57+
//const errorMsg = jqXHR.responseJSON ? jqXHR.responseJSON.error : 'An unknown error occurred.';
58+
//progressBarContainer.append('<div class="alert alert-danger mt-2">❌ ' + errorMsg + '</div>');
59+
},
60+
complete: function() {
61+
62+
$(this).val('');
63+
uploadCommandContainer.removeClass('d-none');
64+
//progressBarContainer.addClass('d-none');
65+
progressBar.removeClass('progress-bar-animated progress-bar-striped');
66+
}
67+
});
68+
});

‎src/Controller/Editor/ArticleUploadImages.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class ArticleUploadImages extends ArticleEditBaseController
1212
public function upload(int $articleId) : JsonResponse|Response
1313
{
1414
try {
15+
return new Response('OK');
16+
1517
dd("TODO");
1618
$arrIdsAndTags = $this->request->get('tags') ?? [];
1719
$this->loadArticleEditor($articleId)->setTagsFromIdsAndTags($arrIdsAndTags);

‎templates/article/editor/images.html.twig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434

3535
<input type="file" multiple accept="image/*" class="d-none">
3636

37-
<div id="tli-image-upload-progress" class="progress d-none" role="progressbar"
37+
<div id="tli-image-upload-progress" class="progress d-none mt-2" role="progressbar"
3838
aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
39-
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width: 0%"></div>
39+
<div class="progress-bar" style="width: 0%"></div>
4040
</div>
4141

4242
</div>

0 commit comments

Comments
 (0)