Evitar resultados de cache en las llamadas REST a SharePoint (HTTP 304)

Por defecto, si el contenido que estamos obteniendo no ha cambiado, obtendrá la respuesta de la cache del navegador, dándonos un código HTTP 304 (Not Modified). Un ejemplo en el que nos puede dar problemas es si trabajamos con una query para obtener una lista en SharePoint y utilizamos el $expand para incluir tambien los …

Sigue leyendo Evitar resultados de cache en las llamadas REST a SharePoint (HTTP 304)

Ordenar Array de objetos por property de texto (Título, etc) en Typescript

Si tenemos un array de objetos con multiples propiedades, podemos ordenarlo en base a una de sus propiedades de tipo texto, como puede ser, en muchos casos, el título. Utilizaremos la funcion "sort" comparando los títulos con "localeCompare", de la siguiente manera: let orderedArray = myOriginalArray.sort((a, b) => a.Title.localeCompare(b.Title));

Obtener y filtrar listas de SharePoint en SPFx con @pnp/sp

Con la libreria SP de PNP podemos obtener facilmente las listas de un site de SharePoint y filtrarlas, un ejemplo de una función que podemos incluir en nuestro código y reutilizarla en función del contexto. Primero deberéis instalar la librería @pnp/sp import { Web } from "@pnp/sp"; const getLists = async(webUrl: string, selectProperties: string[], expandProperties: …

Sigue leyendo Obtener y filtrar listas de SharePoint en SPFx con @pnp/sp

Controlar OnLoad para detectar la URL de navegación dentro de un iframe

Si queremos detectar cuando nuestro iframe cambia de página debemos sobreescribir el evento onLoad. Es importante que una vez capturemos esa navegación volvamos a aplicar el pushState por defecto para que el navegador tenga constancia del histórico. Ejemplo: <iframe onLoad { () => { const pushState = () => {              const defaultPushState = iframeContentRef.contentWindow.history.pushState; return function (data: any, title: string, url?: string | null) { //YOUR CODE return defaultPushState.apply(this, [data, title, url]); };            };            iframeContentRef.contentWindow.history.pushState = pushState();      }}             src={IFRAME_URL}>          </iframe>

Normalizar acentos en Javascript (y Typescript)

Si necesitamos normalizar palabras en nuestro código (por ejemplo, para usar keywords de búsqueda) existen multiples soluciones dependiendo de si utilizamos ES6 o no. Si usamos ES6 bastará con utilizar la funcion "normalize" incluida en String. Usando el parámetro "NFD" automáticamente dividirá cada letra con acento en dos ("á" pasaría a ser "a´"), de forma …

Sigue leyendo Normalizar acentos en Javascript (y Typescript)

Añadir estilos en un WebPart SPFx para los temas de Teams (Default, Dark, High Contrast)

Primero debemos añadir un bloque de código a ejecutar en el inicio de nuestro componente que se encargará de añadir un parametro que nos permitirá identificar en que tema estamos. Utilizaremos el contexto actual (puede ser this.context, this.props.context, props.context... dependiendo de cómo desarrolleis el componente). En mi caso trabajamos con React Function Components, y pasamos …

Sigue leyendo Añadir estilos en un WebPart SPFx para los temas de Teams (Default, Dark, High Contrast)

Configurar Microsoft Graph API en SPFx

Primer paso: Añadir el recurso en package-solution (Resource y Scope): { "$schema": "https://dev.office.com/json-schemas/spfx-build/package-solution.schema.json", "solution": { "name": "spfx-package", "id": "8s13d6v9-d221-468d-22e4-2d207b966cd2", "version": "1.0.0.0", "includeClientSideAssets": true, "skipFeatureDeployment": true, "webApiPermissionRequests": [ { "resource": "Microsoft Graph", "scope": "User.ReadBasic.All" } ] }, "paths": { "zippedPackage": "solution/spfx-package.sppkg" } Segundo Paso: Aprobar los permisos desde el Admin Center de nuestro tenant (Advanced -> …

Sigue leyendo Configurar Microsoft Graph API en SPFx

Subir Fichero en SharePoint Online desde SPFx via JSOM (React + Typescript)

Podemos subir un fichero (Hasta un máximo de 2Mb) desde nuestro Client WebPart en SharePoint Framework a través de JSOM. Para ello debemos añadir un fichero, procesarlo e incluirlo en la librería, siguiendo estos pasos:   Debemos obtener el fichero que queremos subir, ya sea mediante alguna librería de terceros (como dropzone.js) o con un …

Sigue leyendo Subir Fichero en SharePoint Online desde SPFx via JSOM (React + Typescript)

Subir Fichero a una Carpeta en SharePoint Online desde SPFx via JSOM (React + Typescript)

Para saber como subir un fichero a una librería de SharePoint podéis seguir el anterior post donde se explica paso a paso: Subir Fichero en SharePoint Online desde SPFx (React + Typescript) Para subirlo al Root Folder hacemos: let fileToUpload = docs.get_rootFolder().get_files().add(fci); Si queremos subirlo a una carpeta, podemos simplemente navegar hasta ella antes de añadir …

Sigue leyendo Subir Fichero a una Carpeta en SharePoint Online desde SPFx via JSOM (React + Typescript)