This is just a rough initial form, with validation. Still needs to be wrapped with js, redirect you to the right place, and check with deltacloud api to validate url.
Also adds providers to left nav area.
Signed-off-by: Jason Guiditta jason.guiditta@gmail.com --- src/app/controllers/application_controller.rb | 6 +++++- src/app/controllers/provider_controller.rb | 20 ++++++++++++++++++++ src/app/helpers/provider_controller_helper.rb | 2 ++ src/app/views/layouts/_navigation_tabs.rhtml | 4 +++- src/app/views/layouts/dcloud.rhtml | 9 ++++++++- src/app/views/provider/delete.html.erb | 2 ++ src/app/views/provider/index.html.erb | 2 ++ src/app/views/provider/new.html.erb | 11 +++++++++++ src/app/views/provider/show.html.erb | 2 ++ src/public/stylesheets/dcloud.css | 8 ++++++++ 10 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 src/app/controllers/provider_controller.rb create mode 100644 src/app/helpers/provider_controller_helper.rb create mode 100644 src/app/views/provider/delete.html.erb create mode 100644 src/app/views/provider/index.html.erb create mode 100644 src/app/views/provider/new.html.erb create mode 100644 src/app/views/provider/show.html.erb create mode 100644 src/public/stylesheets/dcloud.css
diff --git a/src/app/controllers/application_controller.rb b/src/app/controllers/application_controller.rb index 973b4fb..4cc8192 100644 --- a/src/app/controllers/application_controller.rb +++ b/src/app/controllers/application_controller.rb @@ -28,7 +28,7 @@ class ApplicationController < ActionController::Base init_gettext "ovirt" layout :choose_layout
- before_filter :is_logged_in, :get_help_section + before_filter :is_logged_in, :get_help_section, :get_nav_items
# General error handlers, must be in order from least specific # to most specific @@ -65,6 +65,10 @@ class ApplicationController < ActionController::Base (ENV["RAILS_ENV"] == "production") ? session[:user] : "ovirtadmin" end
+ def get_nav_items + @providers = Provider.find(:all) + end + protected # permissions checking
diff --git a/src/app/controllers/provider_controller.rb b/src/app/controllers/provider_controller.rb new file mode 100644 index 0000000..09ed19f --- /dev/null +++ b/src/app/controllers/provider_controller.rb @@ -0,0 +1,20 @@ +class ProviderController < ApplicationController + def index + @providers = Provider.find(:all) + end + + def show + end + + def new + @provider = Provider.new(params[:provider]) + if request.post? && @provider.save + flash[:notice] = "Provider added." + redirect_to :action => "index" + end + end + + def delete + end + +end diff --git a/src/app/helpers/provider_controller_helper.rb b/src/app/helpers/provider_controller_helper.rb new file mode 100644 index 0000000..55514eb --- /dev/null +++ b/src/app/helpers/provider_controller_helper.rb @@ -0,0 +1,2 @@ +module ProviderControllerHelper +end diff --git a/src/app/views/layouts/_navigation_tabs.rhtml b/src/app/views/layouts/_navigation_tabs.rhtml index 2fe2ee8..2791132 100644 --- a/src/app/views/layouts/_navigation_tabs.rhtml +++ b/src/app/views/layouts/_navigation_tabs.rhtml @@ -1,4 +1,5 @@ -<% if controller.controller_name == "hardware" %> +<% if 1 ==2 %> +<% if controller.controller_name == "portal_pool" %> <script> $(document).ready(function(){ $tabs = $("#hardware_nav_tabs").tabs({ @@ -51,4 +52,5 @@ <ul id="search_nav_tabs" class="ui-tabs-nav"> <li id="nav_search" class="ui-tabs-selected"><a href="#">Search Results</a></li> </ul> +<% end %> <% end %> \ No newline at end of file diff --git a/src/app/views/layouts/dcloud.rhtml b/src/app/views/layouts/dcloud.rhtml index 0f98f25..c724950 100644 --- a/src/app/views/layouts/dcloud.rhtml +++ b/src/app/views/layouts/dcloud.rhtml @@ -9,6 +9,7 @@ <!--%= stylesheet_link_tag 'default' %--> <%# remove me %> <%= stylesheet_link_tag 'layout' %> <%= stylesheet_link_tag 'components' %> + <%= stylesheet_link_tag 'dcloud' %> <!--[if IE]> <%= stylesheet_link_tag 'ie' %> <![endif]--> @@ -67,7 +68,13 @@ </div>
<div id="side"> - fred <%#= render :partial => '/layouts/tree' %> + <%#= render :partial => '/layouts/tree' %> + <%=link_to "Add a provider", :controller => "provider", :action => "new" %> + <ul id="providers"> + <% @providers.each { |provider| %> + <li><%= provider.name %></li> + <% } %> + </ul> </div>
<div id="tabs-and-content-container"> diff --git a/src/app/views/provider/delete.html.erb b/src/app/views/provider/delete.html.erb new file mode 100644 index 0000000..b21ec14 --- /dev/null +++ b/src/app/views/provider/delete.html.erb @@ -0,0 +1,2 @@ +<h1>ProviderController#delete</h1> +<p>Find me in app/views/provider_controller/delete.html.erb</p> diff --git a/src/app/views/provider/index.html.erb b/src/app/views/provider/index.html.erb new file mode 100644 index 0000000..acd2676 --- /dev/null +++ b/src/app/views/provider/index.html.erb @@ -0,0 +1,2 @@ +<h1>ProviderController#index</h1> +<p>Find me in app/views/provider_controller/index.html.erb</p> diff --git a/src/app/views/provider/new.html.erb b/src/app/views/provider/new.html.erb new file mode 100644 index 0000000..48c93fd --- /dev/null +++ b/src/app/views/provider/new.html.erb @@ -0,0 +1,11 @@ +<div id="provider_form"> + <%= error_messages_for 'provider' %> + + Add a provider:<br/> + <% form_for :provider do |f| %> + Name: <%= f.text_field :name %><br/> + Type: <%= select_tag :cloud_type, "<option>EC2</option><option>RHEV-M</option>" %><br/> + URL: <%= f.text_field :url %><br/> + <%= submit_tag "Save", :class => "submit" %> + <% end %> +</div> \ No newline at end of file diff --git a/src/app/views/provider/show.html.erb b/src/app/views/provider/show.html.erb new file mode 100644 index 0000000..f1c634a --- /dev/null +++ b/src/app/views/provider/show.html.erb @@ -0,0 +1,2 @@ +<h1>ProviderController#show</h1> +<p>Find me in app/views/provider_controller/show.html.erb</p> diff --git a/src/public/stylesheets/dcloud.css b/src/public/stylesheets/dcloud.css new file mode 100644 index 0000000..0e179f2 --- /dev/null +++ b/src/public/stylesheets/dcloud.css @@ -0,0 +1,8 @@ +#provider_form { + width: 50%; + padding-left: 25%; +} + +#provider_form .submit { + float: right; +} \ No newline at end of file
deltacloud-devel@lists.fedorahosted.org