Merge pull request #110 from rtfpessoa/improve-history-rewrite
Improve history rewrite
This commit is contained in:
commit
04b9b44e92
3 changed files with 57 additions and 25 deletions
40
docs/url.js
40
docs/url.js
|
|
@ -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
2
docs/url.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue