Todos los ejemplos, tutoriales y ejercicios de libros, nos enseñan como añadir un botón personalizado a la cinta de opciones de nuestra interfaz Sharepoint, pero siempre usan RegistrationType="List" y RegistrationId="101".
Pero si queremos que un botón aparezca por ejemplo en la página principal o en todas las páginas sin importar de qué tipo sean, ¿qué indicamos en estos campos?
Por otro lado y aunque imagino que habrá algún ejemplo, si quiero poner un botón con opción de desplegable (al estilo del botón "Nuevo elemento" cuando tenemos tipos de contenido en una lista) ¿como lo puedo hacer?
Lo que pretendo hacer es que desde cualquier página de la colección de sitios, se pueda acceder al formulario de nuevo elemento de una lista concreta que usamos como registro de trabajo.
Gracias de antemano por vuestro tiempo y dedicación.
Custom Action Ribbon Control en página principal
Started by Pepe Rubio, abr 07 2011 11:06
5 replies to this topic
#1
Escrito 07 abril 2011 - 11:06
#2
Escrito 07 abril 2011 - 11:18
En cuanto tenga un ratejo te comento Pepe...
Un abrazo,
Un abrazo,
Saludos,
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
#3
Escrito 12 abril 2011 - 16:51
He encontrado una solución parcial a lo que estaba buscando, a través de este enlace.
Añadiendo el control en la masterpage para que se muestre siempre esa barra. Sin embargo no consigo que se muestre dentro del grupo, ni siquiera un botón de prueba. Mi elements.xml es el siguiente:
Muchas gracias.
Añadiendo el control en la masterpage para que se muestre siempre esa barra. Sin embargo no consigo que se muestre dentro del grupo, ni siquiera un botón de prueba. Mi elements.xml es el siguiente:
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="GesTrabajo.Botonera" Location="CommandUI.Ribbon"> <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.Tabs._children"> <Tab Id="GesTrabajo.Ribbon.PestanyaTrabajo" Title="Gestión del trabajo"> <Scaling Id="GesTrabajo.Ribbon.PestanyaTrabajo.Scaling"></Scaling> <Groups Id="GesTrabajo.Ribbon.PestanyaTrabajo.Groups"> <Group Id="GesTrabajo.Ribbon.PestanyaTrabajo.Tareas" Title="Nueva Tarea d ..." Template="GesTrabajo.Ribbon.Templates.PlantillaGrupoTrabajo"> <Controls Id="GesTrabajo.Ribbon.PestanyaTrabajo.Tareas.Controls"> <Button Id="GesTrabajo.Ribbon.PestanyaTrabajo.Tareas.BotonSistemas" Command="GesTrabajo.Scripts.Sistemas" LabelText="Sistemas" TemplateAlias="PlantillaTrabajo"/> </Controls> </Group> </Groups> </Tab> </CommandUIDefinition> <CommandUIDefinition Location="Ribbon.Templates._children"> <GroupTemplate Id="GesTrabajo.Ribbon.Templates.PlantillaGrupoTrabajo"> <Layout Title="OneLargeButton" LayoutTitle="OneLargeButton"> <Section Alignment="Middle" Type="OneRow"> <Row> <ControlRef DisplayMode="Large" TemplateAlias="PlantillaTrabajo"/> </Row> </Section> </Layout> </GroupTemplate> </CommandUIDefinition> </CommandUIDefinitions> <CommandUIHandlers> <CommandUIHandler Command="GesTrabajo.Scripts.Sistemas" CommandAction="javascript:alert('Yehhheheeee');"></CommandUIHandler> </CommandUIHandlers> </CommandUIExtension> </CustomAction> </Elements>¿Alguien puede tirarme un cable?
Muchas gracias.
#4
Escrito 12 abril 2011 - 21:01
La semana que viene te digo algo... :-)
Siento no poder antes, pero es que ando bastante liao con MVC... :-)
Siento no poder antes, pero es que ando bastante liao con MVC... :-)
Saludos,
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
#5
Escrito 15 abril 2011 - 09:15
Buenos días a todos. Finalmente hemos resuelto el problema y ya está disponible nuestra pestaña para todo el sitio raíz. Lo que sucedía era que el Scaling es necesario y precisa de un orden y campos adecuados, nuestro scaling ha quedado del siguiente modo:
Ahora estamos tratando de resolver dos pequeños detalles menores:
El primero es propagar este cambio a los subsitios de la colección. Tenemos un control personalizado añadido a la masterpage, cuya finalidad es habilitar la pestaña donde corresponde, y esto hay que propagarlo a los correspondientes subsitios.
El segundo detalle es un caso particular de la solución usada para mostrar la pestaña. A la pestaña se le ha añadido una clase css que indica que no se muestre para los diálogos modales (s4-notdlg). Esto lo gestiona automáticamente Sharepoint, sin embargo cuando un formulario de nuevo o edición contiene campos de texto largo, al entrar en ellos se muestra una pestaña alternativa con opciones para el texto y en ese momento también aparece la nuestra. Voy a atacar el problema mediante las herramientas de desarrollo de los navegadores, para analizar las clases css aplicadas a cada pestaña, pero en realidad no es tanto problema. Si no más bien una curiosidad que no hace mal pero incomoda.
Si alguien necesita ayuda con esto, que no dude en contactar conmigo, y estaré encantado de ayudar.
Saludos y feliz viernes.
P.D:
Añadiendo la clase s4-notdlg no se muestra en los diálogos modales, todo había sido una mala pasada de la dichosa cache del IE, que además no sirve con borrar manualmente y recargar la página. Había que marcar "Vaciar archivos temporales al cerrar IE" en las Opciones avanzadas de la configuración de Internet Explorer para que se limpie todo.
<Scaling Id="GesTrabajo.Ribbon.PestanyaTrabajo.Scaling"> <MaxSize Id="GesTrabajo.Ribbon.PestanyaTrabajo.MaxSize" Sequence="11" GroupId="GesTrabajo.Ribbon.PestanyaTrabajo.Tareas" Size="OneLargeButton"/> <MaxSize Id="GesTrabajo.Ribbon.PestanyaTrabajo.MaxSize2" Sequence="12" GroupId="GesTrabajo.Ribbon.PestanyaTrabajo.Acciones" Size="OneLargeButton"/> <Scale Id="GesTrabajo.Ribbon.PestanyaTrabajo.Scaling.CustomScale" Sequence="13" GroupId="GesTrabajo.Ribbon.PestanyaTrabajo.Tareas" Size="OneLargeButton"/> <Scale Id="GesTrabajo.Ribbon.PestanyaTrabajo.Scaling.CustomScale2" Sequence="14" GroupId="GesTrabajo.Ribbon.PestanyaTrabajo.Acciones" Size="OneLargeButton"/> </Scaling>
Ahora estamos tratando de resolver dos pequeños detalles menores:
El primero es propagar este cambio a los subsitios de la colección. Tenemos un control personalizado añadido a la masterpage, cuya finalidad es habilitar la pestaña donde corresponde, y esto hay que propagarlo a los correspondientes subsitios.
El segundo detalle es un caso particular de la solución usada para mostrar la pestaña. A la pestaña se le ha añadido una clase css que indica que no se muestre para los diálogos modales (s4-notdlg). Esto lo gestiona automáticamente Sharepoint, sin embargo cuando un formulario de nuevo o edición contiene campos de texto largo, al entrar en ellos se muestra una pestaña alternativa con opciones para el texto y en ese momento también aparece la nuestra. Voy a atacar el problema mediante las herramientas de desarrollo de los navegadores, para analizar las clases css aplicadas a cada pestaña, pero en realidad no es tanto problema. Si no más bien una curiosidad que no hace mal pero incomoda.
Si alguien necesita ayuda con esto, que no dude en contactar conmigo, y estaré encantado de ayudar.
Saludos y feliz viernes.
P.D:
Añadiendo la clase s4-notdlg no se muestra en los diálogos modales, todo había sido una mala pasada de la dichosa cache del IE, que además no sirve con borrar manualmente y recargar la página. Había que marcar "Vaciar archivos temporales al cerrar IE" en las Opciones avanzadas de la configuración de Internet Explorer para que se limpie todo.
#6
Escrito 22 julio 2011 - 11:29
Saludos,
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
0 usuarios están leyendo este tema
0 miembro/s, 0 invitado/s, 0 usuario/s anónimo/s