Implements
https://www.aeolusproject.org/redmine/issues/1449
---
src/app/controllers/application_controller.rb | 9 +++++++
src/app/controllers/deployments_controller.rb | 20 ++++++++++++++++
src/app/controllers/instances_controller.rb | 23 ++++++++++++++++++
src/app/controllers/pools_controller.rb | 14 +++++++++++
src/app/views/deployments/_edit.haml | 11 +++++++++
src/app/views/deployments/_launch_new.haml | 8 ++++++
src/app/views/deployments/_list.haml | 3 ++
src/app/views/deployments/_new.haml | 25 ++++++++++++++++++++
src/app/views/deployments/_properties.haml | 11 +++++++-
src/app/views/deployments/edit.haml | 12 +---------
src/app/views/deployments/launch_new.haml | 7 +-----
src/app/views/deployments/new.haml | 26 +--------------------
src/app/views/instances/_edit.haml | 10 ++++++++
src/app/views/instances/_new.haml | 27 +++++++++++++++++++++
src/app/views/instances/edit.haml | 11 +--------
src/app/views/instances/new.haml | 28 +---------------------
src/app/views/pools/_edit.haml | 30 ++++++++++++++++++++++++
src/app/views/pools/_new.haml | 27 +++++++++++++++++++++
src/app/views/pools/_show.haml | 10 ++++++++
src/app/views/pools/edit.haml | 31 +------------------------
src/app/views/pools/new.haml | 28 +---------------------
21 files changed, 233 insertions(+), 138 deletions(-)
create mode 100644 src/app/views/deployments/_edit.haml
create mode 100644 src/app/views/deployments/_launch_new.haml
create mode 100644 src/app/views/deployments/_new.haml
create mode 100644 src/app/views/instances/_edit.haml
create mode 100644 src/app/views/instances/_new.haml
create mode 100644 src/app/views/pools/_edit.haml
create mode 100644 src/app/views/pools/_new.haml
create mode 100644 src/app/views/pools/_show.haml
diff --git a/src/app/controllers/application_controller.rb
b/src/app/controllers/application_controller.rb
index 746811b..e4536a7 100644
--- a/src/app/controllers/application_controller.rb
+++ b/src/app/controllers/application_controller.rb
@@ -39,6 +39,8 @@ class ApplicationController < ActionController::Base
helper_method :check_privilege
+ before_filter :js_for_xhr
+
protected
# permissions checking
@@ -224,4 +226,11 @@ class ApplicationController < ActionController::Base
redirect_to(default || session[:return_to])
session[:return_to] = nil
end
+
+ # XMLHTTPRequest in many browsers sends "Accept: */*", so the first
respond_to will match.
+ # See
http://codetunes.com/2009/01/31/rails-222-ajax-and-respond_to/ and
+ #
http://www.grauw.nl/blog/entry/470 for more.
+ def js_for_xhr
+ request.format = :js if request.xhr?
+ end
end
diff --git a/src/app/controllers/deployments_controller.rb
b/src/app/controllers/deployments_controller.rb
index bdf40de..2afab1c 100644
--- a/src/app/controllers/deployments_controller.rb
+++ b/src/app/controllers/deployments_controller.rb
@@ -5,6 +5,7 @@ class DeploymentsController < ApplicationController
def index
respond_to do |format|
+ format.js { render :partial => 'list' }
format.html
format.json { render :json => @deployments }
end
@@ -16,6 +17,7 @@ class DeploymentsController < ApplicationController
@launchable_deployables << deployable if deployable.launchable?
end
respond_to do |format|
+ format.js { render :partial => 'launch_new' }
format.html
format.json { render :json => @launchable_deployables }
end
@@ -27,10 +29,15 @@ class DeploymentsController < ApplicationController
respond_to do |format|
if @deployment.deployable.assemblies.empty?
flash[:warning] = "Deployable must have at least one assembly"
+ format.js do
+ load_deployments
+ render :partial => 'list'
+ end
format.html { redirect_to deployments_path }
format.json { render :json => {:error => flash[:warning]}, :status =>
:unprocessable_entity }
else
init_new_deployment_attrs
+ format.js { render :partial => 'new' }
format.html
format.json { render :json => @deployment }
end
@@ -51,11 +58,13 @@ class DeploymentsController < ApplicationController
:failures => errors
}
end
+ format.js { render :partial => 'properties' }
format.html { redirect_to deployment_path(@deployment) }
format.json { render :json => @deployment, :status => :created }
else
flash.now[:warning] = "Deployment launch failed"
init_new_deployment_attrs
+ format.js { launch_new }
format.html { render :action => 'new' }
format.json { render :json => @deployment.errors, :status =>
:unprocessable_entity }
end
@@ -83,6 +92,7 @@ class DeploymentsController < ApplicationController
def edit
require_privilege(Privilege::MODIFY, @deployment)
respond_to do |format|
+ format.js { render :partial => 'edit' }
format.html
format.json { render :json => @deployment }
end
@@ -95,10 +105,12 @@ class DeploymentsController < ApplicationController
respond_to do |format|
if check_privilege(Privilege::MODIFY, @deployment) and
@deployment.update_attributes(attrs)
flash[:success] = t('deployments.updated', :count => 1, :list =>
@deployment.name)
+ format.js { render :partial => 'properties' }
format.html { redirect_to @deployment }
format.json { render :json => @deployment }
else
flash[:error] = t('deployments.not_updated', :count => 1, :list =>
@deployment.name)
+ format.js { render :partial => 'edit' }
format.html { render :action => :edit }
format.json { render :json => @deployment.errors, :status =>
:unprocessable_entity }
end
@@ -119,6 +131,10 @@ class DeploymentsController < ApplicationController
flash[:success] = t('deployments.deleted', :list => destroyed, :count
=> destroyed.size) if destroyed.present?
flash[:error] = t('deployments.not_deleted', :list => failed, :count =>
failed.size) if failed.present?
respond_to do |format|
+ format.js do
+ load_deployments
+ render :partial => 'list'
+ end
format.html { redirect_to deployments_url }
format.json { render :json => {:success => destroyed, :errors => failed}
}
end
@@ -151,6 +167,10 @@ class DeploymentsController < ApplicationController
flash[:notice] = notices unless notices.blank?
flash[:error] = errors unless errors.blank?
respond_to do |format|
+ format.js do
+ load_deployments
+ render :partial => 'list'
+ end
format.html { redirect_to deployments_path }
format.json { render :json => {:success => notices, :errors => errors} }
end
diff --git a/src/app/controllers/instances_controller.rb
b/src/app/controllers/instances_controller.rb
index f04db3c..c01a5ea 100644
--- a/src/app/controllers/instances_controller.rb
+++ b/src/app/controllers/instances_controller.rb
@@ -13,6 +13,7 @@ class InstancesController < ApplicationController
end
respond_to do |format|
+ format.js { render :partial => 'list' }
format.html
format.json { render :json => @instances }
end
@@ -29,6 +30,7 @@ class InstancesController < ApplicationController
init_new_instance_attrs
respond_to do |format|
+ format.js { render :partial => 'new' }
format.html
format.json { render :json => @instance }
end
@@ -75,6 +77,7 @@ class InstancesController < ApplicationController
rescue
init_new_instance_attrs
flash[:warning] = "Failed to launch instance: #{$!}"
+ format.js { render :partial => 'new' }
format.html { render :new }
format.json { render :json => @instance, :status => :unprocessable_entity}
else
@@ -83,6 +86,7 @@ class InstancesController < ApplicationController
else
flash[:warning] = "Quota Exceeded: Instance will not start until you have
free quota"
end
+ format.js { render :partial => 'properties', :id => @instance.id }
format.html { redirect_to instances_path }
format.json { render :json => @instance, :status => :created }
end
@@ -108,6 +112,11 @@ class InstancesController < ApplicationController
def edit
require_privilege(Privilege::MODIFY, @instance)
+ respond_to do |format|
+ format.js { render :partial => 'edit', :id => @instance.id }
+ format.html
+ format.json { render :json => @instance }
+ end
end
def update
@@ -119,10 +128,12 @@ class InstancesController < ApplicationController
respond_to do |format|
if check_privilege(Privilege::MODIFY, @instance) and
@instance.update_attributes(attrs)
flash[:success] = t('instances.updated', :count => 1, :list =>
@instance.name)
+ format.js { render :partial => 'properties' }
format.html { redirect_to @instance }
format.json { render :json => @instance }
else
flash[:error] = t('instances.not_updated', :count =>1, :list =>
@instance.name)
+ format.js { render :partial => 'edit' }
format.html { render :action => :edit }
format.json { render :json => @instance.errors, :status =>
:unprocessable_entity }
end
@@ -143,6 +154,12 @@ class InstancesController < ApplicationController
flash[:success] = t('instances.deleted', :list => destroyed.to_sentence,
:count => destroyed.size) if destroyed.present?
flash[:error] = t('instances.not_deleted', :list => failed.to_sentence,
:count => failed.size) if failed.present?
respond_to do |format|
+ # FIXME: _list does not show flash messages, but I'm not sure that showing
_list is proper anyway
+ format.js do
+ set_view_vars
+ load_instances
+ render :partial => 'list'
+ end
format.html { render :action => :show }
format.json { render :json => {:success => destroyed, :errors => failed}
}
end
@@ -152,9 +169,15 @@ class InstancesController < ApplicationController
respond_to do |format|
if @instance.instance_key.nil?
flash[:warning] = "SSH Key not found for this Instance."
+ format.js { render :partial => 'properties' }
format.html { redirect_to instance_path(@instance) }
format.json { render :json => flash[:warning], :status => :not_found }
else
+ format.js do
+ send_data @instance.instance_key.pem,
+ :filename =>
"#{(a)instance.instance_key.name}.pem",
+ :type => "text/plain"
+ end
format.html { send_data @instance.instance_key.pem,
:filename =>
"#{(a)instance.instance_key.name}.pem",
:type => "text/plain" }
diff --git a/src/app/controllers/pools_controller.rb
b/src/app/controllers/pools_controller.rb
index ea09745..4101e2c 100644
--- a/src/app/controllers/pools_controller.rb
+++ b/src/app/controllers/pools_controller.rb
@@ -11,6 +11,7 @@ class PoolsController < ApplicationController
@pools = Pool.search() { keywords(params[:q]) }.results
end
respond_to do |format|
+ format.js { render :partial => 'list' }
format.html
format.json { render :json => @pools }
end
@@ -24,6 +25,7 @@ class PoolsController < ApplicationController
@tab_captions = ['Properties', 'Deployments', 'Instances',
'History', 'Permissions']
@details_tab = params[:details_tab].blank? ? 'properties' :
params[:details_tab]
respond_to do |format|
+ # TODO - With the new UI, the logic here will probably need to be updated
format.js do
if @url_params.delete :details_pane
render :partial => 'layouts/details_pane' and return
@@ -42,6 +44,7 @@ class PoolsController < ApplicationController
respond_to do |format|
format.html
format.json { render :json => @pool }
+ format.js { render :partial => 'new' }
end
end
@@ -59,9 +62,12 @@ class PoolsController < ApplicationController
@pool.assign_owner_roles(current_user)
flash[:notice] = "Pool added."
format.html { redirect_to :action => 'show', :id => @pool.id }
+ # TODO - The new UI is almost certainly going to want a new partial for .js
+ format.js { render :partial => 'show', :id => @pool.id }
format.json { render :json => @pool, :status => :created }
else
flash.now[:warning] = "Pool creation failed."
+ format.js { render :partial => 'new' }
format.html { render :new }
format.json { render :json => @pool.errors, :status =>
:unprocessable_entity }
end
@@ -73,6 +79,7 @@ class PoolsController < ApplicationController
require_privilege(Privilege::MODIFY, @pool)
@quota = @pool.quota
respond_to do |format|
+ format.js { render :partial => 'edit' }
format.html
format.json { render :json => @pool }
end
@@ -88,10 +95,12 @@ class PoolsController < ApplicationController
respond_to do |format|
if @pool.update_attributes(params[:pool])
flash[:notice] = "Pool updated."
+ format.js { render :partial => 'show', :id => @pool.id }
format.html { redirect_to :action => 'show', :id => @pool.id }
format.json { render :json => @pool }
else
flash[:error] = "Pool wasn't updated!"
+ format.js { render :partial => 'edit', :id => @pool.id }
format.html { render :action => :edit }
format.json { render :json => @pool.errors, :status =>
:unprocessable_entity }
end
@@ -115,6 +124,11 @@ class PoolsController < ApplicationController
flash[:success] = t('pools.index.pool_deleted', :list =>
destroyed.to_sentence, :count => destroyed.size) if destroyed.present?
flash[:error] = t('pools.index.pool_not_deleted', :list =>
failed.to_sentence, :count => failed.size) if failed.present?
respond_to do |format|
+ # TODO - What is expected to be returned on an AJAX delete?
+ format.js do
+ load_pools
+ render :partial => 'list'
+ end
format.html { redirect_to pools_url }
format.json { render :json => {:success => destroyed, :errors => failed}
}
end
diff --git a/src/app/views/deployments/_edit.haml b/src/app/views/deployments/_edit.haml
new file mode 100644
index 0000000..72c8e60
--- /dev/null
+++ b/src/app/views/deployments/_edit.haml
@@ -0,0 +1,11 @@
+= error_messages_for 'deployment'
+%h2 Edit deployment
+- form_for @deployment do
+ = hidden_field :deployment, :deployable_id
+ %ul
+ %li
+ = label :deployment, :name
+ = text_field :deployment, :name
+
+ = submit_tag 'Cancel', :name => 'cancel'
+ = submit_tag 'Save', :name => 'save'
diff --git a/src/app/views/deployments/_launch_new.haml
b/src/app/views/deployments/_launch_new.haml
new file mode 100644
index 0000000..34126dd
--- /dev/null
+++ b/src/app/views/deployments/_launch_new.haml
@@ -0,0 +1,8 @@
+= if request.xhr?
+ = render :partial => '/layouts/notification'
+%h2 Launch new deployment via
+- form_tag new_deployment_path, :method => :get do
+ = label_tag "Deployable:"
+ = select_tag :deployable_id,
options_from_collection_for_select(@launchable_deployables, "id",
"name")
+ = submit_tag "Launch"
+ = link_to "Cancel", deployments_path, :class => "button"
diff --git a/src/app/views/deployments/_list.haml b/src/app/views/deployments/_list.haml
index 2d89766..3f8064e 100644
--- a/src/app/views/deployments/_list.haml
+++ b/src/app/views/deployments/_list.haml
@@ -1,3 +1,6 @@
+= if request.xhr?
+ = render :partial => '/layouts/notification'
+
- form_tag do
#object-actions
= restful_submit_tag "Start", "start", deployments_path,
"PUT"
diff --git a/src/app/views/deployments/_new.haml b/src/app/views/deployments/_new.haml
new file mode 100644
index 0000000..390840d
--- /dev/null
+++ b/src/app/views/deployments/_new.haml
@@ -0,0 +1,25 @@
+= error_messages_for 'deployment'
+%h2 Launch deployable
+- form_for @deployment, :url => deployments_path do
+ = hidden_field :deployment, :deployable_id
+ %ul
+ %li
+ = label :deployment, :name
+ = text_field :deployment, :name
+ %li
+ = label :deployment, :pool
+ = select :deployment, :pool_id, @pools.map {|p| [ p.name, p.id ]}, { :include_blank
=> true }
+ %li
+ = label :deployment, :frontend_realm
+ = select :deployment, :frontend_realm_id, @realms.map {|r| [ r.name, r.id ]}, {
:include_blank => true }
+ %p
+ %h3 Assemblies hardware profiles
+ %ul
+ - @deployment.deployable.assemblies.each do |assembly|
+ %li
+ - hwprofiles = @hardware_profiles.select {|hwp| hwp.architecture.value ==
assembly.templates.first.architecture}
+ = label_tag "hw_profiles[#{assembly.id}]", assembly.name
+ = select_tag "hw_profiles[#{assembly.id}]",
options_from_collection_for_select(hwprofiles, 'id', 'name')
+
+ = submit_tag 'Cancel', :name => 'cancel'
+ = submit_tag 'Launch', :name => 'launch'
diff --git a/src/app/views/deployments/_properties.haml
b/src/app/views/deployments/_properties.haml
index 5d2c584..b5e27af 100644
--- a/src/app/views/deployments/_properties.haml
+++ b/src/app/views/deployments/_properties.haml
@@ -1,2 +1,9 @@
-%h3 Owner Details
-%h3 CDL
+%h3
+ = @deployment.name
+%ul
+ %li
+ Pool:
+ = @deployment.pool.name
+ %li
+ Created:
+ = @deployment.created_at
\ No newline at end of file
diff --git a/src/app/views/deployments/edit.haml b/src/app/views/deployments/edit.haml
index 72c8e60..ea8dd88 100644
--- a/src/app/views/deployments/edit.haml
+++ b/src/app/views/deployments/edit.haml
@@ -1,11 +1 @@
-= error_messages_for 'deployment'
-%h2 Edit deployment
-- form_for @deployment do
- = hidden_field :deployment, :deployable_id
- %ul
- %li
- = label :deployment, :name
- = text_field :deployment, :name
-
- = submit_tag 'Cancel', :name => 'cancel'
- = submit_tag 'Save', :name => 'save'
+= render :partial => 'edit'
\ No newline at end of file
diff --git a/src/app/views/deployments/launch_new.haml
b/src/app/views/deployments/launch_new.haml
index 6edf475..916a842 100644
--- a/src/app/views/deployments/launch_new.haml
+++ b/src/app/views/deployments/launch_new.haml
@@ -1,6 +1 @@
-%h2 Launch new deployment via
-- form_tag new_deployment_path, :method => :get do
- = label_tag "Deployable:"
- = select_tag :deployable_id,
options_from_collection_for_select(@launchable_deployables, "id",
"name")
- = submit_tag "Launch"
- = link_to "Cancel", deployments_path, :class => "button"
+= render :partial => 'launch_new'
\ No newline at end of file
diff --git a/src/app/views/deployments/new.haml b/src/app/views/deployments/new.haml
index 390840d..949343a 100644
--- a/src/app/views/deployments/new.haml
+++ b/src/app/views/deployments/new.haml
@@ -1,25 +1 @@
-= error_messages_for 'deployment'
-%h2 Launch deployable
-- form_for @deployment, :url => deployments_path do
- = hidden_field :deployment, :deployable_id
- %ul
- %li
- = label :deployment, :name
- = text_field :deployment, :name
- %li
- = label :deployment, :pool
- = select :deployment, :pool_id, @pools.map {|p| [ p.name, p.id ]}, { :include_blank
=> true }
- %li
- = label :deployment, :frontend_realm
- = select :deployment, :frontend_realm_id, @realms.map {|r| [ r.name, r.id ]}, {
:include_blank => true }
- %p
- %h3 Assemblies hardware profiles
- %ul
- - @deployment.deployable.assemblies.each do |assembly|
- %li
- - hwprofiles = @hardware_profiles.select {|hwp| hwp.architecture.value ==
assembly.templates.first.architecture}
- = label_tag "hw_profiles[#{assembly.id}]", assembly.name
- = select_tag "hw_profiles[#{assembly.id}]",
options_from_collection_for_select(hwprofiles, 'id', 'name')
-
- = submit_tag 'Cancel', :name => 'cancel'
- = submit_tag 'Launch', :name => 'launch'
+= render :partial => 'new'
\ No newline at end of file
diff --git a/src/app/views/instances/_edit.haml b/src/app/views/instances/_edit.haml
new file mode 100644
index 0000000..dfce76f
--- /dev/null
+++ b/src/app/views/instances/_edit.haml
@@ -0,0 +1,10 @@
+= error_messages_for 'instance'
+%h2 Edit instance
+- form_for @instance do
+ %ul
+ %li
+ = label :instance, :name
+ = text_field :instance, :name
+
+ = submit_tag 'Cancel', :name => 'cancel'
+ = submit_tag 'Save', :name => 'save'
diff --git a/src/app/views/instances/_new.haml b/src/app/views/instances/_new.haml
new file mode 100644
index 0000000..139d08d
--- /dev/null
+++ b/src/app/views/instances/_new.haml
@@ -0,0 +1,27 @@
+= error_messages_for 'instance'
+%h2 Launch instance
+- form_for @instance, :url => instances_path do
+ = hidden_field :instance, :template_id
+ %ul
+ %li
+ = label :instance, :name
+ = text_field :instance, :name
+ %li
+ = label :instance, :template
+ = text_field_tag :template_name, @instance.template ? @instance.template.name :
'', :disabled => true
+ %li
+ = label :instance, :pool
+ - if @instance.pool
+ = text_field_tag :pool_name, @instance.pool.name, :disabled => true
+ = hidden_field :instance, :pool_id
+ - else
+ = select :instance, :pool_id, @pools.map {|p| [ p.name, p.id ]}, { :include_blank
=> true }
+ %li
+ = label :instance, :hardware_profile
+ = select :instance, :hardware_profile_id, @hardware_profiles.map {|p| [ p.name,
p.id ]}, { :include_blank => false }
+ %li
+ = label :instance, :frontend_realm
+ = select :instance, :frontend_realm_id, @realms.map {|r| [ r.name, r.id ]}, {
:include_blank => true }
+
+ = submit_tag 'Cancel', :name => 'cancel'
+ = submit_tag 'Launch', :name => 'launch'
diff --git a/src/app/views/instances/edit.haml b/src/app/views/instances/edit.haml
index dfce76f..8e2be85 100644
--- a/src/app/views/instances/edit.haml
+++ b/src/app/views/instances/edit.haml
@@ -1,10 +1 @@
-= error_messages_for 'instance'
-%h2 Edit instance
-- form_for @instance do
- %ul
- %li
- = label :instance, :name
- = text_field :instance, :name
-
- = submit_tag 'Cancel', :name => 'cancel'
- = submit_tag 'Save', :name => 'save'
+= render :partial => 'edit'
diff --git a/src/app/views/instances/new.haml b/src/app/views/instances/new.haml
index 139d08d..949343a 100644
--- a/src/app/views/instances/new.haml
+++ b/src/app/views/instances/new.haml
@@ -1,27 +1 @@
-= error_messages_for 'instance'
-%h2 Launch instance
-- form_for @instance, :url => instances_path do
- = hidden_field :instance, :template_id
- %ul
- %li
- = label :instance, :name
- = text_field :instance, :name
- %li
- = label :instance, :template
- = text_field_tag :template_name, @instance.template ? @instance.template.name :
'', :disabled => true
- %li
- = label :instance, :pool
- - if @instance.pool
- = text_field_tag :pool_name, @instance.pool.name, :disabled => true
- = hidden_field :instance, :pool_id
- - else
- = select :instance, :pool_id, @pools.map {|p| [ p.name, p.id ]}, { :include_blank
=> true }
- %li
- = label :instance, :hardware_profile
- = select :instance, :hardware_profile_id, @hardware_profiles.map {|p| [ p.name,
p.id ]}, { :include_blank => false }
- %li
- = label :instance, :frontend_realm
- = select :instance, :frontend_realm_id, @realms.map {|r| [ r.name, r.id ]}, {
:include_blank => true }
-
- = submit_tag 'Cancel', :name => 'cancel'
- = submit_tag 'Launch', :name => 'launch'
+= render :partial => 'new'
\ No newline at end of file
diff --git a/src/app/views/pools/_edit.haml b/src/app/views/pools/_edit.haml
new file mode 100644
index 0000000..94e486f
--- /dev/null
+++ b/src/app/views/pools/_edit.haml
@@ -0,0 +1,30 @@
+= error_messages_for :pool
+%h1
+ Edit pool
+ = @pool.name
+
+- form_for @pool do |form|
+ %fieldset
+ = form.label :name, "Name:", :class => "grid_2 alpha"
+ = form.text_field :name
+ %fieldset
+ = form.label :pool_family_id, "Pool Family:", :class => "grid_2
alpha"
+ = form.collection_select :pool_family_id, PoolFamily.all, :id, :name
+ %fieldset
+ = label_tag "Quota"
+ = text_field :quota, :maximum_running_instances, :title =>
t('provider_accounts.form.quota_instances'), :value =>
@quota.maximum_running_instances || "unlimited", :id =>
"quota_instances", :class => "grid_3 omega"
+ (
+ %button.linkbutton.nospace{ :type => 'button', :onclick =>
"set_unlimited_quota(\"quota_instances\");" }<>
+ = t('provider_accounts.form.unlimited_quota')
+ )
+ %fieldset
+ = form.label :enabled, "Enabled:",{ :class => "grid_2 alpha"
}
+ = form.check_box :enabled
+ %fieldset.clear
+
+ = form.submit "Save"
+
+:javascript
+ function set_unlimited_quota(elem_id) {
+ $("#" + elem_id)[0].value = "unlimited";
+ }
diff --git a/src/app/views/pools/_new.haml b/src/app/views/pools/_new.haml
new file mode 100644
index 0000000..09df69e
--- /dev/null
+++ b/src/app/views/pools/_new.haml
@@ -0,0 +1,27 @@
+= error_messages_for :pool
+%h1 Create a new Pool
+- form_for @pool, :url => pools_path do |form|
+ %fieldset
+ = form.label :name, "Name:", :class => "grid_2 alpha"
+ = form.text_field :name
+ %fieldset
+ = form.label :pool_family_id, "Pool Family:", :class => "grid_2
alpha"
+ = form.collection_select :pool_family_id, PoolFamily.all, :id, :name
+ %fieldset
+ = label_tag "Quota:"
+ = text_field :quota, :maximum_running_instances, :title =>
t('provider_accounts.form.quota_instances'), :value =>
@quota.maximum_running_instances || "unlimited", :id =>
"quota_instances", :class => "grid_3 omega"
+ (
+ %button.linkbutton.nospace{ :type => 'button', :onclick =>
"set_unlimited_quota(\"quota_instances\");" }<>
+ = t('provider_accounts.form.unlimited_quota')
+ )
+ %fieldset
+ = form.label :enabled, "Enabled:",{ :class => "grid_2 alpha"
}
+ = form.check_box :enabled
+ %fieldset.clear
+
+ = form.submit "Save"
+
+:javascript
+ function set_unlimited_quota(elem_id) {
+ $("#" + elem_id)[0].value = "unlimited";
+ }
diff --git a/src/app/views/pools/_show.haml b/src/app/views/pools/_show.haml
new file mode 100644
index 0000000..7bb4f81
--- /dev/null
+++ b/src/app/views/pools/_show.haml
@@ -0,0 +1,10 @@
+= @pool.name
+%dl
+ %dt
+ ID:
+ %dd
+ = @pool.id
+ %dt
+ Pool family:
+ %dd
+ = @pool.pool_family.name
\ No newline at end of file
diff --git a/src/app/views/pools/edit.haml b/src/app/views/pools/edit.haml
index d4c511f..ea8dd88 100644
--- a/src/app/views/pools/edit.haml
+++ b/src/app/views/pools/edit.haml
@@ -1,30 +1 @@
-= error_messages_for :pool
-%h1
- Edit pool
- = @pool.name
-
-- form_for [:resources, @pool] do |form|
- %fieldset
- = form.label :name, "Name:", :class => "grid_2 alpha"
- = form.text_field :name
- %fieldset
- = form.label :pool_family_id, "Pool Family:", :class => "grid_2
alpha"
- = form.collection_select :pool_family_id, PoolFamily.all, :id, :name
- %fieldset
- = label_tag "Quota"
- = text_field :quota, :maximum_running_instances, :title =>
t('provider_accounts.form.quota_instances'), :value =>
@quota.maximum_running_instances || "unlimited", :id =>
"quota_instances", :class => "grid_3 omega"
- (
- %button.linkbutton.nospace{ :type => 'button', :onclick =>
"set_unlimited_quota(\"quota_instances\");" }<>
- = t('provider_accounts.form.unlimited_quota')
- )
- %fieldset
- = form.label :enabled, "Enabled:",{ :class => "grid_2 alpha"
}
- = form.check_box :enabled
- %fieldset.clear
-
- = form.submit "Save"
-
-:javascript
- function set_unlimited_quota(elem_id) {
- $("#" + elem_id)[0].value = "unlimited";
- }
+= render :partial => 'edit'
\ No newline at end of file
diff --git a/src/app/views/pools/new.haml b/src/app/views/pools/new.haml
index 09df69e..949343a 100644
--- a/src/app/views/pools/new.haml
+++ b/src/app/views/pools/new.haml
@@ -1,27 +1 @@
-= error_messages_for :pool
-%h1 Create a new Pool
-- form_for @pool, :url => pools_path do |form|
- %fieldset
- = form.label :name, "Name:", :class => "grid_2 alpha"
- = form.text_field :name
- %fieldset
- = form.label :pool_family_id, "Pool Family:", :class => "grid_2
alpha"
- = form.collection_select :pool_family_id, PoolFamily.all, :id, :name
- %fieldset
- = label_tag "Quota:"
- = text_field :quota, :maximum_running_instances, :title =>
t('provider_accounts.form.quota_instances'), :value =>
@quota.maximum_running_instances || "unlimited", :id =>
"quota_instances", :class => "grid_3 omega"
- (
- %button.linkbutton.nospace{ :type => 'button', :onclick =>
"set_unlimited_quota(\"quota_instances\");" }<>
- = t('provider_accounts.form.unlimited_quota')
- )
- %fieldset
- = form.label :enabled, "Enabled:",{ :class => "grid_2 alpha"
}
- = form.check_box :enabled
- %fieldset.clear
-
- = form.submit "Save"
-
-:javascript
- function set_unlimited_quota(elem_id) {
- $("#" + elem_id)[0].value = "unlimited";
- }
+= render :partial => 'new'
\ No newline at end of file
--
1.7.4.4