SPURL_Cleanup
Ideally, paste a messy URL, and get a cleaner version back
by Steve Cervenak
HTML
Paste full SharePoint URL here:
<br/>
<textarea wrap="soft" id="inputT"></textarea>
<br/>
<span id="CountSpan1">0</span> chars |
<input type="checkbox" id="doEncode"> ReEncode (spaces, etc.)
<input type="checkbox" id="remSmartLinks" checked> Remove "../:u:/r/..."
<input type="checkbox" id="web1checkbox" checked> Add "?web=1"
<input type="button" value="Clean URL" onclick="cleanURL()" style="margin-left:50px;margin-bottom:10px">
<br/>
<textarea id="outputT" wrap="soft" placeholder="updated URL will show here"></textarea>
<br/>
<span id="CountSpan2">0</span> chars |
<a id="testlink" href="#" target="_blank" style="visibility:hidden;">Test Cleaned Link (new window)</a>
<br/><br/>
<p style="font-weight:bold;">
Examples (click to populate URL box)
</p>
<ul...
CSS
#inputT,
#outputT {
color: red;
width: 100%;
height: 5em;
}
#outputT {
color: green;
}
li:hover {
cursor:pointer;
}
#testlink.linkdisabled {
cursor:default;
color:grey;
text-decoration:none;
}
#linkExamples {
font-family:Tahoma;
font-size:8pt
}
JavaScript
// TODO URLs:
//
function cleanURL() {
var originalURL = $("#inputT").val().trim().toLowerCase();
var fileExtentionsForWeb1 = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'vsd', 'txt', 'rtf', 'jpg', 'jpeg', 'gif', 'png', ''];
var indexOfFirstSingleSlash = originalURL.indexOf("/", originalURL.indexOf("//") + 2);
var outURL = originalURL;
var beginURL = originalURL.slice(0, indexOfFirstSingleSlash);
var indexOfQMark = originalURL.indexOf("?");
var isFolderLink = false;
var itemPath = "";
var queryString = "";
if (indexOfQMark > 0) {
queryString = originalURL.slice(indexOfQMark + 1);
console.info("queryString determined to be: '" + queryString + "'");
}
if (originalURL.indexOf("rootfolder=") >= 0) {
console.info("Contains 'RootFolder='...");
isFolderLink = true;
itemPath = originalURL.slice(originalURL.indexOf("rootfolder=") + "RootFolder=".length);
if (itemPath.indexOf("&") > 0) {
itemPath = itemPath.slice(0, itemPath.indexOf("&"));
}
if (itemPath.indexOf("http") == 0) {
outURL = itemPath;
}
else {
outURL = beginURL + itemPath;
}
}
else if (originalURL.indexOf("allitems.aspx?") > 0) {
console.info("Contains 'AllItems.aspx?'...");
isFolderLink = true;
itemPath = originalURL.slice(originalURL.indexOf("allitems.aspx?") + "AllItems.aspx?".length);
var qsps = originalURL.split("?")[1].split("&");
for (var i=0;i < qsps.length;i++) {
if(qsps[i].split("=")[0] == "id") {
itemPath = qsps[i].split("=")[1];
}
}
if (itemPath.toLower().indexOf("http") == 0) {
outURL = itemPath;
}
else {
outURL = beginURL + itemPath;
}
}
else if (originalURL.indexOf("objectUrl=") >= 0) {
console.info("Contains 'objectUrl='...");
itemPath = originalURL.slice(originalURL.indexOf("objectUrl=") + "objectUrl=".length);
if (itemPath.indexOf("&") > 0) {
itemPath = itemPath.slice(0, itemPath.indexOf("&"));
}
if...