diff --git a/app/assets/fonts/icons.eot b/app/assets/fonts/icons.eot
index 2c00f1f5b..a1cc83d43 100644
Binary files a/app/assets/fonts/icons.eot and b/app/assets/fonts/icons.eot differ
diff --git a/app/assets/fonts/icons.svg b/app/assets/fonts/icons.svg
index 2f04723b8..049938913 100644
--- a/app/assets/fonts/icons.svg
+++ b/app/assets/fonts/icons.svg
@@ -29,4 +29,5 @@
+
diff --git a/app/assets/fonts/icons.ttf b/app/assets/fonts/icons.ttf
index 808c75487..aa9c63faa 100644
Binary files a/app/assets/fonts/icons.ttf and b/app/assets/fonts/icons.ttf differ
diff --git a/app/assets/fonts/icons.woff b/app/assets/fonts/icons.woff
index cc9c32cdf..b17f63445 100644
Binary files a/app/assets/fonts/icons.woff and b/app/assets/fonts/icons.woff differ
diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss
index 7e6096bc3..5afa088d1 100644
--- a/app/assets/stylesheets/admin.scss
+++ b/app/assets/stylesheets/admin.scss
@@ -140,7 +140,7 @@ body.admin {
.delete {
border-bottom: 1px dotted #CF2A0E;
- color: #F04124;
+ color: $delete;
font-size: rem-calc(12);
&:hover, &:active, &:focus {
@@ -151,16 +151,27 @@ body.admin {
.verified {
color: $check;
+
+ a {
+ border-bottom: 1px dotted $check;
+ color: $check;
+ font-size: rem-calc(12);
+ }
}
-.verified a {
- border-bottom: 1px dotted $check;
- color: $check;
+.archived {
+ color: $text-medium;
font-size: rem-calc(12);
}
.rejected {
- color: #F04124;
+ color: $delete;
+}
+
+.date {
+ color: $text-medium;
+ font-size: rem-calc(12);
+ font-style: italic;
}
.level {
diff --git a/app/assets/stylesheets/debates.scss b/app/assets/stylesheets/debates.scss
index 66ea491af..641e7ccff 100644
--- a/app/assets/stylesheets/debates.scss
+++ b/app/assets/stylesheets/debates.scss
@@ -5,6 +5,7 @@
// 03. Show
// 04. New
// 05. Comments
+// 06. Flags
//
// 01. Debates
@@ -541,6 +542,10 @@
font-size: rem-calc(12);
margin: rem-calc(6) 0;
padding: rem-calc(6);
+
+ .divider {
+ color: $text-light;
+ }
}
.comment-user {
@@ -608,3 +613,17 @@
.faded {
opacity: 0.4;
}
+
+// 06. Flags
+// - - - - - - - - - - - - - - - - - - - - - - - - -
+
+.flag-disable {
+ color: $text-medium;
+ line-height: rem-calc(24);
+ vertical-align: middle;
+}
+
+.flag-active {
+ @extend .flag-disable;
+ color: $delete;
+}
diff --git a/app/assets/stylesheets/icons.scss b/app/assets/stylesheets/icons.scss
index ac6bb9dab..6a014579c 100644
--- a/app/assets/stylesheets/icons.scss
+++ b/app/assets/stylesheets/icons.scss
@@ -103,3 +103,7 @@
.icon-x:before {
content: "v";
}
+.icon-flag:before {
+ content: "w";
+}
+
diff --git a/app/assets/stylesheets/participacion.scss b/app/assets/stylesheets/participacion.scss
index eb8d33de2..e20a2cb36 100644
--- a/app/assets/stylesheets/participacion.scss
+++ b/app/assets/stylesheets/participacion.scss
@@ -135,6 +135,7 @@ h1, h2, h3, h4, h5, h6 {
}
.sub-nav dt, .sub-nav dd, .sub-nav li {
+ padding: rem-calc(3) 0;
&.active {
background: #008CBA;
@@ -142,7 +143,7 @@ h1, h2, h3, h4, h5, h6 {
color: white;
cursor: default;
font-weight: normal;
- padding: 0.16667rem 0.88889rem;
+ padding: rem-calc(3) rem-calc(14);
a:hover {
color: #737373;
@@ -150,6 +151,24 @@ h1, h2, h3, h4, h5, h6 {
}
}
+.f-dropdown {
+ li a {
+ font-size: rem-calc(12);
+
+ &:hover {
+ color: $link-hover;
+ }
+ }
+
+ li:hover, .f-dropdown li:focus {
+ background: white;
+ }
+
+ &.open {
+ outline: none;
+ }
+}
+
.margin {
margin-top: $line-height;
margin-bottom: $line-height;
@@ -710,13 +729,13 @@ form {
}
}
-img.admin-avatar, img.moderator-avatar {
+img.avatar, img.admin-avatar, img.moderator-avatar {
border-radius: rem-calc(1000);
position: relative;
}
img.initialjs-avatar {
- @extend .moderator-avatar;
+ @extend .avatar;
}
.author-deleted {
diff --git a/app/assets/stylesheets/variables.scss b/app/assets/stylesheets/variables.scss
index 700f57260..6240702d2 100644
--- a/app/assets/stylesheets/variables.scss
+++ b/app/assets/stylesheets/variables.scss
@@ -38,6 +38,7 @@ $votes-like-act: #5D9E7F;
$votes-unlike: #EF8585;
$votes-unlike-act: #BD6A6A;
+$delete: #F04124;
$check: #46DB91;
// 03. Forms
diff --git a/app/controllers/moderation/comments_controller.rb b/app/controllers/moderation/comments_controller.rb
index 03667e286..8a4d3768e 100644
--- a/app/controllers/moderation/comments_controller.rb
+++ b/app/controllers/moderation/comments_controller.rb
@@ -19,8 +19,8 @@ class Moderation::CommentsController < Moderation::BaseController
redirect_to request.query_parameters.merge(action: :index)
end
- def mark_as_reviewed
- @comment.mark_as_reviewed
+ def archive
+ @comment.archive
redirect_to request.query_parameters.merge(action: :index)
end
@@ -31,7 +31,7 @@ class Moderation::CommentsController < Moderation::BaseController
end
def set_valid_filters
- @valid_filters = %w{all pending_review reviewed}
+ @valid_filters = %w{all pending archived}
end
def parse_filter
diff --git a/app/controllers/moderation/debates_controller.rb b/app/controllers/moderation/debates_controller.rb
index 22e4eac6b..3492ee423 100644
--- a/app/controllers/moderation/debates_controller.rb
+++ b/app/controllers/moderation/debates_controller.rb
@@ -19,8 +19,8 @@ class Moderation::DebatesController < Moderation::BaseController
redirect_to request.query_parameters.merge(action: :index)
end
- def mark_as_reviewed
- @debate.mark_as_reviewed
+ def archive
+ @debate.archive
redirect_to request.query_parameters.merge(action: :index)
end
@@ -31,7 +31,7 @@ class Moderation::DebatesController < Moderation::BaseController
end
def set_valid_filters
- @valid_filters = %w{all pending_review reviewed}
+ @valid_filters = %w{all pending archived}
end
def parse_filter
diff --git a/app/models/ability.rb b/app/models/ability.rb
index a29f09a60..c8ed63d22 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -53,14 +53,14 @@ class Ability
can :hide, Comment, hidden_at: nil
cannot :hide, Comment, user_id: user.id
- can :mark_as_reviewed, Comment, reviewed_at: nil, hidden_at: nil
- cannot :mark_as_reviewed, Comment, user_id: user.id
+ can :archive, Comment, archived_at: nil, hidden_at: nil
+ cannot :archive, Comment, user_id: user.id
can :hide, Debate, hidden_at: nil
cannot :hide, Debate, author_id: user.id
- can :mark_as_reviewed, Debate, reviewed_at: nil, hidden_at: nil
- cannot :mark_as_reviewed, Debate, author_id: user.id
+ can :archive, Debate, archived_at: nil, hidden_at: nil
+ cannot :archive, Debate, author_id: user.id
can :hide, User
cannot :hide, User, id: user.id
diff --git a/app/models/comment.rb b/app/models/comment.rb
index 824f1dbf0..2f69138d7 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -18,8 +18,8 @@ class Comment < ActiveRecord::Base
scope :recent, -> { order(id: :desc) }
scope :sorted_for_moderation, -> { order(inappropiate_flags_count: :desc, updated_at: :desc) }
- scope :pending_review, -> { where(reviewed_at: nil, hidden_at: nil) }
- scope :reviewed, -> { where("reviewed_at IS NOT NULL AND hidden_at IS NULL") }
+ scope :pending, -> { where(archived_at: nil, hidden_at: nil) }
+ scope :archived, -> { where("archived_at IS NOT NULL AND hidden_at IS NULL") }
scope :flagged_as_inappropiate, -> { where("inappropiate_flags_count > 0") }
def self.build(commentable, user, body)
@@ -56,8 +56,8 @@ class Comment < ActiveRecord::Base
hidden? || user.hidden?
end
- def reviewed?
- reviewed_at.present?
+ def archived?
+ archived_at.present?
end
def as_administrator?
@@ -68,8 +68,8 @@ class Comment < ActiveRecord::Base
moderator_id.present?
end
- def mark_as_reviewed
- update(reviewed_at: Time.now)
+ def archive
+ update(archived_at: Time.now)
end
# TODO: faking counter cache since there is a bug with acts_as_nested_set :counter_cache
diff --git a/app/models/debate.rb b/app/models/debate.rb
index c16048f70..c20245e85 100644
--- a/app/models/debate.rb
+++ b/app/models/debate.rb
@@ -24,8 +24,8 @@ class Debate < ActiveRecord::Base
before_validation :sanitize_tag_list
scope :sorted_for_moderation, -> { order(inappropiate_flags_count: :desc, updated_at: :desc) }
- scope :pending_review, -> { where(reviewed_at: nil, hidden_at: nil) }
- scope :reviewed, -> { where("reviewed_at IS NOT NULL AND hidden_at IS NULL") }
+ scope :pending, -> { where(archived_at: nil, hidden_at: nil) }
+ scope :archived, -> { where("archived_at IS NOT NULL AND hidden_at IS NULL") }
scope :flagged_as_inappropiate, -> { where("inappropiate_flags_count > 0") }
# Ahoy setup
@@ -74,12 +74,12 @@ class Debate < ActiveRecord::Base
count < 0 ? 0 : count
end
- def reviewed?
- reviewed_at.present?
+ def archived?
+ archived_at.present?
end
- def mark_as_reviewed
- update(reviewed_at: Time.now)
+ def archive
+ update(archived_at: Time.now)
end
protected
diff --git a/app/views/comments/_actions.html.erb b/app/views/comments/_actions.html.erb
index 5454179f0..51a6743e0 100644
--- a/app/views/comments/_actions.html.erb
+++ b/app/views/comments/_actions.html.erb
@@ -1,12 +1,16 @@
+
+ <%= render 'comments/flag_as_inappropiate_actions', comment: comment %>
+
+
<% if can? :hide, comment %>
- |
+ •
<%= link_to t("admin.actions.hide").capitalize, hide_moderation_comment_path(comment),
method: :put, remote: true, data: { confirm: t('admin.actions.confirm') } %>
<% end %>
<% if can? :hide, comment.user %>
- |
+ •
<%= link_to t("admin.actions.hide_author").capitalize, hide_moderation_user_path(comment.user_id, debate_id: @debate.id),
method: :put, data: { confirm: t('admin.actions.confirm') } %>
<% end %>
diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb
index 0a1fd19a3..1b6f713ba 100644
--- a/app/views/comments/_comment.html.erb
+++ b/app/views/comments/_comment.html.erb
@@ -58,10 +58,6 @@
<% end %>
• <%= time_ago_in_words(comment.created_at) %>
-
-
- <%= render 'comments/flag_as_inappropiate_actions', comment: comment %>
-
<% if comment.as_administrator? %>
@@ -81,11 +77,11 @@
<%= render 'comments/votes', comment: comment %>
-
+
<%= t("debates.comment.responses", count: comment.children_count) %>
<% if user_signed_in? %>
- |
+ |
<%= link_to(comment_link_text(comment), "",
class: "js-add-comment-link", data: {'id': dom_id(comment)}) %>
@@ -93,7 +89,7 @@
<%= render 'comments/form', {parent: comment, toggeable: true} %>
<% end %>
-
+
<% end %>
diff --git a/app/views/comments/_flag_as_inappropiate_actions.html.erb b/app/views/comments/_flag_as_inappropiate_actions.html.erb
index fad83d4d6..9fba8b5b2 100644
--- a/app/views/comments/_flag_as_inappropiate_actions.html.erb
+++ b/app/views/comments/_flag_as_inappropiate_actions.html.erb
@@ -1,6 +1,23 @@
<% if can? :flag_as_inappropiate, comment %>
- <%= link_to t('shared.flag_as_inappropiate'), flag_as_inappropiate_comment_path(comment), method: :put, remote: true %>
+ |
+
+
+
+
<% end %>
+
<% if can? :undo_flag_as_inappropiate, comment %>
- <%= link_to t('shared.undo_flag_as_inappropiate'), undo_flag_as_inappropiate_comment_path(comment), method: :put, remote: true %>
+ |
+
+
+
+
<% end %>
diff --git a/app/views/debates/_flag_as_inappropiate_actions.html.erb b/app/views/debates/_flag_as_inappropiate_actions.html.erb
index 8003600e0..6c3d34236 100644
--- a/app/views/debates/_flag_as_inappropiate_actions.html.erb
+++ b/app/views/debates/_flag_as_inappropiate_actions.html.erb
@@ -1,6 +1,21 @@
<% if can? :flag_as_inappropiate, debate %>
- <%= link_to t('shared.flag_as_inappropiate'), flag_as_inappropiate_debate_path(debate), method: :put, remote: true %>
+
+
+
+
+ -
+ <%= link_to t('shared.flag_as_inappropiate'), flag_as_inappropiate_debate_path(debate), method: :put, remote: true, id: "flag-debate-#{ debate.id }" %>
+
+
<% end %>
+
<% if can? :undo_flag_as_inappropiate, debate %>
- <%= link_to t('shared.undo_flag_as_inappropiate'), undo_flag_as_inappropiate_debate_path(debate), method: :put, remote: true %>
+
+
+
+
+ -
+ <%= link_to t('shared.undo_flag_as_inappropiate'), undo_flag_as_inappropiate_debate_path(debate), method: :put, remote: true, id: "unflag-debate-#{ debate.id }" %>
+
+
<% end %>
diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb
index 8dcc334b8..3b91edc8d 100644
--- a/app/views/debates/show.html.erb
+++ b/app/views/debates/show.html.erb
@@ -41,8 +41,8 @@
•
<%= link_to t("debates.show.comments", count: @debate.comment_threads.count), "#comments" %>
-
-
+ •
+
<%= render 'debates/flag_as_inappropiate_actions', debate: @debate %>
diff --git a/app/views/moderation/_menu.html.erb b/app/views/moderation/_menu.html.erb
index 3971b3b51..f64eeec3a 100644
--- a/app/views/moderation/_menu.html.erb
+++ b/app/views/moderation/_menu.html.erb
@@ -4,17 +4,17 @@
<%= t("moderation.dashboard.index.title") %>
- >
+ >
<%= link_to moderation_debates_path do %>
<%= t('moderation.menu.flagged_debates') %>
<% end %>
- >
+ >
<%= link_to moderation_comments_path do %>
- <%= t('moderation.menu.flagged_comments') %>
+ <%= t("moderation.menu.flagged_comments") %>
<% end %>
diff --git a/app/views/moderation/comments/index.html.erb b/app/views/moderation/comments/index.html.erb
index 0d89114f1..f4ce8ec67 100644
--- a/app/views/moderation/comments/index.html.erb
+++ b/app/views/moderation/comments/index.html.erb
@@ -1,45 +1,52 @@
-<%= t('moderation.comments.index.title') %>
+<%= t("moderation.comments.index.title") %>
+
+
+ - <%= t("moderation.comments.index.filter") %>:
-
- <%= t('moderation.comments.index.filter') %>:
<% @valid_filters.each do |filter| %>
<% if @filter == filter %>
- <%= t("moderation.comments.index.filters.#{filter}") %>
+
- <%= t("moderation.comments.index.filters.#{filter}") %>
<% else %>
- <%= link_to t("moderation.comments.index.filters.#{filter}"),
- moderation_comments_path(filter: filter) %>
+ - <%= link_to t("moderation.comments.index.filters.#{filter}"),
+ moderation_comments_path(filter: filter) %>
<% end %>
<% end %>
-
+
<%= page_entries_info @comments %>
- | <%= t('moderation.comments.index.headers.flags') %> |
- <%= t('moderation.comments.index.headers.updated_at') %> |
- <%= t('moderation.comments.index.headers.commentable_type') %> |
- <%= t('moderation.comments.index.headers.commentable') %> |
- <%= t('moderation.comments.index.headers.comment') %> |
+
+ <%= t("moderation.comments.index.headers.commentable") %> |
+ <%= t("moderation.comments.index.headers.commentable_type") %> |
+ <%= t("moderation.comments.index.headers.updated_at") %>
+ |
+ <%= t("moderation.comments.index.headers.comment") %> |
+ <%= t("moderation.comments.index.headers.flags") %> |
+ <%= t("moderation.debates.index.headers.actions") %> |
<% @comments.each do |comment| %>
@@ -47,4 +54,3 @@
<%= paginate @comments %>
-
diff --git a/app/views/moderation/debates/index.html.erb b/app/views/moderation/debates/index.html.erb
index 611f68e16..ac11d2159 100644
--- a/app/views/moderation/debates/index.html.erb
+++ b/app/views/moderation/debates/index.html.erb
@@ -1,43 +1,51 @@
-<%= t('moderation.debates.index.title') %>
+<%= t("moderation.debates.index.title") %>
+
+
+ - <%= t("moderation.debates.index.filter") %>:
-
- <%= t('moderation.debates.index.filter') %>:
<% @valid_filters.each do |filter| %>
<% if @filter == filter %>
- <%= t("moderation.debates.index.filters.#{filter}") %>
+
- <%= t("moderation.debates.index.filters.#{filter}") %>
<% else %>
- <%= link_to t("moderation.debates.index.filters.#{filter}"),
- moderation_debates_path(filter: filter) %>
+ - <%= link_to t("moderation.debates.index.filters.#{filter}"),
+ moderation_debates_path(filter: filter) %>
<% end %>
<% end %>
-
+
<%= page_entries_info @debates %>
- | <%= t('moderation.debates.index.headers.flags') %> |
- <%= t('moderation.debates.index.headers.updated_at') %> |
- <%= t('moderation.debates.index.headers.title') %> |
- <%= t('moderation.debates.index.headers.description') %> |
+
+ <%= t("moderation.debates.index.headers.title") %> |
+ <%= t("moderation.debates.index.headers.updated_at") %> |
+ <%= t("moderation.debates.index.headers.description") %>
+ |
+ <%= t("moderation.debates.index.headers.flags") %> |
+ <%= t("moderation.debates.index.headers.actions") %> |
<% @debates.each do |debate| %>
- | <%= debate.inappropiate_flags_count %> |
- <%= l debate.updated_at.to_date %> |
- <%= link_to debate.title, debate %> |
- <%= debate.description %> |
- <%= link_to t('moderation.debates.index.hide'), hide_in_moderation_screen_moderation_debate_path(debate, request.query_parameters), method: :put %>
+ <%= link_to debate.title, debate, target: "_blank" %>
+
+ <%= l debate.updated_at.to_date %>
+
+ <%= debate.description %>
|
- <% if can? :mark_as_reviewed, debate %>
+ <%= debate.inappropiate_flags_count %> |
+
+ <%= link_to t("moderation.debates.index.hide"), hide_in_moderation_screen_moderation_debate_path(debate, request.query_parameters), method: :put, class: "delete" %>
+ |
+ <% if can? :archive, debate %>
- <%= link_to t('moderation.debates.index.mark_as_reviewed'), mark_as_reviewed_moderation_debate_path(debate, request.query_parameters), method: :put %>
+ <%= link_to t("moderation.debates.index.archive"), archive_moderation_debate_path(debate, request.query_parameters), method: :put, class: "button radius tiny warning" %>
|
<% end %>
- <% if debate.reviewed? %>
-
- <%= t('moderation.debates.index.reviewed') %>
+ <% if debate.archived? %>
+ |
+ <%= t("moderation.debates.index.archived") %>
|
<% end %>
@@ -45,4 +53,3 @@
<%= paginate @debates %>
-
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 279b2a00e..857abb1b8 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -134,8 +134,8 @@ en:
shared:
tags_cloud:
tags: Topics
- flag_as_inappropiate: Flag as inappropiate
- undo_flag_as_inappropiate: Undo flag as inappropiate
+ flag_as_inappropiate: Flag as inappropriate
+ undo_flag_as_inappropiate: Undo flag
collective: Collective
mailer:
comment:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 98c463b1e..2ac4f0d9f 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -135,7 +135,7 @@ es:
tags_cloud:
tags: Temas
flag_as_inappropiate: Denunciar como inapropiado
- undo_flag_as_inappropiate: Deshacer denunciar como inapropiado
+ undo_flag_as_inappropiate: Deshacer denuncia
collective: Colectivo
mailer:
comment:
diff --git a/config/locales/moderation.en.yml b/config/locales/moderation.en.yml
index 2728f10d9..3d61c93a2 100644
--- a/config/locales/moderation.en.yml
+++ b/config/locales/moderation.en.yml
@@ -8,7 +8,7 @@ en:
title: Moderation
comments:
index:
- title: Comments flagged as inappropiate
+ title: Comments flagged as inappropriate
headers:
flags: Flags
updated_at: Date
@@ -16,27 +16,27 @@ en:
commentable: Root
comment: Comment
hide: Hide
- mark_as_reviewed: Mark as reviewed
- reviewed: Reviewed
+ archive: Archive
+ archived: Archived
filter: Filter
filters:
all: All
- pending_review: Pending
- reviewed: Reviewed
+ pending: Pending
+ archived: Archived
debates:
index:
- title: Debates flagged as inappropiate
+ title: Debates flagged as inappropriate
headers:
flags: Flags
updated_at: Date
title: Title
description: Description
+ actions: Actions
hide: Hide
- mark_as_reviewed: Mark as reviewed
- reviewed: Reviewed
+ archive: Archive
+ archived: Archived
filter: Filter
filters:
all: All
- pending_review: Pending
- reviewed: Reviewed
-
+ pending: Pending
+ archived: Archived
diff --git a/config/locales/moderation.es.yml b/config/locales/moderation.es.yml
index 2afaec7a9..73886ddb0 100644
--- a/config/locales/moderation.es.yml
+++ b/config/locales/moderation.es.yml
@@ -8,7 +8,7 @@ es:
title: Moderación
comments:
index:
- title: Comentarios Denunciados como Inapropiados
+ title: Comentarios denunciados como inapropiados
headers:
flags: Denuncias
updated_at: Fecha
@@ -16,28 +16,27 @@ es:
commentable: Raíz
comment: Comentario
hide: Ocultar
- mark_as_reviewed: Marcar como revisado
- reviewed: Revisado
+ archive: Archivar
+ archived: Archivado
filter: Filtrar
filters:
all: Todos
- pending_review: Pendientes
- reviewed: Revisados
+ pending: Pendientes
+ archived: Archivados
debates:
index:
- title: Debates Denunciados como Inapropiados
+ title: Debates denunciados como inapropiados
headers:
flags: Denuncias
updated_at: Fecha
title: Título
description: Descripción
+ actions: Acciones
hide: Ocultar
- mark_as_reviewed: Marcar como revisado
- reviewed: Revisado
+ archive: Archivar
+ archived: Archivado
filter: Filtrar
filters:
all: Todos
- pending_review: Pendientes
- reviewed: Revisados
-
-
+ pending: Pendientes
+ archived: Archivados
diff --git a/config/routes.rb b/config/routes.rb
index 1e8b860a0..3a75c8634 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -88,7 +88,7 @@ Rails.application.routes.draw do
member do
put :hide
put :hide_in_moderation_screen
- put :mark_as_reviewed
+ put :archive
end
end
@@ -96,7 +96,7 @@ Rails.application.routes.draw do
member do
put :hide
put :hide_in_moderation_screen
- put :mark_as_reviewed
+ put :archive
end
end
end
diff --git a/db/migrate/20150826112411_rename_reviewed_at_to_archived_at_in_comments_and_debates.rb b/db/migrate/20150826112411_rename_reviewed_at_to_archived_at_in_comments_and_debates.rb
new file mode 100644
index 000000000..86bebd8e1
--- /dev/null
+++ b/db/migrate/20150826112411_rename_reviewed_at_to_archived_at_in_comments_and_debates.rb
@@ -0,0 +1,6 @@
+class RenameReviewedAtToArchivedAtInCommentsAndDebates < ActiveRecord::Migration
+ def change
+ rename_column :comments, :reviewed_at, :archived_at
+ rename_column :debates, :reviewed_at, :archived_at
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index d21459719..7633cda01 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20150824144524) do
+ActiveRecord::Schema.define(version: 20150826112411) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -51,7 +51,7 @@ ActiveRecord::Schema.define(version: 20150824144524) do
t.datetime "hidden_at"
t.datetime "flagged_as_inappropiate_at"
t.integer "inappropiate_flags_count", default: 0
- t.datetime "reviewed_at"
+ t.datetime "archived_at"
t.integer "moderator_id"
t.integer "administrator_id"
end
@@ -70,7 +70,7 @@ ActiveRecord::Schema.define(version: 20150824144524) do
t.datetime "hidden_at"
t.datetime "flagged_as_inappropiate_at"
t.integer "inappropiate_flags_count", default: 0
- t.datetime "reviewed_at"
+ t.datetime "archived_at"
end
add_index "debates", ["hidden_at"], name: "index_debates_on_hidden_at", using: :btree
diff --git a/spec/factories.rb b/spec/factories.rb
index 4fa2a70e3..43a1bce85 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -22,8 +22,8 @@ FactoryGirl.define do
hidden_at Time.now
end
- trait :reviewed do
- reviewed_at Time.now
+ trait :archived do
+ archived_at Time.now
end
trait :flagged_as_inappropiate do
@@ -48,8 +48,8 @@ FactoryGirl.define do
hidden_at Time.now
end
- trait :reviewed do
- reviewed_at Time.now
+ trait :archived do
+ archived_at Time.now
end
trait :flagged_as_inappropiate do
diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb
index 4ed16d915..58626b02b 100644
--- a/spec/features/comments_spec.rb
+++ b/spec/features/comments_spec.rb
@@ -133,7 +133,7 @@ feature 'Comments' do
expect(page).to have_css(".comment.comment.comment.comment.comment.comment.comment.comment")
end
- scenario "Flagging as inappropiate", :js do
+ scenario "Flagging as inappropriate", :js do
user = create(:user)
debate = create(:debate)
comment = create(:comment, commentable: debate)
@@ -142,15 +142,16 @@ feature 'Comments' do
visit debate_path(debate)
within "#comment_#{comment.id}" do
- expect(page).to_not have_link "Undo flag as inappropiate"
- click_on 'Flag as inappropiate'
- expect(page).to have_link "Undo flag as inappropiate"
+ page.find("#flag-expand-comment-#{comment.id}").click
+ page.find("#flag-comment-#{comment.id}").click
+
+ expect(page).to have_css("#unflag-expand-comment-#{comment.id}")
end
expect(InappropiateFlag.flagged?(user, comment)).to be
end
- scenario "Undoing flagging as inappropiate", :js do
+ scenario "Undoing flagging as inappropriate", :js do
user = create(:user)
debate = create(:debate)
comment = create(:comment, commentable: debate)
@@ -160,9 +161,10 @@ feature 'Comments' do
visit debate_path(debate)
within "#comment_#{comment.id}" do
- expect(page).to_not have_link("Flag as inappropiate", exact: true)
- click_on 'Undo flag as inappropiate'
- expect(page).to have_link("Flag as inappropiate", exact: true)
+ page.find("#unflag-expand-comment-#{comment.id}").click
+ page.find("#unflag-comment-#{comment.id}").click
+
+ expect(page).to have_css("#flag-expand-comment-#{comment.id}")
end
expect(InappropiateFlag.flagged?(user, comment)).to_not be
@@ -286,4 +288,4 @@ feature 'Comments' do
end
end
-end
\ No newline at end of file
+end
diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb
index c685725d8..22b689308 100644
--- a/spec/features/debates_spec.rb
+++ b/spec/features/debates_spec.rb
@@ -323,9 +323,10 @@ feature 'Debates' do
visit debate_path(debate)
within "#debate_#{debate.id}" do
- expect(page).to_not have_link "Undo flag as inappropiate"
- click_on 'Flag as inappropiate'
- expect(page).to have_link "Undo flag as inappropiate"
+ page.find("#flag-expand-debate-#{debate.id}").click
+ page.find("#flag-debate-#{debate.id}").click
+
+ expect(page).to have_css("#unflag-expand-debate-#{debate.id}")
end
expect(InappropiateFlag.flagged?(user, debate)).to be
@@ -340,9 +341,10 @@ feature 'Debates' do
visit debate_path(debate)
within "#debate_#{debate.id}" do
- expect(page).to_not have_link("Flag as inappropiate", exact: true)
- click_on 'Undo flag as inappropiate'
- expect(page).to have_link("Flag as inappropiate", exact: true)
+ page.find("#unflag-expand-debate-#{debate.id}").click
+ page.find("#unflag-debate-#{debate.id}").click
+
+ expect(page).to have_css("#flag-expand-debate-#{debate.id}")
end
expect(InappropiateFlag.flagged?(user, debate)).to_not be
diff --git a/spec/features/moderation/comments_spec.rb b/spec/features/moderation/comments_spec.rb
index 5a4100f77..2e3d1196e 100644
--- a/spec/features/moderation/comments_spec.rb
+++ b/spec/features/moderation/comments_spec.rb
@@ -104,57 +104,57 @@ feature 'Moderate Comments' do
visit moderation_comments_path
expect(page).to_not have_link('All')
expect(page).to have_link('Pending')
- expect(page).to have_link('Reviewed')
+ expect(page).to have_link('Archived')
visit moderation_comments_path(filter: 'all')
expect(page).to_not have_link('All')
expect(page).to have_link('Pending')
- expect(page).to have_link('Reviewed')
+ expect(page).to have_link('Archived')
- visit moderation_comments_path(filter: 'pending_review')
+ visit moderation_comments_path(filter: 'pending')
expect(page).to have_link('All')
expect(page).to_not have_link('Pending')
- expect(page).to have_link('Reviewed')
+ expect(page).to have_link('Archived')
- visit moderation_comments_path(filter: 'reviewed')
+ visit moderation_comments_path(filter: 'archived')
expect(page).to have_link('All')
expect(page).to have_link('Pending')
- expect(page).to_not have_link('Reviewed')
+ expect(page).to_not have_link('Archived')
end
scenario "Filtering comments" do
create(:comment, :flagged_as_inappropiate, body: "Pending comment")
create(:comment, :flagged_as_inappropiate, :hidden, body: "Hidden comment")
- create(:comment, :flagged_as_inappropiate, :reviewed, body: "Reviewed comment")
+ create(:comment, :flagged_as_inappropiate, :archived, body: "Archived comment")
visit moderation_comments_path(filter: 'all')
expect(page).to have_content('Pending comment')
expect(page).to_not have_content('Hidden comment')
- expect(page).to have_content('Reviewed comment')
+ expect(page).to have_content('Archived comment')
- visit moderation_comments_path(filter: 'pending_review')
+ visit moderation_comments_path(filter: 'pending')
expect(page).to have_content('Pending comment')
expect(page).to_not have_content('Hidden comment')
- expect(page).to_not have_content('Reviewed comment')
+ expect(page).to_not have_content('Archived comment')
- visit moderation_comments_path(filter: 'reviewed')
+ visit moderation_comments_path(filter: 'archived')
expect(page).to_not have_content('Pending comment')
expect(page).to_not have_content('Hidden comment')
- expect(page).to have_content('Reviewed comment')
+ expect(page).to have_content('Archived comment')
end
scenario "Reviewing links remember the pagination setting and the filter" do
per_page = Kaminari.config.default_per_page
(per_page + 2).times { create(:comment, :flagged_as_inappropiate) }
- visit moderation_comments_path(filter: 'pending_review', page: 2)
+ visit moderation_comments_path(filter: 'pending', page: 2)
- click_link('Mark as reviewed', match: :first)
+ click_link('Archive', match: :first, exact: true)
uri = URI.parse(current_url)
query_params = Rack::Utils.parse_nested_query(uri.query).symbolize_keys
- expect(query_params[:filter]).to eq('pending_review')
+ expect(query_params[:filter]).to eq('pending')
expect(query_params[:page]).to eq('2')
end
@@ -172,7 +172,7 @@ feature 'Moderate Comments' do
expect(page).to have_content('spammy spam')
expect(page).to have_content('1')
expect(page).to have_link('Hide')
- expect(page).to have_link('Mark as reviewed')
+ expect(page).to have_link('Archive')
end
end
@@ -187,18 +187,18 @@ feature 'Moderate Comments' do
expect(@comment.reload).to be_hidden
end
- scenario 'Marking the comment as reviewed' do
+ scenario 'Marking the comment as archived' do
within("#comment_#{@comment.id}") do
- click_link('Mark as reviewed')
+ click_link('Archive')
end
expect(current_path).to eq(moderation_comments_path)
within("#comment_#{@comment.id}") do
- expect(page).to have_content('Reviewed')
+ expect(page).to have_content('Archived')
end
- expect(@comment.reload).to be_reviewed
+ expect(@comment.reload).to be_archived
end
end
end
diff --git a/spec/features/moderation/debates_spec.rb b/spec/features/moderation/debates_spec.rb
index 1ea3101e0..b1234bb1b 100644
--- a/spec/features/moderation/debates_spec.rb
+++ b/spec/features/moderation/debates_spec.rb
@@ -47,57 +47,57 @@ feature 'Moderate debates' do
visit moderation_debates_path
expect(page).to_not have_link('All')
expect(page).to have_link('Pending')
- expect(page).to have_link('Reviewed')
+ expect(page).to have_link('Archived')
visit moderation_debates_path(filter: 'all')
expect(page).to_not have_link('All')
expect(page).to have_link('Pending')
- expect(page).to have_link('Reviewed')
+ expect(page).to have_link('Archived')
- visit moderation_debates_path(filter: 'pending_review')
+ visit moderation_debates_path(filter: 'pending')
expect(page).to have_link('All')
expect(page).to_not have_link('Pending')
- expect(page).to have_link('Reviewed')
+ expect(page).to have_link('Archived')
- visit moderation_debates_path(filter: 'reviewed')
+ visit moderation_debates_path(filter: 'archived')
expect(page).to have_link('All')
expect(page).to have_link('Pending')
- expect(page).to_not have_link('Reviewed')
+ expect(page).to_not have_link('Archived')
end
scenario "Filtering debates" do
create(:debate, :flagged_as_inappropiate, title: "Pending debate")
create(:debate, :flagged_as_inappropiate, :hidden, title: "Hidden debate")
- create(:debate, :flagged_as_inappropiate, :reviewed, title: "Reviewed debate")
+ create(:debate, :flagged_as_inappropiate, :archived, title: "Archived debate")
visit moderation_debates_path(filter: 'all')
expect(page).to have_content('Pending debate')
expect(page).to_not have_content('Hidden debate')
- expect(page).to have_content('Reviewed debate')
+ expect(page).to have_content('Archived debate')
- visit moderation_debates_path(filter: 'pending_review')
+ visit moderation_debates_path(filter: 'pending')
expect(page).to have_content('Pending debate')
expect(page).to_not have_content('Hidden debate')
- expect(page).to_not have_content('Reviewed debate')
+ expect(page).to_not have_content('Archived debate')
- visit moderation_debates_path(filter: 'reviewed')
+ visit moderation_debates_path(filter: 'archived')
expect(page).to_not have_content('Pending debate')
expect(page).to_not have_content('Hidden debate')
- expect(page).to have_content('Reviewed debate')
+ expect(page).to have_content('Archived debate')
end
scenario "Reviewing links remember the pagination setting and the filter" do
per_page = Kaminari.config.default_per_page
(per_page + 2).times { create(:debate, :flagged_as_inappropiate) }
- visit moderation_debates_path(filter: 'pending_review', page: 2)
+ visit moderation_debates_path(filter: 'pending', page: 2)
- click_link('Mark as reviewed', match: :first)
+ click_link('Archive', match: :first, exact: true)
uri = URI.parse(current_url)
query_params = Rack::Utils.parse_nested_query(uri.query).symbolize_keys
- expect(query_params[:filter]).to eq('pending_review')
+ expect(query_params[:filter]).to eq('pending')
expect(query_params[:page]).to eq('2')
end
@@ -114,7 +114,7 @@ feature 'Moderate debates' do
expect(page).to have_content('buy buy buy')
expect(page).to have_content('1')
expect(page).to have_link('Hide')
- expect(page).to have_link('Mark as reviewed')
+ expect(page).to have_link('Archive')
end
end
@@ -129,18 +129,18 @@ feature 'Moderate debates' do
expect(@debate.reload).to be_hidden
end
- scenario 'Marking the debate as reviewed' do
+ scenario 'Marking the debate as archived' do
within("#debate_#{@debate.id}") do
- click_link('Mark as reviewed')
+ click_link('Archive')
end
expect(current_path).to eq(moderation_debates_path)
within("#debate_#{@debate.id}") do
- expect(page).to have_content('Reviewed')
+ expect(page).to have_content('Archived')
end
- expect(@debate.reload).to be_reviewed
+ expect(@debate.reload).to be_archived
end
end
end
diff --git a/spec/models/ability_spec.rb b/spec/models/ability_spec.rb
index ff3e3800c..a7cfd195f 100644
--- a/spec/models/ability_spec.rb
+++ b/spec/models/ability_spec.rb
@@ -131,8 +131,8 @@ describe Ability do
let(:own_debate) { create(:debate, author: user) }
let(:hidden_comment) { create(:comment, :hidden) }
let(:hidden_debate) { create(:debate, :hidden) }
- let(:reviewed_comment) { create(:comment, :reviewed) }
- let(:reviewed_debate) { create(:debate, :reviewed) }
+ let(:archived_comment) { create(:comment, :archived) }
+ let(:archived_debate) { create(:debate, :archived) }
it { should be_able_to(:hide, comment) }
it { should be_able_to(:hide_in_moderation_screen, comment) }
@@ -144,15 +144,15 @@ describe Ability do
it { should_not be_able_to(:hide, hidden_debate) }
it { should_not be_able_to(:hide, own_debate) }
- it { should be_able_to(:mark_as_reviewed, comment) }
- it { should_not be_able_to(:mark_as_reviewed, hidden_comment) }
- it { should_not be_able_to(:mark_as_reviewed, reviewed_comment) }
- it { should_not be_able_to(:mark_as_reviewed, own_comment) }
+ it { should be_able_to(:archive, comment) }
+ it { should_not be_able_to(:archive, hidden_comment) }
+ it { should_not be_able_to(:archive, archived_comment) }
+ it { should_not be_able_to(:archive, own_comment) }
- it { should be_able_to(:mark_as_reviewed, debate) }
- it { should_not be_able_to(:mark_as_reviewed, hidden_debate) }
- it { should_not be_able_to(:mark_as_reviewed, reviewed_debate) }
- it { should_not be_able_to(:mark_as_reviewed, own_debate) }
+ it { should be_able_to(:archive, debate) }
+ it { should_not be_able_to(:archive, hidden_debate) }
+ it { should_not be_able_to(:archive, archived_debate) }
+ it { should_not be_able_to(:archive, own_debate) }
it { should_not be_able_to(:hide, user) }
it { should be_able_to(:hide, other_user) }