wakame-vdc-webui 10.12.0 → 11.06.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. data/INSTALL-API.txt +14 -0
  2. data/Rakefile +5 -1
  3. data/app/api/config/environment.rb +9 -0
  4. data/app/controllers/accounts_controller.rb +39 -1
  5. data/app/controllers/application_controller.rb +73 -1
  6. data/app/controllers/instance_specs_controller.rb +11 -0
  7. data/app/controllers/instances_controller.rb +7 -3
  8. data/app/controllers/{images_controller.rb → machine_images_controller.rb} +2 -3
  9. data/app/controllers/sessions_controller.rb +6 -3
  10. data/app/controllers/snapshots_controller.rb +17 -6
  11. data/app/controllers/volumes_controller.rb +6 -2
  12. data/app/helpers/application_helper.rb +9 -5
  13. data/app/helpers/machine_images_helper.rb +2 -0
  14. data/app/models/account.rb +22 -4
  15. data/app/models/base_new.rb +11 -2
  16. data/app/models/dcmgr_resource/base.rb +13 -0
  17. data/app/models/dcmgr_resource/instance_spec.rb +7 -0
  18. data/app/models/dcmgr_resource/volume_snapshot.rb +6 -0
  19. data/app/models/information.rb +1 -1
  20. data/app/models/oauth_consumer.rb +15 -0
  21. data/app/models/oauth_token.rb +10 -0
  22. data/app/models/user.rb +34 -1
  23. data/app/views/accounts/index.html.erb +42 -67
  24. data/app/views/accounts/password.html.erb +35 -0
  25. data/app/views/dialog/attach_volume.html.erb +2 -2
  26. data/app/views/dialog/create_and_edit_security_group.html.erb +61 -28
  27. data/app/views/dialog/create_snapshot.html.erb +11 -4
  28. data/app/views/dialog/create_ssh_keypair.html.erb +2 -2
  29. data/app/views/dialog/create_volume.html.erb +3 -4
  30. data/app/views/dialog/create_volume_from_snapshot.html.erb +1 -1
  31. data/app/views/dialog/delete_security_group.html.erb +1 -1
  32. data/app/views/dialog/delete_snapshot.html.erb +1 -1
  33. data/app/views/dialog/delete_ssh_keypair.html.erb +1 -1
  34. data/app/views/dialog/delete_volume.html.erb +1 -1
  35. data/app/views/dialog/detach_volume.html.erb +1 -1
  36. data/app/views/dialog/launch_instance.html.erb +10 -14
  37. data/app/views/dialog/reboot_instances.html.erb +1 -1
  38. data/app/views/dialog/terminate_instances.html.erb +1 -1
  39. data/app/views/home/index.html.erb +11 -11
  40. data/app/views/host_pools/index.html.erb +87 -92
  41. data/app/views/instances/index.html.erb +50 -52
  42. data/app/views/keypairs/index.html.erb +16 -16
  43. data/app/views/layouts/_header.html.erb +6 -6
  44. data/app/views/layouts/_informationarea.html.erb +5 -5
  45. data/app/views/layouts/_login_header.erb +1 -1
  46. data/app/views/layouts/_sidemenu.html.erb +30 -28
  47. data/app/views/layouts/application.html.erb +19 -3
  48. data/app/views/layouts/login.html.erb +4 -4
  49. data/app/views/{images → machine_images}/index.html.erb +20 -39
  50. data/app/views/security_groups/index.html.erb +20 -23
  51. data/app/views/sessions/new.html.erb +10 -5
  52. data/app/views/snapshots/index.html.erb +28 -26
  53. data/app/views/storage_pools/index.html.erb +17 -22
  54. data/app/views/volumes/index.html.erb +32 -34
  55. data/config/application-cli.rb +33 -0
  56. data/config/{application-api.rb → cli_token.rb} +0 -0
  57. data/config/environment-cli.rb +4 -0
  58. data/config/environments/development.rb +19 -0
  59. data/config/initializers/dcmgr_gui.rb +8 -3
  60. data/config/initializers/sequel.rb +4 -0
  61. data/config/initializers/site.rb +8 -0
  62. data/config/locales/en.yml +307 -1
  63. data/config/locales/ja-JP.yml +4 -0
  64. data/config/locales/ja.yml +309 -0
  65. data/config/routes.rb +16 -9
  66. data/lib/cli/account.rb +264 -0
  67. data/lib/cli/base.rb +74 -0
  68. data/lib/cli/errors.rb +59 -0
  69. data/lib/cli/user.rb +226 -0
  70. data/lib/tasks/dcmgr_api.rake +65 -12
  71. data/lib/tasks/dcmgr_gui.rake +96 -4
  72. data/lib/tasks/dcmgr_oauth.rake +39 -0
  73. data/public/i18n/Messages.properties +0 -0
  74. data/public/images/Chevron.gif +0 -0
  75. data/public/images/ChevronOverlay.png +0 -0
  76. data/public/images/IconHome.gif +0 -0
  77. data/public/images/bg-box-body.gif +0 -0
  78. data/public/images/bg-box-body.png +0 -0
  79. data/public/images/bg-box-bottom.gif +0 -0
  80. data/public/images/bg-box-bottom.png +0 -0
  81. data/public/images/bg-box-top.gif +0 -0
  82. data/public/images/bg-box-top.png +0 -0
  83. data/public/images/cluetip/arrowdown.gif +0 -0
  84. data/public/images/cluetip/arrowleft.gif +0 -0
  85. data/public/images/cluetip/arrowright.gif +0 -0
  86. data/public/images/cluetip/arrowup.gif +0 -0
  87. data/public/images/cluetip/bl.gif +0 -0
  88. data/public/images/cluetip/bl.png +0 -0
  89. data/public/images/cluetip/br.gif +0 -0
  90. data/public/images/cluetip/br.png +0 -0
  91. data/public/images/cluetip/darrowdown.gif +0 -0
  92. data/public/images/cluetip/darrowleft.gif +0 -0
  93. data/public/images/cluetip/darrowright.gif +0 -0
  94. data/public/images/cluetip/darrowup.gif +0 -0
  95. data/public/images/cluetip/itunes.png +0 -0
  96. data/public/images/cluetip/rarrowdown.gif +0 -0
  97. data/public/images/cluetip/rarrowleft.gif +0 -0
  98. data/public/images/cluetip/rarrowright.gif +0 -0
  99. data/public/images/cluetip/rarrowup.gif +0 -0
  100. data/public/images/cluetip/tl.gif +0 -0
  101. data/public/images/cluetip/tl.png +0 -0
  102. data/public/images/cluetip/tr.gif +0 -0
  103. data/public/images/cluetip/tr.png +0 -0
  104. data/public/images/cluetip/wait.gif +0 -0
  105. data/public/images/dialog-error.png +0 -0
  106. data/public/images/dialog-help.png +0 -0
  107. data/public/images/dialog-information.png +0 -0
  108. data/public/images/dialog-warning.png +0 -0
  109. data/public/images/ui-bg_flat_55_fcf0ba_40x100.png +0 -0
  110. data/public/images/ui-bg_glass_10_136d76_1x400.png +0 -0
  111. data/public/images/ui-bg_glass_10_458845_1x400.png +0 -0
  112. data/public/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
  113. data/public/images/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
  114. data/public/images/ui-bg_highlight-soft_50_136d76_1x100.png +0 -0
  115. data/public/images/ui-bg_inset-soft_15_386b3d_1x100.png +0 -0
  116. data/public/images/ui-icons_4c9052_256x240.png +0 -0
  117. data/public/images/ui-icons_847e71_256x240.png +0 -0
  118. data/public/javascripts/dcmgr_gui/account_panel.js +6 -0
  119. data/public/javascripts/dcmgr_gui/application.js +78 -5
  120. data/public/javascripts/dcmgr_gui/core.js +409 -102
  121. data/public/javascripts/dcmgr_gui/dashboard_panel.js +12 -3
  122. data/public/javascripts/dcmgr_gui/host_pool_panel.js +1 -1
  123. data/public/javascripts/dcmgr_gui/image_panel.js +119 -65
  124. data/public/javascripts/dcmgr_gui/instance_panel.js +86 -44
  125. data/public/javascripts/dcmgr_gui/security_group_panel.js +135 -77
  126. data/public/javascripts/dcmgr_gui/snapshot_panel.js +119 -61
  127. data/public/javascripts/dcmgr_gui/sshkeypair_panel.js +71 -47
  128. data/public/javascripts/dcmgr_gui/storage_pool_panel.js +10 -10
  129. data/public/javascripts/dcmgr_gui/volume_panel.js +311 -155
  130. data/public/javascripts/jquery.cluetip.min.js +33 -0
  131. data/public/javascripts/jquery.easing.1.3.js +205 -0
  132. data/public/javascripts/jquery.hoverIntent.js +114 -0
  133. data/public/javascripts/jquery.i18n.properties-min.js +7 -0
  134. data/public/javascripts/jquery.jBreadCrumb.1.1.js +240 -0
  135. data/public/javascripts/sexyalertbox.v1.2.jquery.js +414 -0
  136. data/public/javascripts/ui.selectmenu.js +541 -0
  137. data/public/stylesheets/BreadCrumb.css +109 -0
  138. data/public/stylesheets/common.css +146 -86
  139. data/public/stylesheets/dialog.css +7 -7
  140. data/public/stylesheets/jquery-ui-1.8.4.custom.css +41 -40
  141. data/public/stylesheets/jquery.cluetip.css +179 -0
  142. data/public/stylesheets/sexyalertbox.css +67 -0
  143. data/public/stylesheets/ui.selectmenu.css +24 -0
  144. data/test/functional/{images_controller_test.rb → machine_images_controller_test.rb} +1 -1
  145. data/test/unit/helpers/machine_images_helper_test.rb +4 -0
  146. metadata +350 -221
  147. data/README +0 -256
  148. data/app/api/auth_server.rb +0 -28
  149. data/app/helpers/images_helper.rb +0 -2
  150. data/app/views/information/index.html.erb +0 -25
  151. data/app/views/layouts/_service_health.erb +0 -27
  152. data/test/unit/helpers/images_helper_test.rb +0 -4
