UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

101 lines 4.6 kB
// import { encodeDecodeString } from "../../../../logic/Strings/urlServices"; import { encodeDecodeString } from "../../../../logic/Strings/urlServices"; import { ItemHasMinimalDownload, ItemHasMinors, ItemHasNoAttachments, ItemHasNoVersioning, ItemIsAHiddenList, ItemIsASystemList, ItemRequiresCheckout, ItemHasToManyItems, ItemHasLotsOfItems, ItemHasNoItems } from "../../AnyContent/IsA/IFPSItemIsA"; import { SystemListsLC } from "../../source-props/Lists/getVX/SysLists"; import { addItemIsA } from "./addItemIsA"; // addOtherIsAMeta /** * Be sure your list fetch uses the full list of selects here: * src\restAPIs\lists\lists\MinListSelects.ts * MinListSelects | MinIsAListSelects * * WHEN ADDING NEW ListIsAMeta options: * BE SURE TO ADD REQUIRED SELECTS HERE: * src\restAPIs\lists\lists\MinListSelects.ts * MinListSelects | MinIsAListSelects * * @param item * @returns */ export function addListIsAMeta(item) { // ItemRequiresCheckout / RequiresCheckout if (item.ForceCheckout === true) { item = addItemIsA(item, ItemRequiresCheckout); } // ItemHasNoVersioning / VersionsDisabled if (item.BaseTemplate && item.EnableVersioning === false) { // Only found when item.BaseTemplate is found item = addItemIsA(item, ItemHasNoVersioning); } // ItemHasMinors / MinorVersionsEnabled https://github.com/mikezimm/pivottiles7/issues/445 if (item.BaseTemplate && item.EnableMinorVersions === true) { // Only found when item.BaseTemplate is found item = addItemIsA(item, ItemHasMinors); } // ItemHasNoAttachments / AttachmentsDisabled if (item.BaseTemplate === 100 && item.EnableAttachments === false) { // Only found when item.BaseTemplate === 100 item = addItemIsA(item, ItemHasNoAttachments); } // ItemHasMinimalDownload / HasMinimalDownload if (item.EnableMinimalDownload === true) { item = addItemIsA(item, ItemHasMinimalDownload); } // ItemIsAHiddenList / Hidden if (item.Hidden === true) { item = addItemIsA(item, ItemIsAHiddenList); } // export const ItemHasToManyItems: IItemIsAValues = `ItemHasToManyItems`; // export const ItemHasLotsOfItems: IItemIsAValues = `ItemHasLotsOfItems`; // export const ItemHasNoItems: IItemIsAValues = `ItemHasNoItems`; if (item.ItemCount === undefined || item.ItemCount === null) { // Do nothing } else if (item.ItemCount === 0) { item = addItemIsA(item, ItemHasNoItems); } else if (item.ItemCount > 5000) { item = addItemIsA(item, ItemHasToManyItems); } else if (item.ItemCount > 2000) { item = addItemIsA(item, ItemHasLotsOfItems); } // ItemIsASystemList / SystemList if (isThisASystemList(item) === true) { item = addItemIsA(item, ItemIsASystemList); } return item; } export function isThisASystemList(item) { /** 2021-03-01: This section was added due to SystemLists was to large for rest filter :( */ let trimmedTitle = item.Title ? item.Title.toLowerCase() : ''; if (item.BaseTemplate === 100 || item.BaseType === 1) { // SharePoint adds the word 'list' to the Title property of lists trimmedTitle = trimmedTitle.endsWith('list') ? trimmedTitle.slice(0, -4) : trimmedTitle; } if (item.EntityTypeName && SystemListsLC.indexOf(item.EntityTypeName.toLowerCase()) > -1) { return true; } else if (item.EntityTypeName && SystemListsLC.indexOf(encodeDecodeString(item.EntityTypeName.toLowerCase(), 'encode')) > -1) { //Sometimes this comes encoded return true; } else if (item.Title && SystemListsLC.indexOf(item.Title.toLowerCase()) > -1) { return true; } else if (item.Title && SystemListsLC.indexOf(encodeDecodeString(item.Title.toLowerCase(), 'encode')) > -1) { //Sometimes this comes encoded return true; } else if (SystemListsLC.indexOf(trimmedTitle.toLowerCase()) > -1) { return true; } else if (SystemListsLC.indexOf(encodeDecodeString(trimmedTitle.toLowerCase(), 'encode')) > -1) { //Sometimes this comes encoded return true; // 2024-08-15: Added the Style Library title check in because it was in the PivotTiles rest filter and was not sure why. } else if (item.Title === 'Style Library' || (item.Title && item.Title.indexOf('CCSWFHistory') === 0)) { return true; } else { return false; } } //# sourceMappingURL=addListIsAMeta.js.map