Fallo al modificar 'userprofile.get.html.ftl'

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

Fallo al modificar 'userprofile.get.html.ftl'

Buenos días.

Uso Alfresco 3.4.0 y estoy tratando de modificar el archivo "userprofile.get.html.ftl" que está en "\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\profile". En realidad lo que he hecho es una copia de éste en "\shared\classes\alfresco\web-extension\site-webscripts\org\alfresco\components\profile" que es el que modifico.

Ahora bien, lo que quiero hacer es quitar algunos campos del formulario de edición del perfil de usuario que aparecen en Share. Algo muy sencillo a priori y que no debería darme problemas. Pero si me los está dando. Por ejemplo, quiero evitar que se muestre el campo "Skype". Para ello comento las siguientes líneas, pero después de reiniciar el servidor (Tomcat), voy a l perfil, pulso el botón "Editar" y la zona donde deberían mostrarse el resto de campos (que no están comentados) se queda en blanco. Y lo peor es que el log no muestra ningún error.


<div class="row">
         <span class="label"><label for="${el}-input-skype">${msg("label.skype")}:</label></span>
         <span class="input"><input type="text" maxlength="256" size="30" id="${el}-input-skype" value="" <@immutablefield field="skype" /> /></span>
      </div>

Si elimino el código también me ocurre lo mismo.

¿Qué estoy haciendo mal?.
9 Replies
nemrp
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

Perdón, se me olvidó comentar que también he probado comentando el siguiente bloque.


<#if profile.skype?? && profile.skype?length!=0>
         <div class="row">
            <span class="fieldlabelright">${msg("label.skype")}:</span>
            <span class="fieldvalue">${profile.skype?html}</span>
         </div>
         </#if>

Saludos.
nemrp
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

¿Nadie sabe el porqué de este comportamiento tan extraño en algo que debería ser trivial? :roll:
nemrp
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

Pues de momento, la única forma con la que he conseguido ocultar los campos que no me interesa mostrar es metiéndolos en un "div" con estilo "display: none". No es una solución que me guste demasiado, pero comentando o eliminándo los campos la zona de la página al cargar (cuando se pulsa el botón "Editar") se queda en  blanco.

Saludos.
cristinamr
Advanced

Re: Fallo al modificar 'userprofile.get.html.ftl'

Buenas nemrp

¿Te puedes creer que eso que te ocurre a ti me ha ocurrido a mi con otro ftl? Estoy empezando a pensar que es cosa de Alfresco. En mi caso es una modificación para que no se visualice el "Crear Sitios" y que solo lo visualice los usuarios que tengan permisos de administrador. Sobre la 3.3.2 hay que tocar varios archivos, pues bien si po ejemplo, embebo un if user.isAdmin a priori funciona, pero en la 3.4 enterprise nanai -_-

Hombre, tu solución es muy de andar por casa xD Pero mira si te lo solventa está de arte. De hecho, ahora para un cliente tengo que capar  varias opciones sobre una 3.4 enterprise y me da que voy a tirar por la calle de en medio  :mrgreen:

Pero vamos, como ando investigando sobre esto si doy con algo te comento, así ya lo sabes.

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
yakon_8894
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

Buenas,

he realizado la misma prueba que vosotros y me he encontrado con el mismo problema. He intentado profundizar un poco en como funciona el webscript que muestra el perfil de un usuario, y me encontré con alguna cosa interesante.

Hay un javascript llamado profile.js situado en <tomcat>/share/components/profile/ que a través de Dom setea los valores de los metadatos del usuario en sus respectivos input. Concretamente el campo de skype lo setea en la linea:

Dom.get(prefix + "skype").value = p.skype;

o al menos eso me parece a mi. No he tenido mucho tiempo para probar a comentar esa linea pero entiendo que si eliminas el div, cuando se ejecuta esa sentencia del javascript saltará un error y no se compilará la ftl correctamente, provocando que te aparezca la página en blanco.

También he descubierto que a través de la página http://localhost:8080/share/page/index se pueden refrescar los webscripts de share sin tener que reiniciar el servidor, he incluso se puede activar el debugger. Ando un poco liado de trabajo y no he podido probar el debugger, pero quizás os pueda ayudar a depurar y ver qué está haciendo share.

Siento no ser de más ayuda, pero espero que os sirva de algo lo que he descubierto.

Saludos
yakon_8894
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

Buenas de nuevo,

