summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCalum Lind <calumlind+deluge@gmail.com>2016-07-19 11:46:53 +0100
committerCalum Lind <calumlind+deluge@gmail.com>2016-07-19 11:50:26 +0100
commitd38b8fc45cad40ebc4c38509619f3fce40ef0b08 (patch)
treed2a876950e2e10c4d1548183906f75c982a0fbdb
parent5f92810f761e7df7b1f03e916535ad8b4ce6c08c (diff)
downloaddeluge-d38b8fc45cad40ebc4c38509619f3fce40ef0b08.tar.gz
deluge-d38b8fc45cad40ebc4c38509619f3fce40ef0b08.tar.bz2
deluge-d38b8fc45cad40ebc4c38509619f3fce40ef0b08.zip
[#2855] [WebUI] Unable to add UDP trackers
-rw-r--r--deluge/ui/web/js/deluge-all/AddTrackerWindow.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/deluge/ui/web/js/deluge-all/AddTrackerWindow.js b/deluge/ui/web/js/deluge-all/AddTrackerWindow.js
index 4d3081d19..b414dedb3 100644
--- a/deluge/ui/web/js/deluge-all/AddTrackerWindow.js
+++ b/deluge/ui/web/js/deluge-all/AddTrackerWindow.js
@@ -1,6 +1,6 @@
/*!
* Deluge.AddTrackerWindow.js
- *
+ *
* Copyright (c) Damien Churchill 2009-2010 <damoxc@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
@@ -31,12 +31,21 @@
*/
Ext.ns('Deluge');
+// Custom VType validator for tracker urls
+var trackerUrlTest = /(((^https?)|(^udp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
+Ext.apply(Ext.form.VTypes, {
+ trackerUrl: function(val, field) {
+ return trackerUrlTest.test(val);
+ },
+ trackerUrlText: 'Not a valid tracker url'
+});
+
/**
* @class Deluge.AddTrackerWindow
* @extends Ext.Window
*/
Deluge.AddTrackerWindow = Ext.extend(Ext.Window, {
-
+
title: _('Add Tracker'),
layout: 'fit',
width: 375,
@@ -52,11 +61,11 @@ Deluge.AddTrackerWindow = Ext.extend(Ext.Window, {
initComponent: function() {
Deluge.AddTrackerWindow.superclass.initComponent.call(this);
-
+
this.addButton(_('Cancel'), this.onCancelClick, this);
this.addButton(_('Add'), this.onAddClick, this);
this.addEvents('add');
-
+
this.form = this.add({
xtype: 'form',
defaultType: 'textarea',
@@ -73,10 +82,10 @@ Deluge.AddTrackerWindow = Ext.extend(Ext.Window, {
onAddClick: function() {
var trackers = this.form.getForm().findField('trackers').getValue();
trackers = trackers.split('\n');
-
+
var cleaned = [];
Ext.each(trackers, function(tracker) {
- if (Ext.form.VTypes.url(tracker)) {
+ if (Ext.form.VTypes.trackerUrl(tracker)) {
cleaned.push(tracker);
}
}, this);