@@ -16,6 +16,7 @@ module DcmgrResource
16
16
  def self.create(params)
17
17
  snapshot = self.new
18
18
  snapshot.volume_id = params[:volume_id]
19
+ snapshot.destination = params[:destination]
19
20
  snapshot.save
20
21
  snapshot
21
22
  end
@@ -31,5 +32,10 @@ module DcmgrResource
31
32
  self.collection_name = @collection
32
33
  result
33
34
  end
35
+
36
+ def self.upload_destination
37
+ result = self.get(:upload_destination)
38
+ result
39
+ end
34
40
  end
35
41
  end
@@ -3,7 +3,7 @@ class Information < BaseNew
3
3
  with_timestamps
4
4
  inheritable_schema do
5
5
  String :title, :size=>255
6
+ String :link, :text=>true
6
7
  String :description, :text=>true
7
8
  end
8
-
9
9
  end
@@ -0,0 +1,15 @@
1
+ require 'oauth'
2
+ class OauthConsumer < BaseNew
3
+
4
+ many_to_one :account
5
+
6
+ with_timestamps
7
+
8
+ inheritable_schema do
9
+ primary_key :id, :type=>Integer
10
+ String :key, :null => false, :size => 40
11
+ String :secret, :null => false, :size => 40
12
+ Integer :account_id, :null => false, :unique=>true
13
+ index :key, :unique=>true
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ # -*- coding: utf-8 -*-
2
+ class OauthToken < BaseNew
3
+ attr_accessor :token
4
+ attr_accessor :secret
5
+
6
+ def generate_keys
7
+ self.token = OAuth::Helper.generate_key(40)[0,40]
8
+ self.secret = OAuth::Helper.generate_key(40)[0,40]
9
+ end
10
+ end
data/app/models/user.rb CHANGED
@@ -6,14 +6,33 @@ class User < BaseNew
6
6
  plugin :subclasses
