ACK with a caveat inline. Also, it would be great if it looked and behaved the same way as the pool-specific instance table does now (using the DataTables jquery thingy).
But that can be in another patch and I'm not sure how important it is for now. Thomas ----- Original Message ----- From: "Mohammed Morsi" <[email protected]> To: [email protected] Sent: Wednesday, June 2, 2010 9:00:14 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna Subject: [deltacloud-devel] [PATCH aggregator] instances index/list view and backend navigating to http://localhost:3000/instance/ when running deltacloud locally now brings the user to a list of instances in pools which they have the instance_view permission on --- src/app/controllers/instance_controller.rb | 5 +++++ src/app/views/dashboard/summary.haml | 2 ++ src/app/views/instance/_list.html.erb | 24 ++++++++++++++++++++++++ src/app/views/instance/index.html.erb | 3 +-- 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/app/views/instance/_list.html.erb diff --git a/src/app/controllers/instance_controller.rb b/src/app/controllers/instance_controller.rb index c898691..c1c56e9 100644 --- a/src/app/controllers/instance_controller.rb +++ b/src/app/controllers/instance_controller.rb @@ -25,6 +25,11 @@ class InstanceController < ApplicationController before_filter :require_user def index + @instances = current_user.permissions.all.find_all { |perm| + !perm.role.privileges.all.find { |priv| + priv.name == Privilege::INSTANCE_VIEW + }.nil? && perm.permission_object_type == "Pool" + }.collect { |perm| perm.permission_object.instances }.flatten end # Right now this is essentially a duplicate of PoolController#show, diff --git a/src/app/views/dashboard/summary.haml b/src/app/views/dashboard/summary.haml index 4eeb58b..b64ffb5 100644 --- a/src/app/views/dashboard/summary.haml +++ b/src/app/views/dashboard/summary.haml @@ -38,6 +38,8 @@ Create a Template %a{:href => url_for(:controller => "users", :action => "new")} Create a User + %a{:href => url_for(:controller => "instance", :action => "index")} + View Instances - else %a{:href => url_for(:controller => "", :action => "")} Launch Instances diff --git a/src/app/views/instance/_list.html.erb b/src/app/views/instance/_list.html.erb new file mode 100644 index 0000000..66f6eeb --- /dev/null +++ b/src/app/views/instance/_list.html.erb @@ -0,0 +1,24 @@ +<% if @instances.size == 0 %> +<h1>There are no instances to display</h1> +<% else %> + <table> + <thead> + <tr> + <th scope="col">Name</th> + <th scope="col">Pool</th> + <th scope="col">Hardware Profile</th> + <th scope="col">Image</th> + </tr> + </thead> + <tbody> + <%[email protected] {|instance| %> + <tr> + <td><%= instance.name %></td> + <td><%= instance.pool.name if instance.pool %></td> + <td><%= instance.hardware_profile.name if instance.hardware_profile %></td> + <td><%= instance.image if instance.image %></td> This outputs something like: #<Image:0xb6656808> to the webpage instead of the real image name (e.g. Fedora 10). + </tr> + <% } %> + </tbody> + </table> +<% end %> diff --git a/src/app/views/instance/index.html.erb b/src/app/views/instance/index.html.erb index a632f6c..c19c3fa 100644 --- a/src/app/views/instance/index.html.erb +++ b/src/app/views/instance/index.html.erb @@ -1,2 +1 @@ -<h1>Instance#index</h1> -<p>Find me in app/views/instance/index.html.erb</p> +<%= render :partial => 'list' %> -- 1.6.2.5 _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel _______________________________________________ deltacloud-devel mailing list [email protected] https://fedorahosted.org/mailman/listinfo/deltacloud-devel
