none
Filtrar un webpart de biblioteca de documentos por carpeta RRS feed

  • Pregunta

  • Hola!,

    he añadido un webpart de una bibioteca de documentos a un dispform. Aunque los documentos están guardados en carpetas, tengo una vista en que se muestran los documentos sin carpetas. Filtro por un valor del formulario que es igual que el nombre de la carpeta y de esa forma tengo una captura de los documentos que hay como si estuviera dentro de la carpeta. 

    Sin embargo me doy cuenta que si añado nuevo documento o si hago drag and drop de un documento me lo guarda en la raíz de la biblioteca, como es lógico. 

    Estoy intentado ver qué mecanismos puedo utilizar para filtrar dinámicamente por carpeta este webpart, pero no consigo ver ningún camino claro. Alguna sugerencia?

    Gracias!!!

    viernes, 30 de enero de 2015 14:12

Respuestas

  • Hola Juan Carlos!

    finalmente el requisito se resuelve de una forma bastante más simple:

    - Si en la url del item de lista añades un parámetro &RootFolder=/bibllioteca/carpeta, el webpart de la biblioteca en el dispform de la lista se abre en la carpeta correcta.

    - Para añadir ese parámetro, se me ha ocurrido modificar el renderizado de los campos en vista de LinkTitle y LinkTitleNoMenu para que construya la URL el enlace incluyendo el parámetro RootFolder

    Saludos y gracias!

    • Marcado como respuesta SharePein domingo, 1 de febrero de 2015 18:27
    domingo, 1 de febrero de 2015 18:27

Todas las respuestas

  • Buenas SharePein,

    No tengo bien claro lo que quieres hacer, Lo que quieres es que puedas aplicar filtros sobre carpetas y que si el usuario te sube un documento te lo suba directamente sobre la carpeta  en la que estas ahora mismo?

    O lo único que quieres es filtrar dependiendo de un valor? Si es la segunda fase lo puedes hacer mediante JSLINK de una forma muy simple: mira estos enlaces que te pueden servir de ayuda:

    http://spdevlab.com/2013/07/07/5-facts-about-jslink-in-sharepoint-2013-you-might-not-know/

    http://www.idubbs.com/blog/2012/js-link-for-sharepoint-2013-web-partsa-quick-functional-primer/

    https://code.msdn.microsoft.com/office/Client-side-rendering-JS-2ed3538a 

    Saludos,



    MCPD SharePoint 2010 Mi blog: http://blogs.encamina.com/desarrollandosobresharepoint Twitter: @AdrianDiaz81

    sábado, 31 de enero de 2015 11:24
  • Hola Adrian,

    muchas gracias por responderme.

    Quizá no me he explicado bien anteriormente. Quiero implementar una especie de gestión de expedientes con SharePoint Foundation 2013. Por un lado, guardo metadatos del expediente en una Custom list y los documentos en una biblioteca. Los expedientes tienen una numeración y lo que hago cuando creo un expediente es crear un item de lista por un lado y una carpeta con el nombre del expediente por otro. 

    Para ver los metadatos del expediente más los documentos lo que hago es añadir el webpart de la biblioteca en el dispform del item de la lista. Puedo filtrar documentos de la biblioteca por un metadatato concreto, como puede ser código de expediente (siempre y cuando asigne el código de expediente a los documentos que añado a la biblioteca) y de esa forma parece que tengo conseguido la funcionalidad que busco.

    Sin embargo no es así.

    Para mostrar los documentos, la vista de la bibioteca tiene que ser mediante una vista sin carpetas. Qué ocurre entonces cuando añado un documento a la bibioteca desde el dispform? Pues que me deja el fichero en la raíz de la biblioteca y no dentro de la carpeta que a mi me interesaría. Además el handler de la biblioteca no sabe que metadatos añadir automaticamente al documento porque está en raíz.

    Lo ideal sería que yo pueda configurar el webpart de documentos para mostrar el contenido de la carpeta de forma dinámica, pero por lo que veo esto es imposible.

    Sólo queda entonces trampear el código. Hay dos cosas que atender:

    - subir un fichero a través del botón nuevo: esto lo he resuelto añadiendo el "rootFolder" de los atributos href y onclick del elemento correspondiente al webpart, que inicialmente estaban vacíos. Ojo!, el código es de prueba, para hacerlo bien habría que hacer un replace, pero sirve para ilustrarlo.

    $("#idHomePageNewDocument-WPQ3").attr("href","http://intranet.contoso.com/_layouts/15/Upload.aspx?List={F9A626F1-567D-4D70-A6DB-B6D244658DCF}&RootFolder=/Documentoss/NumExpediente")

    $("#idHomePageNewDocument-WPQ3").attr('onclick','NewItem2(event, "http://intranet.contoso.com/_layouts/15/Upload.aspx?List={F9A626F1-567D-4D70-A6DB-B6D244658DCF}&RootFolder=/Documentoss/NumExpediente"); return false;');

    - subir fichero a través de drag and drop: esta parte está pendiente todavía. Por lo que he leído debo capturar el evento drop y por algún lado meter el rootFolder.

    Si tienes alguna sugerencia te escucho. Yo por mi parte seguiré buscando, si llego a obtener la solución la indico aquí.

    Gracias!

    PD: he intentado a través del OnPreRender del jslink modificar algunos parámetros como ctx.rootFolder o ctx.rootFolderForDisplay para ver si modificaba el comportamiento del webpart, pero no ha habido suerte.

    sábado, 31 de enero de 2015 14:52
  • Hola,

    Visto lo que quieres hacer ¿Has valorado desarrollar toda la funcionalidad frente a tratar de hacerlo personalizando formularios de lista / biblioteca?

    Un saludo


    ------------------------------------------------------------
    Juan Carlos Gonzalez Martin
    MVP de SharePoint Server - Director revista CompartiMOSS:
    http://www.compartimoss.com
    Blog: http://geeks.ms/blogs/jcgonzalez
    Twitter: @jcgm1978
    ------------------------------------------------------------

    domingo, 1 de febrero de 2015 7:44
  • Hola Juan Carlos!

    finalmente el requisito se resuelve de una forma bastante más simple:

    - Si en la url del item de lista añades un parámetro &RootFolder=/bibllioteca/carpeta, el webpart de la biblioteca en el dispform de la lista se abre en la carpeta correcta.

    - Para añadir ese parámetro, se me ha ocurrido modificar el renderizado de los campos en vista de LinkTitle y LinkTitleNoMenu para que construya la URL el enlace incluyendo el parámetro RootFolder

    Saludos y gracias!

    • Marcado como respuesta SharePein domingo, 1 de febrero de 2015 18:27
    domingo, 1 de febrero de 2015 18:27