7
7
 
8
8
  inheritable_schema do
9
+ Time :last_login_at, :null=>false
9
10
  String :name, :fixed=>true, :size=>200, :null=>false
10
11
  primary_key :id, :type=>Integer
11
- String :login_id
12
+ String :login_id, :unique=>true
12
13
  String :password, :null=>false
13
14
  String :primary_account_id
15
+ String :locale, :size=>255, :null => false
16
+ String :time_zone, :size=>255, :null => false
14
17
  end
15
18
 
16
19
  many_to_many :accounts,:join_table => :users_accounts
20
+
21
+ def before_create
22
+ set(:locale => I18n.default_locale.to_s)
23
+ set(:time_zone => Time.zone.name)
24
+ set(:last_login_at => Time.now.utc)
25
+ super
26
+ end
27
+
28
+ # Removes all relations to accounts before deleting the record
29
+ def before_destroy
30
+ relations = self.accounts
31
+ for ss in 0...relations.length do
32
+ self.remove_account(relations[0])
33
+ end
34
+ super
35
+ end
17
36
 
18
37
  class << self
19
38
  def authenticate(login_id,password)
@@ -42,5 +61,19 @@ class User < BaseNew
42
61
  salt = Digest::SHA1.hexdigest(DcmgrGui::Application.config.secret_token)
