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...