UNPKG

@mikezimm/fps-core-v7

Version:

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

90 lines (89 loc) 4.58 kB
/** * CodeAnalizerComment: Updated 2 imports on 2024-09-21 23:07:24 * Update:: import { sortObjectArrayByChildNumberKey } to '@mikezimm/fps-core-v7/lib/logic/Arrays/sorting/objects;' * Update:: import { IFPSFileObject } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IFPSFileObject;' */ /** * COPIED FROM PIVOT TILES ON 2023-12-09 */ import { sortObjectArrayByChildNumberKey } from '../../../logic/Arrays/sorting/objects'; import { CurrentHostName } from '../../molecules/source-props/WindowLocationConstants'; // import { CurrentHostName } from "../../../logic/Strings/getSiteCollectionUrlFromLink"; import { getFileTypeIconInfoFromItem } from '../Icons/stdECStorage'; import { createEmptyItemSharingInfo } from './IItemWithSharingInfo'; /** * Extract date in milliseconds from string: https://stackoverflow.com/a/1016908 * @param details details = "\/Date(1618104869979)\/" from SharedWithDetails */ export function getDateFromDetails(details) { const re = /-?\d+/; const m = re.exec(details); const d = new Date(parseInt(m[0])); return d; } export function processSharedItems(items) { const domainEmail = CurrentHostName.replace('.sharepoint', ''); items.map(item => { const itemAsFile = item; const IconInfo = getFileTypeIconInfoFromItem(itemAsFile); if (item.SharedWithDetails) { item.ItemSharingInfo = createEmptyItemSharingInfo(item); item.ItemSharingInfo.SharedEvents = Object.keys(item.ItemSharingInfo.SharedDetails).map((shareKey) => { const keys = shareKey.split('|'); // https://github.com/mikezimm/pivottiles7/issues/258 const detail = item.ItemSharingInfo.SharedDetails[shareKey]; const DateTime = detail.DateTime; const SharedTime = getDateFromDetails(DateTime); const LoginName = detail.LoginName; const parentFolder = item.FileRef ? item.FileRef.substring(0, item.FileRef.lastIndexOf('/')) : ''; // Clarified meta for building SharedEventsTable const meta = ['WasShared',]; if (IconInfo) meta.push(IconInfo.iconSearch); // Added separately just in case IconInfo was null if (item.HasUniqueRoleAssignments === true) meta.push('UniquePermissions'); const sharedWith = keys[2] ? keys[2].replace(domainEmail, '') : 'Unknown'; const sharedBy = LoginName ? LoginName.replace(domainEmail, '') : 'Unknown'; let sharedWithShort = `${sharedWith}`; const sharedByName = sharedBy.split('@')[0]; const sharedByDomain = sharedByName[1].split('.')[0] + '...'; if (sharedWithShort.indexOf(sharedByDomain) > 0) { sharedWithShort = sharedByName.split('@')[0]; } const result = { ...IconInfo, parentFolder: parentFolder, key: shareKey, keys: keys, sharedWith: sharedWith, sharedWithShort: sharedWithShort, sharedBy: sharedBy, sharedByShort: sharedByName, DateTime: DateTime, LoginName: LoginName, TimeMS: SharedTime.getTime(), SharedTime: SharedTime, // Removed these items brought in from Pivot Tiles GUID: item.GUID, odataEditLink: item.odataEditLink, AuthorId: item.AuthorId, Created: item.Created, FileRef: item.FileRef, FileLeafRef: item.FileLeafRef, FileSystemObjectType: item.FileSystemObjectType, Modified: item.Modified, EditorId: item.EditorId, CheckoutUserId: item.CheckoutUserId, id: item.Id, // iconColor: '', Added via IconInfo // iconName: '', // iconTitle: '', // iconSearch: '', meta: meta, }; return result; }); item.ItemSharingInfo.SharedEvents = sortObjectArrayByChildNumberKey(item.ItemSharingInfo.SharedEvents, 'asc', 'TimeMS'); } }); return items; } //# sourceMappingURL=processSharedItems.js.map