@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
151 lines (150 loc) • 5.82 kB
JavaScript
/**
* CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24
* Update:: import { ISimpleLink } to '@mikezimm/fps-core-v7/lib/logic/Links/interfaces/ISimpleLink;'
*/
// import { CurrentOrigin, CurrentPathname } from "../Strings/getSiteCollectionUrlFromLink";
import { CurrentOrigin, CurrentPathname } from "../../components/molecules/source-props/WindowLocationConstants";
export function getBrowser(validTypes, changeSiteIcon) {
let thisBrowser = "";
return thisBrowser;
}
export function amIOnThisWeb(webUrl) {
let result = false;
let ImOnThisWeb = getWebUrlFromLink(null, 'abs');
webUrl = getWebUrlFromLink(webUrl, 'abs');
if (ImOnThisWeb == webUrl) {
result = true;
}
return result;
}
/**
* Takes in full url like from a list or library and tries to trim it down to a web url.
* Only is able to fix some links to common lists, libraries and system pages
* @param SiteLink
* @param absoluteOrRelative
* @returns
*/
export function getWebUrlFromLink(SiteLink, absoluteOrRelative) {
if (!SiteLink || SiteLink === '') {
SiteLink = `${CurrentPathname}`;
}
else {
SiteLink = SiteLink + '';
}
//Remove all search parameters first
if (SiteLink.toLowerCase().indexOf('?') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('?'));
}
if (SiteLink.toLowerCase().indexOf('/sitepages/') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/sitepages/'));
}
if (SiteLink.toLowerCase().indexOf('/documents/') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/documents/'));
}
if (SiteLink.toLowerCase().indexOf('/siteassets/') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/siteassets/'));
}
if (SiteLink.toLowerCase().indexOf('/lists/') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/lists/'));
}
if (SiteLink.toLowerCase().indexOf('/_layouts/') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/_layouts/'));
}
if (SiteLink.toLowerCase().indexOf('/forms/') > 0) {
SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/forms/'));
//Need to take up one more notch
SiteLink = SiteLink.substr(0, SiteLink.lastIndexOf('/'));
}
if (absoluteOrRelative === 'abs') {
if (SiteLink.toLowerCase().indexOf('/sites/') === 0) {
SiteLink = CurrentOrigin + SiteLink;
}
}
else if (absoluteOrRelative === 'rel') {
if (SiteLink.toLowerCase().indexOf(CurrentOrigin) === 0) {
SiteLink = SiteLink.substring(CurrentOrigin.length);
}
}
else {
alert('whoops.... unexpected paramter in getWebUrlFromLink: absoluteOrRelative = ' + absoluteOrRelative);
}
return SiteLink;
}
/**
* getUrlVarsAsObject was copied from Pivot Tiles.... and was called getUrlVars THEIR
* turns url variables into an object where the keys equal the paramters and the value is the value of the paramter
* This was originally from Pivot Tiles
* @returns
*/
export function getUrlVarsAsObject() {
if (!location.search || location.search.length === 0) {
return [];
}
const vars = location.search
.slice(1)
.split('&')
.map(p => p.split('='))
.reduce((obj, pair) => {
const [key, value] = pair.map(decodeURIComponent);
return ({ ...obj, [key]: value });
}, {});
return vars;
}
/**
* getUrlVarsAsStrings was originally: getUrlVars
* turns url variables array of strings like `param=value`;
* This was originally from Pivot Tiles
* @returns
*/
export function getUrlVarsAsStrings() {
if (!location.search || location.search.length === 0) {
return [];
}
const vars = getUrlVarsAsObject();
const params = Object.keys(vars).map(k => { return k + '=' + vars[k]; });
return params;
}
/**
* Returns standard link object with Url and Description
* 2025-02-25: NOTE: This does NOT TRIM the PageURL... and SharePoint Url Columns MUST be trimmed to 255 chars.
* @returns
*/
export function getCurrentPageLink() {
let PageURL = window.location.href;
let PageTitle = PageURL;
if (PageTitle.indexOf('?') > 0) {
PageTitle = PageTitle.substring(0, PageTitle.indexOf('?'));
} //2021-05-10: Removed -1 because page title was missing last character.
let PageLink = {
'Url': PageURL,
'Description': PageTitle.substring(PageTitle.lastIndexOf("/") + 1),
};
return PageLink;
}
/**
* Returns standard link object with Url and Description
* @param TargetList
* @param webTitle
* @returns
*/
export function makeListLink(TargetList, webTitle) {
let targetList = !TargetList ? null : {
'Url': TargetList.indexOf('http') === 0 ? TargetList : CurrentOrigin + TargetList,
'Description': TargetList.replace(CurrentOrigin, '').replace(webTitle, '').replace(webTitle.toLowerCase(), '').replace('/lists', ''),
};
return targetList;
}
/**
* Returns standard link object with Url and Description
* @param TargetSite
* @param webTitle
* @returns
*/
export function makeSiteLink(TargetSite, webTitle) {
let targetSite = !TargetSite ? null : {
'Url': TargetSite && TargetSite.indexOf('http') === 0 ? TargetSite : CurrentOrigin + TargetSite,
'Description': webTitle ? webTitle : TargetSite.replace(CurrentOrigin, ''),
};
return targetSite;
}
//# sourceMappingURL=UrlFunctions.js.map