mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 16:52:14 +01:00
476a043a5f
Co-Author: @wxiaoguang
This PR is to fix
https://github.com/go-gitea/gitea/issues/23318#issuecomment-1506275446 .
The way to fix this in this PR is to use `delete_modal_actions.tmpl`
here both to fix this issue and keep ui consistency (as suggested by
[TODO
here](4299c3b7db/templates/projects/view.tmpl (L161)
))
And this PR also refactors `delete_modal_actions.tmpl` and its related
styles, and use the template for more modal actions:
1. Added template attributes:
* locale
* ModalButtonStyle: "yes" (default) or "confirm"
* ModalButtonCancelText
* ModalButtonOkText
2. Rename `delete_modal_actions.tmpl` template to
`modal_actions_confirm.tmpl` because it is not only used for action
modals deletion now.
3. Refactored css related to modals into `web_src/css/modules/modal.css`
and improved the styles.
4. Also use the template for PR deletion modal and remove issue
dependency modal.
5. Some modals should also use the template, but not sure how to open
them, so mark these modal actions by `{{/* TODO: Convert to
base/modal_actions_confirm */}}`
After (Also tested on arc green):
Hovering on the left buttons
<img width="711" alt="Screen Shot 2023-04-23 at 15 17 12"
src="https://user-images.githubusercontent.com/17645053/233825650-76307e65-9255-44bb-80e8-7062f58ead1b.png">
<img width="786" alt="Screen Shot 2023-04-23 at 15 17 21"
src="https://user-images.githubusercontent.com/17645053/233825652-4dc6f7d1-a180-49fb-a468-d60950eaee0d.png">
Test for functionalities:
https://user-images.githubusercontent.com/17645053/233826857-76376fda-022c-42d0-b0f3-339c17ca4e59.mov
---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
112 lines
5.3 KiB
Handlebars
112 lines
5.3 KiB
Handlebars
<h4 class="ui top attached header">
|
|
{{.locale.Tr "settings.manage_ssh_keys"}}
|
|
<div class="ui right">
|
|
<button id="add-ssh-button" class="ui primary tiny show-panel button" data-panel="#add-ssh-key-panel">
|
|
{{.locale.Tr "settings.add_key"}}
|
|
</button>
|
|
</div>
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<div class="{{if not .HasSSHError}}gt-hidden{{end}} gt-mb-4" id="add-ssh-key-panel">
|
|
<form class="ui form" action="{{.Link}}" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
<div class="field {{if .Err_Title}}error{{end}}">
|
|
<label for="title">{{.locale.Tr "settings.key_name"}}</label>
|
|
<input id="ssh-key-title" name="title" value="{{.title}}" autofocus required>
|
|
</div>
|
|
<div class="field {{if .Err_Content}}error{{end}}">
|
|
<label for="content">{{.locale.Tr "settings.key_content"}}</label>
|
|
<textarea id="ssh-key-content" name="content" class="js-quick-submit" placeholder="{{.locale.Tr "settings.key_content_ssh_placeholder"}}" required>{{.content}}</textarea>
|
|
</div>
|
|
<input name="type" type="hidden" value="ssh">
|
|
<button class="ui green button">
|
|
{{.locale.Tr "settings.add_key"}}
|
|
</button>
|
|
<button id="cancel-ssh-button" class="ui hide-panel button" data-panel="#add-ssh-key-panel">
|
|
{{.locale.Tr "cancel"}}
|
|
</button>
|
|
</form>
|
|
</div>
|
|
<div class="ui key list gt-mt-0">
|
|
<div class="item">
|
|
{{.locale.Tr "settings.ssh_desc"}}
|
|
</div>
|
|
{{if .DisableSSH}}
|
|
<div class="item">
|
|
{{.locale.Tr "settings.ssh_signonly"}}
|
|
</div>
|
|
{{end}}
|
|
{{range $index, $key := .Keys}}
|
|
<div class="item">
|
|
<div class="right floated content">
|
|
<button class="ui red tiny button delete-button{{if index $.ExternalKeys $index}} disabled{{end}}" data-modal-id="delete-ssh" data-url="{{$.Link}}/delete?type=ssh" data-id="{{.ID}}"{{if index $.ExternalKeys $index}} title="{{$.locale.Tr "settings.ssh_externally_managed"}}"{{end}}>
|
|
{{$.locale.Tr "settings.delete_key"}}
|
|
</button>
|
|
{{if and (not .Verified) (ne $.VerifyingFingerprint .Fingerprint)}}
|
|
<a class="ui primary tiny button" href="{{$.Link}}?verify_ssh={{.Fingerprint}}">{{$.locale.Tr "settings.ssh_key_verify"}}</a>
|
|
{{end}}
|
|
|
|
</div>
|
|
<div class="left floated content">
|
|
<span class="text {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-tooltip-content="{{$.locale.Tr "settings.key_state_desc"}}"{{end}}>{{svg "octicon-key" 32}}</span>
|
|
</div>
|
|
<div class="content">
|
|
{{if .Verified}}
|
|
<span data-tooltip-content="{{$.locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}} <strong>{{$.locale.Tr "settings.ssh_key_verified"}}</strong></span>
|
|
{{end}}
|
|
<strong>{{.Name}}</strong>
|
|
<div class="print meta">
|
|
{{.Fingerprint}}
|
|
</div>
|
|
<div class="activity meta">
|
|
<i>{{$.locale.Tr "settings.add_on"}} <span>{{template "shared/datetime/short" (dict "Datetime" .CreatedUnix.FormatLong "Fallback" .CreatedUnix.FormatShort)}}</span> — {{svg "octicon-info"}} {{if .HasUsed}}{{$.locale.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{template "shared/datetime/short" (dict "Datetime" .UpdatedUnix.FormatLong "Fallback" .UpdatedUnix.FormatShort)}}</span>{{else}}{{$.locale.Tr "settings.no_activity"}}{{end}}</i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{if and (not .Verified) (eq $.VerifyingFingerprint .Fingerprint)}}
|
|
<div class="ui segment">
|
|
<h4>{{$.locale.Tr "settings.ssh_token_required"}}</h4>
|
|
<form class="ui form{{if $.HasSSHVerifyError}} error{{end}}" action="{{$.Link}}" method="post">
|
|
{{$.CsrfTokenHtml}}
|
|
<input type="hidden" name="title" value="none">
|
|
<input type="hidden" name="content" value="{{.Content}}">
|
|
<input type="hidden" name="fingerprint" value="{{.Fingerprint}}">
|
|
<div class="field">
|
|
<label for="token">{{$.locale.Tr "settings.ssh_token"}}</label>
|
|
<input readonly="" value="{{$.TokenToSign}}">
|
|
<div class="help">
|
|
<p>{{$.locale.Tr "settings.ssh_token_help"}}</p>
|
|
<p><code>{{printf "echo -n '%s' | ssh-keygen -Y sign -n gitea -f /path_to_your_privkey" $.TokenToSign}}</code></p>
|
|
</div>
|
|
<br>
|
|
</div>
|
|
<div class="field">
|
|
<label for="signature">{{$.locale.Tr "settings.ssh_token_signature"}}</label>
|
|
<textarea id="ssh-key-signature" name="signature" class="js-quick-submit" placeholder="{{$.locale.Tr "settings.key_signature_ssh_placeholder"}}" required>{{$.signature}}</textarea>
|
|
</div>
|
|
<input name="type" type="hidden" value="verify_ssh">
|
|
<button class="ui green button">
|
|
{{$.locale.Tr "settings.ssh_key_verify"}}
|
|
</button>
|
|
<a class="ui red button" href="{{$.Link}}">
|
|
{{$.locale.Tr "settings.cancel"}}
|
|
</a>
|
|
</form>
|
|
</div>
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<p>{{.locale.Tr "settings.ssh_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/troubleshooting-ssh" | Str2html}}</p>
|
|
|
|
<div class="ui gitea-confirm-modal delete modal" id="delete-ssh">
|
|
<div class="header">
|
|
{{svg "octicon-trash"}}
|
|
{{.locale.Tr "settings.ssh_key_deletion"}}
|
|
</div>
|
|
<div class="content">
|
|
<p>{{.locale.Tr "settings.ssh_key_deletion_desc"}}</p>
|
|
</div>
|
|
{{template "base/modal_actions_confirm" .}}
|
|
</div>
|