Merge pull request #110 from rtfpessoa/improve-history-rewrite

Improve history rewrite
This commit is contained in:
Rodrigo Fernandes 2016-10-15 12:41:52 +01:00 committed by GitHub
commit 04b9b44e92
3 changed files with 57 additions and 25 deletions

View file

@ -452,28 +452,16 @@ $(document).ready(function() {
smartDraw(); smartDraw();
}); });
function smartDraw(urlOpt) {
var url = urlOpt | $url.val();
var req = prepareUrl(url);
draw(req);
}
function updateHash(url) {
window.location.hash = '#!' + url;
}
function bind() { function bind() {
$('#url-btn').click(function(e) { $('#url-btn').click(function(e) {
e.preventDefault(); e.preventDefault();
var url = $url.val(); var url = $url.val();
smartDraw(url); smartDraw(url);
updateHash(url);
}); });
$url.on('paste', function(e) { $url.on('paste', function(e) {
var url = e.originalEvent.clipboardData.getData('Text'); var url = e.originalEvent.clipboardData.getData('Text');
smartDraw(url); smartDraw(url);
updateHash(url);
}); });
} }
@ -527,12 +515,26 @@ $(document).ready(function() {
} }
return { return {
originalUrl: url,
url: fetchUrl, url: fetchUrl,
headers: headers headers: headers
}; };
} }
function smartDraw(urlOpt) {
var url = urlOpt || $url.val();
var req = prepareUrl(url);
draw(req);
}
function draw(req) { function draw(req) {
if (!validateUrl(req.url)) {
console.error("Invalid url provided!");
return;
}
if (!validateUrl(req.originalUrl)) updateUrl(req.originalUrl);
var outputFormat = $outputFormat.val(); var outputFormat = $outputFormat.val();
var showFiles = $showFiles.is(':checked'); var showFiles = $showFiles.is(':checked');
var matching = $matching.val(); var matching = $matching.val();
@ -570,6 +572,20 @@ $(document).ready(function() {
diff2htmlUi.highlightCode(container); diff2htmlUi.highlightCode(container);
}); });
} }
function validateUrl(url) {
return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(url);
}
function updateUrl(url) {
if (window.history.pushState) {
window.history.pushState('', '/', 'url.html?diff=' + url);
} else {
window.location.hash = '';
window.location.search = '?diff=' + url;
}
}
}); });
},{"whatwg-fetch":1}]},{},[2]); },{"whatwg-fetch":1}]},{},[2]);

2
docs/url.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -56,28 +56,16 @@ $(document).ready(function() {
smartDraw(); smartDraw();
}); });
function smartDraw(urlOpt) {
var url = urlOpt | $url.val();
var req = prepareUrl(url);
draw(req);
}
function updateHash(url) {
window.location.hash = '#!' + url;
}
function bind() { function bind() {
$('#url-btn').click(function(e) { $('#url-btn').click(function(e) {
e.preventDefault(); e.preventDefault();
var url = $url.val(); var url = $url.val();
smartDraw(url); smartDraw(url);
updateHash(url);
}); });
$url.on('paste', function(e) { $url.on('paste', function(e) {
var url = e.originalEvent.clipboardData.getData('Text'); var url = e.originalEvent.clipboardData.getData('Text');
smartDraw(url); smartDraw(url);
updateHash(url);
}); });
} }
@ -131,12 +119,26 @@ $(document).ready(function() {
} }
return { return {
originalUrl: url,
url: fetchUrl, url: fetchUrl,
headers: headers headers: headers
}; };
} }
function smartDraw(urlOpt) {
var url = urlOpt || $url.val();
var req = prepareUrl(url);
draw(req);
}
function draw(req) { function draw(req) {
if (!validateUrl(req.url)) {
console.error("Invalid url provided!");
return;
}
if (!validateUrl(req.originalUrl)) updateUrl(req.originalUrl);
var outputFormat = $outputFormat.val(); var outputFormat = $outputFormat.val();
var showFiles = $showFiles.is(':checked'); var showFiles = $showFiles.is(':checked');
var matching = $matching.val(); var matching = $matching.val();
@ -174,4 +176,18 @@ $(document).ready(function() {
diff2htmlUi.highlightCode(container); diff2htmlUi.highlightCode(container);
}); });
} }
function validateUrl(url) {
return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(url);
}
function updateUrl(url) {
if (window.history.pushState) {
window.history.pushState('', '/', 'url.html?diff=' + url);
} else {
window.location.hash = '';
window.location.search = '?diff=' + url;
}
}
}); });