From: Andy Allan Date: Mon, 20 Jan 2025 17:54:02 +0000 (+0000) Subject: Merge pull request #5421 from tomhughes/ecma-version X-Git-Tag: live~489 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/4470cb88e0556041452719a3b4d7396cb3e3ec4a?hp=70afbd09d615b4d726a5a58c6f0910126bd8480a Merge pull request #5421 from tomhughes/ecma-version Bump allowed ECMAScript version to 2021 (ES12) --- diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b3379b91a..fa15ea90a 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -112,7 +112,6 @@ Rails/ActionControllerFlashBeforeRender: Exclude: - 'app/controllers/application_controller.rb' - 'app/controllers/confirmations_controller.rb' - - 'app/controllers/friendships_controller.rb' - 'app/controllers/issue_comments_controller.rb' - 'app/controllers/messages_controller.rb' - 'app/controllers/passwords_controller.rb' @@ -142,7 +141,6 @@ Rails/InverseOf: Exclude: - 'app/models/changeset.rb' - 'app/models/diary_entry.rb' - - 'app/models/friendship.rb' - 'app/models/issue.rb' - 'app/models/message.rb' - 'app/models/note.rb' diff --git a/app/abilities/ability.rb b/app/abilities/ability.rb index 05f4952ac..3ba2ab707 100644 --- a/app/abilities/ability.rb +++ b/app/abilities/ability.rb @@ -22,7 +22,7 @@ class Ability can [:create, :update], :password can :read, Redaction can [:create, :destroy], :session - can [:read, :data, :georss], Trace + can [:read, :data], Trace can [:read, :create, :suspended, :auth_success, :auth_failure], User can :read, UserBlock end @@ -42,7 +42,7 @@ class Ability can [:create, :subscribe, :unsubscribe], DiaryEntry can :update, DiaryEntry, :user => user can [:create], DiaryComment - can [:make_friend, :remove_friend], Friendship + can [:show, :create, :destroy], Follow can [:read, :create, :mark, :unmute, :destroy], Message can [:close, :reopen], Note can [:read, :update], :preference @@ -67,7 +67,8 @@ class Ability can [:hide, :unhide], [DiaryEntry, DiaryComment] can [:read, :resolve, :ignore, :reopen], Issue can :create, IssueComment - can [:set_status, :destroy], User + + can [:update], :user_status can [:read, :update], :users_list can [:create, :destroy], UserRole end diff --git a/app/assets/javascripts/leaflet.map.js b/app/assets/javascripts/leaflet.map.js index e0c2ee60b..7929ea0ac 100644 --- a/app/assets/javascripts/leaflet.map.js +++ b/app/assets/javascripts/leaflet.map.js @@ -32,6 +32,8 @@ L.OSM.Map = L.Map.extend({ layerOptions.apikey = OSM[value]; } else if (property === "leafletOsmId") { layerConstructor = L.OSM[value]; + } else if (property === "leafletOsmDarkId" && OSM.isDarkMap() && L.OSM[value]) { + layerConstructor = L.OSM[value]; } else { layerOptions[property] = value; } @@ -386,6 +388,14 @@ L.extend(L.Icon.Default.prototype, { } }); +OSM.isDarkMap = function () { + var mapTheme = $("body").attr("data-map-theme"); + if (mapTheme) return mapTheme === "dark"; + var siteTheme = $("html").attr("data-bs-theme"); + if (siteTheme) return siteTheme === "dark"; + return window.matchMedia("(prefers-color-scheme: dark)").matches; +}; + OSM.getUserIcon = function (url) { return L.icon({ iconUrl: url || OSM.MARKER_RED, diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 9ce6aec34..098370689 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -9,7 +9,7 @@ body { font-size: $typeheight; - --dark-mode-map-filter: brightness(.8); + --dark-mode-map-filter: none; } time[title] { diff --git a/app/controllers/changesets_controller.rb b/app/controllers/changesets_controller.rb index 928f1c1ec..aa9d81343 100644 --- a/app/controllers/changesets_controller.rb +++ b/app/controllers/changesets_controller.rb @@ -55,7 +55,7 @@ class ChangesetsController < ApplicationController elsif @params[:bbox] changesets = conditions_bbox(changesets, BoundingBox.from_bbox_params(params)) elsif @params[:friends] && current_user - changesets = changesets.where(:user => current_user.friends.identifiable) + changesets = changesets.where(:user => current_user.followings.identifiable) elsif @params[:nearby] && current_user changesets = changesets.where(:user => current_user.nearby) end diff --git a/app/controllers/diary_entries_controller.rb b/app/controllers/diary_entries_controller.rb index 27099cd9c..94876e72a 100644 --- a/app/controllers/diary_entries_controller.rb +++ b/app/controllers/diary_entries_controller.rb @@ -28,8 +28,8 @@ class DiaryEntriesController < ApplicationController end elsif params[:friends] if current_user - @title = t ".title_friends" - entries = DiaryEntry.where(:user => current_user.friends) + @title = t ".title_followed" + entries = DiaryEntry.where(:user => current_user.followings) else require_user return diff --git a/app/controllers/follows_controller.rb b/app/controllers/follows_controller.rb new file mode 100644 index 000000000..a8da933df --- /dev/null +++ b/app/controllers/follows_controller.rb @@ -0,0 +1,51 @@ +class FollowsController < ApplicationController + include UserMethods + + layout "site" + + before_action :authorize_web + before_action :set_locale + before_action :check_database_readable + + authorize_resource + + before_action :check_database_writable + before_action :lookup_user + + def show + @already_follows = current_user.follows?(@user) + end + + def create + follow = Follow.new + follow.follower = current_user + follow.following = @user + if current_user.follows?(@user) + flash[:warning] = t ".already_followed", :name => @user.display_name + elsif current_user.follows.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_follows_per_hour + flash[:error] = t ".limit_exceeded" + elsif follow.save + flash[:notice] = t ".success", :name => @user.display_name + UserMailer.follow_notification(follow).deliver_later + else + follow.add_error(t(".failed", :name => @user.display_name)) + end + + referer = safe_referer(params[:referer]) if params[:referer] + + redirect_to referer || user_path + end + + def destroy + if current_user.follows?(@user) + Follow.where(:follower => current_user, :following => @user).delete_all + flash[:notice] = t ".success", :name => @user.display_name + else + flash[:error] = t ".not_followed", :name => @user.display_name + end + + referer = safe_referer(params[:referer]) if params[:referer] + + redirect_to referer || user_path + end +end diff --git a/app/controllers/friendships_controller.rb b/app/controllers/friendships_controller.rb deleted file mode 100644 index 8f0c1ad85..000000000 --- a/app/controllers/friendships_controller.rb +++ /dev/null @@ -1,61 +0,0 @@ -class FriendshipsController < ApplicationController - include UserMethods - - layout "site" - - before_action :authorize_web - before_action :set_locale - before_action :check_database_readable - - authorize_resource - - before_action :check_database_writable, :only => [:make_friend, :remove_friend] - before_action :lookup_friend, :only => [:make_friend, :remove_friend] - - def make_friend - if request.post? - friendship = Friendship.new - friendship.befriender = current_user - friendship.befriendee = @friend - if current_user.friends_with?(@friend) - flash[:warning] = t ".already_a_friend", :name => @friend.display_name - elsif current_user.friendships.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_friends_per_hour - flash[:error] = t ".limit_exceeded" - elsif friendship.save - flash[:notice] = t ".success", :name => @friend.display_name - UserMailer.friendship_notification(friendship).deliver_later - else - friendship.add_error(t(".failed", :name => @friend.display_name)) - end - - referer = safe_referer(params[:referer]) if params[:referer] - - redirect_to referer || user_path - end - end - - def remove_friend - if request.post? - if current_user.friends_with?(@friend) - Friendship.where(:befriender => current_user, :befriendee => @friend).delete_all - flash[:notice] = t ".success", :name => @friend.display_name - else - flash[:error] = t ".not_a_friend", :name => @friend.display_name - end - - referer = safe_referer(params[:referer]) if params[:referer] - - redirect_to referer || user_path - end - end - - private - - ## - # ensure that there is a "friend" instance variable - def lookup_friend - @friend = User.active.find_by!(:display_name => params[:display_name]) - rescue ActiveRecord::RecordNotFound - render_unknown_user params[:display_name] - end -end diff --git a/app/controllers/traces/feeds_controller.rb b/app/controllers/traces/feeds_controller.rb new file mode 100644 index 000000000..293fbab3b --- /dev/null +++ b/app/controllers/traces/feeds_controller.rb @@ -0,0 +1,20 @@ +module Traces + class FeedsController < ApplicationController + before_action :authorize_web + before_action :set_locale + before_action :check_database_readable + + authorize_resource :class => Trace + + def show + @traces = Trace.visible_to_all.visible + + @traces = @traces.joins(:user).where(:users => { :display_name => params[:display_name] }) if params[:display_name] + + @traces = @traces.tagged(params[:tag]) if params[:tag] + @traces = @traces.order("timestamp DESC") + @traces = @traces.limit(20) + @traces = @traces.includes(:user) + end + end +end diff --git a/app/controllers/traces_controller.rb b/app/controllers/traces_controller.rb index d723bac5b..14648dc9c 100644 --- a/app/controllers/traces_controller.rb +++ b/app/controllers/traces_controller.rb @@ -2,7 +2,7 @@ class TracesController < ApplicationController include UserMethods include PaginationMethods - layout "site", :except => :georss + layout "site" before_action :authorize_web before_action :set_locale @@ -192,17 +192,6 @@ class TracesController < ApplicationController head :not_found end - def georss - @traces = Trace.visible_to_all.visible - - @traces = @traces.joins(:user).where(:users => { :display_name => params[:display_name] }) if params[:display_name] - - @traces = @traces.tagged(params[:tag]) if params[:tag] - @traces = @traces.order("timestamp DESC") - @traces = @traces.limit(20) - @traces = @traces.includes(:user) - end - private def do_create(file, tags, description, visibility) diff --git a/app/controllers/users/statuses_controller.rb b/app/controllers/users/statuses_controller.rb new file mode 100644 index 000000000..a66782edf --- /dev/null +++ b/app/controllers/users/statuses_controller.rb @@ -0,0 +1,36 @@ +module Users + class StatusesController < ApplicationController + layout "site" + + before_action :authorize_web + before_action :set_locale + before_action :check_database_readable + + authorize_resource :class => :user_status + + before_action :lookup_user_by_name + + ## + # sets a user's status + def update + @user.activate! if params[:event] == "activate" + @user.confirm! if params[:event] == "confirm" + @user.unconfirm! if params[:event] == "unconfirm" + @user.hide! if params[:event] == "hide" + @user.unhide! if params[:event] == "unhide" + @user.unsuspend! if params[:event] == "unsuspend" + @user.soft_destroy! if params[:event] == "soft_destroy" # destroy a user, marking them as deleted and removing personal data + redirect_to user_path(params[:user_display_name]) + end + + private + + ## + # ensure that there is a "user" instance variable + def lookup_user_by_name + @user = User.find_by!(:display_name => params[:user_display_name]) + rescue ActiveRecord::RecordNotFound + redirect_to user_path(params[:user_display_name]) unless @user + end + end +end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 904b960a2..a0be87bdc 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -14,7 +14,6 @@ class UsersController < ApplicationController before_action :check_database_writable, :only => [:new, :go_public] before_action :require_cookies, :only => [:new] - before_action :lookup_user_by_name, :only => [:set_status, :destroy] allow_thirdparty_images :only => :show allow_social_login :only => :new @@ -98,13 +97,6 @@ class UsersController < ApplicationController end end - ## - # destroy a user, marking them as deleted and removing personal data - def destroy - @user.soft_destroy! - redirect_to user_path(:display_name => params[:display_name]) - end - def go_public current_user.data_public = true current_user.save @@ -112,18 +104,6 @@ class UsersController < ApplicationController redirect_to edit_account_path end - ## - # sets a user's status - def set_status - @user.activate! if params[:event] == "activate" - @user.confirm! if params[:event] == "confirm" - @user.unconfirm! if params[:event] == "unconfirm" - @user.hide! if params[:event] == "hide" - @user.unhide! if params[:event] == "unhide" - @user.unsuspend! if params[:event] == "unsuspend" - redirect_to user_path(:display_name => params[:display_name]) - end - ## # omniauth success callback def auth_success @@ -237,14 +217,6 @@ class UsersController < ApplicationController end end - ## - # ensure that there is a "user" instance variable - def lookup_user_by_name - @user = User.find_by(:display_name => params[:display_name]) - rescue ActiveRecord::RecordNotFound - redirect_to :action => "view", :display_name => params[:display_name] unless @user - end - ## # return permitted user parameters def user_params diff --git a/app/helpers/changesets_helper.rb b/app/helpers/changesets_helper.rb index 4605658f6..d3bc5ed9a 100644 --- a/app/helpers/changesets_helper.rb +++ b/app/helpers/changesets_helper.rb @@ -32,7 +32,7 @@ module ChangesetsHelper def changeset_index_title(params, user) if params[:friends] && user - t "changesets.index.title_friend" + t "changesets.index.title_followed" elsif params[:nearby] && user t "changesets.index.title_nearby" elsif params[:display_name] diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 1dd13fb2d..609816285 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -119,16 +119,16 @@ class UserMailer < ApplicationMailer end end - def friendship_notification(friendship) - with_recipient_locale friendship.befriendee do - @friendship = friendship - @viewurl = user_url(@friendship.befriender) - @friendurl = make_friend_url(@friendship.befriender) - @author = @friendship.befriender.display_name - - attach_user_avatar(@friendship.befriender) - mail :to => friendship.befriendee.email, - :subject => t(".subject", :user => friendship.befriender.display_name) + def follow_notification(follow) + with_recipient_locale follow.following do + @follow = follow + @viewurl = user_url(@follow.follower) + @followurl = follow_url(@follow.follower) + @author = @follow.follower.display_name + + attach_user_avatar(@follow.follower) + mail :to => follow.following.email, + :subject => t(".subject", :user => follow.follower.display_name) end end diff --git a/app/models/friendship.rb b/app/models/follow.rb similarity index 69% rename from app/models/friendship.rb rename to app/models/follow.rb index 2b1c7ce00..ebf3ad735 100644 --- a/app/models/friendship.rb +++ b/app/models/follow.rb @@ -18,9 +18,9 @@ # friends_user_id_fkey (user_id => users.id) # -class Friendship < ApplicationRecord +class Follow < ApplicationRecord self.table_name = "friends" - belongs_to :befriender, :class_name => "User", :foreign_key => :user_id - belongs_to :befriendee, :class_name => "User", :foreign_key => :friend_user_id + belongs_to :follower, :class_name => "User", :foreign_key => :user_id, :inverse_of => :follows + belongs_to :following, :class_name => "User", :foreign_key => :friend_user_id, :inverse_of => :follows end diff --git a/app/models/user.rb b/app/models/user.rb index 917faca21..16f733c88 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -58,8 +58,8 @@ class User < ApplicationRecord has_many :new_messages, -> { where(:to_user_visible => true, :muted => false, :message_read => false).order(:sent_on => :desc) }, :class_name => "Message", :foreign_key => :to_user_id has_many :sent_messages, -> { where(:from_user_visible => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :class_name => "Message", :foreign_key => :from_user_id has_many :muted_messages, -> { where(:to_user_visible => true, :muted => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :class_name => "Message", :foreign_key => :to_user_id - has_many :friendships, -> { joins(:befriendee).where(:users => { :status => %w[active confirmed] }) } - has_many :friends, :through => :friendships, :source => :befriendee + has_many :follows, -> { joins(:following).where(:users => { :status => %w[active confirmed] }) } + has_many :followings, :through => :follows, :source => :following has_many :preferences, :class_name => "UserPreference" has_many :changesets, -> { order(:created_at => :desc) }, :inverse_of => :user has_many :changeset_comments, :foreign_key => :author_id, :inverse_of => :author @@ -282,8 +282,8 @@ class User < ApplicationRecord OSM::GreatCircle.new(home_lat, home_lon).distance(nearby_user.home_lat, nearby_user.home_lon) end - def friends_with?(new_friend) - friendships.exists?(:befriendee => new_friend) + def follows?(user) + follows.exists?(:following => user) end ## @@ -411,12 +411,12 @@ class User < ApplicationRecord max_messages.clamp(0, Settings.max_messages_per_hour) end - def max_friends_per_hour + def max_follows_per_hour account_age_in_seconds = Time.now.utc - created_at account_age_in_hours = account_age_in_seconds / 3600 - recent_friends = Friendship.where(:befriendee => self).where(:created_at => Time.now.utc - 3600..).count - max_friends = account_age_in_hours.ceil + recent_friends - (active_reports * 10) - max_friends.clamp(0, Settings.max_friends_per_hour) + recent_follows = Follow.where(:following => self).where(:created_at => Time.now.utc - 3600..).count + max_follows = account_age_in_hours.ceil + recent_follows - (active_reports * 10) + max_follows.clamp(0, Settings.max_follows_per_hour) end def max_changeset_comments_per_hour diff --git a/app/views/accounts/edit.html.erb b/app/views/accounts/edit.html.erb index 16f109c9f..7a10b12e3 100644 --- a/app/views/accounts/edit.html.erb +++ b/app/views/accounts/edit.html.erb @@ -29,19 +29,6 @@ (" target="_new"><%= t ".openid.link text" %>) -
- - - <% if current_user.data_public? %> - <%= t ".public editing.enabled" %> - (" target="_new"><%= t ".public editing.enabled link text" %>) - <% else %> - <%= t ".public editing.disabled" %> - (<%= t ".public editing.disabled link text" %>) - <% end %> - -
-
diff --git a/app/views/api/messages/_message.json.jbuilder b/app/views/api/messages/_message.json.jbuilder index a04295d31..840ad19d0 100644 --- a/app/views/api/messages/_message.json.jbuilder +++ b/app/views/api/messages/_message.json.jbuilder @@ -6,10 +6,11 @@ json.to_display_name message.recipient.display_name json.title message.title json.sent_on message.sent_on.xmlschema +json.message_read message.message_read if current_user.id == message.to_user_id + if current_user.id == message.from_user_id json.deleted !message.from_user_visible elsif current_user.id == message.to_user_id - json.message_read message.message_read json.deleted !message.to_user_visible end diff --git a/app/views/api/messages/_message.xml.builder b/app/views/api/messages/_message.xml.builder index 64ac9e3bc..2ab307f1a 100644 --- a/app/views/api/messages/_message.xml.builder +++ b/app/views/api/messages/_message.xml.builder @@ -8,10 +8,11 @@ attrs = { "body_format" => message.body_format } +attrs["message_read"] = message.message_read if current_user.id == message.to_user_id + if current_user.id == message.from_user_id attrs["deleted"] = !message.from_user_visible elsif current_user.id == message.to_user_id - attrs["message_read"] = message.message_read attrs["deleted"] = !message.to_user_visible end diff --git a/app/views/dashboards/_contact.html.erb b/app/views/dashboards/_contact.html.erb index 759faab8f..8e78524de 100644 --- a/app/views/dashboards/_contact.html.erb +++ b/app/views/dashboards/_contact.html.erb @@ -1,7 +1,7 @@ <% user_data = { :lon => contact.home_lon, :lat => contact.home_lat, - :icon => image_path(type == "friend" ? "marker-blue.png" : "marker-green.png"), + :icon => image_path(type == "following" ? "marker-blue.png" : "marker-green.png"), :description => render(:partial => "popup", :object => contact, :locals => { :type => type }) } %> <%= tag.div :class => "clearfix row", :data => { :user => user_data } do %> @@ -35,10 +35,10 @@
  • <%= link_to t("users.show.send message"), new_message_path(contact) %>
  • - <% if current_user.friends_with?(contact) %> - <%= link_to t("users.show.remove as friend"), remove_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %> + <% if current_user.follows?(contact) %> + <%= link_to t("users.show.unfollow"), follow_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :delete %> <% else %> - <%= link_to t("users.show.add as friend"), make_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %> + <%= link_to t("users.show.follow"), follow_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %> <% end %>
diff --git a/app/views/dashboards/show.html.erb b/app/views/dashboards/show.html.erb index c4b595e9b..70dae774e 100644 --- a/app/views/dashboards/show.html.erb +++ b/app/views/dashboards/show.html.erb @@ -22,24 +22,24 @@ <%= tag.div "", :id => "map", :class => "content_map border border-secondary-subtle rounded z-0", :data => { :user => user_data } %> <% end %> - <% friends = @user.friends %> - <% nearby = @user.nearby - friends %> + <% followings = @user.followings %> + <% nearby = @user.nearby - followings %>
-

<%= t ".my friends" %>

+

<%= t ".followings" %>

- <% if friends.empty? %> - <%= t ".no friends" %> + <% if followings.empty? %> + <%= t ".no followings" %> <% else %>
- <%= render :partial => "contact", :collection => friends, :locals => { :type => "friend" } %> + <%= render :partial => "contact", :collection => followings, :locals => { :type => "following" } %>
<% end %> diff --git a/app/views/follows/show.html.erb b/app/views/follows/show.html.erb new file mode 100644 index 000000000..187736271 --- /dev/null +++ b/app/views/follows/show.html.erb @@ -0,0 +1,10 @@ +<% content_for :heading do %> +

<%= t(@already_follows ? ".unfollow.heading" : ".follow.heading", :user => @user.display_name) %>

+<% end %> + +<%= bootstrap_form_tag :method => (@already_follows ? :delete : :post) do |f| %> + <% if params[:referer] -%> + <%= f.hidden_field :referer, :value => params[:referer] %> + <% end -%> + <%= f.primary @already_follows ? t(".unfollow.button") : t(".follow.button") %> +<% end %> diff --git a/app/views/friendships/make_friend.html.erb b/app/views/friendships/make_friend.html.erb deleted file mode 100644 index f5c2b9c0c..000000000 --- a/app/views/friendships/make_friend.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% content_for :heading do %> -

<%= t ".heading", :user => @friend.display_name %>

-<% end %> - -<%= bootstrap_form_tag do |f| %> - <% if params[:referer] -%> - <%= f.hidden_field :referer, :value => params[:referer] %> - <% end -%> - <%= f.primary t(".button") %> -<% end %> diff --git a/app/views/friendships/remove_friend.html.erb b/app/views/friendships/remove_friend.html.erb deleted file mode 100644 index f5c2b9c0c..000000000 --- a/app/views/friendships/remove_friend.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% content_for :heading do %> -

<%= t ".heading", :user => @friend.display_name %>

-<% end %> - -<%= bootstrap_form_tag do |f| %> - <% if params[:referer] -%> - <%= f.hidden_field :referer, :value => params[:referer] %> - <% end -%> - <%= f.primary t(".button") %> -<% end %> diff --git a/app/views/traces/_description.html.erb b/app/views/traces/feeds/_description.html.erb similarity index 100% rename from app/views/traces/_description.html.erb rename to app/views/traces/feeds/_description.html.erb diff --git a/app/views/traces/georss.rss.builder b/app/views/traces/feeds/show.rss.builder similarity index 88% rename from app/views/traces/georss.rss.builder rename to app/views/traces/feeds/show.rss.builder index ad5bd45b2..dc10a12d6 100644 --- a/app/views/traces/georss.rss.builder +++ b/app/views/traces/feeds/show.rss.builder @@ -7,14 +7,14 @@ xml.rss("version" => "2.0", xml.channel do xml.title t(".title") xml.description t(".title") - xml.link url_for(:controller => :traces, :action => :index, :only_path => false) + xml.link url_for(:controller => "/traces", :action => :index, :only_path => false) xml.image do xml.url image_url("mag_map-rss2.0.png") xml.title t(".title") xml.width 100 xml.height 100 - xml.link url_for(:controller => :traces, :action => :index, :only_path => false) + xml.link url_for(:controller => "/traces", :action => :index, :only_path => false) end @traces.each do |trace| diff --git a/app/views/traces/index.html.erb b/app/views/traces/index.html.erb index 4311ba082..dfa5f03de 100644 --- a/app/views/traces/index.html.erb +++ b/app/views/traces/index.html.erb @@ -16,8 +16,8 @@
- <%= link_to({ :action => :georss, :display_name => @target_user&.display_name, :tag => params[:tag] }, - { :class => "btn btn-secondary btn-sm" }) do %> + <%= link_to traces_feed_path(:display_name => @target_user&.display_name, :tag => params[:tag]), + :class => "btn btn-secondary btn-sm" do %> @@ -66,7 +66,7 @@ <% end %> <% content_for :auto_discovery_link_tag do %> - <%= auto_discovery_link_tag :rss, :action => "georss", :display_name => @target_user&.display_name, :tag => params[:tag] %> + <%= auto_discovery_link_tag :rss, traces_feed_path(:display_name => @target_user&.display_name, :tag => params[:tag]) %> <% end %> <% if @traces.size > 0 %> diff --git a/app/views/user_mailer/follow_notification.html.erb b/app/views/user_mailer/follow_notification.html.erb new file mode 100644 index 000000000..48b037d57 --- /dev/null +++ b/app/views/user_mailer/follow_notification.html.erb @@ -0,0 +1,11 @@ +

<%= t ".hi", :to_user => @follow.following.display_name %>

+ +

<%= t ".followed_you", :user => @follow.follower.display_name %>

+ +<%= message_body do %> +

<%= t ".see_their_profile_html", :userurl => link_to(@viewurl, @viewurl) %>

+ + <% unless @follow.following.follows?(@follow.follower) -%> +

<%= t ".follow_them_html", :followurl => link_to(@followurl, @followurl) %>

+ <% end -%> +<% end %> diff --git a/app/views/user_mailer/follow_notification.text.erb b/app/views/user_mailer/follow_notification.text.erb new file mode 100644 index 000000000..7f9ba202e --- /dev/null +++ b/app/views/user_mailer/follow_notification.text.erb @@ -0,0 +1,9 @@ +<%= t ".hi", :to_user => @follow.following.display_name %> + +<%= t '.followed_you', :user => @follow.follower.display_name %> + +<%= t '.see_their_profile', :userurl => @viewurl %> + +<% unless @follow.following.follows?(@follow.follower) -%> +<%= t '.follow_them', :followurl => @followurl %> +<% end -%> diff --git a/app/views/user_mailer/friendship_notification.html.erb b/app/views/user_mailer/friendship_notification.html.erb deleted file mode 100644 index 40af762d7..000000000 --- a/app/views/user_mailer/friendship_notification.html.erb +++ /dev/null @@ -1,11 +0,0 @@ -

<%= t ".hi", :to_user => @friendship.befriendee.display_name %>

- -

<%= t ".had_added_you", :user => @friendship.befriender.display_name %>

- -<%= message_body do %> -

<%= t ".see_their_profile_html", :userurl => link_to(@viewurl, @viewurl) %>

- - <% unless @friendship.befriendee.friends_with?(@friendship.befriender) -%> -

<%= t ".befriend_them_html", :befriendurl => link_to(@friendurl, @friendurl) %>

- <% end -%> -<% end %> diff --git a/app/views/user_mailer/friendship_notification.text.erb b/app/views/user_mailer/friendship_notification.text.erb deleted file mode 100644 index 104b0f1c9..000000000 --- a/app/views/user_mailer/friendship_notification.text.erb +++ /dev/null @@ -1,9 +0,0 @@ -<%= t ".hi", :to_user => @friendship.befriendee.display_name %> - -<%= t '.had_added_you', :user => @friendship.befriender.display_name %> - -<%= t '.see_their_profile', :userurl => @viewurl %> - -<% unless @friendship.befriendee.friends_with?(@friendship.befriender) -%> -<%= t '.befriend_them', :befriendurl => @friendurl %> -<% end -%> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index c168972aa..b2247c0d0 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -83,10 +83,10 @@ <% if current_user %>
  • - <% if current_user.friends_with?(@user) %> - <%= link_to t(".remove as friend"), remove_friend_path(:display_name => @user.display_name), :method => :post %> + <% if current_user.follows?(@user) %> + <%= link_to t(".unfollow"), follow_path(:display_name => @user.display_name), :method => :delete %> <% else %> - <%= link_to t(".add as friend"), make_friend_path(:display_name => @user.display_name), :method => :post %> + <%= link_to t(".follow"), follow_path(:display_name => @user.display_name), :method => :post %> <% end %>
  • <% end %> @@ -161,50 +161,48 @@
    - <% if can?(:set_status, User) || can?(:destroy, User) %> + <% if can?(:update, :user_status) %>