diff --git a/app/assets/stylesheets/tabs.scss b/app/assets/stylesheets/tabs.scss index 108168625..ce2c1345a 100644 --- a/app/assets/stylesheets/tabs.scss +++ b/app/assets/stylesheets/tabs.scss @@ -2,4 +2,8 @@ .tabs { margin-bottom: 1em; -} \ No newline at end of file + + .tabs--push { + flex-grow: 1; + } +} diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index 90d9fadc2..7dc2ce359 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -241,3 +241,18 @@ $sizes: (16, 32, 40, 48, 64, 128, 256); } } } + +.modtools--sidebar { + margin-right: 1rem; +} +.modtools--usercard { + padding: 0.5rem; +} +.modtools-tbl-noborder { + th { + border-bottom-width: 1px !important; + width: 150px; + } +} + +.mod-warnings-clear-form { display: inline; } diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index f17661088..b5aace580 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -2,9 +2,9 @@ class AdminController < ApplicationController before_action :verify_admin, except: [:change_back, :verify_elevation] before_action :verify_global_admin, only: [:admin_email, :send_admin_email, :new_site, :create_site, :setup, - :setup_save, :hellban, :all_email, :send_all_email] + :setup_save, :failban, :all_email, :send_all_email] before_action :verify_developer, only: [:change_users, :impersonate] - before_action :set_user, only: [:change_users, :hellban, :impersonate] + before_action :set_user, only: [:change_users, :failban, :impersonate] skip_before_action :check_if_warning_or_suspension_pending, only: [:change_back, :verify_elevation] @@ -204,7 +204,7 @@ def setup_save render end - def hellban + def failban @user.block("user manually blocked by admin ##{current_user.id}") flash[:success] = t 'admin.user_fed_stat' redirect_back fallback_location: admin_path diff --git a/app/controllers/moderator_controller.rb b/app/controllers/moderator_controller.rb index c2f649e7f..60e5ee4fe 100644 --- a/app/controllers/moderator_controller.rb +++ b/app/controllers/moderator_controller.rb @@ -69,6 +69,7 @@ def user_vote_summary total: Vote.for(@user).count ) ) + render layout: 'without_sidebar' end def spammy_users diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9a81f07bc..38ba9eb29 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2,6 +2,8 @@ # rubocop:disable Metrics/ClassLength class UsersController < ApplicationController + layout 'without_sidebar' + include Devise::Controllers::Rememberable before_action :authenticate_user!, only: [:edit_profile, :update_profile, :stack_redirect, @@ -12,11 +14,12 @@ class UsersController < ApplicationController before_action :redirect_to_sign_in, only: [:filters], unless: [:user_signed_in?, :json_request?] - before_action :verify_moderator, only: [:mod, :destroy, :soft_delete, :role_toggle, :full_log, - :annotate, :annotations, :mod_privileges, :mod_privilege_action] - before_action :set_user, only: [:show, :mod, :destroy, :soft_delete, :posts, :role_toggle, :full_log, :activity, - :annotate, :annotations, :mod_privileges, :mod_privilege_action, - :vote_summary, :network, :avatar] + before_action :verify_moderator, only: [:mod, :soft_delete, :role_toggle, :full_log, + :annotate, :annotations, :mod_privileges, :mod_privilege_action, :mod_delete] + before_action :verify_global_moderator, only: [:mod_failban, :mod_delete_network_account] + before_action :set_user, only: [:show, :mod, :mod_delete, :mod_failban, :mod_delete_network_account, :soft_delete, + :posts, :role_toggle, :full_log, :activity, :annotate, :annotations, :mod_privileges, + :mod_privilege_action, :vote_summary, :network, :avatar] before_action :check_deleted, only: [:show, :posts, :activity] def index @@ -36,7 +39,9 @@ def index @post_counts = Post.where(user_id: @users.pluck(:id).uniq).group(:user_id).count respond_to do |format| - format.html + format.html do + render layout: 'application' + end format.json do render json: @users end @@ -60,7 +65,6 @@ def show .count end @posts = @posts.first(@limit) - render layout: 'without_sidebar' end def me @@ -92,7 +96,6 @@ def preferences prefs = current_user.preferences @preferences = prefs[:global] @community_prefs = prefs[:community] - render layout: 'without_sidebar' end format.json do render json: current_user.preferences @@ -135,9 +138,7 @@ def filters_json def filters respond_to do |format| - format.html do - render layout: 'without_sidebar' - end + format.html format.json do render json: filters_json end @@ -225,7 +226,7 @@ def posts respond_to do |format| format.html do - render :posts + render :posts, layout: 'application' end format.json do render json: @posts @@ -239,7 +240,6 @@ def my_network def network @communities = Community.all - render layout: 'without_sidebar' end def my_activity @@ -272,11 +272,8 @@ def activity end @items = items.sort_by(&:created_at).reverse.paginate(page: params[:page], per_page: 50) - render layout: 'without_sidebar' end - def mod; end - def full_log @posts = Post.by(@user).count @comments = Comment.by(@user).count @@ -315,8 +312,6 @@ def full_log SuggestedEdit.by(@user).all + PostHistory.by(@user).all + ModWarning.to(@user).all end).sort_by(&:created_at).reverse.paginate(page: params[:page], per_page: 50) - - render layout: 'without_sidebar' end def mod_privileges @@ -349,10 +344,6 @@ def soft_delete render json: { status: 'success', user: @user.id } end - def edit_profile - render layout: 'without_sidebar' - end - def cleaned_profile_websites(profile_params) sites = profile_params[:user_websites_attributes] @@ -575,7 +566,6 @@ def annotations @logs = AuditLog.where(log_type: 'user_annotation', related: @user) .newest_first .paginate(page: params[:page], per_page: 20) - render layout: 'without_sidebar' end def annotate @@ -605,8 +595,6 @@ def vote_summary [k, vl.group_by(&:post), vl.sum { |v| v.vote_type * v.vote_count }] end .paginate(page: params[:page], per_page: 15) - - render layout: 'without_sidebar' end def avatar @@ -628,10 +616,6 @@ def specific_avatar end end - def disconnect_sso - render layout: 'without_sidebar' - end - def confirm_disconnect_sso if current_user.sso_profile.blank? || !helpers.devise_sign_in_enabled? || !SiteSetting['AllowSsoDisconnect'] flash[:danger] = 'You cannot disable Single Sign-On.' diff --git a/app/views/mod_warning/log.html.erb b/app/views/mod_warning/log.html.erb index 5a019feb4..c1c45525a 100644 --- a/app/views/mod_warning/log.html.erb +++ b/app/views/mod_warning/log.html.erb @@ -1,42 +1,49 @@ -
| Date | -Type | -From | -Excerpt | -Status | -
|---|---|---|---|---|
| - <%= time_ago_in_words(w.created_at) %> ago - | -- <% if w.suspension? %> - <% diff = ((w.suspension_end - w.created_at) / (3600 * 24)).to_i %> - Suspension (<%= diff %>d) - <% else %> - Warning - <% end %> - | -<%= user_link w.author %> | -<%= raw(sanitize(render_markdown(w.body), scrubber: scrubber)) %> | -- <% if w.suspension_active? %> - Current - <%= form_tag lift_mod_warning_url(@user.id), method: :post do %> - <%= submit_tag '(lift)', class: 'link is-red' %> - <% end %> - <% elsif w.active %> - Unread - <% elsif w.read %> - Read - <% else %> - Lifted - <% end %> - | -
No warnings found for this user.
+ <% end %> + + <% @warnings.each do |w| %> + + <% end %> +Use the warning tool only against users who have violated the site rules. Prefer other measurements, such as friendly asking the user to stop certain behaviors in a comment.
-