created/edit network information is all specified on
one simpler form
---
 src/app/controllers/network_controller.rb          |   27 +++++++++++++++----
 src/app/models/bonding.rb                          |    2 +-
 src/app/models/network.rb                          |    2 +-
 src/app/models/nic.rb                              |    2 +-
 src/app/views/network/_form.rhtml                  |   15 +++++++++++
 src/app/views/network/_ip_address_form.rhtml       |    8 +++++-
 .../views/network/edit_network_ip_addresses.rhtml  |   13 ---------
 src/app/views/network/show.rhtml                   |    4 ---
 8 files changed, 46 insertions(+), 27 deletions(-)
 delete mode 100644 src/app/views/network/edit_network_ip_addresses.rhtml

diff --git a/src/app/controllers/network_controller.rb 
b/src/app/controllers/network_controller.rb
index c477c56..2f082a8 100644
--- a/src/app/controllers/network_controller.rb
+++ b/src/app/controllers/network_controller.rb
@@ -55,6 +55,12 @@ class NetworkController < ApplicationController
   end
 
   def create
+    # create the ip address if specified
+    address = params[:ip_address][:address]
+    unless address.nil? || address == ""
+       params[:network][:ip_addresses] = [ IpAddress.new(params[:ip_address]) ]
+    end
+
     alert = svc_create(params[:network])
     render :json => { :object => "network", :success => true, :alert => alert  
}
   end
@@ -68,6 +74,21 @@ class NetworkController < ApplicationController
 
   def update
     alert = svc_update(params[:id], params[:network])
+
+    # create or update the ip address if specified
+    address = params[:ip_address][:address]
+    if !address.nil? && address != ""
+      if params[:ip_address][:id].nil?
+        svc_create_ip_address(params[:ip_address])
+      else
+        svc_update_ip_address(params[:ip_address][:id], params[:ip_address])
+      end
+
+    # delete ip address if not specified
+    elsif params[:ip_address][:id]
+      svc_destroy_ip_address(params[:ip_address][:id])
+    end
+
     render :json => { :object => "network", :success => true, :alert => alert }
   end
 
@@ -92,12 +113,6 @@ class NetworkController < ApplicationController
                       :alert => "Networks were successfully deleted." }
   end
 
-  def edit_network_ip_addresses
-    svc_modify(params[:id])
-    render :layout => 'popup'
-  end
-
-
    ########################## Ip Address related actions
 
   def ip_addresses_json
diff --git a/src/app/models/bonding.rb b/src/app/models/bonding.rb
index 2dd84fa..d63d5fe 100644
--- a/src/app/models/bonding.rb
+++ b/src/app/models/bonding.rb
@@ -35,7 +35,7 @@ class Bonding < ActiveRecord::Base
   belongs_to :host
   belongs_to :bonding_type
   belongs_to :vlan
-  has_many :ip_addresses, :dependent => :destroy
+  has_many :ip_addresses, :dependent => :destroy # FIXME should really be a 
has_one
 
   # FIXME bondings_nics table should just be replaced with
   # bonding_id column in nics table, and relationship changed
diff --git a/src/app/models/network.rb b/src/app/models/network.rb
index 89f9876..22e5692 100644
--- a/src/app/models/network.rb
+++ b/src/app/models/network.rb
@@ -18,7 +18,7 @@
 
 class Network < ActiveRecord::Base
   belongs_to :boot_type
-  has_many :ip_addresses, :dependent => :destroy
+  has_many :ip_addresses, :dependent => :destroy # FIXME should really be a 
has_one
 
   has_and_belongs_to_many :usages, :join_table => 'networks_usages'
 
diff --git a/src/app/models/nic.rb b/src/app/models/nic.rb
index 51425bc..22304e9 100644
--- a/src/app/models/nic.rb
+++ b/src/app/models/nic.rb
@@ -23,7 +23,7 @@ class Nic < ActiveRecord::Base
 
   belongs_to :network
 
