Show More
@@ -49,7 +49,8 b" LABEL_FILE = _('File')" | |||
|
49 | 49 | |
|
50 | 50 | ERROR_SPEED = 'Please wait %(delay)d second before sending message' |
|
51 | 51 | ERROR_SPEED_PLURAL = 'Please wait %(delay)d seconds before sending message' |
|
52 |
ERROR_MANY_FILES = |
|
|
52 | ERROR_MANY_FILES = 'You can post no more than %(files)d file.' | |
|
53 | ERROR_MANY_FILES_PLURAL = 'You can post no more than %(files)d files.' | |
|
53 | 54 | |
|
54 | 55 | TAG_MAX_LENGTH = 20 |
|
55 | 56 | |
@@ -297,7 +298,9 b' class PostForm(NeboardForm):' | |||
|
297 | 298 | |
|
298 | 299 | max_file_count = board_settings.get_int(SECTION_FORMS, 'MaxFileCount') |
|
299 | 300 | if len(inputs) > max_file_count: |
|
300 |
raise forms.ValidationError( |
|
|
301 | raise forms.ValidationError( | |
|
302 | ungettext_lazy(ERROR_MANY_FILES, ERROR_MANY_FILES, | |
|
303 | max_file_count) % {'files': max_file_count}) | |
|
301 | 304 | for file_input in inputs: |
|
302 | 305 | if isinstance(file_input, UploadedFile): |
|
303 | 306 | files.append(self._clean_file_file(file_input)) |
|
1 | NO CONTENT: modified file, binary diff hidden |
@@ -567,3 +567,9 b' msgstr "\xd0\xa1\xd0\xb5\xd0\xb3\xd0\xbe\xd0\xb4\xd0\xbd\xd1\x8f \xd0\xbd\xd0\xb5\xd1\x82 \xd0\xb0\xd0\xba\xd1\x82\xd0\xb8\xd0\xb2\xd0\xbd\xd1\x8b\xd1\x85 \xd1\x82\xd0\xb5\xd0\xbc."' | |||
|
567 | 567 | |
|
568 | 568 | msgid "Insert URLs on separate lines." |
|
569 | 569 | msgstr "ΠΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΠ°Ρ ." |
|
570 | ||
|
571 | msgid "You can post no more than %(files)d file." | |
|
572 | msgid_plural "You can post no more than %(files)d files." | |
|
573 | msgstr[0] "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ %(files)d ΡΠ°ΠΉΠ»Π°." | |
|
574 | msgstr[1] "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ %(files)d ΡΠ°ΠΉΠ»ΠΎΠ²." | |
|
575 | msgstr[2] "ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ %(files)d ΡΠ°ΠΉΠ»ΠΎΠ²." |
@@ -1,6 +1,7 b'' | |||
|
1 | 1 | var ITEM_FILE_SOURCE = 'fileSource'; |
|
2 | var URL_STICKERS = '/api/stickers' | |
|
2 | var URL_STICKERS = '/api/stickers'; | |
|
3 | 3 | var MIN_INPUT_LENGTH = 3; |
|
4 | var URL_DELIMITER = '\n'; | |
|
4 | 5 | |
|
5 | 6 | $('input[name=image]').wrap($('<div class="file_wrap"></div>')); |
|
6 | 7 | |
@@ -143,15 +144,24 b' function selectFileChoice() {' | |||
|
143 | 144 | $fileSourceButton.hide(); |
|
144 | 145 | } |
|
145 | 146 | |
|
146 | $('#id_file_url').autocomplete({ | |
|
147 | // Stickers autocomplete | |
|
148 | function split( val ) { | |
|
149 | return val.split(URL_DELIMITER); | |
|
150 | } | |
|
151 | ||
|
152 | function extractLast( term ) { | |
|
153 | return split(term).pop(); | |
|
154 | } | |
|
155 | ||
|
156 | $('#id_file_1').autocomplete({ | |
|
147 | 157 | source: function( request, response ) { |
|
148 | 158 | $.getJSON(URL_STICKERS, { |
|
149 | term: request.term | |
|
159 | term: extractLast( request.term ) | |
|
150 | 160 | }, response); |
|
151 | 161 | }, |
|
152 | 162 | search: function() { |
|
153 | 163 | // custom minLength |
|
154 | var term = this.value; | |
|
164 | var term = extractLast( this.value ); | |
|
155 | 165 | if (term.length < MIN_INPUT_LENGTH) { |
|
156 | 166 | return false; |
|
157 | 167 | } |
@@ -161,7 +171,14 b' function selectFileChoice() {' | |||
|
161 | 171 | return false; |
|
162 | 172 | }, |
|
163 | 173 | select: function( event, ui ) { |
|
164 | this.value = ui.item.alias; | |
|
174 | var terms = split( this.value ); | |
|
175 | // remove the current input | |
|
176 | terms.pop(); | |
|
177 | // add the selected item | |
|
178 | terms.push( ui.item.alias ); | |
|
179 | // add placeholder to get the comma-and-space at the end | |
|
180 | terms.push(""); | |
|
181 | this.value = terms.join(URL_DELIMITER); | |
|
165 | 182 | return false; |
|
166 | 183 | } |
|
167 | 184 | }) |
General Comments 0
You need to be logged in to leave comments.
Login now