333 lines
10 KiB
Plaintext
333 lines
10 KiB
Plaintext
<% content_for :subnav do %>
|
|
<a href="/u/<%= @user.username %>">Public Profile</a>
|
|
<a href="/filters">Filtered Tags</a> |
|
|
<%= link_post 'Logout', logout_path, confirm: 'Are you sure you want to logout?' %>
|
|
<% end %>
|
|
|
|
<div class="box wide">
|
|
<%= form_with model: @edit_user, url: settings_path, method: :post, id: 'edit_user', namespace: 'edit_user' do |f| %>
|
|
<%= errors_for f.object %>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :username, "Username:", :class => "required" %>
|
|
<%= f.text_field :username, :size => 15 %>
|
|
<span class="hint indent">
|
|
<tt><%= User.username_regex_s %></tt>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :current_password, "Current Password:",
|
|
:class => "required" %>
|
|
<%= f.password_field :current_password, :name => "current_password", :size => 30, :autocomplete => "off" %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :password, "New Password:", :class => "required" %>
|
|
<%= f.password_field :password, :size => 40, :autocomplete => "off" %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :password_confirmation, "Confirm Password:",
|
|
:class => "required" %>
|
|
<%= f.password_field :password_confirmation, :size => 40,
|
|
:autocomplete => "off" %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :email, "E-mail Address:", :class => "required" %>
|
|
<%= f.email_field :email, :size => 40 %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :homepage, "Homepage:", :class => "required" %>
|
|
<%= f.url_field :homepage, :size => 40 %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :about, "About:", :class => "required" %>
|
|
<%= f.text_area :about, :size => "100x5", :style => "width: 600px;" %>
|
|
</div>
|
|
|
|
<div class="box">
|
|
<div class="boxline markdown_help_toggler" style="margin-left: 9em;
|
|
width: 600px;">
|
|
<div class="markdown_help_label">
|
|
Markdown formatting available
|
|
</div>
|
|
|
|
<div style="clear: both;"></div>
|
|
|
|
<%= render :partial => "global/markdownhelp" %>
|
|
</div>
|
|
</div>
|
|
|
|
<p>
|
|
<%= f.submit "Save Account Settings" %>
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<h2>Security Settings</h2>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :twofa, "Two-Factor Auth:", :class => "required" %>
|
|
<span>
|
|
<% if @edit_user.totp_secret.present? %>
|
|
<span style="color: green; font-weight: bold;">
|
|
Enabled
|
|
</span> (<a href="/settings/2fa">Disable</a>)
|
|
<% else %>
|
|
Disabled (<a href="/settings/2fa">Enroll</a>)
|
|
<% end %>
|
|
</span>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<h2>Comment Reply Notification Settings</h2>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :email_replies, "Receive E-mail:", :class => "required" %>
|
|
<%= f.check_box :email_replies %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :pushover_replies, "Receive Pushover Alert:",
|
|
:class => "required" %>
|
|
<%= f.check_box :pushover_replies %>
|
|
<span class="hint indent">
|
|
Requires Pushover subscription above
|
|
</span>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<h2>Comment Mention Notification Settings</h2>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :email_mentions, "Receive E-mail:", :class => "required" %>
|
|
<%= f.check_box :email_mentions %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :pushover_mentions, "Receive Pushover Alert:",
|
|
:class => "required" %>
|
|
<%= f.check_box :pushover_mentions %>
|
|
<span class="hint indent">
|
|
Requires Pushover subscription above
|
|
</span>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<h2>Private Message Notification Settings</h2>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :email_messages, "Receive E-mail:", :class => "required" %>
|
|
<%= f.check_box :email_messages %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :pushover_messages, "Receive Pushover Alert:",
|
|
:class => "required" %>
|
|
<%= f.check_box :pushover_messages %>
|
|
<span class="hint indent">
|
|
Requires Pushover subscription above
|
|
</span>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<h2>Submitted Story Comment Settings</h2>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :show_submitted_story_threads,
|
|
raw("Show in <a href=\"/threads\">Your Threads</a>:"),
|
|
:class => "required" %>
|
|
<%= f.check_box :show_submitted_story_threads %>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<h2>Mailing List Settings</h2>
|
|
|
|
<p>
|
|
When enabled, you will receive all newly submitted stories and comments to
|
|
your e-mail address entered above, except the stories and comments filtered
|
|
by your <a href="/filters">tag filters</a>.
|
|
All e-mail messages will appear to be sent to your private list address
|
|
shown below which you can filter on, and e-mails you send to that address
|
|
will be posted under your account on this website. You should keep your
|
|
unique list address private to prevent others from posting comments as you.
|
|
</p>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :mailing_list_mode, "Receive List E-mails:",
|
|
:class => "required" %>
|
|
<%= f.select :mailing_list_mode, [ [ "No e-mails", 0 ],
|
|
[ "All stories and comments", 1 ], [ "Only stories", 2 ] ] %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<label class="required">List Address:</label>
|
|
<span>
|
|
<tt><%= Rails.application.shortname %>-<%=
|
|
@edit_user.mailing_list_token %>@<%= Rails.application.domain %></tt>
|
|
</span>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<h2>Miscellaneous Settings</h2>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :show_story_previews, "Show Story Previews:",
|
|
:class => "required" %>
|
|
<%= f.check_box :show_story_previews %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :show_avatars, "Show User Avatars:", :class => "required" %>
|
|
<%= f.check_box :show_avatars %>
|
|
</div>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :prefers_color_scheme, "Color Scheme:", :class => "required" %>
|
|
<label><%= f.radio_button :prefers_color_scheme, :system %> System (<a href="https://lobste.rs/s/eg1n75/dark_mode">details</a>)</label>
|
|
<label><%= f.radio_button :prefers_color_scheme, :light %> Light</label>
|
|
<label><%= f.radio_button :prefers_color_scheme, :dark %> Dark</label>
|
|
</div>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
<%= f.submit "Save Account Settings" %>
|
|
<% end %>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
<h2>External Accounts</h2>
|
|
|
|
<div class="boxline">
|
|
<%= label_tag :gravatar,
|
|
raw("<a href=\"https://gravatar.com/\">Gravatar</a>:"),
|
|
:class => "required" %>
|
|
<span>
|
|
Your avatar will be cached from the Gravatar icon for your e-mail address above.
|
|
<%= link_post "Expire cache", "/avatars/expire" %>
|
|
</span>
|
|
</div>
|
|
|
|
<% if Pushover.enabled? %>
|
|
<div class="boxline">
|
|
<%= label_tag :pushover_user_key,
|
|
raw("<a href=\"https://pushover.net/\">Pushover</a>:"),
|
|
:class => "required" %>
|
|
<span>
|
|
<%= link_post((@edit_user.pushover_user_key.present? ?
|
|
"Manage Pushover Subscription" : "Subscribe With Pushover"),
|
|
"/settings/pushover_auth", class_name: "pushover_button") %>
|
|
<span class="hint indent">
|
|
For optional comment and message notifications below
|
|
</span>
|
|
</span>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if Github.enabled? %>
|
|
<div class="boxline">
|
|
<span>
|
|
<%= label_tag :github_username,
|
|
raw("<a href=\"https://github.com/\">GitHub</a>:"),
|
|
:class => "required" %>
|
|
<% if @edit_user.github_username.present? %>
|
|
Linked to
|
|
<strong><a href="https://github.com/<%= h(@edit_user.github_username)
|
|
%>"><%= h(@edit_user.github_username) %></a></strong>
|
|
<%= link_post "Disconnect", "/settings/github_disconnect" %>
|
|
<% else %>
|
|
<a href="/settings/github_auth">Connect</a>
|
|
<% end %>
|
|
</span>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if Twitter.enabled? %>
|
|
<div class="boxline">
|
|
<%= label_tag :twitter_username,
|
|
raw("<a href=\"https://twitter.com/\">Twitter</a>:"),
|
|
:class => "required" %>
|
|
<span>
|
|
<% if @edit_user.twitter_username.present? %>
|
|
Linked to
|
|
<strong><a href="https://twitter.com/<%= h(@edit_user.twitter_username)
|
|
%>">@<%= h(@edit_user.twitter_username) %></a></strong>
|
|
<%= link_post "Disconnect", "/settings/twitter_disconnect" %>
|
|
<% else %>
|
|
<a href="/settings/twitter_auth">Connect</a>
|
|
<% end %>
|
|
</span>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if Keybase.enabled? %>
|
|
<div class="boxline">
|
|
<%= label_tag :kb_username, raw("<a href=\"https://keybase.io/\">Keybase</a>:"), :class => "required" %>
|
|
<span>
|
|
<%= render :partial => "keybase_proofs/proofs", locals: {user: @edit_user, for_self: true} %>
|
|
</span>
|
|
</div>
|
|
<% end %>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
<h2 name="invite">Invite a New User</h2>
|
|
|
|
<% if @user.can_invite? %>
|
|
<%= render :partial => "users/invitationform" %>
|
|
<% else %>
|
|
You cannot send invitations: <%= @user.disabled_invite_reason %>
|
|
<% end %>
|
|
|
|
<br>
|
|
<br>
|
|
|
|
<div class="deletion">
|
|
<%= form_with model: @edit_user, url: delete_account_path, method: :post, id: 'delete_user', namespace: 'delete_user' do |f| %>
|
|
|
|
<h2>Delete Account</h2>
|
|
|
|
<p>
|
|
To permanently delete your account, verify your current password below.
|
|
</p>
|
|
<ul>
|
|
<li>Your account will be put into a deleted state.</li>
|
|
<li>Your username will remain reserved and will not be available for any other account.</li>
|
|
<li>Your private messages will be deleted.</li>
|
|
<li>Your submitted stories will not be deleted.</li>
|
|
<li>
|
|
Your comments with negative scores will be deleted, and you can check "disown comments"
|
|
below if you want all of your stories and comments to change to list
|
|
<a href="/u/inactive-user">inactive-user</a> instead of your username.
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="boxline">
|
|
<%= f.label :password, "Verify Password:", :class => "required" %>
|
|
<%= f.password_field :password, :size => 40, :autocomplete => "off" %>
|
|
</div>
|
|
<div class="boxline">
|
|
<%= f.label :i_am_sure, "I am sure:", :class => "required" %>
|
|
<%= f.check_box :i_am_sure %>
|
|
<br />
|
|
<%= f.label :disown, "Disown stories/comments:" %>
|
|
<%= f.check_box :disown %> (optional)
|
|
</div>
|
|
<%= f.submit "Yes, Delete My Account", :class => "deletion" %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|