Skip to content

Commit d21db12

Browse files
author
jay7958
committed
Add endpoint fixes: port number was truncated, multiple endpoints were not correctly added to related form.
1 parent aefdd3b commit d21db12

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

dojo/forms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ def __init__(self, *args, **kwargs):
585585
def clean(self):
586586
from django.core.validators import URLValidator, validate_ipv46_address
587587

588-
port_re = "(:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])"
588+
port_re = "(:[0-9]{1,5}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])"
589589
cleaned_data = super(EditEndpointForm, self).clean()
590590

591591
if 'host' in cleaned_data:
@@ -682,7 +682,7 @@ def save(self):
682682
def clean(self):
683683
from django.core.validators import URLValidator, validate_ipv46_address
684684

685-
port_re = "(:[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])"
685+
port_re = "(:[0-9]{1,5}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])"
686686
cleaned_data = super(AddEndpointForm, self).clean()
687687

688688
if 'endpoint' in cleaned_data and 'product' in cleaned_data:

dojo/static/dojo/js/index.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,35 @@ $(function () {
3838

3939
});
4040

41+
function dismissAddAnotherPopupDojo(win, newId, newRepr) {
42+
// newId and newRepr are expected to have previously been escaped by
43+
// django.utils.html.escape.
44+
newId = html_unescape(newId);
45+
newRepr = html_unescape(newRepr);
46+
var name = windowname_to_id(win.name);
47+
var elem = document.getElementById(name);
48+
var o;
49+
if (elem) {
50+
var elemName = elem.nodeName.toUpperCase();
51+
if (elemName == 'SELECT') {
52+
o = new Option(newRepr, newId);
53+
elem.options[elem.options.length] = o;
54+
o.selected = true;
55+
} else if (elemName == 'INPUT') {
56+
if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) {
57+
elem.value += ',' + newId;
58+
} else {
59+
elem.value = newId;
60+
}
61+
}
62+
} else {
63+
var toId = name + "_to";
64+
o = new Option(newRepr, newId);
65+
SelectBox.add_to_cache(toId, o);
66+
SelectBox.redisplay(toId);
67+
}
68+
}
69+
4170
function punchcard(element, data, ticks) {
4271
var d1 = data;
4372
var options = {

dojo/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4570,8 +4570,9 @@ def add_endpoint(request, pid):
45704570
if '_popup' in request.GET:
45714571
resp = ''
45724572
for endpoint in endpoints:
4573-
resp += '<script type="text/javascript">opener.dismissAddAnotherPopup(window, "%s", "%s");</script>' \
4573+
resp += '<script type="text/javascript">opener.dismissAddAnotherPopupDojo(window, "%s", "%s");</script>' \
45744574
% (escape(endpoint._get_pk_val()), escape(endpoint))
4575+
resp += '<script type="text/javascript">window.close();</script>'
45754576
return HttpResponse(resp)
45764577

45774578
return render(request, template, {

0 commit comments

Comments
 (0)