[Ovirt-devel] [PATCH] More UI enhancements for task list:
Scott Seago
sseago at redhat.com
Tue Jan 13 17:42:06 UTC 2009
1) show selected filters more clearly (without having to expand the menu)
2) combined rarely-used 'args' column with 'action' in the display
3) moved 'message' next to the 'action' column
Signed-off-by: Scott Seago <sseago at redhat.com>
---
src/app/controllers/task_actions.rb | 2 +-
src/app/models/host_task.rb | 6 +++++-
src/app/models/storage_task.rb | 6 +++++-
src/app/models/storage_volume_task.rb | 6 +++++-
src/app/models/task.rb | 17 +++++++++++------
src/app/models/vm_task.rb | 6 +++++-
src/app/views/task/_grid.rhtml | 7 +++----
src/app/views/task/_show.rhtml | 6 ++++--
src/public/images/view.png | Bin 0 -> 985 bytes
9 files changed, 39 insertions(+), 17 deletions(-)
create mode 100644 src/public/images/view.png
diff --git a/src/app/controllers/task_actions.rb b/src/app/controllers/task_actions.rb
index d71c11e..de43e9b 100644
--- a/src/app/controllers/task_actions.rb
+++ b/src/app/controllers/task_actions.rb
@@ -42,7 +42,7 @@ module TaskActions
find_opts[:conditions] = conditions unless conditions.empty?
attr_list = []
attr_list << :id if params[:checkboxes]
- attr_list += [:type_label, :task_obj, :action, :state, :user, :created_at, :args, :message]
+ attr_list += [:type_label, :task_obj, :action_with_args, :message, :state, :user, :created_at]
json_hash(tasks_query_obj, attr_list, [:all], find_opts)
end
diff --git a/src/app/models/host_task.rb b/src/app/models/host_task.rb
index 82298db..38305a3 100644
--- a/src/app/models/host_task.rb
+++ b/src/app/models/host_task.rb
@@ -26,7 +26,11 @@ class HostTask < Task
end
def task_obj
- "Host;;;#{self.host.id};;;#{self.host.hostname}"
+ if self.host
+ "Host;;;#{self.host.id};;;#{self.host.hostname}"
+ else
+ ""
+ end
end
def vm
diff --git a/src/app/models/storage_task.rb b/src/app/models/storage_task.rb
index 785f0ea..308673d 100644
--- a/src/app/models/storage_task.rb
+++ b/src/app/models/storage_task.rb
@@ -26,7 +26,11 @@ class StorageTask < Task
end
def task_obj
- "StoragePool;;;#{self.storage_pool.id};;;#{self.storage_pool.display_name}"
+ if self.storage_pool
+ "StoragePool;;;#{self.storage_pool.id};;;#{self.storage_pool.display_name}"
+ else
+ ""
+ end
end
def host
nil
diff --git a/src/app/models/storage_volume_task.rb b/src/app/models/storage_volume_task.rb
index 136f1ba..021ef63 100644
--- a/src/app/models/storage_volume_task.rb
+++ b/src/app/models/storage_volume_task.rb
@@ -27,7 +27,11 @@ class StorageVolumeTask < Task
end
def task_obj
- "StorageVolume;;;#{self.storage_volume.id};;;#{self.storage_volume.display_name}"
+ if self.storage_volume
+ "StorageVolume;;;#{self.storage_volume.id};;;#{self.storage_volume.display_name}"
+ else
+ ""
+ end
end
def host
nil
diff --git a/src/app/models/task.rb b/src/app/models/task.rb
index 4d16e01..dd24e6a 100644
--- a/src/app/models/task.rb
+++ b/src/app/models/task.rb
@@ -45,18 +45,18 @@ class Task < ActiveRecord::Base
COMPLETED_STATES = [STATE_FINISHED, STATE_FAILED, STATE_CANCELED]
WORKING_STATES = [STATE_QUEUED, STATE_RUNNING, STATE_PAUSED]
- TASK_TYPES_OPTIONS = [["VM Task", "VmTask"],
- ["Host Task", "HostTask"],
- ["Storage Task", "StorageTask"],
- ["Storage Volume Task", "StorageVolumeTask", "break"],
- ["Show All", ""]]
+ TASK_TYPES_OPTIONS = [["VM Tasks", "VmTask"],
+ ["Host Tasks", "HostTask"],
+ ["Storage Tasks", "StorageTask"],
+ ["Storage Volume Tasks", "StorageVolumeTask", "break"],
+ ["All Types", ""]]
TASK_STATES_OPTIONS = [["Queued", Task::STATE_QUEUED],
["Running", Task::STATE_RUNNING],
["Paused", Task::STATE_PAUSED],
["Finished", Task::STATE_FINISHED],
["Failed", Task::STATE_FAILED],
["Canceled", Task::STATE_CANCELED, "break"],
- ["Show All", ""]]
+ ["All States", ""]]
def cancel
self[:state] = STATE_CANCELED
@@ -84,4 +84,9 @@ class Task < ActiveRecord::Base
""
end
+ def action_with_args
+ ret_val = action
+ ret_val += " #{args}" if args
+ ret_val
+ end
end
diff --git a/src/app/models/vm_task.rb b/src/app/models/vm_task.rb
index 27e3e65..27513bb 100644
--- a/src/app/models/vm_task.rb
+++ b/src/app/models/vm_task.rb
@@ -123,7 +123,11 @@ class VmTask < Task
end
def task_obj
- "Vm;;;#{self.vm.id};;;#{self.vm.description}"
+ if self.vm
+ "Vm;;;#{self.vm.id};;;#{self.vm.description}"
+ else
+ ""
+ end
end
def self.valid_actions_for_vm_state(state, vm=nil, user=nil)
diff --git a/src/app/views/task/_grid.rhtml b/src/app/views/task/_grid.rhtml
index 3c17ac5..5e2a3d5 100644
--- a/src/app/views/task/_grid.rhtml
+++ b/src/app/views/task/_grid.rhtml
@@ -18,12 +18,11 @@
<%= "{display: '', width : 20, align: 'left', process: #{table_id}checkbox}," if checkboxes %>
{display: 'Type', width : 80, align: 'left'},
{display: 'Item', width : 120, align: 'right', process: <%= table_id%>item},
- {display: 'Action', name : 'action', width : 80, align: 'left'},
+ {display: 'Action', name : 'action', width : 120, align: 'left'},
+ {display: 'Message', name : 'message', width : 180, align: 'left'},
{display: 'State', name : 'state', width : 60, align: 'left'},
{display: 'User', name : 'user', width : 60, align: 'right'},
- {display: 'Created', name : 'tasks.created_at', width : 140, align: 'right'},
- {display: 'Args', name : 'args', width : 180, align: 'left'},
- {display: 'Message', name : 'message', width : 180, align: 'left'}
+ {display: 'Created', name : 'tasks.created_at', width : 140, align: 'right'}
],
sortname: "tasks.created_at",
sortorder: "desc",
diff --git a/src/app/views/task/_show.rhtml b/src/app/views/task/_show.rhtml
index 5d8d180..9421dc9 100644
--- a/src/app/views/task/_show.rhtml
+++ b/src/app/views/task/_show.rhtml
@@ -2,7 +2,8 @@
<ul>
<%if task_types %>
<li>
- <%= image_tag "icon_move.png", :style => "vertical-align:middle;" %> Type <%= image_tag "icon_toolbar_arrow.gif", :style => "vertical-align:middle;" %>
+ <%= image_tag "view.png", :style => "vertical-align:middle;" %> <%= task_types.select {|type| type[1]==task_type}[0][0] %>
+ <%= image_tag "icon_toolbar_arrow.gif", :style => "vertical-align:middle;" %>
<ul>
<% task_types.each_index { |index| %>
<li onclick="apply_task_filter('<%=task_types[index][1]%>','<%=task_state%>');";"
@@ -20,7 +21,8 @@
<% end %>
<li>
- <%= image_tag "icon_move.png", :style => "vertical-align:middle;" %> State <%= image_tag "icon_toolbar_arrow.gif", :style => "vertical-align:middle;" %>
+ <%= image_tag "view.png", :style => "vertical-align:middle;" %> <%= task_states.select {|state| state[1]==task_state}[0][0] %>
+ <%= image_tag "icon_toolbar_arrow.gif", :style => "vertical-align:middle;" %>
<ul>
<% task_states.each_index { |index| %>
<li onclick="apply_task_filter('<%=task_type%>','<%=task_states[index][1]%>');";"
diff --git a/src/public/images/view.png b/src/public/images/view.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e0aef0fde79fe85d47899594dd4f3f2038b398c
GIT binary patch
literal 985
zcmV;~119{5P)<h;3K|Lk000e1NJLTq000yK000yS1^@s6jfou%0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#dr3q=RCwB?l*?}$RTRd*xifyn4yl^N
zkG6>#5u&OIDnf!*3dE%w*dSK0KnPT}AhAHKSo0T9sTD$k6^npc2|?LJpj23)h_-2+
zHj~Cp+{Ae}6Wj54#*gv!+ at 3qNQ50Dbk1Ks+&-i>lpL@=ktKjgZOifOnWsJSan37B+
z5)+nX3(K~bgzL_7&ad4_rEXH3_}g#@j3r;0{8&}hkKX&>;@DL3JYw+#ITS4D%lLI>
z1~Wfj&A6 at Bm$Sd8E>XODSZ0he`{Y70Sy^0K7WJkpTCNaHx=3XUj+k5A65n2(5i&-`
zN{=+E-L`q|<(FRd`+Z+r`s(X=Xy7Cw0fq(_upJjg+eOB3kS#R9U526I6aLJ?t<iWa
zHlN$rTw`5;norZ-diVW{qv64mDA*i37OBFKD{*9t4n1puD?a3lCVGyIW9ZpaqtYY2
zS{I<7F?DKe{0uftj-u6q-EiSj*=tRg1kkP_=-zQSoIn)Kx&`Tx-flpjs<N@@@ew at S
zYk80crvg#?B$T^PRj*Z{XaQ8I3{I0ndZf1-(0eAcl67-PF43sDURIngP7AQiGFUKz
zz3nVm&j2~{p0`^K!Fg*X^JoPsfn;`dg4UaYvX!3_Rza;+0}CI8v6_azFYbBJY4t%~
z!)g4LzCGvN(3p7Lt<u)5Y7GTr2c at C`^_dt<V+)0)6j3xtkMwpM8 at 0DLq82x^=c2=7
zeQG2M+qPj<Dpa>RO|J$uJOHzp$Gz`9N9_3vc>Kq;^+Kt1Ww%h!y8+pYBh~T#Uh$!R
zXCA_BK?(E`q~9Br^3FQ8(zD3TO(ROMwbXRYG%Mev??3pSyyn4IPkH-%_>D-2T|W^Y
zgzv};xTEia2NP)6WoisV&)^V3M~->h+_-%`S2oQb=I^C1lXp}0az9Xc=e5Y|;h^%%
z#B(EX5X44q6(yTN&nKosJ)sGo<{S3v%A0Gn{kz4z(r+uP*;#tDO|s<stQ~}%J#!lV
zNDQlw7GP7&mLEHx-O}?n+6PIX9p7jJ_DE$?wR1RV2VsN9Pa&I`M{e7|{jBrppL*jb
zirH-&Itg%@D9LGm7yE}eupee@=va8T@)Wk%_>q3!YG)wu50;$6P?HP21G{<m!GDHz
zj;~;UpDNbZ^wDi&_vrtDbx!OcDN2g9|G;Q>?O(&>dLqC862I3E#!IpG00000NkvXX
Hu0mjfwm{v~
literal 0
HcmV?d00001
--
1.6.0.6
More information about the ovirt-devel
mailing list