b1cf7f4df1
* Add class to page content to unify top margin Previously pages would individually set this margin but some didn't so content would stick to the header without any space. Resolve this by adding a new class that is added on all pages. The only place where we remove this margin again is on the pages with menu or wrapper in the header. * fix admin notices * fix team pages * fix loading segment on gitgraph for arc-green * fix last missing case Co-authored-by: techknowlogick <techknowlogick@gitea.io>
217 lines
8.4 KiB
Handlebars
217 lines
8.4 KiB
Handlebars
{{template "base/head" .}}
|
|
<div class="page-content user settings account">
|
|
{{template "user/settings/navbar" .}}
|
|
<div class="ui container">
|
|
{{template "base/alert" .}}
|
|
<h4 class="ui top attached header">
|
|
{{.i18n.Tr "settings.password"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
{{if or (.SignedUser.IsLocal) (.SignedUser.IsOAuth2)}}
|
|
<form class="ui form" action="{{AppSubUrl}}/user/settings/account" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
{{if .SignedUser.IsPasswordSet}}
|
|
<div class="required field {{if .Err_OldPassword}}error{{end}}">
|
|
<label for="old_password">{{.i18n.Tr "settings.old_password"}}</label>
|
|
<input id="old_password" name="old_password" type="password" autocomplete="current-password" autofocus required>
|
|
</div>
|
|
{{end}}
|
|
<div class="required field {{if .Err_Password}}error{{end}}">
|
|
<label for="password">{{.i18n.Tr "settings.new_password"}}</label>
|
|
<input id="password" name="password" type="password" autocomplete="new-password" required>
|
|
</div>
|
|
<div class="required field {{if .Err_Password}}error{{end}}">
|
|
<label for="retype">{{.i18n.Tr "settings.retype_new_password"}}</label>
|
|
<input id="retype" name="retype" type="password" autocomplete="new-password" required>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<button class="ui green button">{{$.i18n.Tr "settings.change_password"}}</button>
|
|
<a href="{{AppSubUrl}}/user/forgot_password?email={{.Email}}">{{.i18n.Tr "auth.forgot_password"}}</a>
|
|
</div>
|
|
</form>
|
|
{{else}}
|
|
<div class="ui info message">
|
|
<p class="text left">{{$.i18n.Tr "settings.password_change_disabled"}}</p>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
|
|
<h4 class="ui top attached header">
|
|
{{.i18n.Tr "settings.manage_emails"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<div class="ui email list">
|
|
<div class="item">
|
|
<form action="{{AppSubUrl}}/user/settings/account/email" class="ui form" method="post">
|
|
{{.i18n.Tr "settings.email_desc"}}
|
|
<div class="right floated content">
|
|
<div class="field">
|
|
<button class="ui green button">{{$.i18n.Tr "settings.email_notifications.submit"}}</button>
|
|
</div>
|
|
</div>
|
|
<div class="right floated content">
|
|
{{$.CsrfTokenHtml}}
|
|
<input name="_method" type="hidden" value="NOTIFICATION">
|
|
<div class="field">
|
|
<div class="ui selection dropdown" tabindex="0">
|
|
<input name="preference" type="hidden" value="{{.EmailNotificationsPreference}}">
|
|
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
|
<div class="text">{{$.i18n.Tr "settings.email_notifications"}}</div>
|
|
<div class="menu">
|
|
<div data-value="enabled" class="{{if eq .EmailNotificationsPreference "enabled"}}active selected {{end}}item">{{$.i18n.Tr "settings.email_notifications.enable"}}</div>
|
|
<div data-value="onmention" class="{{if eq .EmailNotificationsPreference "onmention"}}active selected {{end}}item">{{$.i18n.Tr "settings.email_notifications.onmention"}}</div>
|
|
<div data-value="disabled" class="{{if eq .EmailNotificationsPreference "disabled"}}active selected {{end}}item">{{$.i18n.Tr "settings.email_notifications.disable"}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
{{range .Emails}}
|
|
<div class="item">
|
|
{{if not .IsPrimary}}
|
|
<div class="right floated content">
|
|
<button class="ui red tiny button delete-button" id="delete-email" data-url="{{AppSubUrl}}/user/settings/account/email/delete" data-id="{{.ID}}">
|
|
{{$.i18n.Tr "settings.delete_email"}}
|
|
</button>
|
|
</div>
|
|
{{if .CanBePrimary}}
|
|
<div class="right floated content">
|
|
<form action="{{AppSubUrl}}/user/settings/account/email" method="post">
|
|
{{$.CsrfTokenHtml}}
|
|
<input name="_method" type="hidden" value="PRIMARY">
|
|
<input name="id" type="hidden" value="{{.ID}}">
|
|
<button class="ui blue tiny button">{{$.i18n.Tr "settings.primary_email"}}</button>
|
|
</form>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
{{if not .IsActivated}}
|
|
<div class="right floated content">
|
|
<form action="{{AppSubUrl}}/user/settings/account/email" method="post">
|
|
{{$.CsrfTokenHtml}}
|
|
<input name="_method" type="hidden" value="SENDACTIVATION">
|
|
<input name="id" type="hidden" value="{{if .IsPrimary}}PRIMARY{{else}}{{.ID}}{{end}}">
|
|
{{if $.ActivationsPending}}
|
|
<button disabled class="ui blue tiny button">{{$.i18n.Tr "settings.activations_pending"}}</button>
|
|
{{else}}
|
|
<button class="ui blue tiny button">{{$.i18n.Tr "settings.activate_email"}}</button>
|
|
{{end}}
|
|
</form>
|
|
</div>
|
|
{{end}}
|
|
<div class="content">
|
|
<strong>{{.Email}}</strong>
|
|
{{if .IsPrimary}}
|
|
<div class="ui blue label">{{$.i18n.Tr "settings.primary"}}</div>
|
|
{{end}}
|
|
{{if .IsActivated}}
|
|
<div class="ui green label">{{$.i18n.Tr "settings.activated"}}</div>
|
|
{{else}}
|
|
<div class="ui label">{{$.i18n.Tr "settings.requires_activation"}}</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="ui attached bottom segment">
|
|
<form class="ui form" action="{{AppSubUrl}}/user/settings/account/email" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<div class="required field {{if .Err_Email}}error{{end}}">
|
|
<label for="email">{{.i18n.Tr "settings.add_new_email"}}</label>
|
|
<input id="email" name="email" type="email" required {{if not .CanAddEmails}}disabled{{end}}>
|
|
</div>
|
|
<button class="ui green button" {{if not .CanAddEmails}}disabled{{end}}>
|
|
{{.i18n.Tr "settings.add_email"}}
|
|
</button>
|
|
</form>
|
|
</div>
|
|
|
|
<h4 class="ui top attached header">
|
|
{{.i18n.Tr "settings.manage_themes"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<div class="ui email list">
|
|
<div class="item">
|
|
{{.i18n.Tr "settings.theme_desc"}}
|
|
</div>
|
|
|
|
<form class="ui form" action="{{.Link}}/theme" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<div class="field">
|
|
<label for="ui">{{.i18n.Tr "settings.ui"}}</label>
|
|
<div class="ui selection dropdown" id="ui">
|
|
<input name="theme" type="hidden" value="{{.SignedUser.Theme}}">
|
|
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
|
<div class="text">
|
|
{{range $i,$a := .AllThemes}}
|
|
{{if eq $.SignedUser.Theme $a}}{{$a}}{{end}}
|
|
{{end}}
|
|
</div>
|
|
|
|
<div class="menu">
|
|
{{range $i,$a := .AllThemes}}
|
|
<div class="item{{if eq $.SignedUser.Theme $a}} active selected{{end}}" data-value="{{$a}}">
|
|
{{$a}}
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<button class="ui green button">{{$.i18n.Tr "settings.update_theme"}}</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<h4 class="ui top attached error header">
|
|
{{.i18n.Tr "settings.delete_account"}}
|
|
</h4>
|
|
<div class="ui attached error segment">
|
|
<div class="ui red message">
|
|
<p class="text left">{{svg "octicon-alert"}} {{.i18n.Tr "settings.delete_prompt" | Str2html}}</p>
|
|
</div>
|
|
<form class="ui form ignore-dirty" id="delete-form" action="{{AppSubUrl}}/user/settings/account/delete" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<input class="fake" type="password">
|
|
<div class="required field {{if .Err_Password}}error{{end}}">
|
|
<label for="password-confirmation">{{.i18n.Tr "password"}}</label>
|
|
<input id="password-confirmation" name="password" type="password" autocomplete="off" required>
|
|
</div>
|
|
<div class="field">
|
|
<div class="ui red button delete-button" id="delete-account" data-type="form" data-form="#delete-form">
|
|
{{.i18n.Tr "settings.confirm_delete_account"}}
|
|
</div>
|
|
<a href="{{AppSubUrl}}/user/forgot_password?email={{.Email}}">{{.i18n.Tr "auth.forgot_password"}}</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui small basic delete modal" id="delete-email">
|
|
<div class="ui icon header">
|
|
{{svg "octicon-trashcan"}}
|
|
{{.i18n.Tr "settings.email_deletion"}}
|
|
</div>
|
|
<div class="content">
|
|
<p>{{.i18n.Tr "settings.email_deletion_desc"}}</p>
|
|
</div>
|
|
{{template "base/delete_modal_actions" .}}
|
|
</div>
|
|
|
|
<div class="ui small basic delete modal" id="delete-account">
|
|
<div class="ui icon header">
|
|
{{svg "octicon-trashcan"}}
|
|
{{.i18n.Tr "settings.delete_account_title"}}
|
|
</div>
|
|
<div class="content">
|
|
<p>{{.i18n.Tr "settings.delete_account_desc"}}</p>
|
|
</div>
|
|
{{template "base/delete_modal_actions" .}}
|
|
</div>
|
|
|
|
{{template "base/footer" .}}
|