43
62
  Digest::SHA1.hexdigest("--#{salt}--#{password}--")
44
63
  end
64
+
65
+ def update_last_login(user_id)
66
+ u = User.find(:id => user_id)
67
+ u.last_login_at = Time.now
68
+ u.save
69
+ end
70
+
71
+ def update_settings(user_id, params)
72
+ u = User.find(:id => user_id)
73
+ p params
74
+ u.time_zone = params[:time_zone] || u.time_zone
75
+ u.locale = params[:locale] || u.locale
76
+ u.save
77
+ end
45
78
  end
46
79
  end
@@ -1,68 +1,43 @@
1
+ <% content_for :javascript do %>
2
+ <%= javascript_include_tag 'dcmgr_gui/account_panel.js' %>
3
+ <script type="text/javascript">
4
+ jQuery(function($){
5
+ dcmgrGUI.accountPanel();
6
+ });
7
+ </script>
8
+ <% end %>
9
+ <style type="text/css">
10
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { text-align:center; float: none;}
11
+ </style>
1
12
  <div id="mainarea_wide">
2
- <h3><img src="images/icon_resource.gif" />Personal Information<a href="#" class="showhide"></a></h3>
3
- <div class="maincontent">
4
- <div class="display_area">
5
- <table class="ptn05" frame="void" cellpadding="0" cellspacing="0" border="0">
6
- <tr>
7
- <td class="color1">Full name:</td>
8
- <td><span class="textblock">thedesignium</span><a href="#" class="change"></a></td>
9
- </tr>
10
- <tr>
11
- <td class="color1">E-mail Address/ID:</td>
12
- <td>contact_with@thedesignium.com</td>
13
- </tr>
14
- <tr>
15
- <td class="color1">Password:</td>
16
- <td class="special">************</td>
17
- </tr>
18
- <tr>
19
- <td class="color2">Address Line 1:</td>
20
- <td><input type="text" class="type01" /><br />
21
- <span class="small">Street address, P.O. box, company name, c/o</span>
22
- </td>
23
- </tr>
24
- <tr>
25
- <td class="color2">Address Line 2:</td>
26
- <td><input type="text" class="type01" /><br />
27
- <span class="small">Apartment, suite, unite, building, floor, etc.</span>
28
- </td>
29
- </tr>
30
- <tr>
31
- <td class="color2">City:</td>
32
- <td><input type="text" class="type02" /></td>
33
- </tr>
34
- <tr>
35
- <td class="color2">State, Province or Region:</td>
36
- <td><input type="text" class="type02" /></td>
37
- </tr>
38
- <tr>
39
- <td class="color2">ZIP or Postal Code:</td>
40
- <td><input type="text" class="type02" /></td>
41
- </tr>
42
- <tr>
43
- <td class="color2">Country:</td>
44
- <td>
45
- <select>
46
- <option>Japan</option>
47
- </select>
48
- </td>
49
- </tr>
50
- <tr>
51
- <td class="color2">Phone number:</td>
52
- <td><input type="text" class="type02" /></td>
53
- </tr>
54
- <tr>
55
- <td class="color2">Company Name:</td>
56
- <td><input type="text" class="type02" /></td>
57
- </tr>
58
- <tr>
59
- <td class="color2">Web Site URL:</td>
60
- <td><input type="text" class="type02" /></td>
61
- </tr>
62
- </table>
63
- </div>
64
- <a href="#" class="savechange"></a>
65
- <div class="spacer10"></div>
66
- </div>
67
- <div id="btm_maincontent_wide_last"></div>
68
- </div>
13
+ <h3><img src="images/icon_resource.gif" /><%= t("accounts.header") %></h3>
14
+ <div class="maincontent account">
15
+ <div id="account_top">
16
+ <div id="account_password"><%= link_to t("accounts.password.header"), :action => 'password' %></a></div>
17
+ <div id="account_information">
18
+ <blockquote>
19
+ <h4><%= t("accounts.top.information") %></h4>
20
+ <hr />
21
+ <p><%= t("accounts.top.last_login") %>: <span id="last_login_at"><%= user_last_login_at %></span></p>
22
+ </blockquote>
23
+ </div><!-- account_information -->
24
+ <div id="account_settings">
25
+ <% form_for :account, :url=>{:action => 'update_settings'}, :html => {:id => "settings_form"} do |f| %>
26
+ <blockquote>
27
+ <h4><%= t("accounts.top.settings") %></h4>
28
+ <hr />
29
+ <div id="account_top_timezone">
30
+ <span><%= t("accounts.top.timezone") %></span><%= f.time_zone_select( :time_zone, nil, :default => @current_user.time_zone, :include_blank => true) %>
31
+ </div>
32
+ <div id="account_top_locale">
33
+ <span><%= t("accounts.top.locale") %></span>
34
+ <%= f.select(:locale, @locales, :selected => session[:locale], :selected => @current_user.locale) %>
35
+ </div>
36
+ <p id="account_submit"><%= f.submit t("accounts.top.submit") %></p>
37
+ <% end %>
38
+ </blockquote>
39
+ </div><!-- account_settings -->
40
+ </div><!-- account_top -->
41
+ </div><!-- maincontent -->
42
+ <div id="btm_maincontent_wide_last"></div>
43
+ </div><!-- mainarea_wide -->
@@ -0,0 +1,35 @@
1
+ <% content_for :javascript do %>
2
+ <%= javascript_include_tag 'jquery.jBreadCrumb.1.1.js' %>
3
+ <script type="text/javascript">
4
+ jQuery(function($){
5
+ $("#breadCrumb").jBreadCrumb();
6
+ });
7
+ </script>
8
+ <% end %>
9
+ <div id="mainarea_wide">
10
+ <h3><img src="/images/icon_resource.gif" /><%= t("accounts.header") %></h3>
11
+ <div class="maincontent account">
12
+ <div id="breadCrumb" class="breadCrumb module account">
13
+ <ul>
14
+ <li>
15
+ <a href="/accounts"><%= t("accounts.header") %></a>
16
+ </li>
17
+ <li>
18
+ <%= t("accounts.password.header") %>
19
+ </li>
20
+ </ul>
21
+ </div>
22
+ <div id="password">
23
+ <% form_for :account, :url=>{:action => 'password'}, :html => {:id => "change_password_form"} do |f| %>
24
+ <p><label for="password"><%= t("accounts.password.password") %><span class="required"> *</span></label><br /><input id="password" type="password" value="" name="password"></p>
25
+ <p><label for="new_password"><%= t("accounts.password.new_password") %><span class="required"> * </span></label><br /><input id="new_password" type="password" value="" name="new_password"></p>
26
+ <p><label for="confirm_password"><%= t("accounts.password.confirm_password") %><span class="required"> *</span></label><br /><input id="confirm_password" type="password" value="" name="confirm_password"></p>
27
+ <%= f.submit t("accounts.password.submit") %>
28
+ <% if @error_message %>
29
+ <p><div class="error_message"><%= @error_message %></div></p>
30
+ <% end %>
31
+ <% end %>
32
+ </div>
33
+ </div><!-- maincontent -->
34
+ <div id="btm_maincontent_wide_last"></div>
35
+ </div><!-- mainarea_wide -->
@@ -1,12 +1,12 @@
1
1
  <div id="attach_volume_dialog">
