Ricerca avanzata - campo combobox

cancel
Showing results for 
Search instead for 
Did you mean: 
natmacri
Active Member II

Ricerca avanzata - campo combobox

Salve,

come posso rendere un campo della ricerca avanzata di tipo combobox?

11 Replies
luca_biondo
Active Member II

Re: Ricerca avanzata - campo combobox

Ciao!

Per fare quello che dici, se ho compreso bene, devi andare su share-config-custom.xml in (share_home)/src/main/resources.

Lì, se già non lo hai configurato, devi creare un elemento simile a questo:

<config evaluator="model-type" condition="QName del tuo Tipo">
   <forms>
      <form id="search">
         <field-visibility>
            <show id="QName del tuo metadato"/>
         </field-visibility>
         <appearance>
            <field id="QName del tuo metadato">
               <control template="template del combobox" />
            </field>
         </appearance>
      </form>
   </forms>
</config>

con questo frammento di codice " <control template="template del combobox" />" personalizzi il template di visualizzazione/selezione del metadato che ti interessa. Cercando un po' in giro forse questo:

<control template="/org/alfresco/components/form/controls/selectone.ftl" />

dovrebbe fare al caso tuo ma non lo ho testato personalmente (dovresti poi poter impostare le opzioni di scelta con una linea di codice del tipo <control-param name="options"></control-param>).

Comunque ne esistono tanti altri da provare, bisogna solo trovare quello che più si adatta alle tue necessità.

Se invece ti basta un menù a tendina tra cui scegliere tra valori preimpostati allora la soluzione è diversa.

Spero di esserti stato utile
Luca

natmacri
Active Member II

Re: Ricerca avanzata - campo combobox

Ciao Luca,

i valori che devo visualizzare è un metadato presente in tutti i file che archivio

ho modificato il codice del file share-config-custom.xm

<config evaluator="model-type" condition="PROG:attachment">
<forms>
<form id="search">
<field-visibility>
<show id="PROGSmiley Tonguerogetto" />
<show id="PROG:fornitore" />
<show id="PROG:nomefinestra" />
<show id="PROG:numerodocumento" />
<show id="PROG:codicefascicolo" />
<show id="PROG:nomeprocedura" />
<show id="PROG:idmissione" />
</field-visibility>
<appearance>
</appearance>
</form>
</forms>
</config>
<config evaluator="model-type" condition="nomefinestra">
<forms>
<form id="search">
<field-visibility>
<show id="nomefinestra"/>
</field-visibility>
<appearance>
<field id="nomefinestra">
<control template=""/org/alfresco/components/form/controls/selectone.ftl" />
</field>
</appearance>
</form>
</forms>
</config>

ma non va, dove sbaglio?

luca_biondo
Active Member II

Re: Ricerca avanzata - campo combobox

da qui in poi

<config evaluator="model-type" condition="nomefinestra">

Non capisco bene cosa cerchi di fare. La condition dovrebbe essere qualcosa del tipo "prefixSmiley SurprisedbjectName", insomma un QName.

Forse, se il tuo intento è far vedere il metadato del tuo tipo PROG:attachment non lo devi definire come un elemento config a se stante ma tra i tag

<appearence>

</appearence>

Però se potessi farmi leggere l'errore che ti darei potrei di sicuro essere più preciso.

Inoltre ho un dubbio, il metadato che tu vuoi far vedere com'è strutturato? Per fare ciò che dici temo debba essere faccettato, in modo tale che i valori inseriti in tale metadato possano poi essere usati come filtri nelle ricerche.

natmacri
Active Member II

Re: Ricerca avanzata - campo combobox

io ricevo dei file da un altro sistema, con dei metadati,

ho costruito un modello con gli stessi metadati: PROG:attachment 

ho modificato il file share-config-custom.xml, inserendo il mio modello, tutto ok, visualizzo i metadati nella pagina ricerca avanzata.

uno di questi medadati, nomefinestra, vorrei che fosse di tipo a tendina e visualizzasse tutte le voci presenti nei file per il metadato nomefinestra.

spero di essere stato chiaro

luca_biondo
Active Member II

Re: Ricerca avanzata - campo combobox

Fammi capire bene, questo nomefinestra, che suppongo sia PROG:nomefinestra, lo vuoi utilizzare come filtro di ricerca o solo visualizzare a tendina tra i risultati della ricerca?

Inoltre, se ho capito bene tu lo hai solo come metadato non anche come tipo giusto?

natmacri
Active Member II

Re: Ricerca avanzata - campo combobox

intendi PROG:nomefinesta?
intendo visualizzarlo come filtro di ricerca

è solo un metadato

luca_biondo
Active Member II

Re: Ricerca avanzata - campo combobox

Allora avevo capito bene,

Devi abilitare il faceting di quel metadato nel modello, tieni presente però che così non potrai selezionare esattamente i valori che sono nel file, ma avrai a disposizione dei filtri basati su quel metadato rispetto alle statistiche degli inserimenti. Così facendo potrai usarlo come filtro di ricerca.

Configurando opportunamente share con un tamplate che fa al caso tuo come quello di prima dovresti ottenere quello che cerchi!

Se hai ancora problemi fammi sapere

ps. a meno che non sai esattamente che valori possa assumere quel metadato e hai la certezza che sono quelli e solo quelli, ed allora risolvi più facilmente inserendo una constraint nel modello e tutto il resto viene automaticamente.

Luca

natmacri
Active Member II

Re: Ricerca avanzata - campo combobox

scusami ma non riesco a seguirti:

Devi abilitare il faceting: se intendi che devo creare dei filtri nella pagina faceted-search gia lo faccio per tutti i metadati,

io vorrei far diventare un metadato presente nella ricerca avanzata di tipo tendina, che visualizzi il contenuto presente in quel metadato in tutti i documenti archiviati, il valore del metadato potrebbe essere qualsiasi visto che arriva da un altro sistema, mi serve solo per filtrare la ricerca.

se poi devo modificare la proprietà del metadato all'interno del modello, non posso piu farlo perchè ci sono gia dei documenti archiviati con quel modello

Nat

allego la stampa della pagina ricerca avanzata, il campo in questione è Tipo Documento

luca_biondo
Active Member II

Re: Ricerca avanzata - campo combobox

Nel modello che hai fatto, sotto ogni metadato si può esplicitare la proprietà di indicizzazione così:

<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
<facetable>true</facetable>
</index>‍‍‍‍‍‍‍‍‍‍‍‍

Come vedi nell'esempio sopra io ho reso il mio metadato facetable per far funzionare i filtri.

Ora, purtroppo, come dici bene tu, se già hai documenti nel repository e non hai impostato prima queste proprietà non penso che sia possibile modificarlo, però non voglio darti certezze perchè non le ho neanche io non avendo mai provato prima.

Mi dispiace, spero di esserti stato utile

Luca