From 6bcf6a786ae150575bd2b4657b1ee1f39cdb41fa Mon Sep 17 00:00:00 2001 From: Fabio Teixeira Date: Fri, 22 Jan 2016 18:31:28 +0000 Subject: [PATCH] Fix rails 4 organization_ratings bugs --- features/manage_users.feature | 8 ++++---- features/step_definitions/custom_web_steps.rb | 14 +++++++------- plugins/organization_ratings/features/rate_community.feature | 2 +- plugins/organization_ratings/features/vote_once_disable_cooldown.feature | 23 +++++++++++++++++++++++ plugins/organization_ratings/lib/organization_ratings_plugin.rb | 4 ++-- plugins/organization_ratings/public/organization_rating_management.js | 20 ++++++++++++++++---- plugins/organization_ratings/public/style.css | 12 ++++++------ 7 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 plugins/organization_ratings/features/vote_once_disable_cooldown.feature diff --git a/features/manage_users.feature b/features/manage_users.feature index 8b4b2df..6e5e00a 100644 --- a/features/manage_users.feature +++ b/features/manage_users.feature @@ -15,7 +15,7 @@ Background: Scenario: deactive user Given I follow "Deactivate user" within "tr[title='Joao Silva']" When I confirm the browser dialog - Then the "tr[title='Joao Silva'] td.actions a.icon-activate-user" button should be enabled + Then the field "tr[title='Joao Silva'] td.actions a.icon-activate-user" should be enabled @selenium Scenario: activate user @@ -23,7 +23,7 @@ Background: And I confirm the browser dialog And I follow "Activate user" within "tr[title='Paulo Santos']" When I confirm the browser dialog - Then the "tr[title='Paulo Santos'] td.actions a.icon-deactivate-user" button should be enabled + Then the field "tr[title='Paulo Santos'] td.actions a.icon-deactivate-user" should be enabled @selenium Scenario: remove user @@ -36,7 +36,7 @@ Background: Scenario: admin user Given I follow "Set admin role" within "tr[title='Joao Silva']" When I confirm the browser dialog - Then the "tr[title='Joao Silva'] td.actions a.icon-reset-admin-role" button should be enabled + Then the field "tr[title='Joao Silva'] td.actions a.icon-reset-admin-role" should be enabled @selenium Scenario: unadmin user @@ -44,4 +44,4 @@ Background: And I confirm the browser dialog And I follow "Reset admin role" within "tr[title='Paulo Santos']" When I confirm the browser dialog - Then the "tr[title='Paulo Santos'] td.actions a.icon-set-admin-role" button should be enabled + Then the field "tr[title='Paulo Santos'] td.actions a.icon-set-admin-role" should be enabled diff --git a/features/step_definitions/custom_web_steps.rb b/features/step_definitions/custom_web_steps.rb index 48ed077..d1f8105 100644 --- a/features/step_definitions/custom_web_steps.rb +++ b/features/step_definitions/custom_web_steps.rb @@ -22,14 +22,14 @@ When /^I should see "([^\"]+)" linking to "([^\"]+)"$/ do |text, href| page.should have_xpath("//a[@href='#{href}']") end -Then /^the "([^"]*)" button should be disabled$/ do |selector| - field = find(selector) - field['disabled'].should be_truthy -end +Then /^the field "([^"]*)" should be (enabled|disabled)$/ do |selector, status| + field = page.find(:css, selector) -Then /^the "([^"]*)" button should be enabled$/ do |selector| - field = find(selector) - field['disabled'].should_not be_truthy + if status == 'enabled' + field.disabled?.should_not be_truthy + else + field.disabled?.should be_truthy + end end When /^I reload and wait for the page$/ do diff --git a/plugins/organization_ratings/features/rate_community.feature b/plugins/organization_ratings/features/rate_community.feature index 5658544..9b0712b 100644 --- a/plugins/organization_ratings/features/rate_community.feature +++ b/plugins/organization_ratings/features/rate_community.feature @@ -33,4 +33,4 @@ Feature: rate_community Given I am on mycommunity's homepage When I follow "Rate this Community" Then I should see "Joao Silva" within ".star-profile-name" - And I should see Joao Silva's profile image \ No newline at end of file + And I should see Joao Silva's profile image diff --git a/plugins/organization_ratings/features/vote_once_disable_cooldown.feature b/plugins/organization_ratings/features/vote_once_disable_cooldown.feature new file mode 100644 index 0000000..19cfd8f --- /dev/null +++ b/plugins/organization_ratings/features/vote_once_disable_cooldown.feature @@ -0,0 +1,23 @@ +Feature: vote_once_disable_cooldown + As a admin + I want to disable the cooldown time when vote once is enabled + Making it clearly that there is no cooldown when vote once is enabled + + Background: + Given plugin "OrganizationRatings" is enabled on environment + And I am logged in as admin + And I go to /admin/plugins + And I check "Organization Ratings" + And I press "Save changes" + + @selenium + Scenario: disable or enable the cooldown field when vote on is checked or unchecked + Given I follow "Administration" + And I follow "Plugins" + And I follow "Configuration" + And the field "#organization_ratings_config_cooldown" should be enabled + And I check "Vote once" + And the field "#organization_ratings_config_cooldown" should be disabled + And I uncheck "Vote once" + Then the field "#organization_ratings_config_cooldown" should be enabled + diff --git a/plugins/organization_ratings/lib/organization_ratings_plugin.rb b/plugins/organization_ratings/lib/organization_ratings_plugin.rb index a6701bf..a3aab45 100644 --- a/plugins/organization_ratings/lib/organization_ratings_plugin.rb +++ b/plugins/organization_ratings/lib/organization_ratings_plugin.rb @@ -73,8 +73,8 @@ class OrganizationRatingsPlugin < Noosfero::Plugin def js_files %w( - public/rate.js - public/organization_rating_management.js + rate.js + organization_rating_management.js ) end diff --git a/plugins/organization_ratings/public/organization_rating_management.js b/plugins/organization_ratings/public/organization_rating_management.js index f4ad7ba..3f46a2d 100644 --- a/plugins/organization_ratings/public/organization_rating_management.js +++ b/plugins/organization_ratings/public/organization_rating_management.js @@ -9,8 +9,8 @@ cacheDom: function() { - this.$vote_once_checkbox = $("#environment_organization_ratings_vote_once"); - this.$hours_timer_input = $("#environment_organization_ratings_cooldown"); + this.$vote_once_checkbox = $("#organization_ratings_config_vote_once"); + this.$hours_timer_input = $("#organization_ratings_config_cooldown"); }, @@ -21,10 +21,22 @@ verifyHoursTimerDisable: function() { if (this.$vote_once_checkbox.is(":checked")) { - this.$hours_timer_input.attr("disabled", "disabled"); + //this.$hours_timer_input.attr("disabled", "disabled"); + this.disableVoteOnce(); } else { - this.$hours_timer_input.removeAttr("disabled"); + //this.$hours_timer_input.removeAttr("disabled"); + this.enableVoteOnce(); } + }, + + + enableVoteOnce: function() { + this.$hours_timer_input.removeAttr("disabled"); + }, + + + disableVoteOnce: function() { + this.$hours_timer_input.attr("disabled", "disabled"); } } diff --git a/plugins/organization_ratings/public/style.css b/plugins/organization_ratings/public/style.css index 12adc94..3fa7c8e 100644 --- a/plugins/organization_ratings/public/style.css +++ b/plugins/organization_ratings/public/style.css @@ -14,11 +14,11 @@ } .star-negative { - background-image: url('public/images/star-negative.png'); + background-image: url('images/star-negative.png'); } .star-positive { - background-image: url('public/images/star-positive.png'); + background-image: url('images/star-positive.png'); } .small-star-negative, .small-star-positive { @@ -31,11 +31,11 @@ } .small-star-negative { - background-image: url('public/images/small-star-negative.png'); + background-image: url('images/small-star-negative.png'); } .small-star-positive { - background-image: url('public/images/small-star-positive.png'); + background-image: url('images/small-star-positive.png'); } .medium-star-negative, .medium-star-positive { @@ -48,11 +48,11 @@ } .medium-star-positive { - background-image: url('public/images/star-positive-medium.png'); + background-image: url('images/star-positive-medium.png'); } .medium-star-negative { - background-image: url('public/images/star-negative-medium.png'); + background-image: url('images/star-negative-medium.png'); } .star-hide { -- libgit2 0.21.2