From e47835ae963651ead95abd0d6b75efcd1c5e16aa Mon Sep 17 00:00:00 2001 From: James Hahn II Date: Sun, 9 Sep 2018 07:56:37 -0500 Subject: [PATCH 1/9] Create components --- wizard/components | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 wizard/components diff --git a/wizard/components b/wizard/components new file mode 100644 index 00000000..793a6902 --- /dev/null +++ b/wizard/components @@ -0,0 +1,58 @@ +import getUrl from "discourse-common/lib/get-url"; +import computed from "ember-addons/ember-computed-decorators"; +import { getToken } from "wizard/lib/ajax"; +import { getOwner } from "discourse-common/lib/get-owner"; + +export default Ember.Component.extend({ + classNames: ["wizard-image-row"], + uploading: false, + + @computed("field.id") + previewComponent(id) { + const componentName = `image-preview-${Ember.String.dasherize(id)}`; + const exists = getOwner(this).lookup(`component:${componentName}`); + return exists ? componentName : "wizard-image-preview"; + }, + + didInsertElement() { + this._super(); + + const $upload = this.$(); + + const id = this.get("field.id"); + + $upload.fileupload({ + url: getUrl("/uploads.json"), + formData: { + synchronous: true, + type: `wizard_${id}`, + authenticity_token: getToken() + }, + dataType: "json", + dropZone: $upload + }); + + $upload.on("fileuploadsubmit", () => this.set("uploading", true)); + + $upload.on("fileuploaddone", (e, response) => { + this.set("field.value", response.result.url); + this.set("uploading", false); + }); + + $upload.on("fileuploadfail", (e, response) => { + let message = I18n.t("wizard.upload_error"); + if (response.jqXHR.responseJSON && response.jqXHR.responseJSON.errors) { + message = response.jqXHR.responseJSON.errors.join("\n"); + } + + window.swal({ + customClass: "wizard-warning", + title: "", + text: message, + type: "warning", + confirmButtonColor: "#6699ff" + }); + this.set("uploading", false); + }); + } +}); From d565032245586861ba4d2ff8cbbad20ee3ca10c4 Mon Sep 17 00:00:00 2001 From: James Hahn II Date: Sun, 9 Sep 2018 08:00:11 -0500 Subject: [PATCH 2/9] Delete components --- wizard/components | 58 ----------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 wizard/components diff --git a/wizard/components b/wizard/components deleted file mode 100644 index 793a6902..00000000 --- a/wizard/components +++ /dev/null @@ -1,58 +0,0 @@ -import getUrl from "discourse-common/lib/get-url"; -import computed from "ember-addons/ember-computed-decorators"; -import { getToken } from "wizard/lib/ajax"; -import { getOwner } from "discourse-common/lib/get-owner"; - -export default Ember.Component.extend({ - classNames: ["wizard-image-row"], - uploading: false, - - @computed("field.id") - previewComponent(id) { - const componentName = `image-preview-${Ember.String.dasherize(id)}`; - const exists = getOwner(this).lookup(`component:${componentName}`); - return exists ? componentName : "wizard-image-preview"; - }, - - didInsertElement() { - this._super(); - - const $upload = this.$(); - - const id = this.get("field.id"); - - $upload.fileupload({ - url: getUrl("/uploads.json"), - formData: { - synchronous: true, - type: `wizard_${id}`, - authenticity_token: getToken() - }, - dataType: "json", - dropZone: $upload - }); - - $upload.on("fileuploadsubmit", () => this.set("uploading", true)); - - $upload.on("fileuploaddone", (e, response) => { - this.set("field.value", response.result.url); - this.set("uploading", false); - }); - - $upload.on("fileuploadfail", (e, response) => { - let message = I18n.t("wizard.upload_error"); - if (response.jqXHR.responseJSON && response.jqXHR.responseJSON.errors) { - message = response.jqXHR.responseJSON.errors.join("\n"); - } - - window.swal({ - customClass: "wizard-warning", - title: "", - text: message, - type: "warning", - confirmButtonColor: "#6699ff" - }); - this.set("uploading", false); - }); - } -}); From a0a037a41b6ca8051fc88798b4221b308568a13d Mon Sep 17 00:00:00 2001 From: James Hahn II Date: Sun, 9 Sep 2018 08:01:02 -0500 Subject: [PATCH 3/9] Create wizard-field-upload.js.es6 --- .../components/wizard-field-upload.js.es6 | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 assets/javascripts/wizard/components/wizard-field-upload.js.es6 diff --git a/assets/javascripts/wizard/components/wizard-field-upload.js.es6 b/assets/javascripts/wizard/components/wizard-field-upload.js.es6 new file mode 100644 index 00000000..793a6902 --- /dev/null +++ b/assets/javascripts/wizard/components/wizard-field-upload.js.es6 @@ -0,0 +1,58 @@ +import getUrl from "discourse-common/lib/get-url"; +import computed from "ember-addons/ember-computed-decorators"; +import { getToken } from "wizard/lib/ajax"; +import { getOwner } from "discourse-common/lib/get-owner"; + +export default Ember.Component.extend({ + classNames: ["wizard-image-row"], + uploading: false, + + @computed("field.id") + previewComponent(id) { + const componentName = `image-preview-${Ember.String.dasherize(id)}`; + const exists = getOwner(this).lookup(`component:${componentName}`); + return exists ? componentName : "wizard-image-preview"; + }, + + didInsertElement() { + this._super(); + + const $upload = this.$(); + + const id = this.get("field.id"); + + $upload.fileupload({ + url: getUrl("/uploads.json"), + formData: { + synchronous: true, + type: `wizard_${id}`, + authenticity_token: getToken() + }, + dataType: "json", + dropZone: $upload + }); + + $upload.on("fileuploadsubmit", () => this.set("uploading", true)); + + $upload.on("fileuploaddone", (e, response) => { + this.set("field.value", response.result.url); + this.set("uploading", false); + }); + + $upload.on("fileuploadfail", (e, response) => { + let message = I18n.t("wizard.upload_error"); + if (response.jqXHR.responseJSON && response.jqXHR.responseJSON.errors) { + message = response.jqXHR.responseJSON.errors.join("\n"); + } + + window.swal({ + customClass: "wizard-warning", + title: "", + text: message, + type: "warning", + confirmButtonColor: "#6699ff" + }); + this.set("uploading", false); + }); + } +}); From 5c811bbb2fe0e213fa74d3b30e260ac3f5922881 Mon Sep 17 00:00:00 2001 From: James Hahn II Date: Sun, 9 Sep 2018 08:03:46 -0500 Subject: [PATCH 4/9] Create wizard-field-upload.hbs --- .../templates/components/wizard-field-upload.hbs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 assets/javascripts/wizard/templates/components/wizard-field-upload.hbs diff --git a/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs b/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs new file mode 100644 index 00000000..05f1cb29 --- /dev/null +++ b/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs @@ -0,0 +1,14 @@ +{{#if field.value}} + {{component previewComponent field=field fieldClass=fieldClass wizard=wizard}} +{{/if}} + + From 85c64fb3b67dffb2230144a0678b434449c6c4d6 Mon Sep 17 00:00:00 2001 From: James Hahn II Date: Sun, 9 Sep 2018 08:06:52 -0500 Subject: [PATCH 5/9] Update wizard-field-upload.hbs --- .../wizard/templates/components/wizard-field-upload.hbs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs b/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs index 05f1cb29..515a4a2b 100644 --- a/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs +++ b/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs @@ -1,7 +1,3 @@ -{{#if field.value}} - {{component previewComponent field=field fieldClass=fieldClass wizard=wizard}} -{{/if}} - From cb8f8e2410a96c4bfa7d1b6377c7af0a053e96d5 Mon Sep 17 00:00:00 2001 From: Angus McLeod Date: Sat, 15 Sep 2018 16:21:02 +1000 Subject: [PATCH 9/9] save whole file object and show filename --- .../components/wizard-field-upload.js.es6 | 10 +++++----- .../components/wizard-field-upload.hbs | 10 ++++++++-- assets/stylesheets/wizard/wizard_custom.scss | 19 +++++++++++++++++++ 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/assets/javascripts/wizard/components/wizard-field-upload.js.es6 b/assets/javascripts/wizard/components/wizard-field-upload.js.es6 index b7bc9868..f7f82faf 100644 --- a/assets/javascripts/wizard/components/wizard-field-upload.js.es6 +++ b/assets/javascripts/wizard/components/wizard-field-upload.js.es6 @@ -1,10 +1,8 @@ import getUrl from "discourse-common/lib/get-url"; -import computed from "ember-addons/ember-computed-decorators"; import { getToken } from "wizard/lib/ajax"; -import { getOwner } from "discourse-common/lib/get-owner"; export default Ember.Component.extend({ - classNames: ["wizard-image-row"], + classNames: ["wizard-field-upload"], uploading: false, didInsertElement() { @@ -28,8 +26,10 @@ export default Ember.Component.extend({ $upload.on("fileuploadsubmit", () => this.set("uploading", true)); $upload.on("fileuploaddone", (e, response) => { - this.set("field.value", response.result.url); - this.set("uploading", false); + this.setProperties({ + "field.value": response.result, + "uploading": false + }); }); $upload.on("fileuploadfail", (e, response) => { diff --git a/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs b/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs index 42414a54..4d984912 100644 --- a/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs +++ b/assets/javascripts/wizard/templates/components/wizard-field-upload.hbs @@ -1,10 +1,16 @@ -