From 8880a2c31959035f21be0210d6690b1226dc5770 Mon Sep 17 00:00:00 2001 From: Ramy Mostafa Date: Sat, 18 Jan 2014 11:58:11 +0200 Subject: [PATCH] #43 Admin can delete a reward with a button on campaign edit page (cherry picked from commit ddc8b34f63fca8717189cb03e5eaf002434bbc15) --- app/assets/images/trash.png | Bin 0 -> 1128 bytes app/controllers/campaigns_controller.rb | 14 +++++++++ .../assets/stylesheets/campaign.css.scss | 29 ++++++++++++++++++ app/views/theme/views/campaign.html.erb | 3 ++ config/routes.rb | 1 + 5 files changed, 47 insertions(+) create mode 100644 app/assets/images/trash.png diff --git a/app/assets/images/trash.png b/app/assets/images/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..ab757426e4f44556123a05438d3d5d44711d3d54 GIT binary patch literal 1128 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x}o+VA1z}9HYf1ZpFtH{$KQY*WD!DAg?XgB$5NX z6pze4V=1}!a@67}K0Ol!m^4+3&RvO`nY>}AX#J1B#qwYyLndzIJ>bB@bnwC7<6GzG z|8W)ZeyO3+cR1d{U)fktP~qp|&Al@#r%sr_a{KngE!wNN?(UV3fjDL&&}Rlb%&9ZY zPFDW+JrN*M5}_!<7$y3@e0}_beRHedFTL6pr0wA}^Mv9HuO**+7jN~R@wx5tb^bI1 zAwMOhzW(2E7XZyUu&4Yr?-$`;fj3XBocY<|sz#uygn-8nhUyRBA1wX;c~z-<=t;}T zK~+iFf`TqA@6OE;Hcswo+`V~fQ%Av;Z^ie(W~E%($jhL}!*Z}!Fw|mWL79-|U-RZC z7X;6XAGl)RfB7`4f^p_r!{;tSlWtUBu1;U;>hj=Sh-jKy&q2%km%p%s(m~3^g}e+7 z97nPycnE!y7bxVu)9r6?W0u-m(I4egUCQ6{H_TkPs-q)y(gxqOr1*otl=c7rp)(l) zt_Hp@8rs|0oq3*h)c-fo1-b_$^NP9X!2ka|JpcbEW`U9{P$-FUrkTN?~eU%eZ9oJ{q_7S z*%yeOzrVj;(ys0g$MpZ7pYtEyU;qC>Vn58%l&gw-2MjnIF78hQYM5 zCiRL>u?H&HviI(=7X0Xc?d&~iV`ZfkTDxW!^A-EKw48AX)qem9q7R?HNE*xSsr~F0 z=k49?7!WX_arW%ljWcJ?e0Y6*JkS3Be-eNEeJy_Y{r&xcAC~*imw0!7|M>+=*3{UW zs=EIE|NsB}#AgscB{`bS>Fo48aN&SL@&A8+OK)#~f8pQP*Xn7R?W`X@e%u=v5U^+A wvQ@WEpE|Yb|MT { :error => "Reward can't be Deleted, Campaign is Expired !" } + else + @r = Reward.find(params[:reward]) + if(@r.payments.length == 0) + @r.destroy + redirect_to campaign_home_url(@campaign), :flash => { :notice => "Reward Deleted!" } + else + redirect_to campaign_home_url(@campaign), :flash => { :error => "Reward can't be Deleted it has Payments !" } + end + end + end private diff --git a/app/views/theme/assets/stylesheets/campaign.css.scss b/app/views/theme/assets/stylesheets/campaign.css.scss index 6e0540eb..d1851503 100644 --- a/app/views/theme/assets/stylesheets/campaign.css.scss +++ b/app/views/theme/assets/stylesheets/campaign.css.scss @@ -233,6 +233,35 @@ margin: 0px; li { border-bottom: 1px solid gray; + &:hover{ + .rewards_toolbox{display:block;} + } + .rewards_toolbox{width:80px;height:26px;float:right;margin-top: 10px;display:none; + .toolbox_container{ + top:0.5em;right:1em; + list-style-type:none; + float:right; + padding:2px; + a{ + display: inline; + padding: 0px 0px; + &:hover { + text-decoration: none; + background: none; + } + } + &:hover { + border :1px solid #eee; + } + .toolbox_item{ + float:left; + background-color:#fff;box-shadow:0 0 2px #000; + margin-right:4px; + height:26px; + width:27px; + } + } + } &:last-child { border-bottom: none; a { diff --git a/app/views/theme/views/campaign.html.erb b/app/views/theme/views/campaign.html.erb index 326dacd5..fb05ab65 100644 --- a/app/views/theme/views/campaign.html.erb +++ b/app/views/theme/views/campaign.html.erb @@ -168,6 +168,9 @@ <% @campaign.rewards.order("price ASC").each do |reward| %> <% if reward.visible? %>
  • + <% if !@campaign.expired? && !current_user.nil? && current_user.admin? %> +
    <%= link_to (image_tag '/assets/trash.png'), reward_controller_delete_path(:reward => reward.id), data: { confirm: 'Are you sure?' } %>
    + <% end %>

    $<%= number_with_precision(reward.price, precision: (reward.price*100%100==0.0 ? 0 : 2)) %>

    <%= reward.title %>

    diff --git a/config/routes.rb b/config/routes.rb index e9c2878b..58aefc5a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -28,6 +28,7 @@ match '/ajax/verify', to: 'admin#ajax_verify', as: :ajax_verify # CAMPAIGNS + match '/:id/reward/delete', to: 'campaigns#delete_reward', as: :reward_controller_delete match '/:id/checkout/amount', to: 'campaigns#checkout_amount', as: :checkout_amount match '/:id/checkout/payment', to: 'campaigns#checkout_payment', as: :checkout_payment match '/:id/checkout/process', to: 'campaigns#checkout_process', as: :checkout_process