creo que ya he encontrado una solución que te puede servir nempr:

El javascript que setea la propiedad no es el profile.js, sino el profile-min.js, que está en la misma ruta que el otro. El seteo se hace en la línea:
e.get(k+"skype").value=l.skype;


Lo que hice para quitar el campo Skype de la edición de metadatos de un usuario fue:

1. Del fichero userprofile.get.html.ftl elimine la siguiente linea:


<div class="row">

         <span class="label"><label for="${el}-input-skype">${msg("label.skype")}:</label></span>

         <span class="input"><input type="text" maxlength="256" size="30" id="${el}-input-skype" value="" <@immutablefield field="skype" /> /></span>

      </div>

2. Del fichero profile-min.js eliminé la sentencia:

e.get(k+"skype").value=l.skype;

3. Fui a la url http://localhost:8080/share/page/index y actualicé todos los webscripts

4. Al volver a la edición de datos del usuario ya no me aparecía el input para insertar el campo del skype

PD: no se si la eliminación del get en el fichero profile-min.js puede afectar a otros webscripts de Share, supongo que tendrás que buscar donde se usa ese script y ver si le afecta.

Saludos
nemrp
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

Hola CristinaMR. Hola Yakon.

¿Te puedes creer que eso que te ocurre a ti me ha ocurrido a mi con otro ftl? Estoy empezando a pensar que es cosa de Alfresco. En mi caso es una modificación para que no se visualice el "Crear Sitios" y que solo lo visualice los usuarios que tengan permisos de administrador. Sobre la 3.3.2 hay que tocar varios archivos, pues bien si po ejemplo, embebo un if user.isAdmin a priori funciona, pero en la 3.4 enterprise nanai

Hace un mes, más o menos, escribí un hilo comentando este mismo y la solución a la que llegué. El enlace es el siguiente: http://forums.alfresco.com/es/viewtopic.php?f=11&t=3259.

Hombre, tu solución es muy de andar por casa xD Pero mira si te lo solventa está de arte. De hecho, ahora para un cliente tengo que capar varias opciones sobre una 3.4 enterprise y me da que voy a tirar por la calle de en medio

En realidad, la idea es la misma "ocultar una zona". Así que, haciéndolo por el clásico método de comentar líneas o bien introduciéndolas en un "div" sin visibilidad la solución es la misma. Ahora bien, lo que no me gustaba de utilizar el "div" es que me solventaba el problema pero no entendía el por qué de ese problema.

Con la solución que nos da Yakon ya si se entiende.

El javascript que setea la propiedad no es el profile.js, sino el profile-min.js, que está en la misma ruta que el otro.

Yo hice la prueba precisamente con el archivo "profile.js". En él comenté las líneas que hacían referencia a "skype", que no es más que una sola línea. Pero no me funcionó. Así que, con la solución que nos das ya es posible "quitar" código sin necesidad de utilizar el "div" para algunas plantillas.

Un saludo a ambos y muchas gracias por vuestra ayuda.

PD para CristinaMR: Yo he capado ya muchas cosas en Share 8), así que si quieres alguno en concreto dímelo y trataré de ayudarte.
cristinamr
Advanced

Re: Fallo al modificar 'userprofile.get.html.ftl'

Hace un mes, más o menos, escribí un hilo comentando este mismo y la solución a la que llegué. El enlace es el siguiente: http://forums.alfresco.com/es/viewtopic.php?f=11&t=3259.

Wow! Eres un crack  :mrgreen:  Con tu permiso edito el post del blog añadiendo esto último =)

PD para CristinaMR: Yo he capado ya muchas cosas en Share 8), así que si quieres alguno en concreto dímelo y trataré de ayudarte.

MP al canto  :lol:
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
nemrp
Member II

Re: Fallo al modificar 'userprofile.get.html.ftl'

Wow! Eres un crack :mrgreen: Con tu permiso edito el post del blog añadiendo esto último =)

Jajajaja… qué voy a ser un crack, si llevo dos días con esto prácticamente. Si no hubiera sido gracias a tu blog no hubiera podido hacer muchas de las cosas que he realizado. Por supuesto, no es necesario que te de permiso para nada, me alegra mucho que la suerte que tuve al toparme con la solución pueda servir de ayuda a más gente. Así que, si no sólo está aquí en el foro, sino que además está en tu blog, mejor que mejor :wink:.

MP al canto :lol:

OK, estaré pendiente.

Un saludo.