Ir a contenido


MENSAJE DE BIENVENIDA Foro vínculado con Twitter, más info aquí.

“El secreto para progresar es empezar por algún lugar. El secreto para empezar por algún lugar es fragmentar tus complejas y abrumadoras tareas de tal manera que queden convertidas en pequeñas tareas que puedas realizar y entonces simplemente comenzar por la primera.” - Mark Twain

Foto

Custom Action Ribbon Control en página principal


  • Please log in to reply
5 replies to this topic

#1 Pepe Rubio

Pepe Rubio

    Nuevo

  • Miembros
  • Pip
  • 9 Mensajes:

Escrito 07 abril 2011 - 11:06

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.

#2 Alberto Dominguez

Alberto Dominguez

    Gurú

  • Administradores
  • 1.059 Mensajes:
  • LocationMadrid

Escrito 07 abril 2011 - 11:18

En cuanto tenga un ratejo te comento Pepe...

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
Imagen enviadaPerfil Profesional Imagen enviadaTwitter
Imagen enviadaImagen enviadaImagen enviadaImagen enviada

#3 Pepe Rubio

Pepe Rubio

    Nuevo

  • Miembros
  • Pip
  • 9 Mensajes:

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:
<?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 Alberto Dominguez

Alberto Dominguez

    Gurú

  • Administradores
  • 1.059 Mensajes:
  • LocationMadrid

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... :-)
Saludos,

Alberto Dominguez

Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Imagen enviadaPerfil Profesional Imagen enviadaTwitter
Imagen enviadaImagen enviadaImagen enviadaImagen enviada

#5 Pepe Rubio

Pepe Rubio

    Nuevo

  • Miembros
  • Pip
  • 9 Mensajes:

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:

<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 Alberto Dominguez

Alberto Dominguez

    Gurú

  • Administradores
  • 1.059 Mensajes:
  • LocationMadrid

Escrito 22 julio 2011 - 11:29

Dejo link interesante con información al respecto:

http://www.sharepoin...ating-tabs.html
Saludos,

Alberto Dominguez

Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Imagen enviadaPerfil Profesional Imagen enviadaTwitter
Imagen enviadaImagen enviadaImagen enviadaImagen enviada




0 usuarios están leyendo este tema

0 miembro/s, 0 invitado/s, 0 usuario/s anónimo/s