Skip to content

Commit ff80a22

Browse files
authored
Merge pull request #7 from topcoder-platform/issues-335
Issues-335, Issues-336, Issues-338
2 parents 608a714 + d5cca11 commit ff80a22

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

TopcoderEditorPlugin.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private function beforeRender($sender){
9696

9797
// Save allowed file types
9898
$allowedFileExtensions = c('Garden.Upload.AllowedFileExtensions');
99-
$imageExtensions = ['gif', 'png', 'jpeg', 'jpg', 'bmp', 'tif', 'tiff', 'svg'];
99+
$imageExtensions = ['gif', 'png', 'jpeg', 'jpg', 'bmp', 'svg'];
100100
$allowedImageExtensions = array_intersect($allowedFileExtensions, $imageExtensions);
101101
$c->addDefinition('allowedImageExtensions', json_encode(array_values($allowedImageExtensions)));
102102
$c->addDefinition('allowedFileExtensions', json_encode( $allowedFileExtensions));
@@ -109,6 +109,8 @@ private function beforeRender($sender){
109109
}
110110
}
111111
$c->addDefinition('allowedFileMimeTypes', implode(',', $allowedFileMimeTypes));
112+
$c->addDefinition('allowedFileMimeTypeWithExts', implode(',', $allowedFileMimeTypes).','.implode(',',
113+
array_map(function($val) { return '.'.$val; }, $allowedFileExtensions)));
112114

113115
// Get max file uploads, to be used for max drops at once.
114116
$c->addDefinition('maxFileUploads', ini_get('max_file_uploads'));

js/topcodereditor.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
var allowedImageExtensions = gdn.definition('allowedImageExtensions');
2222
var allowedFileExtensions = gdn.definition('allowedFileExtensions');
2323
var allowedFileMimeTypes = gdn.definition('allowedFileMimeTypes');
24+
var allowedFileMimeTypeWithExts = gdn.definition('allowedFileMimeTypeWithExts');
2425
var maxFileUploads = gdn.definition('maxFileUploads');
2526
var debug = false;
2627

@@ -29,6 +30,7 @@
2930
logMessage('allowedImageExtensions:' + allowedImageExtensions);
3031
logMessage('allowedFileExtensions:' + allowedFileExtensions);
3132
logMessage('allowedFileMimeTypes:' + allowedFileMimeTypes);
33+
logMessage('allowedFileMimeTypeWithExts:' + allowedFileMimeTypeWithExts);
3234
logMessage('maxFileUploads:' + maxFileUploads);
3335

3436
function logMessage(message) {
@@ -127,20 +129,27 @@
127129
return CodeMirror.Pass;
128130
}
129131

132+
function resetFileInput(editor){
133+
var imageInput = editor.gui.toolbar.getElementsByClassName('imageInput')[0];
134+
imageInput.value ='';
135+
}
136+
130137
function customUploadImage(file, onSuccess, onError) {
131138
var self = this;
132139
var position = {};
133140

134141
onSuccess = function onSuccess(jsonData) {
135142
updateMediaIDs(self, jsonData);
136143
afterFileUploaded(self, jsonData, position);
144+
resetFileInput(self);
137145
};
138146

139147
onError = function onError(errorMessage) {
140-
showErrorMessage(self,errorMessage)
148+
showErrorMessage(self,errorMessage);
141149
if(position && position.start && position.end) {
142150
self.codemirror.replaceRange("", position.start, position.end);
143151
}
152+
resetFileInput(self);
144153
}
145154

146155
function onErrorSup(errorMessage) {
@@ -233,12 +242,13 @@
233242
if (this.status === 201 && response && !response.error && response.mediaID > 0 && response.size > 0) {
234243
onSuccess(response);
235244
} else {
236-
if (response.errors) { // server side generated error message
245+
if (response.errors || response.message) { // server side generated error message
237246
onErrorSup(parseServerErrors(response));
238-
} else { //unknown error
239-
console.error('EasyMDE: Received an unexpected response after uploading the image.'
240-
+ this.status + ' (' + this.statusText + ')');
241-
onErrorSup(fillErrorMessage(self.options.errorMessages.importError));
247+
} else {
248+
//unknown error
249+
console.error('EasyMDE: Received an unexpected response after uploading the image.'
250+
+ this.status + ' (' + this.statusText + ')');
251+
onErrorSup(fillErrorMessage(self.options.errorMessages.importError));
242252
}
243253
}
244254
};
@@ -555,9 +565,9 @@
555565
sbOnUploaded: 'Uploaded #image_name#',
556566
sizeUnits: ' B, KB, MB',
557567
},
558-
uploadImage: true,
568+
uploadImage: canUpload,
559569
imageMaxSize: maxUploadSize, //Maximum image size in bytes
560-
imageAccept: allowedFileMimeTypes, //A comma-separated list of mime-types
570+
imageAccept: allowedFileMimeTypeWithExts, //A comma-separated list of mime-types and extensions
561571
imageUploadFunction: customUploadImage,
562572
beforeUploadingImagesFunction: beforeUploadingImages,
563573
errorCallback: errorCallback,// A callback function used to define how to display an error message.

0 commit comments

Comments
 (0)