Ver video
Sharepoint es una gran aplicación y tiene "un modo de ser", por así decirlo: se necesita un equilibrio en la personalización.
- En el navegador
- Usando Sharepoint Designer
- Utilizando herramientas públicas (típicamente Codeplex)
- Programando (.Net, XSLT, Javascript, etc.)
La idea es no escalar en la dificultad si se puede conseguir lo mismo fácilmente. No se trata de no programar sino de no hacerlo cuando no es necesario.
Para graficar el punto voy a construir una pequeña aplicación de administración de eventos y salas muy rápidamente sin salir del navegador.
Ésta es la idea:
Vincularemos 2 web parts que presentan vistas de 2 listas conectadas por un campo lookup
Modificaremos la página estándar de Sharepoint (NewForm) agregándole Javascript que opere con el Sharepoint Form Field Assistant para que – si hemos seleccionado una sala – todo evento nuevo tome por defecto el ID de la sala seleccionada.
Crearemos una interfaz tabulada fácilmente utilizando Easy Tabs y nos agregaremos una utilidad práctica basada en JQuery (Form Field Assistant o SPFF).
El resto es un poco de rutina.
El javascript de NewForm. Aspx es éste:
<script type="text/javascript" for="load" >
//Agrega lo necesario al query String como para que SPFF modifique el valor del ID primario
var currentURL = window.location;
var query = currentURL.search.slice(1);
if( query !='')
{
var pageArgs=new Array;
pageArgs=query.split('&');
var SelectedID=null;
var flagExists=false;
var fld='ID_Sala'
for (var i = 0; i < pageArgs.length; i++)
{
if (pageArgs[i].indexOf('SelectedID')> -1)
{
SelectedID=pageArgs[i].split('SelectedID%3D')[1].split('%')[0];
}
if (pageArgs[i].indexOf(fld)==0)
{
flagExists=true;
}
}
if (!flagExists)
{
window.location= currentURL + '&'+ fld+ '=' + SelectedID;
}
}
</script>
- Easy Tabs está en http://www.pathtosharepoint.com/pages/easyTabs.aspx (allí hay un video muy claro)
- Form Field Assistant está en http://spff.codeplex.com/ bien documentado.