apply.html 6.73 KB
Newer Older
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
1 2
{% extends "base.html" %}
{% load i18n %}
3

4 5
{% block title %}
	{% if edit %}
6
		{% trans "Edit Rule" %} {{form.data.name}}
7
	{% else %}
8
		{% trans "Create new Rule" %}
9 10 11 12 13
	{% endif %}
{% endblock %}

{% block breadcrumbs %}:: 
	{% if edit %}
14
		{% trans "Edit rule" %} {{form.data.name}}
15
	{% else %}
16
	{% trans "Create rule" %}
17 18
	{% endif %}
		{% endblock %}
19 20 21 22 23 24 25 26
{% block extrahead %}
<script>
	$(document).ready( function(){
		
		$("#id_sourceport").css('width', '100px').attr('size', '5');
		$("#id_port").css('width', '100px').attr('size', '5');
		$("#id_destinationport").css('width', '100px').attr('size', '5');
		$('#id_then').attr("multiple", "");
27
		$( "#id_expires" ).datepicker({ dateFormat: 'yy-mm-dd' , maxDate: '+10d', minDate: '+1d', changeMonth: false, changeYear: false }).datepicker( $.datepicker.regional[ "el" ] );
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
		$('#then_diag').dialog({
			height: 220,
            width: 340,
			modal: true,
			autoOpen: false,
			buttons: {
		'Add': function() {
			console.log($("#add_rl_form").serialize());
			$.ajax({
			url:"{% url add-rate-limit %}", 
			data:$("#add_rl_form").serialize(),
			type: "POST",
			cache: false,
			success:function(data){
					try {
						value = data.pk;
						text = data.value;
						$('#id_then').append($("<option></option>").attr("value",value).text(text));
						$('#then_diag').dialog('close');
					}
					catch (exception) {
						$('#then_diag').html(data);
					}					
				}
				});
		},
		Cancel: function() {
			$('#then_diag').dialog('close');
		}
	}
		});
		
		$('#port_diag').dialog({
			height: 220,
            width: 340,
			modal: true,
			autoOpen: false,
			buttons: {
		'Add': function() {
			console.log($("#add_port_form").serialize());
			$.ajax({
			url:"{% url add-port %}", 
			data:$("#add_port_form").serialize(),
			type: "POST",
			cache: false,
			success:function(data){
					try {
						value = data.value;
						text = data.text;
						$('#id_port').append($("<option></option>").attr("value",value).text(text));
						$('#id_destinationport').append($("<option></option>").attr("value",value).text(text));
						$('#id_sourceport').append($("<option></option>").attr("value",value).text(text));
						$('#port_diag').dialog('close');
					}
					catch (exception) {
						$('#port_diag').html(data);
					}					
				}
				});
		},
		Cancel: function() {
			$('#port_diag').dialog('close');
		}
	}
		});
		
		
		$("#new_then_actions").button({
            icons: {
                primary: "ui-icon-plusthick"
            },
			})
			.click(function(){
				$.ajax({
					url: "{% url add-rate-limit %}",
					cache: false,
					success: function(data){
						$("#then_diag").html(data);
					}
				});
				$('#then_diag').dialog('open');
				return false;
			});
			
			
			$(".new_port").button({
            icons: {
                primary: "ui-icon-plusthick"
            },
			})
			.click(function(){
				$.ajax({
					url: "{% url add-port %}",
					cache: false,
					success: function(data){
						$("#port_diag").html(data);
					}
				});
				$('#port_diag').dialog('open');
				return false;
			});
129 130 131 132 133 134 135 136 137
			
		$("#portsacc").accordion({
			collapsible: true,
			active: false,

		});
		
		$("#applybutton").button();

138 139 140 141
		});
		
</script>
{% endblock %}
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
142 143 144 145 146 147 148 149
{% block content %}
<style type="text/css">
th {
	text-align: right;
	padding-right: 0.5em;
	vertical-align: top;
}

150 151 152 153
.accord_wrapper{
	height: 100% !important;
} 

Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
154 155 156 157 158 159
.help {
	font-style: italic;

}
</style>
<div align="center">
160
	{% if edit %}
161
	<h3>{% trans "Edit rule" %}: {{form.data.name}}</h3>
162
	{% else %}
