Personalización de los Bookmarks del Portal
Información
Los cambios en jsp dentro del jboss, requieren del reinicio de este.
Se decriben en esta página las personalizaciones básicas más frecuentes a realizar en el portal.
- Apagar el modo de EDICION para usuarios no administradores
- Eliminar marcadores de otros componentes
- Presentación del árbol de componentes
- Modificación de apertura de cubos
- Cambiar el logo en la página de bookmarks
- Ordenamiento de las vistas y cubos en el árbol de componentes
Apagar el modo de EDICION para usuarios no administradores
Como resultado de esta modificación se elimina el link "MODO EDICION" para aquellos usuarios que no pertenezcan a un rol de administración. De esta forma se evita que los usuarios puedan eliminar vistas u otros componentes desde el O3portal. Es imporntante recordar que para el caso de los componentes en general (salvo las vistas públicas) la posibilidad de modificación o eliminación es controlada a través de mecanismo de seguridad que definen permisos de Lectura o Escritura para cada cada uno de los componentes y de acuerdo al rol del usuario. Aún así, puede ser deseable en algunas instalaciones apagar el modo de edición.
Para hacer esto debemos editar el archivo que se encuentra en:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/bookmarksPage.jsp
y
<03>/liferay/tomcat/webapps/o3portal/bookmarksPage.jsp
y buscar las siguientes líneas:
<%--c:if test="${csClient.userPrivileges.adm}"--%> <td style="padding-right:10px;" align="left"> <a href="edit/switch-mode.jsp" class="links" target="_top"> <c:choose> <c:when test="${editMode}"> <fmt:message key='bookmarksPage.view.command' bundle='${lang}'/> </c:when> <c:otherwise> <fmt:message key='bookmarksPage.edit.command' bundle='${lang}'/> </c:otherwise> </c:choose> </a> </td> <%--/c:if--%>
todo lo que debemos de hacer es descomentar de modo que quede así
<c:if test="${csClient.userPrivileges.adm}"> <td style="padding-right:10px;" align="left"> <a href="edit/switch-mode.jsp" class="links" target="_top"> <c:choose> <c:when test="${editMode}"> <fmt:message key='bookmarksPage.view.command' bundle='${lang}'/> </c:when> <c:otherwise> <fmt:message key='bookmarksPage.edit.command' bundle='${lang}'/> </c:otherwise> </c:choose> </a> </td> </c:if>
salvamos y actualizamos el portal
Eliminar marcadores de ciertos componentes
Los títulos de los marcadores de componentes distintos a Cubos y Vistas pueden ser eliminados, restringiendo la lista de marcadores a aquellos componentes que serán utilizados en una determinada instalación.
Para hacer esto debemos editar el archivo que se encuentra en:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/bookmarks-trees-left.jsp
y
<03>/liferay/tomcat/webapps/o3portal/bookmarks-trees-left.jsp
Veamos esto con un caso real, no queremos ver las Reglas
Para esto buecamos en el editor de textos <!- Rules ->
veremos algo así en el código:
<!-- Rules --> <fmt:message key="bookmarksPage.rules" bundle="${lang}" var="bookmarksRules" /> <bsctf:containedTree treeModel="${rulesModel}" treeModels="${treeModels}" actionModels="${actionModels}" actionModel="${rulesActionModel}" treeModelInfos="${treeModelInfos}" rootIconName=".${ideasoft_themes_themePath}/bookmarks/images/bookmark-rule.gif" rootClosedIconName=".${ideasoft_themes_themePath}/bookmarks/images/bookmark-rule.gif" defaultLeafIcon=".${ideasoft_themes_themePath}/bookmarks/images/t_yellow.gif" rootCssClass="rootCssClass" defaultCssClass="defaultCssClass" rootLabel="${bookmarksRules}"> </bsctf:containedTree>
todo lo que tenemos que hacer es comentar este pedazo de código con <%- -%> de modo que quede así:
<%-- <!-- Rules --> <fmt:message key="bookmarksPage.rules" bundle="${lang}" var="bookmarksRules" /> <bsctf:containedTree treeModel="${rulesModel}" treeModels="${treeModels}" actionModels="${actionModels}" actionModel="${rulesActionModel}" treeModelInfos="${treeModelInfos}" rootIconName=".${ideasoft_themes_themePath}/bookmarks/images/bookmark-rule.gif" rootClosedIconName=".${ideasoft_themes_themePath}/bookmarks/images/bookmark-rule.gif" defaultLeafIcon=".${ideasoft_themes_themePath}/bookmarks/images/t_yellow.gif" rootCssClass="rootCssClass" defaultCssClass="defaultCssClass" rootLabel="${bookmarksRules}"> </bsctf:containedTree> --%>
salvamos y actualizamos el portal
Presentación del arbol de componentes
Es posible adecuar la presentación del arbol de componentes al momento de ingresar al portal, deterimando si el mismo se muestra en forma expandida o no.
Para hacer esto debemos editar el archivo que se encuentra en:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/bookmarksPage.jsp
y
<03>/liferay/tomcat/webapps/o3portal/bookmarksPage.jsp
buscamos en el editor de textos expandMode
veremos algo como esto
<wt:extTree extTreeModel="${wtTreeModel}" actionNodeModel="${wtTreeModel}" name="istoreTree" openedIcon="jsp/viewer/images/scorecardViewerIcon.gif" closedIcon="jsp/viewer/images/scorecardViewerIcon.gif" leafIcon="jsp/viewer/images/scorecardViewerIcon.gif" openButtonIcon="images/o3portal/t-plus.gif" closeButtonIcon="images/o3portal/t-minus.gif" ignoreRootNode="true" drawCheckbox="false" leafCssClass="bookmark" subTreeCssClass="bookmark" saveVisibility="false" expandMode="2" <----------- acá lo que buscamos target="_top" subtreeIndent="22" rowHeight="20" contextRelativeUrls="false" />
expandMode puede tener los siguientes valores
- expandMode="1" - máximo nivel de expansión para todos los bookmarks
- expandMode="2" - muestra títulos + un primer nivel para todos los bookmarks
- expandMode="3" - solo títulos de bookmarks
salvamos y actualizamos el portal
Modificación de apertura de cubos
En ciertos ambientes se desea que los usuarios tengan como punto de partida para el análisis un conjunto de vistas previamente definidas. Esta personalización elimina la posibilidad de acceder al cubo en forma directa. Además se puede modificar también la información asociada a los cubos y vistas, que refire a si las vistas son públicas o privadas, y fecha de actualización.
Para hacer esto debemos editar el archivo que se encuentra en:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/bookmarksPage.jsp
y
<03>/liferay/tomcat/webapps/o3portal/bookmarksPage.jsp
buscamos Cubes & Views Tree en el editor de textos
veremos algo como esto
// Cubes & Views Tree Boolean showCubeTime = Boolean.TRUE; Boolean showViewSecurityLevel = Boolean.TRUE; Boolean cubeCreateLink = Boolean.FALSE; Boolean viewCreateLink = Boolean.TRUE;
explicación de los parametros
- showCubeTime - muestra fecha y hora de actualización del cubo, TRUE=muestra, FALSE=no muestra
- showViewSecurityLevel - muestra si una vista es pública,privada, TRUE=muestra, FALSE=no muestra
- cubeCreateLink - habilta o no si se puede abrir el cubo directamente, TRUE=habilita, FALSE=no habilita
- viewCreateLink - habilta o no si se puede abrir la vista directamente, TRUE=habilita, FALSE=no habilita
salvamos y actualizamos el portal
Cambiar el logo en la página de bookmarks
Se detalla a continuación cómo cambiar el logo de O3 que se muestra en la página inicial que contiene los marcadores.
Para hacer esto debemos editar el archivo que se encuentra en:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/header.jsp
y
<03>/liferay/tomcat/webapps/o3portal/header.jsp
El tamaño del logo no debería de superar los 70 pixels de alto y de ancho no habría problemas, el mismo lo colocamos en la siguiente carpeta
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/images
y
<03>/liferay/tomcat/webapps/o3portal/images
Abrimos el archivo con un editor de texto y buscamos logo.gif, veremos algo así
<a href="http://www.ideasoft.com.uy" target="_blank"><img src="images/logo.gif" hspace="0" vspace="0" border="0"/></a>
cambiamos logo.gif por el nombre de nuestro logo, es importante incluir la terminación del archivo (gif,jpeg,etc)
Si además no queremos que el logo sea un link dejamos así
<img src="images/logo.gif" hspace="0" vspace="0" border="0"/>
si por alguna razón nuestro logo no entra en 70 pixels de altura, deberemos modificar este otro archivo
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/index.jsp
y
<03>/liferay/tomcat/webapps/o3portal/index.jsp
editamos y buscamos rows="70,*" encontraremos algo como esto
<frameset rows="70,*" framespacing="0" border="0" frameborder="0">
lo que debemos de hacer es cambiar el valor 70 por el que corresponda a la altura de nuestro logo
salvamos y actualizamos el portal
Cambiar el logo de O3 de la página de bookmarks
En forma análoga a la comentada en la sección anterior sobre el cambio de logo del header de la página de bookmark se puede cambiar el logo de O3:
Para ello se debe editar el archivo:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/mainHeader.jsp
y
<03>/liferay/tomcat/webapps/o3portal/mainHeader.jsp
En la línea 10 modificar la imagen deseada:
<td width="50%"align="left"><img src="images/o3portal.gif" width="104" height="75"></td>
Recordar agregar la imagen en la carpeta
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/images
y
<03>/liferay/tomcat/webapps/o3portal/images
Cambiar título "Mis Bookmarks"
Para ello se debe editar el archivo:
<03>/jboss/standalone/deployments/o3-server.ear/o3web.war/bookmarksPage.jsp
y
<03>/liferay/tomcat/webapps/o3portal/bookmarksPage.jsp
cambiando la linea:
<fmt:message key="bookmarksPage.header" bundle="${lang}" />
por el titulo deseado, por ejemplo "Mí Título":
<label>Mí Título</label>
Ordenamiento de las vistas y cubos en el árbol de componentes
Atención
Es necesario bajar el jboss para realizar estos cambios
Es posible presentar el árbol de vistas y cubos en forma alfabética (default) o como lo armamos en el admserver.
Para cambiar el comportamiento por defecto (ordenamiento alfabético) debemos crear un archivo nuevo en <O3>/jboss/server/default/ideasoft-o3 que le ponemos por nombre GServer_custom.properties
En el mismo escribimos lo siguiente:
CubesAndViews.sort=FALSE
salvamos y re-iniciamos el server
Seleccionar un theme según el usuario que ingresa al sistema
El siguiente código muestra como seleccionar el theme según el login name del usuario.
<% //initialize the theme String theme = csApplication.getContext().getProperty("ideasoft.themes.defaultTheme", "red"); session.setAttribute(THEME_SESSION_ATTRIBUTE, theme); session.setAttribute(THEME_PATH_SESSION_ATTRIBUTE, "/themes/" + theme); %> REEMPLAZAR POR: <% //initialize the theme String login = csClient.getUserLogin(); String theme; if ("user".equals(login)) { theme = "red"; } else if ("admin".equals(login)) { theme = "blue"; } else { theme = csApplication.getContext().getProperty("ideasoft.themes.defaultTheme", "red"); } session.setAttribute(THEME_SESSION_ATTRIBUTE, theme); session.setAttribute(THEME_PATH_SESSION_ATTRIBUTE, "/themes/" + theme); %>
Si se quiere seleccionar mediante rol al que pertenece el usuario, utilizar la siguiente variante
<% //initialize the theme String theme; com.ideasoft.cs.ClientRestrictions cr = csClient.getClientRestrictions(); if (cr.isUserInRole("Manager")) { theme = "red"; } else if (cr.isUserInRole("User")) { theme = "blue"; } else { theme = csApplication.getContext().getProperty("ideasoft.themes.defaultTheme", "red"); } session.setAttribute(THEME_SESSION_ATTRIBUTE, theme); session.setAttribute(THEME_PATH_SESSION_ATTRIBUTE, "/themes/" + theme); %>
Ocultar el link de Logout Según el Rol del Usuario
Realizar las siguientes modificaciones en los archivos header.jsp y desktopHeader.tag:
Buscar el siguiente bloque de código:
| <a href="<%=request.getContextPath()%>/logout.jsp" target="_top" class="header"><fmt:message key="header.logout" bundle="${lang}"/></a>
y reemplazar por:
<% boolean canEditBookmarks = csClient.isLoginOk() && csClient.getClientRestrictions().isUserInRole("Manager"); %> <% if (canEditBookmarks) { %> | <a href="<%=request.getContextPath()%>/logout.jsp" target="_top" class="header"><fmt:message key="header.logout" bundle="${lang}"/></a> <% } %>
Buscar:
| <a href="javascript:logout()" class="xtabOn"><fmt:message key="jtabs.logout" bundle="${lang_jdesktop}"/></a>
y reemplazar por:
<jsp:useBean id="csClient" scope="session" type="com.ideasoft.cs.ejb.web.CSClientBean"/> <% boolean canEditBookmarks = csClient.isLoginOk() && csClient.getClientRestrictions().isUserInRole("Manager"); %> <% if (canEditBookmarks) { %> | <a href="javascript:logout()" class="xtabOn"><fmt:message key="jtabs.logout" bundle="${lang_jdesktop}"/></a> <% } %>