From bb9f818b817c3e3e79ff1e9de233759a7357107f Mon Sep 17 00:00:00 2001
From: Őry Máté <ory.mate@cloud.bme.hu>
Date: Wed, 12 Nov 2014 12:53:38 +0100
Subject: [PATCH] network: add magic buttons to HostForm

---
 circle/network/forms.py             |  8 +++++---
 circle/network/static/js/network.js | 19 +++++++++++++++++++
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/circle/network/forms.py b/circle/network/forms.py
index 7287488..c0d35a0 100644
--- a/circle/network/forms.py
+++ b/circle/network/forms.py
@@ -21,7 +21,7 @@ from django.utils.translation import ugettext_lazy as _
 
 from crispy_forms.helper import FormHelper
 from crispy_forms.layout import Layout, Fieldset, Div, Submit, BaseInput
-from crispy_forms.bootstrap import FormActions
+from crispy_forms.bootstrap import FormActions, AppendedText
 
 from firewall.models import (Host, Vlan, Domain, Group, Record, BlacklistItem,
                              Rule, VlanGroup, SwitchPort)
@@ -122,8 +122,10 @@ class HostForm(ModelForm):
             Fieldset(
                 _('Network'),
                 'vlan',
-                'ipv4',
-                'ipv6',
+                AppendedText('ipv4',
+                             '<i class="fa fa-magic" id="ipv4-magic"></i>'),
+                AppendedText('ipv6',
+                             '<i class="fa fa-magic" id="ipv6-magic"></i>'),
                 'shared_ip',
                 'external_ipv4',
             ),
diff --git a/circle/network/static/js/network.js b/circle/network/static/js/network.js
index e59d0e8..f106dc5 100644
--- a/circle/network/static/js/network.js
+++ b/circle/network/static/js/network.js
@@ -30,4 +30,23 @@ function getURLParameter(name) {
 
 $(function() {
   $("[title]").tooltip();
+
+$("#ipv6-magic").click(function() {
+    $.ajax({url: window.location,
+            data: {ipv4: $("[name=ipv4]").val(),
+                   vlan: $("[name=vlan]").val()},
+            success: function(data) {
+                       $("[name=ipv6]").val(data["ipv6"]);
+            }});
+});
+$("#ipv4-magic").click(function() {
+    $.ajax({url: window.location,
+            data: {vlan: $("[name=vlan]").val()},
+            success: function(data) {
+                       $("[name=ipv4]").val(data["ipv4"]);
+                       if (!$("[name=ipv6]").val()) {
+                         $("[name=ipv6]").val(data["ipv6"]);
+                       }
+            }});
+});
 });
--
libgit2 0.26.0