From 504b2634eab43deee8e74e9f973942bf51b340c8 Mon Sep 17 00:00:00 2001 From: Martin Brennan Date: Tue, 14 Dec 2021 16:41:37 +1000 Subject: [PATCH] DEV: Use UppyUploadMixin for docked-upload This commit changes the docked-upload to use the new UppyUploadMixin from discourse core; the old mixin is no longer supported. I also added some minor fixes around changed APIs for the docked-editor which inherits from d-editor and implements textarea-text-manipulation, without this fix the upload text would not be added. --- .../discourse/components/docked-editor.js.es6 | 3 +++ .../discourse/components/docked-upload.js.es6 | 21 +++++++++++-------- .../templates/components/docked-upload.hbs | 2 +- .../discourse/widgets/docked-post.js.es6 | 5 ++++- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/assets/javascripts/discourse/components/docked-editor.js.es6 b/assets/javascripts/discourse/components/docked-editor.js.es6 index 6cfadba..a74fd06 100644 --- a/assets/javascripts/discourse/components/docked-editor.js.es6 +++ b/assets/javascripts/discourse/components/docked-editor.js.es6 @@ -15,6 +15,9 @@ export default DEditor.extend({ const $element = $(this.element); const $editorInput = $element.find('.d-editor-input'); this._applyMentionAutocomplete($editorInput); + this._textarea = this.element.querySelector("textarea.d-editor-input"); + this._$textarea = $(this._textarea); + this.set("ready", true); }, _applyMentionAutocomplete($editorInput) { diff --git a/assets/javascripts/discourse/components/docked-upload.js.es6 b/assets/javascripts/discourse/components/docked-upload.js.es6 index 7c34007..c08c24e 100644 --- a/assets/javascripts/discourse/components/docked-upload.js.es6 +++ b/assets/javascripts/discourse/components/docked-upload.js.es6 @@ -1,19 +1,22 @@ import UploadMixin from "discourse/mixins/upload"; +import UppyUploadMixin from "discourse/mixins/uppy-upload"; import Component from "@ember/component"; -export default Component.extend(UploadMixin, { - tagName: 'button', - classNames: 'docked-upload btn btn-small', - attributeBindings: ['uploading:disabled'], - type: 'PUT', +export default Component.extend(UppyUploadMixin, { + id: "docked-upload", + tagName: "button", + type: "quick_message_upload", + classNames: "docked-upload btn btn-small", + attributeBindings: ["uploading:disabled"], + fileInputSelector: ".docked-upload-file-input", input() { - return $(this.element).find('input'); + return $(this.element).find("input"); }, click(e) { - if (!$(e.target).is('input')) { - this.input().trigger('click'); + if (!$(e.target).is("input")) { + this.input().trigger("click"); } - } + }, }); diff --git a/assets/javascripts/discourse/templates/components/docked-upload.hbs b/assets/javascripts/discourse/templates/components/docked-upload.hbs index 7efddb9..dce2813 100644 --- a/assets/javascripts/discourse/templates/components/docked-upload.hbs +++ b/assets/javascripts/discourse/templates/components/docked-upload.hbs @@ -4,5 +4,5 @@ {{else}} {{d-icon "far-image" class='qm-upload-picture'}} - + {{/if}} diff --git a/assets/javascripts/discourse/widgets/docked-post.js.es6 b/assets/javascripts/discourse/widgets/docked-post.js.es6 index 7947722..e121711 100644 --- a/assets/javascripts/discourse/widgets/docked-post.js.es6 +++ b/assets/javascripts/discourse/widgets/docked-post.js.es6 @@ -8,7 +8,10 @@ class QuickPostCooked extends PostCooked { const $html = $(`
${this.attrs.cooked}
`); this._insertQuoteControls($html); this._showLinkCounts($html); - this._fixImageSizes($html); + + // removed inhttps://github.com/discourse/discourse/commit/e305365168528883872d4ce9efd109e41149ef0a + // this._fixImageSizes($html); + this._applySearchHighlight($html); return $html[0]; }