Cómo deshabilitar un botón de la cinta cuando se selecciona una carpeta
-
16-10-2019 - |
Pregunta
He añadido un nuevo botón a la cinta de SharePoint para bibliotecas de documentos. Todo esto funciona bien y el botón se activa / desactiva en función del número de elementos seleccionados ... bien!
Quiero mejorar esta desactivando el botón cuando se selecciona una carpeta similar a cómo el estándar de SharePoint 'correo electrónico un enlace' funciona el botón. ¿Alguien puede ofrecer algún consejo sobre la forma de abordar esto? He buscado en Google en todo, pero no he podido encontrar nada.
El código actualmente tengo es el siguiente:
<CustomAction
Id="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Action"
Location="CommandUI.Ribbon"
RegistrationType="ContentType"
RegistrationId="0x0101"
>
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.Documents.Copies.Controls._children">
<Button Id="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Button"
Command="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Button.Command"
Image16by16="/_layouts/images/Muhimbi.PDFConverter/pdf16.gif"
Image32by32="/_layouts/images/Muhimbi.PDFConverter/pdf32.gif"
LabelText="$Resources:ecb_title;"
Sequence="12"
TemplateAlias="o1" />
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler
Command="Muhimbi.SharePoint.DocumentConverter.PDF.Ribbon.Documents.Copies.Controls.ConvertAndDownload.Button.Command"
CommandAction="javascript:window.location='{SiteUrl}/_layouts/Muhimbi.PDFConverter/Convert.aspx?action=ConvertAndDownload&ListId={ListId}&ItemId=' + SP.ListOperation.Selection.getSelectedItems()[0].id + '&Source=' + window.location"
EnabledScript="javascript:function singleEnable()
{
var items = SP.ListOperation.Selection.getSelectedItems();
var ci = CountDictionary(items);
return (ci == 1);
}
singleEnable();" />
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
Solución
Utilice la propiedad fsObjType
:
EnabledScript="javascript:
var items = SP.ListOperation.Selection.getSelectedItems();
(items.length == 1 && items[0].fsObjType == 0);"
Otros consejos
U puede alertar ¿Qué se obtiene cuando se selecciona una carpeta usando SP.ListOperation.Selection.getSelectedItems ();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a sharepoint.stackexchange