##// END OF EJS Templates
Allow pasting files from clipboard. Alpha release, removing or previewing images in the form not implemented yet
neko259 -
r1985:7b9ffc10 default
parent child Browse files
Show More
@@ -5,7 +5,7 b" ATTRIBUTE_PLACEHOLDER = 'placeholder'"
5 5 ATTRIBUTE_ROWS = 'rows'
6 6
7 7 URL_ROWS = 2
8 URL_PLACEHOLDER = _('Insert URLs on separate lines.')
8 URL_PLACEHOLDER = _('Insert URLs on separate lines. Paste images from clipboard here.')
9 9
10 10
11 11 class MultipleFileInput(forms.FileInput):
1 NO CONTENT: modified file, binary diff hidden
@@ -553,8 +553,8 b' msgstr "\xd0\x90\xd0\xba\xd1\x82\xd0\xb8\xd0\xb2\xd0\xbd\xd1\x8b\xd0\xb5 \xd1\x82\xd0\xb5\xd0\xbc\xd1\x8b:"'
553 553 msgid "No active threads today."
554 554 msgstr "Сегодня нет активных тем."
555 555
556 msgid "Insert URLs on separate lines."
557 msgstr "Вставляйте ссылки на отдельных строках."
556 msgid "Insert URLs on separate lines. Paste images from clipboard here."
557 msgstr "Вставляйте ссылки на отдельных строках. Вставляйте изображения из буфера сюда."
558 558
559 559 msgid "You can post no more than %(files)d file."
560 560 msgid_plural "You can post no more than %(files)d files."
1 NO CONTENT: modified file, binary diff hidden
@@ -65,3 +65,5 b' msgstr "\xd0\x94\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd0\xbb\xd0\xbe\xd0\xba\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd0\xb9 \xd1\x81\xd1\x82\xd0\xb8\xd0\xba\xd0\xb5\xd1\x80"'
65 65 msgid "Input sticker name"
66 66 msgstr "Введите название стикера"
67 67
68 msgid "Images posted: "
69 msgstr "Вставленных изображений: "
1 NO CONTENT: modified file, binary diff hidden
@@ -553,8 +553,8 b' msgstr "\xd0\x90\xd0\xba\xd1\x82\xd0\xb8\xd0\xb2\xd0\xbd\xd1\x96 \xd0\xbd\xd0\xb8\xd1\x82\xd0\xba\xd0\xb8:"'
553 553 msgid "No active threads today."
554 554 msgstr "Щось усі замовкли."
555 555
556 msgid "Insert URLs on separate lines."
557 msgstr "Вставляйте посилання окремими рядками."
556 msgid "Insert URLs on separate lines. Paste images from clipboard here."
557 msgstr "Вставляйте посилання окремими рядками. Вставляйте зображення з буферу сюди."
558 558
559 559 msgid "You can post no more than %(files)d file."
560 560 msgid_plural "You can post no more than %(files)d files."
1 NO CONTENT: modified file, binary diff hidden
@@ -65,3 +65,5 b' msgstr "\xd0\x94\xd0\xbe\xd0\xb4\xd0\xb0\xd1\x82\xd0\xb8 \xd0\xbb\xd0\xbe\xd0\xba\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd1\x96\xd0\xba\xd0\xb5\xd1\x80"'
65 65 msgid "Input sticker name"
66 66 msgstr "Введіть назву стікера"
67 67
68 msgid "Images posted: "
69 msgstr "Вставлених зображень: "
@@ -3,6 +3,8 b" var URL_STICKERS = '/api/stickers';"
3 3 var MIN_INPUT_LENGTH = 3;
4 4 var URL_DELIMITER = '\n';
5 5
6 var pastedImages = [];
7
6 8 $('input[name=image]').wrap($('<div class="file_wrap"></div>'));
7 9
8 10 $('body').on('change', 'input[name=image]', function(event) {
@@ -92,6 +94,28 b' function getPostTextarea() {'
92 94 return $('textarea#id_text');
93 95 }
94 96
97 function addOnImagePaste() {
98 $('#id_file_1').on('paste', function(event) {
99 var items = (event.clipboardData || event.originalEvent.clipboardData).items;
100 for (index in items) {
101 var item = items[index];
102 if (item.kind === 'file') {
103 var blob = item.getAsFile();
104
105 pastedImages.push(blob);
106
107 var pastedImagesList = $('#pasted-images');
108 if (pastedImagesList.length === 0) {
109 pastedImagesList = $('<div id="pasted-images" />');
110 $('#id_file_1').parent().append(pastedImagesList);
111 }
112
113 pastedImagesList.text(gettext('Images posted: ') + pastedImages.length);
114 }
115 }
116 });
117 }
118
95 119 $(document).ready(function() {
96 120 var powDifficulty = parseInt($('body').attr('data-pow-difficulty'));
97 121 if (powDifficulty > 0 && typeof SharedWorker != 'undefined') {
@@ -148,6 +172,8 b' function getPostTextarea() {'
148 172 $fileSourceButton.hide();
149 173 }
150 174
175 addOnImagePaste();
176
151 177 // Stickers autocomplete
152 178 function split( val ) {
153 179 return val.split(URL_DELIMITER);
@@ -45,6 +45,8 b' function resetForm() {'
45 45
46 46 form.find('input:text, input:password, input:file, textarea').val('');
47 47 form.find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected');
48 pastedImages = [];
49 $('#pasted-images').remove();
48 50 $('.file_wrap').find('.file-thumb').remove();
49 51 $('#preview-text').hide();
50 52
@@ -366,6 +366,13 b' function updateNodeAttr(oldNode, newNode'
366 366 var options = {
367 367 beforeSubmit: function(arr, form, options) {
368 368 $('.post-form-w').block({ message: gettext('Sending message...') });
369
370 $.each(pastedImages, function(i, blob) {
371 arr.push({
372 name: "file_0",
373 value: blob
374 });
375 });
369 376 },
370 377 success: updateOnPost,
371 378 error: function(xhr, textStatus, errorString) {
General Comments 0
You need to be logged in to leave comments. Login now