From fc6d5781a6e092960d4eac6a9213588536004811 Mon Sep 17 00:00:00 2001 From: Bogdanova Olga Date: Wed, 6 Jan 2021 14:37:30 +0300 Subject: [PATCH 1/4] Support bpm/psd/tiff/log exts --- TopcoderEditorPlugin.php | 4 +++- js/topcodereditor.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/TopcoderEditorPlugin.php b/TopcoderEditorPlugin.php index 8163850..7339d27 100644 --- a/TopcoderEditorPlugin.php +++ b/TopcoderEditorPlugin.php @@ -96,7 +96,7 @@ private function beforeRender($sender){ // Save allowed file types $allowedFileExtensions = c('Garden.Upload.AllowedFileExtensions'); - $imageExtensions = ['gif', 'png', 'jpeg', 'jpg', 'bmp', 'tif', 'tiff', 'svg']; + $imageExtensions = ['gif', 'png', 'jpeg', 'jpg', 'bmp', 'svg']; $allowedImageExtensions = array_intersect($allowedFileExtensions, $imageExtensions); $c->addDefinition('allowedImageExtensions', json_encode(array_values($allowedImageExtensions))); $c->addDefinition('allowedFileExtensions', json_encode( $allowedFileExtensions)); @@ -109,6 +109,8 @@ private function beforeRender($sender){ } } $c->addDefinition('allowedFileMimeTypes', implode(',', $allowedFileMimeTypes)); + $c->addDefinition('allowedFileMimeTypeWithExts', implode(',', $allowedFileMimeTypes).','.implode(',', + array_map(function($val) { return '.'.$val; }, $allowedFileExtensions))); // Get max file uploads, to be used for max drops at once. $c->addDefinition('maxFileUploads', ini_get('max_file_uploads')); diff --git a/js/topcodereditor.js b/js/topcodereditor.js index 3214127..837b996 100644 --- a/js/topcodereditor.js +++ b/js/topcodereditor.js @@ -21,6 +21,7 @@ var allowedImageExtensions = gdn.definition('allowedImageExtensions'); var allowedFileExtensions = gdn.definition('allowedFileExtensions'); var allowedFileMimeTypes = gdn.definition('allowedFileMimeTypes'); + var allowedFileMimeTypeWithExts = gdn.definition('allowedFileMimeTypeWithExts'); var maxFileUploads = gdn.definition('maxFileUploads'); var debug = false; @@ -29,6 +30,7 @@ logMessage('allowedImageExtensions:' + allowedImageExtensions); logMessage('allowedFileExtensions:' + allowedFileExtensions); logMessage('allowedFileMimeTypes:' + allowedFileMimeTypes); + logMessage('allowedFileMimeTypeWithExts:' + allowedFileMimeTypeWithExts); logMessage('maxFileUploads:' + maxFileUploads); function logMessage(message) { @@ -557,7 +559,7 @@ }, uploadImage: true, imageMaxSize: maxUploadSize, //Maximum image size in bytes - imageAccept: allowedFileMimeTypes, //A comma-separated list of mime-types + imageAccept: allowedFileMimeTypeWithExts, //A comma-separated list of mime-types and extensions imageUploadFunction: customUploadImage, beforeUploadingImagesFunction: beforeUploadingImages, errorCallback: errorCallback,// A callback function used to define how to display an error message. From 7f1ad7480565963f11d02083543cdc3fddea9ee3 Mon Sep 17 00:00:00 2001 From: Bogdanova Olga Date: Wed, 6 Jan 2021 15:26:44 +0300 Subject: [PATCH 2/4] Issues-338: configure the editor if no upload permissions --- js/topcodereditor.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/js/topcodereditor.js b/js/topcodereditor.js index 837b996..bc01b6c 100644 --- a/js/topcodereditor.js +++ b/js/topcodereditor.js @@ -235,12 +235,13 @@ if (this.status === 201 && response && !response.error && response.mediaID > 0 && response.size > 0) { onSuccess(response); } else { - if (response.errors) { // server side generated error message + if (response.errors || response.message) { // server side generated error message onErrorSup(parseServerErrors(response)); - } else { //unknown error - console.error('EasyMDE: Received an unexpected response after uploading the image.' - + this.status + ' (' + this.statusText + ')'); - onErrorSup(fillErrorMessage(self.options.errorMessages.importError)); + } else { + //unknown error + console.error('EasyMDE: Received an unexpected response after uploading the image.' + + this.status + ' (' + this.statusText + ')'); + onErrorSup(fillErrorMessage(self.options.errorMessages.importError)); } } }; @@ -557,7 +558,7 @@ sbOnUploaded: 'Uploaded #image_name#', sizeUnits: ' B, KB, MB', }, - uploadImage: true, + uploadImage: canUpload, imageMaxSize: maxUploadSize, //Maximum image size in bytes imageAccept: allowedFileMimeTypeWithExts, //A comma-separated list of mime-types and extensions imageUploadFunction: customUploadImage, From c2315ee5735fcd76958be22f4b00958c73104e66 Mon Sep 17 00:00:00 2001 From: Bogdanova Olga Date: Wed, 6 Jan 2021 21:11:30 +0300 Subject: [PATCH 3/4] Issues-336: clear input file --- js/topcodereditor.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/js/topcodereditor.js b/js/topcodereditor.js index bc01b6c..5039480 100644 --- a/js/topcodereditor.js +++ b/js/topcodereditor.js @@ -129,6 +129,11 @@ return CodeMirror.Pass; } + function clearInputFile(editor){ + var imageInput = editor.gui.toolbar.getElementsByClassName('imageInput')[0]; + imageInput.value =''; + } + function customUploadImage(file, onSuccess, onError) { var self = this; var position = {}; @@ -136,13 +141,15 @@ onSuccess = function onSuccess(jsonData) { updateMediaIDs(self, jsonData); afterFileUploaded(self, jsonData, position); + clearInputFile(self); }; onError = function onError(errorMessage) { - showErrorMessage(self,errorMessage) + showErrorMessage(self,errorMessage); if(position && position.start && position.end) { self.codemirror.replaceRange("", position.start, position.end); } + clearInputFile(self); } function onErrorSup(errorMessage) { From d5cca115eaae6ef76df7b43a84fca36541cee90e Mon Sep 17 00:00:00 2001 From: Bogdanova Olga Date: Wed, 6 Jan 2021 21:18:45 +0300 Subject: [PATCH 4/4] Issues-336: renamed to 'resetFileInput' --- js/topcodereditor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/topcodereditor.js b/js/topcodereditor.js index 5039480..d6f908b 100644 --- a/js/topcodereditor.js +++ b/js/topcodereditor.js @@ -129,7 +129,7 @@ return CodeMirror.Pass; } - function clearInputFile(editor){ + function resetFileInput(editor){ var imageInput = editor.gui.toolbar.getElementsByClassName('imageInput')[0]; imageInput.value =''; } @@ -141,7 +141,7 @@ onSuccess = function onSuccess(jsonData) { updateMediaIDs(self, jsonData); afterFileUploaded(self, jsonData, position); - clearInputFile(self); + resetFileInput(self); }; onError = function onError(errorMessage) { @@ -149,7 +149,7 @@ if(position && position.start && position.end) { self.codemirror.replaceRange("", position.start, position.end); } - clearInputFile(self); + resetFileInput(self); } function onErrorSup(errorMessage) {