Tomas Sedovic wrote:
> 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
>
>   
Actually we probably do want it using the same jquery bits for now, if 
possible.

Scott
> ----- 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' %>
>   

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to