163
<h3>{% trans "Apply for a new rule" %}</h3>
164
{% endif %}
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
165 166
<form method="POST">
{% csrf_token %}
167
{% load unescape %}
168
{% if form.non_field_errors %}
169
<p class="error">{{ form.non_field_errors|unescape}}</p>
170
{% endif %}
171 172

<fieldset {% if edit %} style="display:none;" {% endif %}>
173
	<legend>{% trans "Rule Basic Info" %}</legend>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
174
<table>
175
<tr><th>{{ form.name.label_tag }}</th><td>{{ form.name }}<span class="error">{{ form.name.errors|join:", " }}</span></td></tr>
176
<tr class="help"><td></td><td>A unique identifier will be added as a name_suffix</td></tr>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
177 178 179 180
</table>
</fieldset>

<fieldset>
181
<legend>{% trans "Rule Match Conditions" %}</legend>
182
<table>
183
<input type="hidden" id="id_applier" name="applier" value="{{applier}}"/>
184 185 186 187
<tr><th>{{ form.source.label_tag }}</th><td>{{ form.source }}<span class="error">{{ form.source.errors|join:", " }}</span></td></tr>
<tr class="help"><td></td><td>{{ form.source.help_text }}</td></tr>
<tr><th>{{ form.destination.label_tag }}</th><td>{{ form.destination }}<span class="error">{{ form.destination.errors|join:", " }}</span></td></tr>
<tr class="help"><td></td><td>{{ form.destination.help_text }}</td></tr>
188 189 190 191 192 193 194 195
</table>
<div id='portsacc' style="width: 500px;">
	<h3 style="padding: 0.5em 0.5em 0.5em 0.7em;">Advanced Settings (Ports)</h3>
	<div class='accord_wrapper' style="height: 100% !important;">
	Select source/destination port(s), or select common port(s) for both source/destination
<table>
<tr><th>{{ form.sourceport.label_tag }}</th><td>{{ form.sourceport }}&nbsp;&nbsp;<button class="new_port">Port</button><span class="error">{{ form.sourceport.errors|join:", " }}</span></td></tr>
<tr class="help"><td></td><td>{{ form.sourceport.help_text }}</td></tr>
196
<tr><th>{{ form.destinationport.label_tag }}</th><td>{{ form.destinationport }}&nbsp;&nbsp;<button class="new_port">Port</button><span class="error">{{ form.destinationport.errors|join:", " }}</span></td></tr>
197
<tr class="help"><td></td><td>{{ form.destinationport.help_text }}</td></tr>
198
<tr><th>{{ form.port.label_tag }}</th><td>{{ form.port }}&nbsp;&nbsp;<button class="new_port">Port</button><span class="error">{{ form.port.errors|join:", " }}</span></td></tr>
199
<tr class="help"><td></td><td>{{ form.port.help_text }}</td></tr>
200
</div>
201
</table>
202
</div>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
203 204
</fieldset>
<fieldset>
205
<legend>{% trans "Rule Actions" %}</legend>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
206
<table>
207
<tr><th>{{ form.then.label_tag }}</th><td>{{ form.then }}&nbsp;&nbsp;<button id="new_then_actions">Rate-limit</button><span class="error">{{ form.then.errors|join:", " }}</span></td></tr>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
208 209 210
</table>
</fieldset>
<fieldset>
211 212 213 214 215 216
<legend>{% trans "Expiration" %}</legend>
<table>
<tr><th>{{ form.expires.label_tag }}</th><td>{{ form.expires }}<span class="error">{{ form.expires.errors|join:", " }}</span></td></tr>
</table>
</fieldset>
<fieldset>
217
<legend>{% trans "Use/Comments" %}</legend>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
218
{% blocktrans %}
219
<p>Give a short description of the intended use of this rule, that justifies the parameter selection above. Feel free to include any additional comments.</p>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
220
{% endblocktrans %}
221 222
<p>{{ form.comments }}
{% if form.errors %}<br /><span class="error">{{ form.comments.errors|join:", " }}</span>{% endif %}
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
223 224 225
</p>
</fieldset>

226
<p><input type="submit" id="applybutton" value="{% trans "Apply" %}" /></p>
Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
227 228
</form>
</div>
229

230 231 232 233 234 235
<div id="then_diag" title="Add new rate-limit value">
</div>

<div id="port_diag" title="Add new port">
</div>

Leonidas Poulopoulos's avatar
Leonidas Poulopoulos committed
236
{% endblock %}