From 26404ee15f00d185d600f51663b9d1733f5202ef Mon Sep 17 00:00:00 2001 From: Pranav C Balan Date: Fri, 4 Jun 2021 19:52:07 +0530 Subject: [PATCH] fix(gui): SSL certificate selection error read certificate file data related #215 Signed-off-by: Pranav C Balan --- .../nc-gui/components/createOrEditProject.vue | 23 ++++++---- packages/nc-gui/helpers/fileReader.js | 42 +++++++++++++++++++ 2 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 packages/nc-gui/helpers/fileReader.js diff --git a/packages/nc-gui/components/createOrEditProject.vue b/packages/nc-gui/components/createOrEditProject.vue index a89bab7724..9fec432e4f 100644 --- a/packages/nc-gui/components/createOrEditProject.vue +++ b/packages/nc-gui/components/createOrEditProject.vue @@ -438,7 +438,10 @@ - + + {{ db.ui.ssl.cert }} - + {{ db.ui.ssl.key }} - + { + Vue.set(db.connection[obj], key, data) + }) + }, selectFile(db, obj, key, index) { - // this.$refs[key][index].click() + this.$refs[key][index].click() // console.log(obj, key); // const file = dialog.showOpenDialog({ @@ -1428,7 +1437,7 @@ export default { let i = 0; const toast = this.$toast.info(this.loaderMessages[0]); const interv = setInterval(() => { - if(this.edit) return + if (this.edit) return if (i < this.loaderMessages.length - 1) i++; if (toast) { if (!this.allSchemas) { diff --git a/packages/nc-gui/helpers/fileReader.js b/packages/nc-gui/helpers/fileReader.js new file mode 100644 index 0000000000..79fa86b4a7 --- /dev/null +++ b/packages/nc-gui/helpers/fileReader.js @@ -0,0 +1,42 @@ +// Ref : https://stackoverflow.com/a/12002275 + +//Tested in Mozilla Firefox browser, Chrome +function ReadFileAllBrowsers(FileElement, CallBackFunction) { + try { + if (!FileElement.files || !FileElement.files.length) return CallBackFunction(); + + const file = FileElement.files[0]; + + if (file) { + const reader = new FileReader(); + reader.readAsText(file, "UTF-8"); + reader.onload = function (evt) { + CallBackFunction(evt.target.result); + } + reader.onerror = function (evt) { + CallBackFunction() + } + } + } catch (Exception) { + const fall_back = ieReadFile(FileElement.value); + if (fall_back != false) { + CallBackFunction(fall_back); + } + } +} + +///Reading files with Internet Explorer +function ieReadFile(filename) { + try { + const fso = new ActiveXObject("Scripting.FileSystemObject"); + const fh = fso.OpenTextFile(filename, 1); + const contents = fh.ReadAll(); + fh.Close(); + return contents; + } catch (Exception) { + return false; + } +} + + +export default ReadFileAllBrowsers;