留言板
Creare un renderURL da JS
Ciao a tutti, ho uno strano problema con la generazione di un render URL da Javascript.
Quello che devo fare è generare in modo dinamico lo stesso url che viene prodotto dal solito tag liferay-portlet:renderURL e che mi funziona perfettamente, ovvero questo:
Siccome vorrei aggiornare un div in pagina con i risultati della ricerca, tramite una funzioncina JS genero lo stesso URL (tramite la chiamata Liferay.PortletURL.createRenderURL) e poi leggo il risultato dell'invocazione tramite l'oggetto AUI.io.request ma mi sono accorto che non funziona perché vedo che mi genera sempre degli url di questo tipo, che sono chiaramente sbagliati:
che ovviamente non mi danno nessun risultato, anziché come quello generato dal tag che invece è:
qualcuno sa dirmi dove sto sbagliando??
Di seguito trovate la mia funzione completa:
ciao e grazie in aticipo a tutti
Marco
Quello che devo fare è generare in modo dinamico lo stesso url che viene prodotto dal solito tag liferay-portlet:renderURL e che mi funziona perfettamente, ovvero questo:
<liferay-portlet:renderurl var="filteredResultsURL" windowstate="<%=LiferayWindowState.EXCLUSIVE.toString() %>">
<liferay-portlet:param name="mvcPath" value="/html/configure/filtered_results.jsp" />
</liferay-portlet:renderurl>
Siccome vorrei aggiornare un div in pagina con i risultati della ricerca, tramite una funzioncina JS genero lo stesso URL (tramite la chiamata Liferay.PortletURL.createRenderURL) e poi leggo il risultato dell'invocazione tramite l'oggetto AUI.io.request ma mi sono accorto che non funziona perché vedo che mi genera sempre degli url di questo tipo, che sono chiaramente sbagliati:
/it/c/portal/layout?p_p_id=2_WAR_nosdocumentwidgetportlet&p_p_lifecycle=0...
che ovviamente non mi danno nessun risultato, anziché come quello generato dal tag che invece è:
http://localhost:8083/it/web/guest/20?p_p_id=2_WAR_NOSDocumentwidgetportlet…
qualcuno sa dirmi dove sto sbagliando??
Di seguito trovate la mia funzione completa:
Liferay.provide(
window,
'<portlet:namespace />doSearch',
function() {
var A = AUI();
var titolo = A.one('#<portlet:namespace /><%=WebKeys.DOC_TITLE %>').attr('value');
var codice = A.one('#<portlet:namespace /><%=WebKeys.DOC_CODE %>').attr('value');
var url = Liferay.PortletURL.createRenderURL();
url.setPortletId('<%=PortletKeys.CONFIGURE_WIDGET %>');
url.setWindowState('<%=LiferayWindowState.EXCLUSIVE.toString() %>');
url.setParameter('<portlet:namespace />mvcPath', '/html/configure/filtered_results.jsp');
url.setParameter('<%= WebKeys.DOC_TITLE%>', titolo);
url.setParameter('<%= WebKeys.DOC_CODE%>', codice);
AUI().one('#searchResultsDiv').html('<div class="loading-animation"></div>');
A.io.request(
url.toString(),
{
dataType: 'text/html',
on: {
failure: function() {
alert("ERRORE !!!")
},
success: function(event, id, obj) {
var instance = this;
var message = instance.get('responseData');
AUI().one('#searchResultsDiv').html(message);
}
}
}
); //END of io Request
},
['aui-io', 'liferay-util-window', 'aui-base', 'liferay-portlet-url']
); //End of doSearch
ciao e grazie in aticipo a tutti
Marco