2
2
  <table>
3
3
  <tr>
4
- <td>Volume ID:</td>
4
+ <td><%= t("dialog.attach_volume.volume_id") %>:</td>
5
5
  <td id="view_volume_id"><%= @volume_id %></td>
6
6
  <input id="volume_id" type="hidden" value="<%= @volume_id %>">
7
7
  </tr>
8
8
  <tr>
9
- <td>Instance ID:</td>
9
+ <td><%= t("dialog.attach_volume.instance_id") %>:</td>
10
10
  <td><input id="instance_id" type="text" value=""></td>
11
11
  </tr>
12
12
  </table>
@@ -1,32 +1,65 @@
1
1
  <style type="text/css">
2
- table td {
3
- padding-top :10px;
4
- padding-left :5px;
2
+ #create_security_group_dialog div {
3
+ padding-top :5px;
4
+ padding-bottom :5px;
5
5
  }
6
6
  </style>
7
7
  <div id="create_security_group_dialog">
8
- <table>
9
- <tr>
10
- <td>Name:</td>
11
- <td>
12
- <% if @name %>
13
- <%= @name %>
14
- <input type="hidden" id="security_group_name" value="<%= @name %>">
15
- <% else %>
16
- <input type="text" id="security_group_name" size="20"></td>
17
- <% end %>
18
- <input type="hidden" id="security_group_id" value="<%= @uuid %>">
19
- </tr>
20
- <tr>
21
- <td>Description:</td>
22
- <td><input type="text" id="security_group_description" size="43" value="<%= @description %>"></td>
23
- </tr>
24
- <tr>
25
- <td>Rule:</td>
26
- </tr>
27
- <tr>
28
- <td colspan="2">
29
- <textarea id="security_group_rule" rows="10" cols="10" style="width:442px;height:320px"><%= @rule %></textarea></td>
30
- </tr>
31
- </table>
32
- </div>
8
+ <div id="security_group_name_field">
9
+ <p><%= t("dialog.create_and_edit_security_group.name") %></p>
10
+ <% if @name %>
11
+ <input type="text" id="security_group_name" size="20" value="<%= @name %>" disabled>
12
+ <% else %>
13
+ <input type="text" id="security_group_name" size="20">
14
+ <% end %>
15
+ <input type="hidden" id="security_group_id" value="<%= @uuid %>">
16
+ </div>
17
+ <div id="security_group_description_field">
18
+ <p>
19
+ <%= t("dialog.create_and_edit_security_group.description") %>
20
+ </p>
21
+ <input type="text" id="security_group_description" size="43" value="<%= @description %>">
22
+ </div>
23
+ <div id="security_group_rule_field">
24
+ <p>
25
+ <%= t("dialog.create_and_edit_security_group.rule") %> [<span rel="#rule_help" id="security_group_help" title="Rule Help" style="color:red">?</span>]
26
+ </p>
27
+ </div>
28
+ <textarea id="security_group_rule" rows="10" cols="10" style="width:442px;height:320px" ><%= @rule %></textarea>
29
+ <div id="rule_help">
30
+ <pre>
31
+ SYNOPSIS
32
+
33
+ "protocol", "from port", "to port", "source cidr"
34
+ "protocol", "from port", "to port", "source account_id:group"
35
+ "protocol", "icmp type", "icmp code", "source cidr"
36
+ "protocol", "icmp type", "icmp code", "source account_id:group"
37
+
38
+ PARAMETERS
39
+
40
+ protocol:
41
+ tcp, udp, icmp
42
+
43
+ from port:
44
+ 1 .. 65535
45
+
46
+ to port:
47
+ 1 .. 65535
48
+
49
+ icmp type:
50
+ -1 or 0, 3, 5, 8, 11, 12, 13, 14, 15, 16, 17, 18
51
+ '-1' means wild card.
52
+
53
+ icmp code:
54
+ -1 or 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
55
+ '-1' means wild card.
56
+
57
+ source account:group
58
+ ex. a-trustedx:default
59
+
60
+ source cidr:
61
+ ex. 0.0.0.0/0, 192.168.0.0/24
62
+
63
+ </pre>
64
+ </div>
65
+ </div>
@@ -1,7 +1,14 @@
1
- <p>Are you sure you want to create the following snapshot?</p>
1
+ <div id="create_snapshost_dialog">
2
+ <p><%= t("dialog.create_snapshot.message") %></p>
3
+ <% form_tag :action => "create_snapshot" do %>
2
4
  <br />
