aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEinar Egilsson <einar@einaregilsson.com>2015-05-06 09:57:18 +0000
committerEinar Egilsson <einar@einaregilsson.com>2015-05-06 09:57:18 +0000
commitfc8294bf1ddf135f32815f4c755349a82248063b (patch)
treeee0f9df7f499c86409de1e821a5c89dbb04dbe9e
parentbe112cf431b9c1a507d8cc39ef38f07d77e4996e (diff)
parent191d94f92f1c7746f129faeb84f3eb79bece0144 (diff)
Merge pull request #11 from Gitoffthelawn/patch-2
Update redirector-ui.js
-rw-r--r--chrome/js/redirector-ui.js30
1 files changed, 28 insertions, 2 deletions
diff --git a/chrome/js/redirector-ui.js b/chrome/js/redirector-ui.js
index 49526e3..3c03128 100644
--- a/chrome/js/redirector-ui.js
+++ b/chrome/js/redirector-ui.js
@@ -62,6 +62,30 @@ function validateRedirect(redirect) {
return true;
}
+function validateRedirectForTest(redirect) {
+ if (!/^\s*$/.test(redirect.exampleUrl)) {
+ var result = redirect.getMatch(redirect.exampleUrl);
+ if (!result.isMatch) {
+ return true;
+ } else {
+ var resultUrl = result.redirectTo;
+ if (!resultUrl.match(/https?:/)) {
+ var uri = IOService.newURI(redirect.exampleUrl, null, null);
+ resultUrl = uri.resolve(resultUrl);
+ }
+
+ var secondResult = redirect.getMatch(resultUrl);
+ if (secondResult.isMatch) {
+ title = tr('errorExampleUrlMatchesRecursiveTitle');
+ msg = tr('errorExampleUrlMatchesRecursive', [redirect.exampleUrl, resultUrl]);
+ alert(title, msg);
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
function trPlural(name, count) {
name += count == 1 ? 'Singular' : '';
return strings.formatStringFromName(name, [count],1);
@@ -134,10 +158,12 @@ function databind() {
for (var i = 0; i < Redirector.redirectCount; i++) {
var redirect = Redirector.getRedirectAt(i);
var node = $(template);
+ node.find('.description').html(redirect.description);
node.find('.pattern').html(redirect.includePattern);
node.find('.redirectTo').html(redirect.redirectUrl);
node.find('.exampleUrl').html(redirect.exampleUrl);
node.find('.redirectResult').html(redirect.getMatch(redirect.exampleUrl).redirectTo);
+ if (redirect.disabled) { node.find('.disabled').html('[Disabled] '); }
node.appendTo('#redirect-list');
node.data('redirect', redirect);
}
@@ -182,7 +208,7 @@ function controlsToRedirect(redirect) {
redirect.description = $('#description').val();
redirect.exampleUrl = $('#example-url').val();
redirect.redirectUrl = $('#redirect-to').val();
- redirect.disabled = !$('#redirect-enabled').attr('checked');
+ redirect.disabled = !$('#redirect-enabled').attr('checked');
redirect.unescapeMatches = $('#unescape-matches').attr('checked');
redirect.escapeMatches = $('#escape-matches').attr('checked');
return true;
@@ -225,7 +251,7 @@ function testPattern() {
return;
}
var extName = tr('extensionName');
- if (!validateRedirect(redirect)) {
+ if (!validateRedirectForTest(redirect)) {
return;
}
var result = redirect.test();