diff --git a/.discourse-compatibility b/.discourse-compatibility index 4b788ea..e2f492d 100644 --- a/.discourse-compatibility +++ b/.discourse-compatibility @@ -1,3 +1,4 @@ +< 3.6.0.beta3-dev: bf969e997950d703f0af5ee28f8700eed19cad75 < 2025.12.0-latest: a8a305227da023ff1ce7ac4d702fc2204d9b5e2f < 3.6.0.beta1-dev: 7d6b0623ec27e986182b2e245bfaf886b7faecb1 < 3.5.0.beta8-dev: c0d69bd03fb2ec0c0169965464d5ba138ad28414 diff --git a/assets/javascripts/discourse/connectors/user-custom-preferences/signature-preferences.gjs b/assets/javascripts/discourse/connectors/user-custom-preferences/signature-preferences.gjs index 13dd28e..6bdff43 100644 --- a/assets/javascripts/discourse/connectors/user-custom-preferences/signature-preferences.gjs +++ b/assets/javascripts/discourse/connectors/user-custom-preferences/signature-preferences.gjs @@ -1,39 +1,60 @@ -import Component, { Input } from "@ember/component"; -import { classNames, tagName } from "@ember-decorators/component"; +import Component from "@glimmer/component"; +import { on } from "@ember/modifier"; +import { action } from "@ember/object"; +import { service } from "@ember/service"; import DEditor from "discourse/components/d-editor"; import { i18n } from "discourse-i18n"; -@tagName("div") -@classNames("user-custom-preferences-outlet", "signature-preferences") export default class SignaturePreferences extends Component { + @service siteSettings; + + @action + updateSeeSignatures(event) { + const model = this.args.model; + model.set("see_signatures", event.target.checked); + model.set("custom_fields.see_signatures", event.target.checked); + } + + @action + updateSignatureUrl(event) { + this.args.model.set("custom_fields.signature_url", event.target.value); + } + diff --git a/assets/javascripts/discourse/initializers/extend-for-signatures.js b/assets/javascripts/discourse/initializers/extend-for-signatures.js index 8da71ed..5fa4425 100644 --- a/assets/javascripts/discourse/initializers/extend-for-signatures.js +++ b/assets/javascripts/discourse/initializers/extend-for-signatures.js @@ -1,39 +1,16 @@ -import { action } from "@ember/object"; import { withPluginApi } from "discourse/lib/plugin-api"; import PostSignature from "../components/post-signature"; -function customizePost(api) { - api.addTrackedPostProperties("user_signature"); - - api.renderAfterWrapperOutlet("post-content-cooked-html", PostSignature); -} - -function addSetting(api) { - api.modifyClass( - "controller:preferences/profile", - (Superclass) => - class extends Superclass { - @action - save() { - this.set( - "model.custom_fields.see_signatures", - this.get("model.see_signatures") - ); - this.get("saveAttrNames").push("custom_fields"); - super.save(); - } - } - ); -} - export default { name: "extend-for-signatures", initialize(container) { - const siteSettings = container.lookup("service:site-settings"); - if (siteSettings.signatures_enabled) { + const { signatures_enabled } = container.lookup("service:site-settings"); + + if (signatures_enabled) { withPluginApi((api) => { - customizePost(api); - addSetting(api); + api.addTrackedPostProperties("user_signature"); + api.renderAfterWrapperOutlet("post-content-cooked-html", PostSignature); + api.addSaveableCustomFields("profile"); }); } }, diff --git a/assets/stylesheets/common/signatures.scss b/assets/stylesheets/common/signatures.scss index 9c3e5a8..1e8e271 100644 --- a/assets/stylesheets/common/signatures.scss +++ b/assets/stylesheets/common/signatures.scss @@ -1,3 +1,15 @@ .user-signature img { max-width: calc(100% - 5px); } + +.signature-preferences .d-editor { + width: 100%; + + .d-editor-preview-wrapper { + display: none; + } + + .d-editor-textarea-wrapper { + flex: 1; + } +}