]> git.openstreetmap.org Git - rails.git/blob - app/views/users/show.html.erb
Refactor the profile page to move the profile information out of the header
[rails.git] / app / views / users / show.html.erb
1 <% content_for :heading do %>
2   <div id="userinformation" class="row">
3     <div class="col-sm-auto">
4       <%= user_image @user, :class => "" %>
5     </div>
6     <div class="col">
7       <h1><%= @user.display_name %> <%= role_icons(@user) %></h1>
8       <% if current_user and @user.id == current_user.id %>
9         <!-- Displaying user's own profile page -->
10         <ul class='secondary-actions clearfix'>
11           <li>
12             <%= link_to t(".my edits"), :controller => "changesets", :action => "index", :display_name => current_user.display_name %>
13             <span class='count-number'><%= number_with_delimiter(current_user.changesets.size) %></span>
14           </li>
15           <li>
16             <%= link_to t(".my notes"), user_notes_path(@user) %>
17           </li>
18           <li>
19             <%= link_to t(".my traces"), :controller => "traces", :action => "mine" %>
20             <span class='count-number'><%= number_with_delimiter(current_user.traces.size) %></span>
21           </li>
22           <li>
23             <%= link_to t(".my diary"), :controller => "diary_entries", :action => "index", :display_name => current_user.display_name %>
24             <span class='count-number'><%= number_with_delimiter(current_user.diary_entries.size) %></span>
25           </li>
26           <li>
27             <%= link_to t(".my comments"), diary_comments_path(current_user) %>
28           </li>
29           <li>
30             <%= link_to t(".my settings"), user_account_path(current_user) %>
31           </li>
32
33           <% if current_user.blocks.exists? %>
34             <li>
35               <%= link_to t(".blocks on me"), user_blocks_on_path(current_user) %>
36               <span class='count-number'><%= number_with_delimiter(current_user.blocks.active.size) %></span>
37             </li>
38           <% end %>
39
40           <% if can?(:create, UserBlock) and current_user.blocks_created.exists? %>
41             <li>
42               <%= link_to t(".blocks by me"), user_blocks_by_path(current_user) %>
43               <span class='count-number'><%= number_with_delimiter(current_user.blocks_created.active.size) %></span>
44             </li>
45           <% end %>
46
47         </ul>
48
49         <% else %>
50         <!-- Displaying user profile page to the public -->
51         <ul class='secondary-actions clearfix'>
52
53           <li>
54             <%= link_to t(".edits"), :controller => "changesets", :action => "index", :display_name => @user.display_name %>
55             <span class='count-number'><%= number_with_delimiter(@user.changesets.size) %></span>
56           </li>
57           <li>
58             <%= link_to t(".notes"), user_notes_path(@user) %>
59           </li>
60           <li>
61             <%= link_to t(".traces"), :controller => "traces", :action => "index", :display_name => @user.display_name %>
62             <span class='count-number'><%= number_with_delimiter(@user.traces.size) %></span>
63           </li>
64
65           <!-- Displaying another user's profile page -->
66
67           <li>
68             <%= link_to t(".send message"), new_message_path(@user) %>
69           </li>
70           <li>
71             <%= link_to t(".diary"), :controller => "diary_entries", :action => "index", :display_name => @user.display_name %>
72             <span class='count-number'><%= number_with_delimiter(@user.diary_entries.size) %></span>
73           </li>
74           <li>
75             <%= link_to t(".comments"), diary_comments_path(@user) %>
76           </li>
77           <li>
78             <% if current_user and current_user.is_friends_with?(@user) %>
79               <%= link_to t(".remove as friend"), remove_friend_path(:display_name => @user.display_name), :method => :post %>
80             <% elsif current_user %>
81               <%= link_to t(".add as friend"), make_friend_path(:display_name => @user.display_name), :method => :post %>
82             <% else %>
83               <%= link_to t(".add as friend"), make_friend_path(:display_name => @user.display_name) %>
84             <% end %>
85           </li>
86
87           <% if @user.blocks.exists? %>
88             <li>
89               <%= link_to t(".block_history"), user_blocks_on_path(@user) %>
90               <span class='count-number'><%= number_with_delimiter(@user.blocks.active.size) %></span>
91             </li>
92           <% end %>
93
94           <% if @user.moderator? and @user.blocks_created.exists? %>
95             <li>
96               <%= link_to t(".moderator_history"), user_blocks_by_path(@user) %>
97               <span class='count-number'><%= number_with_delimiter(@user.blocks_created.active.size) %></span>
98             </li>
99           <% end %>
100
101           <% if can?(:create, UserBlock) %>
102             <li>
103             <%= link_to t(".create_block"), new_user_block_path(@user) %>
104             </li>
105           <% end %>
106
107           <% if current_user and @user.id != current_user.id %>
108             <li>
109               <%= report_link(t(".report"), @user) %>
110             </li>
111           <% end %>
112         </ul>
113       <% end %>
114
115       <p class='text-muted'>
116         <small>
117           <%= t ".mapper since" %> <%= l @user.creation_time.to_date, :format => :long %>
118           <% unless @user.terms_agreed %>
119             |
120             <%= t ".ct status" %>
121             <% if @user.terms_seen? -%>
122               <%= t ".ct declined" %>
123             <% else -%>
124               <%= t ".ct undecided" %>
125             <% end -%>
126           <% end -%>
127         </small>
128       </p>
129     </div>
130   </div>
131
132   <% if can?(:set_status, User) || can?(:destroy, User) %>
133     <ul class='secondary-actions clearfix'>
134       <% if can? :set_status, User %>
135         <% if ["active", "confirmed"].include? @user.status %>
136           <li>
137             <%= link_to t(".deactivate_user"), set_status_user_path(:status => "pending", :display_name => @user.display_name), :method => :post, :data => { :confirm => t(".confirm") } %>
138           </li>
139         <% elsif ["pending"].include? @user.status %>
140           <li>
141             <%= link_to t(".activate_user"), set_status_user_path(:status => "active", :display_name => @user.display_name), :method => :post, :data => { :confirm => t(".confirm") } %>
142           </li>
143         <% end %>
144
145         <% if ["active", "suspended"].include? @user.status %>
146           <li>
147             <%= link_to t(".confirm_user"), set_status_user_path(:status => "confirmed", :display_name => @user.display_name), :method => :post, :data => { :confirm => t(".confirm") } %>
148           </li>
149         <% end %>
150           <li>
151             <% if ["pending", "active", "confirmed", "suspended"].include? @user.status %>
152               <%= link_to t(".hide_user"), set_status_user_path(:status => "deleted", :display_name => @user.display_name), :method => :post, :data => { :confirm => t(".confirm") } %>
153           <% else %>
154             <%= link_to t(".unhide_user"), set_status_user_path(:status => "active", :display_name => @user.display_name), :method => :post, :data => { :confirm => t(".confirm") } %>
155           </li>
156         <% end %>
157       <% end %>
158       <% if can? :destroy, User %>
159         <li>
160           <%= link_to t(".delete_user"), user_path(:display_name => @user.display_name), :method => :delete, :data => { :confirm => t(".confirm") } %>
161         </li>
162       <% end %>
163     </ul>
164   <% end %>
165
166   <% if current_user and current_user.administrator? -%>
167     <div class='admin-user-info text-muted'>
168       <small><b><%= t ".email address" %></b> <%= @user.email %></small>
169       <% unless @user.creation_ip.nil? -%>
170         <small><b><%= t ".created from" %></b> <%= @user.creation_ip %></small>
171       <% end -%>
172       <small><b><%= t ".status" %></b> <%= @user.status.capitalize %></small>
173       <small><b><%= t ".spam score" %></b> <%= @user.spam_score %></small>
174     </div>
175   <% end -%>
176 <% end %>
177
178 <div class="richtext text-break clearfix"><%= @user.description.to_html %></div>
179
180 <% if current_user and @user.id == current_user.id %>
181   <div class="my-3">
182     <%= link_to t(".edit_profile"), edit_profile_path, :class => "btn btn-outline-primary" %>
183   </div>
184 <% end %>