Posts Tagged ‘javascript’

PortletURL en JavaScript

Monday, December 22nd, 2008

Una funcionalidad que acabo de descubrir en el Blog de Liferay es crear el PortletUrl en JavaScript.

Un ejemplo de PortletUrl es:

http://localhost:8080/web/guest/home?p_p_id=EDITAR_CUENTA&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_EDITAR_CUENTA_struts_action=%2Feditar_cuenta%2Fview

Aca le estoy pasando el portlet id, el estado del portlet, la fase del ciclo de vida, la acción de struts a ejecutar y 1 parametro (podrian ser muchos más).  Anteriormente la manipulación de esta url era medio complicada, ya que solo se podia generar a traves de JAVA o mediante una concatenación kilometrica de varios strings.  Con esta funcion nos proporciona mayor flexibilidad a la hora de programar.

<script type=”text/javascript”>
var portletURL = new Liferay.PortletURL(_PHASE);
portletURL.setParameter(“key1″, “value”);
portletURL.setParameter(“key2″, “value”);
portletURL.setPortletId(_PORTLET_ID);
</script>

<a href=”javascript: portletURL.toString()”>Go to</a>

Los valores que puede tomar _PHASE son:

  • ACTION_PHASE
  • RENDER_PHASE
  • RESOURCE_PHASE

También existen los siguientes métodos que permiten crear el PortletUrl según _PHASE:

  • Liferay.PortletURL.createActionURL();
  • Liferay.PortletURL.createRenderURL();
  • Liferay.PortletURL.createResourceURL();

Estos son los métodos restantes de la clase Liferay.PortletURL:

  • setCopyCurrentRenderParameters: function(copyCurrentRenderParameters);
  • setDoAsUserId: function(doAsUserId);
  • setEncrypt: function(encrypt);
  • setEscapeXML: function(escapeXML);
  • setLifecycle: function(lifecycle);
  • setName: function(name);
  • setParameter: function(key, value);
  • setPlid: function(plid);
  • setPortletConfiguration: function(portletConfiguration);
  • setPortletId: function(portletId);
  • setPortletMode: function(portletMode);
  • setResourceId: function(resourceId);
  • setSecure: function(secure);
  • setWindowState: function(windowState);
  • toString: function();

Mostrar un portlet en un PopUp

Wednesday, November 12th, 2008

Armo la URL

<portlet:renderURL windowState=”<%= LiferayWindowState.EXCLUSIVE.toString() %>” var=”url”>

<portlet:param name=”struts_action” value=”/miportlet/popupview” />

</portlet:actionURL>

Llamo al POPUP

<script type=”text/javascript”>

function mostrar_popup() {

var _dialog = Liferay.Popup( {

width: 700,

modal: true,

message: ‘<div class=”loading-animation” />’,

position: ['center', 100],

title: <liferay-ui:message key”popup-title”/>,

resizable: false,

draggable: false,

onClose: function() {

// se ejecuta cuando el portle se cierra

}

} );

jQuery.ajax( {

url: “<%= url %>”,

success: function(message) {

_dialog.html(message);

}

} );

}

</script>

<a href=”javascript:mostrar_popup();”>mostrar popup</a>

Al definir el estado de la ventana como exclusivo, el resultado de la respuesta solamente va a ser el contenido del portlet al cual se invoca.

Ejemplo:

: