Ocultar cinta o ribbon en SharePoint 2013

SharePoint cuenta con un control que permite ocultar información de acuerdo al nivel de permisos del usuario, con solo encerrar el código en las siguientes etiquetas:

<SharePoint:SPSecurityTrimmedControl PermissionsString=”<tipodepermiso>” runat=”server”>

< Código que se desea ocultar >

</SharePoint:SPSecurityTrimmedControl>

Los tipos de permisos que podemos usar en el campo PermissionsString son:

List Permissions ManageLists – CancelCheckout – AddListItems – EditListItems – DeleteListItems – ViewListItems – ApproveItems – OpenItems – ViewVersions – DeleteVersions – CreateAlerts – ViewFormPages

Site Permissions ManagePermissions – ViewUsageData – ManageSubwebs – ManageWeb – AddAndCustomizePages – ApplyThemeAndBorder – ApplyStyleSheets – CreateGroups – BrowseDirectories – CreateSSCSite – ViewPages – EnumeratePermissions – BrowseUserInfo – ManageAlerts – UseRemoteAPIs – UseClientIntegration – Open – EditMyUserInfo

Personal Permissions

ManagePersonalViews – AddDelPrivateWebParts – UpdatePersonalWebParts

En este ejemplo, voy a modificar la página maestra de mi colección de sitios para ocultar la cinta a todos los usuarios que no tengan permisos de Administrar listas (ManageLists), es decir, diseñadores.

Usando SharePoint Designer 2013 abro la página maestra del sitio, si no la han cambiado, la página predeterminada es Seattle.master.

blog1

Después edito el archive y busco el texto <div id=”s4-ribbonrow”> e inmediatamente antes de esa línea inserto el texto

<SharePoint:SPSecurityTrimmedControl PermissionsString=”ManageLists” runat=”server”>

 blog2

Para cerrar la etiqueta, busco el texto <div id=”s4-workspace”> e inmediatamente antes de esa línea inserto el texto

</SharePoint:SPSecurityTrimmedControl>

 blog3

Con esto podemos ver que el ribbon no aparece para los usuarios:

blog4

 

 

Anuncios

Mostrar historial de comentarios con InfoPath y SharePoint 2013

Con SharePoint 2013 podemos usar InfoPath 2013 para modificar directamente las listas de SharePoint y personalizar los formularios para agregar y editar datos.

La lista con que estoy trabajando tiene el manejo de versiones activado. (Menú Lista -> Configuración de la lista -> Configuración de versiones)

Normalmente, la única forma de ver los comentarios que se agregan en las versiones es con el menú historial de versiones. Ahora les voy a mostrar cómo enseñar esos campos en el formulario de edición.

Primero abrimos la lista que tiene las versiones activadas con SharePoint Designer 2013 y presionamos el botón Editar columnas.

Seleccionamos la columna que va a tener los comentarios (1) y presionamos el botón Configuración de la columna (2).

En el editor de columnas, marcamos la opción Anexar cambios al contenido existente, luego guardamos todos los cambios a la lista.

Ya podemos cerrar SharePoint Designer, ahora se abre la lista con InfoPath 2013.

Usando Internet Explorer, navegan hasta la lista que desean personalizar y en el menú de Lista presionan el botón Personalizar formulario. Deben tener instalado InfoPath 2013 para que se les habilite este botón.

Deben aceptar el mensaje de que los cambios han cambiado y deben ser actualizados.

Deben borrar el campo viejo de comentarios que ahora va a tener un mensaje que indica que no está asociado a ningún campo.

Y agregar el nuevo campo, que ahora se insertará como un campo de texto y luego una sección que tendrá el historial.

Así es como se ven los comentarios cuando se está editando el formulario:

Y así es como se ve en la vista de elementos:

WebPart de cumpleaños – toma 2

Increíblemente, mi artículo sobre el webpart de cumpleaños es el más popular de mi sitio, así que traigo una versión 2 de ese webpart.

La vista está mostrando los cumpleañeros 10 días antes y 10 días después de la fecha actual, con la diferencia que ahora puedo agregar una imagen al cumpleañero en su día (aunque la imagen no refleja eso 🙂 )

Una de las principales preguntas que me hacen es si puedo hacer una vista que muestre sólo los del mes actual en forma automática, pero de momento no he podido lograrlo.


Primero trabajamos sobre una lista personalizada con las siguientes columnas. Cumple tiene la fecha de cumpleaños con el año actual (no el año en que nació) y Cumpleaños muestra el día y el mes únicamente.


A continuación hay un ejemplo de la lista finalizada.


La columna Cumpleaños es de tipo calculada, con la siguiente fórmula =TEXT(Cumple,”dd/mmmm”).

La fórmula exacta puede varia si tiene el SharePoint en español o en inglés, y la configuración regional del sitio. Mi recomendación es probar varias combinaciones.


Para mostrar los cumpleañeros hice una vista que muestra los cumpleañeros 10 días antes y 10 días después de la fecha actual.

Ordenada por la fecha de cumpleaños.


También pueden variar el rango de días que se muestra, pero no he podido lograr que muestre sólo los del mes actual.

Despues de crear la lista y la vista que muestra los cumpleañeros. Hice dos flujos de trabajo, el primero hace una pausa hasta la fecha de cumpleaños, el día del cumpleaños le pone una imagen (una estrella en este caso) al cumpleañero y detiene el flujo.

Este flujo se activa cuando se crea un elemento y cuando se modifica.


Como estoy usando SharePoint 2007 en este caso, pueden ver en la siguiente imagen como agregué la imagen para señalar el cumpleañero.


Después hice un segundo flujo que borrar la imagen después del cumpleaños y calcula la nueva fecha de cumpleaños, sumándole 1 año. Este flujo hace una pausa de 1 día, porque se va a disparar el mismo día del cumpleaños, cuando el flujo anterior hizo cambios en el elemento.

Uso estos dos flujos para crear un bucle en SharePoint 2007.

La actualización limpia el contenido de la imagen e inserta la nueva fecha de cumpleaños.

 

Asociar el mismo flujo a varias listas de SharePoint

El día de hoy tuve que replicar el mismo flujo de trabajo a listas diferentes, quienes lo han probado, se han dado cuenta que no es tan sencillo como copiar y pegar el flujo, aún en el mismo sitio.

La forma correcta es crear un tipo de contenido y un flujo asociado a ese tipo de contenido, pero en este caso la lista era muy pequeña y no quería hacerlo de esta manera. Así que encontre este post de Nick Grattan y solucionó mi problema:

1. Empezamos por crear un flujo que tenga al menos un paso, una condición y una acción en la lista destino donde deseamos copiar el flujo original. Por ejemplo, hice el siguiente flujo en la lista:

image

2. A continuación se abre SharePoint Designer y en el menú de navegación, seleccionen la opción All Files.

image

2. Después hacen clic en la carpeta de Workflows.

image

3. A continuación expanden el flujo que desean replicar. Voy a replicar el flujo Actualización fecha análisis que esta asociado a la lista de origen,

image

  • El archivo .xoml.wfconfig.xml contiene los datos de asociación de la lista con el flujo.
  • El archivo .xoml contiene las acciones del flujo.
  • El archivo .xoml.rules contiene las condiciones del flujo.

4. Se hace clic derecho sobre el archivo .xoml y seleccionan la opción de abrir como XML.

image

5. Se repite este paso en el flujo destino, y se copian los datos.

6. Se debe copiar tambien el archivo .xoml.rules del flujo original al destino.

7. A continuación recomiendo refrescar la conexión de SharePoint Designer y hay dos opciones

                      a) Presionar el botón de refrescar

image

                       b) Limpiar el caché del SharePoint Designer. Para esto, deben borrar los archivos que están en las siguientes carpetas:

%APPDATA%\Microsoft\Web Server Extensions\Cache

%USERPROFILE%\AppData\Local\Microsoft\WebsiteCache

8. Para terminar, debe abrir el flujo donde copió el contenido de los archivos y presionar el botón Check for errors antes de guardarlo y publicarlo en el sitio.

Tener campos de solo lectura en la vista de editar items en SharePoint

En un tutorial anterior mostré como crear un formulario personalizado para la creación de ítems de listas en SharePoint, usando SharePoint Designer 2010.

Ahora voy mostrarles como tener campos de sólo lectura y campos editables en un nuevo formulario de Edición. Vamos a pasar de este formulario:

image

Al formulario que vamos a crear en este tutorial:

image

 

En mi sitio de SharePoint tengo una lista personalizada para la solicitud de requerimientos. En la siguiente imagen pueden ver encerrados en el cuadro verde los campos que deseo tener de solo lectura (Read-Only) y encerrados con azul los campos que voy a permitir modificar.

image

 

Paso a paso:

1. Nos conectamos al sitio con SharePoint Designer 2010 y hacemos clic en la parte de Lists and Libraries, buscamos la lista que deseamos modificar y hacemos clic en ella.

image_thumb[57]

2. En la sección de Forms hagan clic en el botón New.

Nota: Es preferible trabajar siempre creado nuevas vistas y no modificar las vistas predeterminadas, por si alguna de nuestras modificaciones daña el formulario

image_thumb[55]

3. Escriba el nombre del archivo, seleccione el tipo Edit item form y seleccione la casilla que lo predetermina (Set as default form for the selected type). Presione el botón OK.

image

4. Hacemos clic en el nombre del formulario para abrirlo.

image

5. Vamos a utilizar la vista de código (encerrada por el cuadro rojo) para modificar esta vista, porque utiliza XSLT, aunque para este ejemplo solo ocupamos conocimientos de HTML.

foto1

6. A continuación buscan la plantilla dvt_1.rowedit para modificarla.

image

7. Insertamos un reglón antes del campo que muestra el Detalle corto del requerimiento para poner un título.

image

8. Insertamos otro título antes del campo Solicitante.

image

9. Insertamos el título final antes del campo numero de contratacion asignado.

image

10. A todos los campos que deseamos mostrar como de solo lectura se les debe cambiar el atributo ControlMode. A continuación les muestro el código original:

