Commit bf8726a273b86886c9f3ae449785c1e9a4cd93e2

Authored by Cyril Mougel
1 parent b6f670c8
Exists in master and in 1 other branch production

If the user not watch app. Not see the unwatch button

app/assets/javascripts/apps.show.js
1 1 $(function() {
  2 +
2 3 $("#watchers_toggle").click(function() {
3 4 $("#watchers_div").slideToggle("slow");
4 5 });
  6 +
5 7 $("#repository_toggle").click(function() {
6 8 $("#repository_div").slideToggle("slow");
7 9 });
  10 +
8 11 $("#deploys_toggle").click(function() {
9 12 $("#deploys_div").slideToggle("slow");
10 13 });
... ...
app/views/apps/show.html.haml
... ... @@ -15,8 +15,9 @@
15 15 = link_to t('.unresolved_errs'), app_path(app), :class => 'button'
16 16 - else
17 17 = link_to t('.all_errs'), app_path(app, :all_errs => true), :class => 'button'
18   - = link_to t('.unwatch'), app_watcher_path({:app_id => app, :id => current_user.id}), :method => :delete, :class => 'button', :confirm => 'Are you sure?'
19 18  
  19 + - if current_user.watching?(app)
  20 + = link_to t('.unwatch'), app_watcher_path({:app_id => app, :id => current_user.id}), :method => :delete, :class => 'button', :confirm => t('.are_you_sure')
20 21 %h3#watchers_toggle
21 22 =t('.watchers')
22 23 %span.click_span=t('.show_hide')
... ...
config/locales/en.yml
... ... @@ -83,6 +83,7 @@ en:
83 83 all_errs: all errs
84 84 all_users_notified: "All users will be notified when something happens."
85 85 api_key: "API Key:"
  86 + are_you_sure: 'Are you sure?'
86 87 atom_title: "Errbit notices for %{name} at %{host}"
87 88 deploy_count: "Deploy Count:"
88 89 edit: edit
... ...
spec/views/apps/show.html.haml_spec.rb
... ... @@ -2,17 +2,20 @@ require 'spec_helper'
2 2  
3 3 describe "apps/show.html.haml" do
4 4 let(:app) { stub_model(App) }
  5 + let(:user) { stub_model(User) }
  6 +
  7 + let(:action_bar) do
  8 + view.content_for(:action_bar)
  9 + end
  10 +
5 11 before do
6 12 view.stub(:app).and_return(app)
7 13 view.stub(:all_errs).and_return(false)
8 14 view.stub(:deploys).and_return([])
9   - controller.stub(:current_user) { stub_model(User) }
  15 + controller.stub(:current_user) { user }
10 16 end
11 17  
12 18 describe "content_for :action_bar" do
13   - def action_bar
14   - view.content_for(:action_bar)
15   - end
16 19  
17 20 it "should confirm the 'cancel' link" do
18 21 render
... ... @@ -28,5 +31,26 @@ describe "apps/show.html.haml" do
28 31 rendered.should match(/No errs have been/)
29 32 end
30 33 end
  34 +
  35 + context "with user watch application" do
  36 + before do
  37 + user.stub(:watching?).with(app).and_return(true)
  38 + end
  39 + it 'see the unwatch button' do
  40 + render
  41 + expect(action_bar).to include(I18n.t('apps.show.unwatch'))
  42 + end
  43 + end
  44 +
  45 + context "with user not watch application" do
  46 + before do
  47 + user.stub(:watching?).with(app).and_return(false)
  48 + end
  49 + it 'not see the unwatch button' do
  50 + render
  51 + expect(action_bar).to_not include(I18n.t('apps.show.unwatch'))
  52 + end
  53 + end
  54 +
31 55 end
32 56  
... ...