5
+ store to:&nbsp;
6
+ <span id="select_destination">
7
+ </span>
3
8
  <ul id="create_snapshots">
4
- <% @volume_ids.each do |volume_id| %>
5
- <li><%= volume_id %></li>
6
- <% end %>
9
+ <% @volume_ids.each do |volume_id| %>
10
+ <li><%= volume_id %></li>
11
+ <% end %>
7
12
  </ul>
13
+ <% end %>
14
+ </div>
@@ -1,12 +1,12 @@
1
1
  <div id="create_ssh_keypair_dialog">
2
2
  <table>
3
3
  <tr>
4
- <td>Key Pair Name:</td>
4
+ <td><%= t("dialog.create_ssh_keypair.keypair_name")%>:</td>
5
5
  <td>
6
6
  <input id="ssh_keypair_name" type="text" name="name" >
7
7
  </td>
8
8
  <tr>
9
- <td>Download Once: </td>
9
+ <td><%= t("dialog.create_ssh_keypair.download_once")%>: </td>
10
10
  <td>
11
11
  <input id="ssh_keypair_download_once" type="checkbox" name="download_once" checked>
12
12
  </td>
@@ -1,18 +1,17 @@
1
1
  <div id="create_volume_dialog">
2
2
  <table>
3
3
  <tr>
