solidus_reviews 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gem_release.yml +5 -0
- data/.github/stale.yml +17 -0
- data/.gitignore +11 -8
- data/.rspec +1 -1
- data/.rubocop.yml +1 -11
- data/CHANGELOG.md +32 -0
- data/Gemfile +9 -13
- data/{LICENSE.md → LICENSE} +1 -1
- data/Rakefile +4 -19
- data/app/controllers/spree/reviews_controller.rb +29 -2
- data/app/decorators/controllers/solidus_reviews/spree/{admin/products_controller_decorator.rb → products_controller_decorator.rb} +0 -4
- data/app/models/spree/feedback_review.rb +1 -1
- data/app/models/spree/permission_sets/review_display.rb +11 -0
- data/app/models/spree/permission_sets/review_management.rb +11 -0
- data/app/models/spree/review.rb +16 -2
- data/app/models/spree/reviews_ability.rb +5 -0
- data/app/models/spree/reviews_configuration.rb +10 -1
- data/app/overrides/add_reviews_tab_to_admin.rb +12 -4
- data/app/overrides/add_reviews_to_admin_configuration_sidebar.rb +12 -5
- data/app/views/spree/admin/review_settings/edit.html.erb +7 -0
- data/app/views/spree/admin/reviews/edit.html.erb +4 -2
- data/app/views/spree/admin/reviews/index.html.erb +9 -5
- data/app/views/spree/reviews/_form.html.erb +6 -4
- data/app/views/spree/reviews/edit.html.erb +3 -0
- data/app/views/spree/shared/_review.html.erb +6 -4
- data/bin/console +17 -0
- data/bin/rails +11 -3
- data/bin/setup +8 -0
- data/config/locales/de-CH.yml +1 -1
- data/config/locales/de.yml +1 -1
- data/config/locales/en-GB.yml +2 -1
- data/config/locales/en.yml +2 -1
- data/config/locales/es.yml +2 -1
- data/config/locales/fr.yml +1 -1
- data/config/locales/it.yml +1 -1
- data/config/locales/pl.yml +1 -1
- data/config/locales/pt-BR.yml +1 -1
- data/config/locales/pt.yml +1 -1
- data/config/locales/ro.yml +1 -1
- data/config/locales/sv.yml +1 -1
- data/config/locales/tr.yml +1 -1
- data/config/locales/uk.yml +1 -1
- data/config/locales/zh-CN.yml +1 -1
- data/config/locales/zh-TW.yml +1 -1
- data/config/routes.rb +3 -1
- data/lib/controllers/spree/api/feedback_reviews_controller.rb +91 -0
- data/lib/solidus_reviews.rb +2 -4
- data/lib/solidus_reviews/engine.rb +12 -8
- data/lib/solidus_reviews/version.rb +1 -1
- data/solidus_reviews.gemspec +19 -12
- data/spec/controllers/spree/api/feedback_reviews_controller_spec.rb +136 -0
- data/spec/controllers/spree/reviews_controller_spec.rb +136 -0
- data/spec/models/review_spec.rb +27 -0
- data/spec/models/reviews_configuration_spec.rb +12 -0
- data/spec/spec_helper.rb +16 -3
- metadata +48 -39
- data/spec/controllers/spree/products_controller_spec.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd38dd224e866160ae90ea04068f08ca4c12d0d32337751ee58676bf8d757a84
|
4
|
+
data.tar.gz: d3d3f890af762394201f11aee1fa3c18fd97755b7c31ac200f04df0eafef5923
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb4483b6bdfbf36e9153ed347c4b6b0fc19c2fabeb3ef55eb3cc48bea3ce7eb0a185f5ef3bcf0b0ebdb317b45dc071beee7961d4883083e0936aed536c079958
|
7
|
+
data.tar.gz: 8a30750194cd8485cf9db0f4920718be0d5f7e71ced59187bba4a8fd43051eca0c5323113c9b3260836e5ef9bcec93fd00458f5e8c08311f889a197eb7150db7
|
data/.gem_release.yml
ADDED
data/.github/stale.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Number of days of inactivity before an issue becomes stale
|
2
|
+
daysUntilStale: 60
|
3
|
+
# Number of days of inactivity before a stale issue is closed
|
4
|
+
daysUntilClose: 7
|
5
|
+
# Issues with these labels will never be considered stale
|
6
|
+
exemptLabels:
|
7
|
+
- pinned
|
8
|
+
- security
|
9
|
+
# Label to use when marking an issue as stale
|
10
|
+
staleLabel: wontfix
|
11
|
+
# Comment to post when marking an issue as stale. Set to `false` to disable
|
12
|
+
markComment: >
|
13
|
+
This issue has been automatically marked as stale because it has not had
|
14
|
+
recent activity. It will be closed if no further activity occurs. Thank you
|
15
|
+
for your contributions.
|
16
|
+
# Comment to post when closing a stale issue. Set to `false` to disable
|
17
|
+
closeComment: false
|
data/.gitignore
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
*.gem
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
\#*
|
3
|
+
*~
|
4
|
+
.#*
|
5
5
|
.DS_Store
|
6
|
+
.idea
|
7
|
+
.project
|
8
|
+
.sass-cache
|
9
|
+
coverage
|
6
10
|
Gemfile.lock
|
7
|
-
|
11
|
+
tmp
|
12
|
+
nbproject
|
13
|
+
pkg
|
14
|
+
*.swp
|
8
15
|
spec/dummy
|
9
|
-
coverage
|
10
|
-
.rvmrc
|
11
|
-
.ruby-version
|
12
|
-
.ruby-gemset
|
13
16
|
spec/examples.txt
|
data/.rspec
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
--color
|
2
|
-
|
2
|
+
--require spec_helper
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,37 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v1.4.0](https://github.com/solidusio-contrib/solidus_reviews/tree/v1.4.0) (2020-08-06)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_reviews/compare/v1.3.0...v1.4.0)
|
6
|
+
|
7
|
+
**Closed issues:**
|
8
|
+
|
9
|
+
- Cannot select star rating when creating or editing a review [\#88](https://github.com/solidusio-contrib/solidus_reviews/issues/88)
|
10
|
+
- uninitialized constant SolidusReviews::Spree::Admin \(NameError\) [\#77](https://github.com/solidusio-contrib/solidus_reviews/issues/77)
|
11
|
+
- Dependabot can't resolve your Ruby dependency files [\#75](https://github.com/solidusio-contrib/solidus_reviews/issues/75)
|
12
|
+
- Dependabot can't resolve your Ruby dependency files [\#74](https://github.com/solidusio-contrib/solidus_reviews/issues/74)
|
13
|
+
- Dependabot can't resolve your Ruby dependency files [\#73](https://github.com/solidusio-contrib/solidus_reviews/issues/73)
|
14
|
+
- Dependabot can't resolve your Ruby dependency files [\#71](https://github.com/solidusio-contrib/solidus_reviews/issues/71)
|
15
|
+
- Dependabot can't resolve your Ruby dependency files [\#70](https://github.com/solidusio-contrib/solidus_reviews/issues/70)
|
16
|
+
- Dependabot can't resolve your Ruby dependency files [\#69](https://github.com/solidusio-contrib/solidus_reviews/issues/69)
|
17
|
+
- Users should be able to upload images as part of their review [\#67](https://github.com/solidusio-contrib/solidus_reviews/issues/67)
|
18
|
+
|
19
|
+
**Merged pull requests:**
|
20
|
+
|
21
|
+
- Replace deprected ` SolidusSupport::EngineExtensions::Decorators` with ` SolidusSupport::EngineExtensions` [\#93](https://github.com/solidusio-contrib/solidus_reviews/pull/93) ([marcrohloff](https://github.com/marcrohloff))
|
22
|
+
- Allow solidus\_support 0.4 [\#92](https://github.com/solidusio-contrib/solidus_reviews/pull/92) ([mamhoff](https://github.com/mamhoff))
|
23
|
+
- Fixes review title [\#91](https://github.com/solidusio-contrib/solidus_reviews/pull/91) ([memotoro](https://github.com/memotoro))
|
24
|
+
- remove extraneous .css file [\#90](https://github.com/solidusio-contrib/solidus_reviews/pull/90) ([dhughesbc](https://github.com/dhughesbc))
|
25
|
+
- Relax solidus\_support dependency [\#86](https://github.com/solidusio-contrib/solidus_reviews/pull/86) ([kennyadsl](https://github.com/kennyadsl))
|
26
|
+
- Adds PermissionSets classes and checks for Reviews [\#85](https://github.com/solidusio-contrib/solidus_reviews/pull/85) ([memotoro](https://github.com/memotoro))
|
27
|
+
- Adds controls for image uploads [\#83](https://github.com/solidusio-contrib/solidus_reviews/pull/83) ([memotoro](https://github.com/memotoro))
|
28
|
+
- Add option to auto approve star only reviews [\#82](https://github.com/solidusio-contrib/solidus_reviews/pull/82) ([KaemonIsland](https://github.com/KaemonIsland))
|
29
|
+
- Add touch to feedback review model [\#81](https://github.com/solidusio-contrib/solidus_reviews/pull/81) ([KaemonIsland](https://github.com/KaemonIsland))
|
30
|
+
- Add feedback reviews to api [\#79](https://github.com/solidusio-contrib/solidus_reviews/pull/79) ([KaemonIsland](https://github.com/KaemonIsland))
|
31
|
+
- Fix path for Spree::ProductsControllerDecorator [\#78](https://github.com/solidusio-contrib/solidus_reviews/pull/78) ([aldesantis](https://github.com/aldesantis))
|
32
|
+
- Add edit and update methods to reviews controller [\#76](https://github.com/solidusio-contrib/solidus_reviews/pull/76) ([KaemonIsland](https://github.com/KaemonIsland))
|
33
|
+
- Update to solidus\_dev\_support [\#72](https://github.com/solidusio-contrib/solidus_reviews/pull/72) ([aldesantis](https://github.com/aldesantis))
|
34
|
+
|
3
35
|
## [v1.3.0](https://github.com/solidusio-contrib/solidus_reviews/tree/v1.3.0) (2019-11-27)
|
4
36
|
|
5
37
|
[Full Changelog](https://github.com/solidusio-contrib/solidus_reviews/compare/v1.2.0...v1.3.0)
|
data/Gemfile
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
source 'https://rubygems.org'
|
4
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
4
5
|
|
5
6
|
branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
|
6
|
-
gem 'solidus',
|
7
|
-
gem 'solidus_auth_devise'
|
7
|
+
gem 'solidus', github: 'solidusio/solidus', branch: branch
|
8
8
|
|
9
9
|
# Needed to help Bundler figure out how to resolve dependencies,
|
10
|
-
# otherwise it takes forever to resolve them
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
# otherwise it takes forever to resolve them.
|
11
|
+
# See https://github.com/bundler/bundler/issues/6677
|
12
|
+
gem 'rails', '>0.a'
|
13
|
+
|
14
|
+
# Provides basic authentication functionality for testing parts of your engine
|
15
|
+
gem 'solidus_auth_devise'
|
16
16
|
|
17
17
|
case ENV['DB']
|
18
18
|
when 'mysql'
|
@@ -23,10 +23,6 @@ else
|
|
23
23
|
gem 'sqlite3'
|
24
24
|
end
|
25
25
|
|
26
|
-
group :test
|
27
|
-
gem 'rails-controller-testing'
|
28
|
-
end
|
29
|
-
|
30
|
-
gem 'solidus_extension_dev_tools', github: 'solidusio-contrib/solidus_extension_dev_tools'
|
26
|
+
gem 'rails-controller-testing', group: :test
|
31
27
|
|
32
28
|
gemspec
|
data/{LICENSE.md → LICENSE}
RENAMED
data/Rakefile
CHANGED
@@ -1,23 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
4
|
-
|
5
|
-
|
6
|
-
require 'rspec/core/rake_task'
|
7
|
-
require 'spree/testing_support/extension_rake'
|
3
|
+
require 'solidus_dev_support/rake_tasks'
|
4
|
+
SolidusDevSupport::RakeTasks.install
|
8
5
|
|
9
|
-
|
6
|
+
task default: %w[extension:test_app extension:specs]
|
10
7
|
|
11
|
-
|
12
|
-
if Dir["spec/dummy"].empty?
|
13
|
-
Rake::Task[:test_app].invoke
|
14
|
-
Dir.chdir("../../")
|
15
|
-
end
|
16
|
-
Rake::Task[:spec].invoke
|
17
|
-
end
|
18
|
-
|
19
|
-
desc 'Generates a dummy app for testing'
|
20
|
-
task :test_app do
|
21
|
-
ENV['LIB_NAME'] = 'solidus_reviews'
|
22
|
-
Rake::Task['extension:test_app'].invoke
|
23
|
-
end
|
8
|
+
Bundler::GemHelper.install_tasks
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
class Spree::ReviewsController < Spree::StoreController
|
4
4
|
helper Spree::BaseHelper
|
5
|
-
before_action :load_product, only: [:index, :new, :create]
|
5
|
+
before_action :load_product, only: [:index, :new, :create, :edit, :update]
|
6
6
|
|
7
7
|
def index
|
8
8
|
@approved_reviews = Spree::Review.approved.where(product: @product)
|
@@ -13,9 +13,17 @@ class Spree::ReviewsController < Spree::StoreController
|
|
13
13
|
authorize! :create, @review
|
14
14
|
end
|
15
15
|
|
16
|
+
def edit
|
17
|
+
@review = Spree::Review.find(params[:id])
|
18
|
+
if @review.product.nil?
|
19
|
+
flash[:error] = I18n.t('spree.error_no_product')
|
20
|
+
end
|
21
|
+
authorize! :update, @review
|
22
|
+
end
|
23
|
+
|
16
24
|
# save if all ok
|
17
25
|
def create
|
18
|
-
|
26
|
+
review_params[:rating].sub!(/\s*[^0-9]*\z/, '') if review_params[:rating].present?
|
19
27
|
|
20
28
|
@review = Spree::Review.new(review_params)
|
21
29
|
@review.product = @product
|
@@ -36,6 +44,25 @@ class Spree::ReviewsController < Spree::StoreController
|
|
36
44
|
end
|
37
45
|
end
|
38
46
|
|
47
|
+
def update
|
48
|
+
review_params[:rating].sub!(/\s*[^0-9]*\z/, '') if params[:review][:rating].present?
|
49
|
+
|
50
|
+
@review = Spree::Review.find(params[:id])
|
51
|
+
|
52
|
+
# Handle images
|
53
|
+
params[:review][:images]&.each do |image|
|
54
|
+
@review.images.new(attachment: image)
|
55
|
+
end
|
56
|
+
|
57
|
+
authorize! :update, @review
|
58
|
+
if @review.update(review_params)
|
59
|
+
flash[:notice] = I18n.t('spree.review_successfully_submitted')
|
60
|
+
redirect_to spree.product_path(@product)
|
61
|
+
else
|
62
|
+
render :edit
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
39
66
|
private
|
40
67
|
|
41
68
|
def load_product
|
@@ -7,10 +7,6 @@ module SolidusReviews
|
|
7
7
|
base.class_eval do
|
8
8
|
helper ::Spree::ReviewsHelper
|
9
9
|
end
|
10
|
-
|
11
|
-
[:avg_rating, :reviews_count].each do |attribute|
|
12
|
-
::Spree::PermittedAttributes.product_attributes << attribute
|
13
|
-
end
|
14
10
|
end
|
15
11
|
|
16
12
|
::Spree::ProductsController.prepend self
|
@@ -3,7 +3,7 @@
|
|
3
3
|
class Spree::FeedbackReview < ApplicationRecord
|
4
4
|
belongs_to :user, class_name: Spree.user_class.to_s, optional: true
|
5
5
|
|
6
|
-
belongs_to :review,
|
6
|
+
belongs_to :review, touch: true
|
7
7
|
validates :review, presence: true
|
8
8
|
|
9
9
|
validates :rating, numericality: { only_integer: true,
|
data/app/models/spree/review.rb
CHANGED
@@ -3,11 +3,12 @@
|
|
3
3
|
class Spree::Review < ApplicationRecord
|
4
4
|
belongs_to :product, touch: true, optional: true
|
5
5
|
belongs_to :user, class_name: Spree.user_class.to_s, optional: true
|
6
|
-
has_many :feedback_reviews
|
6
|
+
has_many :feedback_reviews, dependent: :destroy
|
7
7
|
has_many :images, -> { order(:position) }, as: :viewable,
|
8
8
|
dependent: :destroy, class_name: "Spree::Image"
|
9
9
|
|
10
|
-
|
10
|
+
before_save :verify_purchaser
|
11
|
+
before_save :approve_review, unless: :approved?
|
11
12
|
after_save :recalculate_product_rating, if: :approved?
|
12
13
|
after_destroy :recalculate_product_rating
|
13
14
|
|
@@ -52,4 +53,17 @@ class Spree::Review < ApplicationRecord
|
|
52
53
|
|
53
54
|
self.verified_purchaser = verified_purchase
|
54
55
|
end
|
56
|
+
|
57
|
+
def star_only?
|
58
|
+
[title, review].all?(&:blank?) && rating.present?
|
59
|
+
end
|
60
|
+
|
61
|
+
def approve_review
|
62
|
+
# Checks if we should auto approve the review.
|
63
|
+
if Spree::Reviews::Config[:approve_star_only]
|
64
|
+
self.approved = true if star_only?
|
65
|
+
elsif Spree::Reviews::Config[:approve_star_only_for_verified_purchaser]
|
66
|
+
self.approved = true if star_only? && verified_purchaser?
|
67
|
+
end
|
68
|
+
end
|
55
69
|
end
|
@@ -14,6 +14,11 @@ class Spree::ReviewsAbility
|
|
14
14
|
review_ability_class.allow_anonymous_reviews? || user.email.present?
|
15
15
|
end
|
16
16
|
|
17
|
+
# You can only change your own feedback_review
|
18
|
+
can [:update, :destroy], Spree::FeedbackReview do |feedback_review|
|
19
|
+
feedback_review.user == user
|
20
|
+
end
|
21
|
+
|
17
22
|
# You can read your own reviews, and everyone can read approved ones
|
18
23
|
can :read, Spree::Review do |review|
|
19
24
|
review.user == user || review.approved?
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
class Spree::ReviewsConfiguration < Spree::Preferences::Configuration
|
4
4
|
def self.boolean_preferences
|
5
|
-
%w(display_unapproved_reviews include_unapproved_reviews feedback_rating show_email require_login track_locale)
|
5
|
+
%w(display_unapproved_reviews include_unapproved_reviews feedback_rating show_email require_login track_locale allow_image_upload)
|
6
6
|
end
|
7
7
|
|
8
8
|
# include non-approved reviews in (public) listings
|
@@ -31,4 +31,13 @@ class Spree::ReviewsConfiguration < Spree::Preferences::Configuration
|
|
31
31
|
|
32
32
|
# render checkbox for a user to approve to show their identifier (name or email) on their review
|
33
33
|
preference :render_show_identifier_checkbox, :boolean, default: false
|
34
|
+
|
35
|
+
# Approves star only reviews automatically (Reviews without a Title/Review)
|
36
|
+
preference :approve_star_only, :boolean, default: false
|
37
|
+
|
38
|
+
# Approves star only reviews for verified purchasers only.
|
39
|
+
preference :approve_star_only_for_verified_purchaser, :boolean, default: false
|
40
|
+
|
41
|
+
# allow customer to update image with the review
|
42
|
+
preference :allow_image_upload, :boolean, default: true
|
34
43
|
end
|
@@ -6,7 +6,15 @@ Spree::Backend::Config.configure do |config|
|
|
6
6
|
}.sections << :reviews
|
7
7
|
end
|
8
8
|
|
9
|
-
Deface::Override.new(
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
Deface::Override.new(
|
10
|
+
virtual_path: "spree/admin/shared/_product_sub_menu",
|
11
|
+
name: "reviews_admin_tab",
|
12
|
+
insert_bottom: "[data-hook='admin_product_sub_tabs']",
|
13
|
+
disabled: false
|
14
|
+
) do
|
15
|
+
<<-HTML
|
16
|
+
<% if can? :admin, Spree::Review %>
|
17
|
+
<%= tab(:reviews, label: 'review_management') %>
|
18
|
+
<% end %>
|
19
|
+
HTML
|
20
|
+
end
|
@@ -6,8 +6,15 @@ Spree::Backend::Config.configure do |config|
|
|
6
6
|
}.sections << :review_settings
|
7
7
|
end
|
8
8
|
|
9
|
-
Deface::Override.new(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
Deface::Override.new(
|
10
|
+
virtual_path: "spree/admin/shared/_settings_sub_menu",
|
11
|
+
name: "converted_admin_configurations_menu",
|
12
|
+
insert_bottom: "[data-hook='admin_settings_sub_tabs']",
|
13
|
+
disabled: false
|
14
|
+
) do
|
15
|
+
<<-HTML
|
16
|
+
<% if can? :admin, Spree::ReviewsConfiguration %>
|
17
|
+
<%= tab :reviews, url: spree.edit_admin_review_settings_path, match_path: /review_settings/ %>
|
18
|
+
<% end %>
|
19
|
+
HTML
|
20
|
+
end
|
@@ -56,6 +56,13 @@
|
|
56
56
|
<%= I18n.t("spree.spree_reviews.track_locale") %>
|
57
57
|
</label>
|
58
58
|
</div>
|
59
|
+
<div class="field">
|
60
|
+
<label>
|
61
|
+
<%= check_box_tag('preferences[allow_image_upload]', "1", Spree::Reviews::Config[:allow_image_upload]) %>
|
62
|
+
<%= I18n.t("spree.spree_reviews.allow_image_upload") %>
|
63
|
+
</label>
|
64
|
+
</div>
|
65
|
+
|
59
66
|
<div class="field">
|
60
67
|
<label><%= I18n.t("spree.spree_reviews.preview_size") %></label><br>
|
61
68
|
<%= text_field_tag('preferences[preview_size]', Spree::Reviews::Config[:preview_size], size: 3) %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% content_for :page_title do %>
|
2
|
-
<%= I18n.t("spree.editing_review_for_html",
|
2
|
+
<%= I18n.t("spree.editing_review_for_html", product_name: @review.product.name) %>
|
3
3
|
<% end %>
|
4
4
|
|
5
5
|
<% render 'spree/admin/shared/product_sub_menu' %>
|
@@ -21,6 +21,8 @@
|
|
21
21
|
<div class="clear"></div>
|
22
22
|
|
23
23
|
<fieldset class="no-border-top">
|
24
|
-
|
24
|
+
<% if can? :manage, Spree::Review %>
|
25
|
+
<%= render 'spree/admin/shared/edit_resource_links' %>
|
26
|
+
<% end %>
|
25
27
|
</fieldset>
|
26
28
|
<% end %>
|
@@ -5,7 +5,9 @@
|
|
5
5
|
<% end %>
|
6
6
|
|
7
7
|
<% content_for :table_filter_title do %>
|
8
|
-
|
8
|
+
<% if can? :display, Spree::Review %>
|
9
|
+
<%= I18n.t("spree.search") %>
|
10
|
+
<% end %>
|
9
11
|
<% end %>
|
10
12
|
|
11
13
|
<% content_for :table_filter do %>
|
@@ -94,7 +96,7 @@
|
|
94
96
|
<% end %>
|
95
97
|
</td>
|
96
98
|
<td class="align-center">
|
97
|
-
|
99
|
+
<p><%= review.user_id ? link_to(review.user.try(:email), [:admin, review.user]) : I18n.t("spree.anonymous") %></p>
|
98
100
|
<p><%= Spree::Review.human_attribute_name(:ip_address) %>: <%= review.ip_address ? link_to(review.ip_address, "http://whois.domaintools.com/#{review.ip_address}") : '-' %></p>
|
99
101
|
</td>
|
100
102
|
<td class="align-center">
|
@@ -106,9 +108,11 @@
|
|
106
108
|
<% end %>
|
107
109
|
</td>
|
108
110
|
<td class="actions">
|
109
|
-
|
110
|
-
|
111
|
-
|
111
|
+
<% if can? :manage, Spree::Review %>
|
112
|
+
<%= link_to_with_icon 'ok', I18n.t("spree.approve"), approve_admin_review_url(review), no_text: true, class: 'approve' unless review.approved %>
|
113
|
+
<%= link_to_edit review, no_text: true, class: 'edit' %>
|
114
|
+
<%= link_to_delete review, no_text: true %>
|
115
|
+
<% end %>
|
112
116
|
</td>
|
113
117
|
</tr>
|
114
118
|
<% end %>
|