Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit 874cc4d

Browse files
committed
DEV: Update form-template-field/upload uppy usage
1 parent 9e8608b commit 874cc4d

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

assets/javascripts/discourse/components/rag-uploader.gjs

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,44 @@ import Component, { Input } from "@ember/component";
33
import { fn } from "@ember/helper";
44
import { on } from "@ember/modifier";
55
import { action } from "@ember/object";
6+
import { getOwner } from "@ember/owner";
7+
import didInsert from "@ember/render-modifiers/modifiers/did-insert";
68
import { inject as service } from "@ember/service";
79
import DButton from "discourse/components/d-button";
810
import { ajax } from "discourse/lib/ajax";
9-
import UppyUploadMixin from "discourse/mixins/uppy-upload";
11+
import UppyUpload from "discourse/lib/uppy/uppy-upload";
1012
import icon from "discourse-common/helpers/d-icon";
1113
import discourseDebounce from "discourse-common/lib/debounce";
1214
import I18n from "discourse-i18n";
1315
import RagUploadProgress from "./rag-upload-progress";
1416

15-
export default class RagUploader extends Component.extend(UppyUploadMixin) {
17+
export default class RagUploader extends Component {
1618
@service appEvents;
17-
1819
@tracked term = null;
1920
@tracked filteredUploads = null;
2021
@tracked ragIndexingStatuses = null;
2122
@tracked ragUploads = null;
22-
id = "discourse-ai-rag-uploader";
23-
maxFiles = 20;
24-
uploadUrl = "/admin/plugins/discourse-ai/rag-document-fragments/files/upload";
25-
preventDirectS3Uploads = true;
23+
24+
uppyUpload = new UppyUpload(getOwner(this), {
25+
id: "discourse-ai-rag-uploader",
26+
maxFiles: 20,
27+
uploadUrl:
28+
"/admin/plugins/discourse-ai/rag-document-fragments/files/upload",
29+
preventDirectS3Uploads: true,
30+
uploadDone: (uploadedFile) => {
31+
const newUpload = uploadedFile.upload;
32+
newUpload.status = "uploaded";
33+
newUpload.statusText = I18n.t("discourse_ai.rag.uploads.uploaded");
34+
this.ragUploads.pushObject(newUpload);
35+
this.debouncedSearch();
36+
},
37+
});
2638

2739
didReceiveAttrs() {
2840
super.didReceiveAttrs(...arguments);
2941

30-
if (this.inProgressUploads?.length > 0) {
31-
this._uppyInstance?.cancelAll();
42+
if (this.uppyUpload.inProgressUploads?.length > 0) {
43+
this.uppyUpload.cancelAllUploads();
3244
}
3345

3446
this.ragUploads = this.target?.rag_uploads || [];
@@ -45,7 +57,7 @@ export default class RagUploader extends Component.extend(UppyUploadMixin) {
4557
}
4658

4759
this.appEvents.on(
48-
`upload-mixin:${this.id}:all-uploads-complete`,
60+
`upload-mixin:${this.uppyUpload.config.id}:all-uploads-complete`,
4961
this,
5062
"_updateTargetWithUploads"
5163
);
@@ -54,7 +66,7 @@ export default class RagUploader extends Component.extend(UppyUploadMixin) {
5466
willDestroy() {
5567
super.willDestroy(...arguments);
5668
this.appEvents.off(
57-
`upload-mixin:${this.id}:all-uploads-complete`,
69+
`upload-mixin:${this.uppyUpload.config}:all-uploads-complete`,
5870
this,
5971
"_updateTargetWithUploads"
6072
);
@@ -64,22 +76,14 @@ export default class RagUploader extends Component.extend(UppyUploadMixin) {
6476
this.updateUploads(this.ragUploads);
6577
}
6678

67-
uploadDone(uploadedFile) {
68-
const newUpload = uploadedFile.upload;
69-
newUpload.status = "uploaded";
70-
newUpload.statusText = I18n.t("discourse_ai.rag.uploads.uploaded");
71-
this.ragUploads.pushObject(newUpload);
72-
this.debouncedSearch();
73-
}
74-
7579
@action
7680
submitFiles() {
77-
this.fileInputEl.click();
81+
this.uppyUpload.openPicker();
7882
}
7983

8084
@action
8185
cancelUploading(upload) {
82-
this.appEvents.trigger(`upload-mixin:${this.id}:cancel-upload`, {
86+
this.uppyUpload.cancelSingleUpload({
8387
fileId: upload.id,
8488
});
8589
}
@@ -152,7 +156,7 @@ export default class RagUploader extends Component.extend(UppyUploadMixin) {
152156
</td>
153157
</tr>
154158
{{/each}}
155-
{{#each this.inProgressUploads as |upload|}}
159+
{{#each this.uppyUpload.inProgressUploads as |upload|}}
156160
<tr>
157161
<td><span class="rag-uploader__rag-file-icon">{{icon
158162
"file"
@@ -177,6 +181,7 @@ export default class RagUploader extends Component.extend(UppyUploadMixin) {
177181
</table>
178182

179183
<input
184+
{{didInsert this.uppyUpload.setup}}
180185
class="hidden-upload-field"
181186
disabled={{this.uploading}}
182187
type="file"

0 commit comments

Comments
 (0)