4
- <td>Size:</td>
4
+ <td><%= t("dialog.create_volume.size") %>:</td>
5
5
  <td>
6
6
  <input id="volume_size" type="text" name="size" size="2" maxlength="3">
7
7
  <select id="unit">
8
8
  <option value="gb">GB</option>
9
- <option value="tb">TB</option>
10
9
  </select>
11
10
  </td>
12
11
  <tr>
13
- <td>Storage:</td>
12
+ <td><%= t("dialog.create_volume.storage") %>:</td>
14
13
  <td id="select_storage_pool"></td>
15
14
  </tr>
16
15
  </tr>
17
16
  </table>
18
- </div>
17
+ </div>
@@ -1,4 +1,4 @@
1
- <p>Are you sure you want to create the following volume?</p>
1
+ <p><%= t("dialog.create_volume_from_snapshot.message") %></p>
2
2
  <br />
3
3
  <ul id="create_volumes">
4
4
  <% @snapshot_ids.each do |snapshot_id| %>
@@ -1,4 +1,4 @@
1
- <p>Are you sure you want to delete the following security_group?</p>
1
+ <p><%= t("dialog.delete_security_group.message") %></p>
2
2
  <br />
3
3
  <span id="delete_group_name"><%= @name %></span>
4
4
  <input type="hidden" id="security_group_id" value="<%= @uuid %>">
@@ -1,4 +1,4 @@
1
- <p>Are you sure you want to delete the following snapshot?</p>
1
+ <p><%= t("dialog.delete_snapshot.message") %></p>
2
2
  <br />
3
3
  <ul id="delete_snapshots">
4
4
  <% @snapshot_ids.each do |snapshot_id| %>