[Ovirt-devel] [PATCH] added tallen's confirmation dialog styling changes. I've replaced all of the confirm("foo") javascript confirmation popups with the facebox-based design.
Scott Seago
sseago at redhat.com
Fri Jul 18 16:59:49 UTC 2008
Signed-off-by: Scott Seago <sseago at redhat.com>
---
wui/src/app/helpers/application_helper.rb | 24 ++++++++++
wui/src/app/views/hardware/quick_summary.rhtml | 26 ++++++------
wui/src/app/views/layouts/_side_toolbar.rhtml | 6 ++-
wui/src/app/views/layouts/redux.rhtml | 40 ++++++++---------
wui/src/app/views/resources/quick_summary.rhtml | 30 +++++++-------
wui/src/app/views/storage/show.rhtml | 24 +++++-----
wui/src/app/views/vm/show.rhtml | 52 +++++++++++-----------
wui/src/public/images/bg_warningMessage.png | Bin 0 -> 625 bytes
wui/src/public/images/icon_warning.png | Bin 0 -> 1954 bytes
wui/src/public/stylesheets/layout.css | 18 ++++++++
10 files changed, 131 insertions(+), 89 deletions(-)
create mode 100644 wui/src/public/images/bg_warningMessage.png
create mode 100644 wui/src/public/images/icon_warning.png
diff --git a/wui/src/app/helpers/application_helper.rb b/wui/src/app/helpers/application_helper.rb
index 58a6358..63a33d3 100644
--- a/wui/src/app/helpers/application_helper.rb
+++ b/wui/src/app/helpers/application_helper.rb
@@ -113,6 +113,30 @@ module ApplicationHelper
}
end
+ def confirmation_dialog(div_id, text, action)
+ %{
+ <div id="#{div_id}" style="display:none;">
+ <div class="confirm_dialog_title">
+ <div class="confirm_dialog_header">#{text}</div>
+ <div style="clear:both;"></div>
+ </div>
+
+ <div class="confirm_dialog_footer">
+ <div class="button">
+ <div class="button_left_grey"></div>
+ <div class="button_middle_grey"><a href="#" onclick="jQuery(document).trigger('close.facebox')">Cancel</a></div>
+ <div class="button_right_grey"></div>
+ </div>
+ <div class="button">
+ <div class="button_left_blue"></div>
+ <div class="button_middle_blue"><a href="#" onclick="#{action}">OK</a></div>
+ <div class="button_right_blue"></div>
+ </div>
+ </div>
+ </div>
+ }
+ end
+
def timeout_flash(name)
%{
<script type="text/javascript">
diff --git a/wui/src/app/views/hardware/quick_summary.rhtml b/wui/src/app/views/hardware/quick_summary.rhtml
index 897cecb..eb2e6af 100644
--- a/wui/src/app/views/hardware/quick_summary.rhtml
+++ b/wui/src/app/views/hardware/quick_summary.rhtml
@@ -10,7 +10,7 @@
<%= link_to image_tag("icon_edit.png") + " Edit Default Quota",
{:controller => 'quota', :action => 'edit', :id => @pool.quota},
:rel=>"facebox[.bolder]", :class=>"selection_facebox" %>
- <a href="#" onClick="delete_default_quota()">
+ <a href="#confirm_delete_default_quota" rel="facebox[.bolder]">
<%= image_tag "icon_x.png" %> Remove Default Quota
</a>
<% else -%>
@@ -20,21 +20,21 @@
<% end -%>
<% end -%>
<% end -%>
+<%= confirmation_dialog("confirm_delete_default_quota", "Are you sure?", "delete_default_quota()") %>
<script type="text/javascript">
function delete_default_quota()
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "quota", :action => "destroy", :id => @pool.quota %>',
- function(data,status){
- refresh_summary('hwpool_selection',
- '<%= url_for :controller => "hardware",
- :action => "quick_summary" %>',
- <%= @pool.id %>)
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "quota", :action => "destroy", :id => @pool.quota %>',
+ function(data,status){
+ refresh_summary('hwpool_selection',
+ '<%= url_for :controller => "hardware",
+ :action => "quick_summary" %>',
+ <%= @pool.id %>);
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ }, 'json');
}
</script>
diff --git a/wui/src/app/views/layouts/_side_toolbar.rhtml b/wui/src/app/views/layouts/_side_toolbar.rhtml
index 2cdd4f3..42cbae6 100644
--- a/wui/src/app/views/layouts/_side_toolbar.rhtml
+++ b/wui/src/app/views/layouts/_side_toolbar.rhtml
@@ -13,10 +13,12 @@
</div>
<% end -%>
<div class="toolbar" style="float:left;">
- <a href="#" onClick="delete_<%=pool[:type]=='HardwarePool' ? 'hw' : 'vm' %>_pool(<%=pool.id%>)">
+ <a href="#conf_nav_delete_pool" rel="facebox[.bolder]">
<%= image_tag "icon_delete.gif", :title=>"Delete Selected Pool" %>
</a>
</div>
<% end -%>
-
+<div class="toolbar" style="display:none;">
+ <%= confirmation_dialog("conf_nav_delete_pool", "Are you sure?", "delete_#{pool[:type]=='HardwarePool' ? 'hw' : 'vm'}_pool(#{pool.id})") %>
+</div>
<div class="toolbar"></div>
diff --git a/wui/src/app/views/layouts/redux.rhtml b/wui/src/app/views/layouts/redux.rhtml
index 46ff9da..23983fa 100644
--- a/wui/src/app/views/layouts/redux.rhtml
+++ b/wui/src/app/views/layouts/redux.rhtml
@@ -109,30 +109,28 @@
function delete_vm_pool(id, parent)
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "resources", :action => "destroy" %>',
- {id: id},
- function(data,status){
- // need to redirect to the parent using the new ajax reload stuff
- $("#vmpools_grid").flexReload()
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "resources", :action => "destroy" %>',
+ {id: id},
+ function(data,status){
+ // need to redirect to the parent using the new ajax reload stuff
+ $("#vmpools_grid").flexReload();
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ }, 'json');
}
function delete_hw_pool(id, parent)
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "hardware", :action => "destroy" %>',
- {id: id},
- function(data,status){
- // need to redirect to the parent using the new ajax reload stuff
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "hardware", :action => "destroy" %>',
+ {id: id},
+ function(data,status){
+ // need to redirect to the parent using the new ajax reload stuff
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ }, 'json');
}
</script>
<%= yield :scripts -%>
diff --git a/wui/src/app/views/resources/quick_summary.rhtml b/wui/src/app/views/resources/quick_summary.rhtml
index 77b1708..b17d332 100644
--- a/wui/src/app/views/resources/quick_summary.rhtml
+++ b/wui/src/app/views/resources/quick_summary.rhtml
@@ -10,7 +10,7 @@
<%= link_to image_tag("icon_edit.png") + " Edit Quota",
{:controller => 'quota', :action => 'edit', :id => @vm_resource_pool.quota},
:rel=>"facebox[.bolder]", :class=>"selection_facebox" %>
- <a href="#" onClick="delete_vm_quota()">
+ <a href="#confirm_delete_quota" rel="facebox[.bolder]">
<%= image_tag "icon_x.png" %> Revert to Default Quota
</a>
<% else -%>
@@ -20,22 +20,22 @@
<% end -%>
<% end -%>
<% end -%>
+<%= confirmation_dialog("confirm_delete_quota", "Are you sure?", "delete_vm_quota()") %>
<script type="text/javascript">
- function delete_vm_quota(id)
+ function delete_vm_quota()
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "quota", :action => "destroy", :id => @vm_resource_pool.quota %>',
- {x: 1},
- function(data,status){
- refresh_summary('vmpool_selection',
- '<%= url_for :controller => "resources",
- :action => "quick_summary" %>',
- <%= @vm_resource_pool.id %>)
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "quota", :action => "destroy", :id => @vm_resource_pool.quota %>',
+ {x: 1},
+ function(data,status){
+ refresh_summary('vmpool_selection',
+ '<%= url_for :controller => "resources",
+ :action => "quick_summary" %>',
+ <%= @vm_resource_pool.id %>);
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ }, 'json');
}
</script>
diff --git a/wui/src/app/views/storage/show.rhtml b/wui/src/app/views/storage/show.rhtml
index 6263021..19ab30e 100644
--- a/wui/src/app/views/storage/show.rhtml
+++ b/wui/src/app/views/storage/show.rhtml
@@ -10,7 +10,7 @@
<a href="#" onClick="refresh_storage_pool()">
<%= image_tag "icon_refresh.png" %> Refresh
</a>
- <a href="#" onClick="delete_storage_pool()">
+ <a href="#confirm_delete_storage" rel="facebox[.bolder]">
<%= image_tag "icon_x.png" %> Delete
</a>
<%- end -%>
@@ -52,6 +52,7 @@
<%- end -%>
+<%= confirmation_dialog("confirm_delete_storage", "Are you sure?", "delete_storage_pool()") %>
<script type="text/javascript">
$("#storage_volumes_grid").flexigrid
(
@@ -82,7 +83,7 @@
'<%= url_for :controller => "storage",
:action => "show" %>',
<%= @storage_pool.id %>)
- $("#storage_grid").flexReload()
+ $("#storage_grid").flexReload();
if (data.alert) {
$.jGrowl(data.alert);
}
@@ -90,16 +91,15 @@
}
function delete_storage_pool()
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "storage", :action => "destroy", :id => @storage_pool %>',
- function(data,status){
- $("#storage_grid").flexReload()
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- empty_summary('storage_selection', 'Storage Pool')
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "storage", :action => "destroy", :id => @storage_pool %>',
+ function(data,status){
+ $("#storage_grid").flexReload();
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ empty_summary('storage_selection', 'Storage Pool');
+ }, 'json');
}
</script>
diff --git a/wui/src/app/views/vm/show.rhtml b/wui/src/app/views/vm/show.rhtml
index 293b632..defd40e 100644
--- a/wui/src/app/views/vm/show.rhtml
+++ b/wui/src/app/views/vm/show.rhtml
@@ -29,44 +29,44 @@
</a>
<% end -%>
<% end %>
- <a href="#" onClick="cancel_queued_tasks()">
+ <a href="#confirm_cancel" rel="facebox[.bolder]">
<%= image_tag "icon_x.png" %> Cancel queued tasks
</a>
- <a href="#" onClick="delete_vm()">
+ <a href="#confirm_delete" rel="facebox[.bolder]">
<%= image_tag "icon_x.png" %> Delete
</a>
<% end -%>
<% end -%>
+<%= confirmation_dialog("confirm_cancel", "Are you sure?", "cancel_queued_tasks()") %>
+<%= confirmation_dialog("confirm_delete", "Are you sure?", "delete_vm()") %>
<script type="text/javascript">
function cancel_queued_tasks()
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "vm", :action => "cancel_queued_tasks", :id => @vm %>',
- function(data,status){
- refresh_summary('vms_selection',
- '<%= url_for :controller => "vm",
- :action => "show" %>',
- <%= @vm.id %>)
- $("#vms_grid").flexReload()
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "vm", :action => "cancel_queued_tasks", :id => @vm %>',
+ function(data,status){
+ refresh_summary('vms_selection',
+ '<%= url_for :controller => "vm",
+ :action => "show" %>',
+ <%= @vm.id %>);
+ $("#vms_grid").flexReload();
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ }, 'json');
}
function delete_vm()
{
- if(confirm("Are you sure?")){
- $.post('<%= url_for :controller => "vm", :action => "destroy", :id => @vm %>',
- {x: 1},
- function(data,status){
- $("#vms_grid").flexReload()
- if (data.alert) {
- $.jGrowl(data.alert);
- }
- empty_summary('vms_selection', 'Virtual Machine')
- }, 'json');
- }
+ jQuery(document).trigger('close.facebox');
+ $.post('<%= url_for :controller => "vm", :action => "destroy", :id => @vm %>',
+ {x: 1},
+ function(data,status){
+ $("#vms_grid").flexReload();
+ if (data.alert) {
+ $.jGrowl(data.alert);
+ }
+ empty_summary('vms_selection', 'Virtual Machine');
+ }, 'json');
}
function single_vm_action(action)
{
diff --git a/wui/src/public/images/bg_warningMessage.png b/wui/src/public/images/bg_warningMessage.png
new file mode 100644
index 0000000000000000000000000000000000000000..063a1f067fda745edfd6e0508263a259320d29ec
GIT binary patch
literal 625
zcmV-%0*?KOP)<h;3K|Lk000e1NJLTq000F50027(1^@s6vmZb>00004b3#c}2nYxW
zd<bNS00009a7bBm000W`000W`0Ya=am;e9(9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o
zcW-iQb09-gGnm#!0{{R36?8>dbVG7wVRUJ4ZXi@?ZDjyAFEKDLFgWjXy+!~40m?~4
zK~y-6UDN+dQ(+Xx@%M9go%6cs+!~PtMS+nJMMM!41xbNe5JmrEP$(vbQB)K~QBfpD
zMUfOr`*Pjfy!*cE58lo5ocrU$bIyx%KF>8_{(gx3a`$k-5eIjn at BkM~bZ`d>4*?V1
z%-x2<JpC#YhG9r?!D{PLT*T^o;1({%>>p%rLg|r!vU5;ciXh`aW)}QqFcR_~E6885
zq09}@6CiUP{3lUQfQcE{dJ4vgZcbc-t!MPB_Mq}}1(jc5^-W(@Q2Gj#UkYgaGE`m(
zX#5gXUMr~bMnT(eu{Je!QDroC0k+?XeWuPs^*xw=MyYd9{eYcO^`nAnpKK_3Rzb-#
zQ2Q*#OrD0?7xpt6Jq0^oRYp6j3JTT+HvsUa)#|*H5PTE5cLIX%K!0`K6a+ui>gqog
zRR4uFz{qj+>JrDG at moNNqtN&xpu`bqtShMbS3%8xSOW|nR;wGHgyx3O<A<QNDKd&5
zgw}uTjM{kxwF@>hlvB`97TP5Nxf$sA0&>&PDJ!T`QBb#PXB11RjABXX)`TAOpc_Q1
zGX|Uy=+y^rY7go)6x3^B4dBGZF9Tp)2s=VIF$lXvug*l}y#cffQ@)|W$mauN00000
LNkvXXu0mjfq;&#r
literal 0
HcmV?d00001
diff --git a/wui/src/public/images/icon_warning.png b/wui/src/public/images/icon_warning.png
new file mode 100644
index 0000000000000000000000000000000000000000..741d0994c3abfc3dcb8beae7bf87b589519bde0a
GIT binary patch
literal 1954
zcmV;T2VMAyP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00004XF*Lt007q5
z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU(G)Y83RCwCl
zSZiz)RTMt=&hG5&&USa(rP;QurATX$0;N0*KB~16PzkFgN)TdvK=?rvtTD!D at P~<i
zFhNX=G2#ysAAg7mzGHmEkkn|5Pe4r+d9)<8Eu{~(-Q9Uy&$%<Roo!mE75L#MCwFJ=
z>$~6i&N+7%;D7kxk2gk_Q+p{EWB&z6=K_7*qVnKtja8xa at jj#H=l=YT{U@@YVxK+R
zMU~ltd2GJEep^fY!`m}ev3WNqVcF8MSbg5!%Cq+O-wqjn;uvwI0I at rfk<R7uFPm4F
ztCHhU6QE3iimP=<4Hh<Z4;gR%k+nu=b<$bP30_~WKGkwvJSrVCVt{$J0B~XqIT6ru
zQ!+~ZH10|;#I~lj=I8HBy{^VpfSd(6Q-FcM1hxSSy;L276&zNb>dhZIGHUi-Zicjb
z7U&1`xnY2U1qK4JT%{l$5a$uuhza`QIBcA+AE5D<lOeuqex#%Gj?^v)G7tp;1zVIT
z*Fu*C31L!&Ya>eaz?s}H-wheR{TqS*8-^keG{;_oI7&l;!PuU(4Lut<>=-rx>Lc**
z5*&~7E(b%w=Nh9gY+hU0E;p9C5fVYL?NLzM9|0Dx0sG{)U}MxtmSRDuP6VU;%y{gp
zv&QE$%}p}_#BQxr=RLos^0l(6kV at 3#Z5wO^6KJ{{LL2u0Po_bsUk#%7G}!&WW3XW#
z!~N%KaE)m<{m_$t=j50*bg5jXZm!i{tZs<tVA^2dW)`v_kOda0E=5ky2-afA(3k~~
zH=ue&Lce#O_9CrwDFE>ub&=MG+U8{BNQx?Co^b?&8&jzJKk^yhgCZa=5YQ-EQi1Jl
z<(VCITI);*xYz(KQy<<N#M}ZlhB<<<>GTMQHnsb^OGSP5w0uwflErb%;Nu1amqs8{
zukW2n8n_T3<(X^ro$Ff at EkLKWY%oa|q&nI(fE$jSE}b#lE#J$2v>ftDnH+Qu>)R78
zPvd$Q)9rMC*xFPmecy`M6Oaf>FnMx`#||1-(QWFa%K{Q9-z$#MI5Ur+h7eSv23uC>
zPpqv{(-*pBOa~~~Iw$aCQ;VJg(?aQ>a=2aGNN(ma<^KfS3MTs<EtxnEvRLbo-KMr!
zs&!8A$qUuFsQ|GpS80oPuS at O(jk~UzV8(L?1W`k$zb+N^sV-mvA<Y{nIOQzcVJWS`
z?%NYPY5nO~nhH>8!#r(YSsm6Zi`cQ9jOGVJEMX9{@T8ex<^*?<NrzRFDu*lZvXwfl
zzdE$faqz_f@!bo;8#b at 0xJ4#bj~zb{?z)Vaz?iWI9AQ&S&%_+K{opc1;|u6|SyGY=
zwycZava3PcFcl$_6|cX%rs9*Drbv{uL)Qw+=Pt&5+M$**_V-^QQ<Y%6`#7>Th~F8G
zL-v^K6z;U7HieQY$A_yzP}yg;9ym7sD!wjE2Pp9DLVeHHO!5v104G!40X~J0<ugbV
zV|^e-{|1r$5qMm2giZ6A1F8s&ImJxgnJNNMgLTgSs{n`ljl=#r=Lw75mQw59=%_rB
zUJ};vqJtFMMRvRpCP2&+H=Uf9f!gsI7S>vslM3&xq2%PyA=pGq+hNreXoNSAK%rFz
zq36(W_Q8XLOTPHqIO$zcJRhoe%?<5OFT#3-C!lI>fzM4GO2No*w?SFBO at fgpiq%4(
zaXT_%`xy0^yOv3V&r_YVAbq2*chrUU`|F(a at TOXA=>zTM87$Et3n(}sn5TgvFyG=7
z%BDT3mf21%3pja*DO1d&G+<G(L}--(xWBC|v#B<;)bkc?r!I>sov}JiqBe;k0_4v<
zlNWVQZ5?|X>y>k>pw{~Jt&-9)p|{fclKm_dUjt%`G*}W>Iz5(XdbGJlyFup8yzS%+
zRvIOYdrbMh)AW1~6kcfpR=yaea|Bq~7)F}n@=lr&MXA#H<db{WJobe~5L7e(%WKse
z;K*2%RwO`?SQt`ta|m!+#ES~|RBV#@M9t$IgoZzVtZ#r}eqmwm6a^uqkeUB7EnH(0
zX#mEN0B%7n%v0`F_pBuN at QGY^U0<Ogk>n7fh<C#lCWS5YfHL7Qg_>iUD>m+_K=@EF
z2bAzwXENwy3cyz*2xw$Tz~SS$ZZ8E9pj_90 at zJVZvX7;kHHhP>Re8%0a_=I~Me}X!
z(ZD at My^O+q<Gtu`<`6auby_Ge7#^^p=ePk~{pLr6!vi$>ac|)u?;2it*SW%tbqygF
z!CPJsH7>lW?FmvQJ at -!J6R8B_PqCJlf0!&kPD@}pFl>!+yx|TCIC-=nJ~*1|`nbn9
zNI1Zk+>>Z66)Mjxt5Di?g(WZ&oE*i3FMUFhCB~=t55+GU-_1n$@~|Y5fsH{n^wWU#
z<zQaCj~zdfew_3<Q9@#9RcLe3%KyVZBQyCBU+2)ypwZ9m5%*omorJkA47nF5b{PQ?
oe+Gp){R*G$UpH6e^N#=n0H=d1t<sL41poj507*qoM6N<$f{l-!F#rGn
literal 0
HcmV?d00001
diff --git a/wui/src/public/stylesheets/layout.css b/wui/src/public/stylesheets/layout.css
index 52151eb..4df8c66 100644
--- a/wui/src/public/stylesheets/layout.css
+++ b/wui/src/public/stylesheets/layout.css
@@ -386,6 +386,24 @@ a { color:#000000; text-decoration: none;}
height: 350px;
}
+.confirm_dialog_title {
+ width:400px;
+ padding: 15px;
+ font-size: 110%;
+ background:url(../images/bg_warningMessage.png) top repeat-x;
+}
+.confirm_dialog_header {
+ background:url(../images/icon_warning.png) top left no-repeat;
+ padding: 0 0 0 45px;
+ min-height:36px;
+
+}
+.confirm_dialog_footer {
+ height: 37px;
+ text-align:right;
+ padding: 5px 9px 0 0;
+}
+
.dialog_form {
margin: 15px;
background: #FFFFFF
--
1.5.5.1
More information about the ovirt-devel
mailing list