Come configurare oggetti di tipo array nei plugin. Ho provato a utilizzare json_schema, ma le configurazioni delle proprietà degli oggetti non supportano selettori come category; è possibile inserire solo testo. Inoltre, type: objects non funziona affatto nelle configurazioni dei plugin.
Configurazione di json_schema
quectel_online_customer_category_customers:
default: "[]"
client: true
json_schema: QuectelOnlineCustomer::SiteSettings::CategoryCustomersJsonSchema
plugins/quectel-online-customer/lib/quectel_online_customer/site_settings/category_customers_json_schema.rb
# frozen_string_literal: true
module QuectelOnlineCustomer
module SiteSettings
class CategoryCustomersJsonSchema
def self.schema
@schema ||= begin
{
type: "array",
uniqueItems: true,
default: [],
items: {
type: "object",
title: "Configurazione servizio clienti per categoria",
additionalProperties: false, # Vieta l'invio di campi non definiti
required: %w[category customers], # Entrambi i campi sono obbligatori
properties: {
category: {
type: "category",
description: "Categoria del forum associata",
label: "Categoria"
},
customers: {
type: "usernames", # Selezione multipla di utenti, alternativa al singolo username
description: "Account del servizio clienti assegnati a questa categoria, supporta selezione multipla",
label: "Utenti del servizio clienti",
}
}
}
}
end
end
end
end
end
Sì, è effettivamente possibile. Tuttavia, anche in type:objects non è supportato type:category. La mia esigenza è selezionare categorie e gruppi.
Ah, capisco, quindi le impostazioni dell’oggetto vengono aggiunte direttamente al tuo settings.yml. Dovresti formattarlo in questo modo:
oauth2_category_example:
type: objects
default: []
area: "oauth2"
schema:
name: category_rule
identifier: name
properties:
name:
type: string
required: true
label: Nome della regola
description: Un'etichetta per questa regola
category:
type: categories
required: true
label: Categoria
description: La categoria a cui si applica questa regola
validations:
max: 1
groups:
type: groups
label: Gruppi
description: Gruppi associati a questa categoria
Ciò produrrà un menu a discesa per le categorie simile a questo
Non è possibile selezionare un solo valore per type:category?
Secondo questa configurazione
quectel_online_customer_category_customer_group:
type: objects
default: []
schema:
name: "Gruppo categorie assistenza clienti"
identifier: name
properties:
name:
type: string
required: true
label: Nome
description: Nome
category:
type: categories
required: true
label: "Categoria"
description: "Nome della categoria, visualizzabile nella pagina <a href=\"/categories\" target=\"_blank\">tutte le categorie</a>"
group_name:
type: groups
required: true
label: "Nome del gruppo assistenza clienti"
description: "Nome del gruppo assistenza clienti, caratteri alfabetici, visualizzabile nella pagina <a href=\"/admin/groups\" target=\"_blank\">gruppi assistenza clienti</a>"
ho riscontrato il seguente errore:
Si è verificato un errore:
- Durante il rendering:
{{outlet}} per -top-level
-top-level
{{outlet}} per application
application
DiscourseRoot
{{outlet}} per admin
admin
{{outlet}} per admin.schema
schema
SchemaSettingNewEditor
SchemaSettingField
SchemaSettingTypeCategories
CategorySelector
section-link.gjs:149
Tentativo di ridisegno, ma l'applicazione Ember ha registrato un errore irreversibile durante il rendering. È necessario ricaricare l'applicazione dopo aver risolto la causa dell'errore.
categories.gjs:13
Uncaught (in promise) TypeError: this.args.value?.map non è una funzione
at SchemaSettingTypeCategories.<anonymous> (categories.gjs:13:9)
Ha a che fare con la mia versione?
Discourse v2026.1.4 — Commits · discourse/discourse · GitHub — Ember v6.6.0
Hai qualche configurazione obsoleta salvata nelle impostazioni? Potresti provare a reimpostarla ai valori predefiniti utilizzando il pulsante di ripristino, se appare?
Non vedo il pulsante di reset; la pagina è esattamente come nell’immagine, e le categorie sottostanti non vengono visualizzate.
Mmmh, non sono sicuro di cosa possa andare storto lì… Ho testato l’opzione delle categorie con il tipo di oggetto, quindi so che funziona, e non dovrebbe essere un problema della tua versione. Mi chiedo ancora se qualcosa sia rimasto in uno stato errato da qualche parte: potresti provare a creare una nuova impostazione con un nome diverso, solo per fare una prova? È su GitHub o da qualche altra parte, così posso provarlo anch’io?
type:categories va bene, type:category no.
Tuttavia, la configurazione seguente funziona correttamente anche nel caso in cui venga selezionata una sola voce, quindi type:category non è necessario.
category:
type: categories
required: true
label: "Categoria"
description: "Nome della categoria"
validations:
max: 1