@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
123 lines (83 loc) • 4.73 kB
text/typescript
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;
}