@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
101 lines • 4.6 kB
JavaScript
// 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