UNPKG

@mikezimm/npmfunctions

Version:
123 lines (83 loc) 4.73 kB
import { Web, Items, } from '@pnp/sp/presets/all'; import { getHelpfullErrorV2, saveThisLogItem } from '../Logging/ErrorHandler'; import { getExpandColumns, getSelectColumns, IZBasicList, IPerformanceSettings, createFetchList, } from '../../Lists/getV1/getFunctions'; import { IRailAnalytics } from '../Arrays/grouping'; import { getFullUrlFromSlashSitesUrl } from '../Strings/urlServices'; import { fetchAnalytics } from './fetch'; import { msPerDay } from '../Time/constants'; import { getBrowser, amIOnThisWeb, getWebUrlFromLink, getUrlVars, } from '../Logging/LogFunctions'; import { getCurrentPageLink, makeListLink, makeSiteLink, } from '../Logging/LogFunctions'; import * as AL from './constants'; /** * Be sure to update your analyticsList and analyticsWeb in en-us.js strings file */ export const ApplyTemplate_Rail_SaveTitle = 'Apply Template Rail'; export const ApplyTemplate_Page_SaveTitle = 'Apply Template Page'; export const ProvisionListsSaveTitle = 'Provision Lists'; export async function saveAnalytics ( analyticsWeb: string, analyticsList: string, SiteLink: any, webTitle: string, saveTitle: string, TargetSite: any, TargetList: any, itemInfo1: string, itemInfo2: string, result: string, RichTextJSON1: any, Setting: string, RichTextJSON2: any, RichTextJSON3: any, ) { //Do nothing if either of these strings is blank if (!analyticsList) { return ; } if (!analyticsWeb) { return ; } let saveItem: any ={ Title: saveTitle, Result: result, PageLink: getCurrentPageLink(), }; let startTime = getTheCurrentTime(); saveItem.zzzText1 = startTime.now; saveItem.zzzText2 = startTime.theTime; let TargetListValues = TargetList ? TargetList.split('|') : [null]; saveItem.getParams = getUrlVars().join(' & '); saveItem.Setting = Setting; // console.log('saveAnalytics StringifyActionJson: ', RichTextJSON1, RichTextJSON2, RichTextJSON3 ); saveItem.zzzRichText1 = RichTextJSON1 ? JSON.stringify(RichTextJSON1) : null; saveItem.zzzRichText2 = RichTextJSON2 ? JSON.stringify(RichTextJSON2) : null; saveItem.zzzRichText3 = RichTextJSON3 ? JSON.stringify(RichTextJSON3) : null; if ( analyticsList === AL.EasyContentsRailsGroups || analyticsList === AL.EasyContentsRailsApply || analyticsList === AL.PermissionsHistory ) { //Rails Off saveItem.ListTitle = itemInfo1; let infos2 = itemInfo2 ? itemInfo2.split('|') : [ ]; saveItem.zzzText3 = infos2[0]; saveItem.zzzText7 = infos2[1] ? parseInt(infos2[1]) < 10 ? '0' + infos2[1] : infos2[1] : null ; //stepOrder saveItem.zzzNumber4 = infos2[2] ? parseInt( infos2[2] ) : null ; saveItem.zzzNumber5 = infos2[3] ? parseInt( infos2[3] ) : null ; saveItem.zzzText1 = infos2[4] ? infos2[4] : null ; saveItem.zzzText4 = infos2[5] ? infos2[5] : null; let tempSite = TargetSite ? TargetSite.split('|') : []; TargetSite = tempSite[0] ? tempSite[0] : null; saveItem.WebID = tempSite[1] ? tempSite[1] : null; saveItem.CollectionUrl = tempSite[2] ? tempSite[2] : null; saveItem.SiteID = tempSite[3] ? tempSite[3] : null; saveItem.zzzText5 = saveItem.SiteID; //Add List ID if it's available if ( TargetListValues.length > 0 && TargetListValues[1] ) { saveItem.ListID = TargetListValues[1] ; } let tempTitle = saveTitle.split('|'); saveItem.zzzText6 = tempTitle[1] ? tempTitle[1] : null;//Get scope - site or list } else { saveItem.zzzText3 = itemInfo1; saveItem.zzzText4 = itemInfo2; } SiteLink = getWebUrlFromLink( SiteLink , 'abs'); if ( webTitle === '' || !webTitle ) { saveItem.SiteTitle = SiteLink.substring(SiteLink.lastIndexOf("/") + 1); } saveItem.SiteLink = { 'Url': SiteLink && SiteLink.indexOf('http') === 0 ? SiteLink : window.location.origin + SiteLink, 'Description': saveItem.SiteTitle , }; saveItem.TargetSite = TargetSite ? makeSiteLink( TargetSite, saveItem.SiteTitle ) : null ; saveItem.TargetList = TargetList ? makeListLink( TargetListValues[0], webTitle ) : null; saveThisLogItem( analyticsWeb + '', analyticsList + '', saveItem ); } export function getTheCurrentTime () { const now = new Date(); const theTime = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "." + now.getMilliseconds(); let result : any = { 'now': now, 'theTime' : theTime, 'milliseconds' : now.getMilliseconds(), }; return result; }