-  has_many :ip_addresses, :dependent => :destroy
+  has_many :ip_addresses, :dependent => :destroy # FIXME should really be a 
has_one
 
   # FIXME bondings_nics table should just be replaced with
   # bonding_id column in nics table, and relationship changed
diff --git a/src/app/views/network/_form.rhtml 
b/src/app/views/network/_form.rhtml
index 6c67a0e..f26dc24 100644
--- a/src/app/views/network/_form.rhtml
+++ b/src/app/views/network/_form.rhtml
@@ -34,6 +34,16 @@
                           {:style=>"width:250px;"}  %>
 </div>
 
+<br/>
+
+<div class="form_heading clickable closed">Routing Info</div>
+<div class="network_form_section" style="display:none;">
+<% @parent_type = 'network' %>
+<% @ip_address  = @network.ip_addresses[0] if @network && 
@network.ip_addresses.size > 0 %>
+<%= render :partial => 'ip_address_form',
+           :locals  => { :parent_type => 'network' } %>
+</div>
+
 
 <script type="text/javascript">
 $("#network_type").change(function () {
@@ -43,4 +53,9 @@ $("#network_type").change(function () {
     $("#vlan_options").hide();
   }
 }).trigger('change');
+$('#network_form .form_heading').bind('click', function(e){
+  if(this === e.target){
+    
$(this).toggleClass('open').toggleClass('closed').next().slideToggle('slow');
+  }
+});
 </script>
diff --git a/src/app/views/network/_ip_address_form.rhtml 
b/src/app/views/network/_ip_address_form.rhtml
index a3b3a95..0abc6d9 100644
--- a/src/app/views/network/_ip_address_form.rhtml
+++ b/src/app/views/network/_ip_address_form.rhtml
@@ -15,7 +15,13 @@
 
 
    <div class="static_ip_common_options">
-     <div class="selected_nic_bonding_left">IP Address</div>
+     <div class="selected_nic_bonding_left">
+       <% if @parent_type == 'network' %>
+         Network Address
+       <% else %>
+         Ip Address
+       <% end  %>
+     </div>
      <div class="selected_nic_bonding_right">
        <%= text_field_with_label "", "ip_address", "address" %>
      </div>
diff --git a/src/app/views/network/edit_network_ip_addresses.rhtml 
b/src/app/views/network/edit_network_ip_addresses.rhtml
deleted file mode 100644
index 78d6ad1..0000000
--- a/src/app/views/network/edit_network_ip_addresses.rhtml
+++ /dev/null
@@ -1,13 +0,0 @@
-<%- content_for :title do -%>
-  Edit Network Routing Info
-<%- end -%>
-<%- content_for :description do -%>
-<%- end -%>
-
-<%= render :partial => 'ip_addresses_form',
-           :locals  => { :parent_type => 'network',
-                         :parent_id   =>  @network.id } %>
-
-<div id="ip_addresses_footer" class="popup-content-footer">
-  <%= ok_footer %>
-</div>
diff --git a/src/app/views/network/show.rhtml b/src/app/views/network/show.rhtml
index 02ad25e..d2f02f7 100644
--- a/src/app/views/network/show.rhtml
+++ b/src/app/views/network/show.rhtml
@@ -6,10 +6,6 @@
   <%= link_to image_tag("icon_edit_11px.png") + "Edit",
         {:action => 'edit', :id => @network.id },
          :rel=>"facebox[.bolder]", :class=>"selection_facebox" %>
-
-  <%= link_to image_tag("icon_edit_11px.png") + "Edit Routing Info",
-        {:action => 'edit_network_ip_addresses', :id => @network.id },
-         :rel=>"facebox[.bolder]", :class=>"selection_facebox" %>
 <%- end -%>
 
 <div class="selection_key">
-- 
1.6.0.6

_______________________________________________
Ovirt-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/ovirt-devel

Reply via email to