<td width="400px" valign="top" class="ms-formbody">
       <SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Edit" FieldName="Title" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Title')}"/>
       <SharePoint:FieldDescription runat="server" id="ff1description{$Pos}" FieldName="Title" ControlMode="Edit"/>
</td>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 

Y como debe quedar el código:

<td width="400px" valign="top" class="ms-formbody">
       <SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Display" FieldName="Title" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Title')}"/>
       <SharePoint:FieldDescription runat="server" id="ff1description{$Pos}" FieldName="Title" ControlMode="Display"/>
</td>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

11. Guardamos los cambios y probamos nuestro formulario.

image

Personalizar el formulario de visualización de elementos con SharePoint Designer

Con SharePoint 2010 y SharePoint Designer ahora es muy fácil personalizar los formularios de SharePoint para agregar títulos y separar la información mostrada. Si usan SharePoint 2007, este proceso no es tan sencillo.

En tutorial vamos a ver como modificar la vista creación (NewForm.aspx) de una lista de SharePoint 2010. A continuación les muestro la vista tradicional de SharePoint:

image

Y ahora la vista que vamos a crear en este tutorial:

image

 

En mi sitio de SharePoint tengo una lista personalizada para la solicitud de requerimientos. En la siguiente imagen pueden ver los campos que deseo mostrar en la vista de creación (encerrados por el cuadro verde) y los que están encerrados en el cuadro azul, deseo ocultarlos.

Importante: Si van a ocultar campos de una vista, asegúrense que esos campos NO sean requeridos o que tengan un valor predefinido.

image

 

Paso a paso:

1. Nos conectamos al sitio con SharePoint Designer 2010 y hacemos clic en la parte de Lists and Libraries, buscamos la lista que deseamos modificar y hacemos clic en ella.

image

2. En la sección de Forms hagan clic en el botón New.

Nota: Es preferible trabajar siempre creado nuevas vistas y no modificar las vistas predeterminadas, por si alguna de nuestras modificaciones daña el formulario

image

3. Escriba el nombre del archivo, seleccione el tipo New item form y seleccione la casilla que lo predetermina. Presione el botón OK.

image

4. Haga clic en nombre del formulario para editarlo.image

5. Primero voy a agregar un reglón antes del campo Detalle corto del requerimiento (es el campo Título renombrado).

image

6. Seleccionamos el reglón insertado, buscamos en el menú superior las opciones de Table y unimos las celdas con Merge Cells.

image

7. Escribimos un título para esa sección. Este texto lo pueden formatear como lo deseen.

image

8. Insertamos un reglón arriba del campo del solicitante, para poner un segundo título.

image

9. Después de hacer unir esas celdas, escribo el segundo título de la tabla. Pueden observar que deje un espacio en blanco antes del título, para darle más separación a los datos.

image

10. Por último, selecciono los campos que no deseo mostrar en la vista y los borro.

image

11. Ahora guardamos la vista la probamos desde SharePoint.

image

Crear un flujo que envía un correo electrónico

En este ejemplo, vamos a enviar un flujo usando SharePoint Designer 2007, que envía un correo electrónico cuando se finaliza un incidente de soporte, utilizando una lista de tareas.

1. En el sitio Web de SharePoint, creamos una lista de tareas llamada Solicitudes de Soporte.

2. En este ejemplo, la columna de Estado se renombró a Estado del Soporte, pero esto no es obligatorio, pero si deben recordar cuál columna representan ese valor.

3. A esta lista de tareas, le agregamos un columna llamada EmailCasoResuelto, de tipo Sí o No, con el valor predeterminado en No.

image

4. Abra SharePoint Designer y conéctese al sitio donde creó la lista de tareas haciendo clic en la opción Abrir sitio y escribiendo el URL del mismo.

5. Haga clic en las opciones Archivo –> Nuevo –> Flujo.

image

6. Como nombre del flujo, escriba Soporte- email incidente resuelto.

7. Conéctela a la lista Solicitudes de Servicio creada anteriormente.

8. Seleccione la opción de iniciar el flujo automáticamente cuando cambia un elemento.

9. Presione el botón Siguiente.

image

10. Como primer paso del flujo, agreguemos la acción Comparar campo Solicitudes de Servicio.

11. Deben agregar dos condiciones, que tienen la siguiente lógica:

“Si no se ha enviado el email de finalización de caso

Y si el estado del problema es igual a Resuelto”

image

12. En el botón de Acciones agregan una acción de envío de correo.

13. Puede redactar el correo como ustedes deseen, pero deben recordar que para agregar variables que hagan referencia a valores de la lista, deben usar el botón Add Lookup to Body.

image

14. Para que este flujo no se repita indefinidamente, después de enviar el correo vamos a actualizar la columna EmailCasoResuelto para indicar que ya enviamos el correo y presionan el botón Ok.

a. En este ejemplo también se esta agregando la fecha en que se envió ese correo, en otra columna adicional.

image

15. Presionen el botón Finalizar.

Anteriores Entradas antiguas

A %d blogueros les gusta esto: