diff options
author | Antoine GIRARD <sapk@users.noreply.github.com> | 2017-04-26 15:10:43 +0200 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-04-26 21:10:43 +0800 |
commit | 8371f94d06cefbd65392af3b5c0f1fd1057429f7 (patch) | |
tree | d6bf49ee4406be76e5429bc70da4a5dee22e3cab /templates | |
parent | b7da5a6cb7c725232c1053a1ca705a6ac0dad467 (diff) | |
download | gitea-8371f94d06cefbd65392af3b5c0f1fd1057429f7.tar.gz gitea-8371f94d06cefbd65392af3b5c0f1fd1057429f7.zip |
Rework SSH key management UI to add GPG (#1293)
* Rework SSH key management UI to add GPG
* Add more detail to gpg key display
* Update CHANGELOG.md
* Implement deletion UI
* Implement adding gpg UI
* Various fixes
- Fix duplicate entry in locale
- Re-generate hash before verification since they are consumed
* Add missing translation
* Split template
* Catch not found/verified email error
Diffstat (limited to 'templates')
-rw-r--r-- | templates/user/settings/keys.tmpl | 12 | ||||
-rw-r--r-- | templates/user/settings/keys_gpg.tmpl | 67 | ||||
-rw-r--r-- | templates/user/settings/keys_ssh.tmpl | 67 | ||||
-rw-r--r-- | templates/user/settings/navbar.tmpl | 4 | ||||
-rw-r--r-- | templates/user/settings/sshkeys.tmpl | 74 |
5 files changed, 148 insertions, 76 deletions
diff --git a/templates/user/settings/keys.tmpl b/templates/user/settings/keys.tmpl new file mode 100644 index 0000000000..86d2204eb1 --- /dev/null +++ b/templates/user/settings/keys.tmpl @@ -0,0 +1,12 @@ +{{template "base/head" .}} +<div class="user settings sshkeys"> + {{template "user/settings/navbar" .}} + <div class="ui container"> + {{template "base/alert" .}} + {{template "user/settings/keys_ssh" .}} + <br> + {{template "user/settings/keys_gpg" .}} + </div> +</div> + +{{template "base/footer" .}} diff --git a/templates/user/settings/keys_gpg.tmpl b/templates/user/settings/keys_gpg.tmpl new file mode 100644 index 0000000000..b0c3e1bda7 --- /dev/null +++ b/templates/user/settings/keys_gpg.tmpl @@ -0,0 +1,67 @@ +<h4 class="ui top attached header"> + {{.i18n.Tr "settings.manage_gpg_keys"}} + <div class="ui right"> + <div class="ui blue tiny show-panel button" data-panel="#add-gpg-key-panel">{{.i18n.Tr "settings.add_key"}}</div> + </div> +</h4> +<div class="ui attached segment"> + <div class="ui key list"> + <div class="item"> + {{.i18n.Tr "settings.gpg_desc"}} + </div> + {{range .GPGKeys}} + <div class="item"> + <div class="right floated content"> + <button class="ui red tiny button delete-button" id="delete-gpg" data-url="{{$.Link}}/delete?type=gpg" data-id="{{.ID}}"> + {{$.i18n.Tr "settings.delete_key"}} + </button> + </div> + <i class="mega-octicon octicon-key {{if .Expired.After $.PageStartTime}}green{{end}}"></i> + <div class="content"> + {{range .Emails}}<strong>{{.Email}} </strong>{{end}} + <div class="print meta"> + <b>{{$.i18n.Tr "settings.key_id"}}:</b> {{.KeyID}} + <b>{{$.i18n.Tr "settings.subkeys"}}:</b> {{range .SubsKey}} {{.KeyID}} {{end}} + </div> + <div class="activity meta"> + <i>{{$.i18n.Tr "settings.add_on"}} <span>{{DateFmtShort .Added}}</span></i> + - + <i>{{$.i18n.Tr "settings.valid_until"}} <span>{{DateFmtShort .Expired}}</span></i> + </div> + </div> + </div> + {{end}} + </div> +</div> +<br> +<p>{{.i18n.Tr "settings.gpg_helper" "https://help.github.com/articles/about-gpg/" | Str2html}}</p> +<div {{if not .HasGPGError}}class="hide"{{end}} id="add-gpg-key-panel"> + <h4 class="ui top attached header"> + {{.i18n.Tr "settings.add_new_gpg_key"}} + </h4> + <div class="ui attached segment"> + <form class="ui form" action="{{.Link}}" method="post"> + {{.CsrfTokenHtml}} + <input type="hidden" name="title" value="none"> + <div class="field {{if .Err_Content}}error{{end}}"> + <label for="content">{{.i18n.Tr "settings.key_content"}}</label> + <textarea id="gpg-key-content" name="content" required>{{.content}}</textarea> + </div> + <input name="type" type="hidden" value="gpg"> + <button class="ui green button"> + {{.i18n.Tr "settings.add_key"}} + </button> + </form> + </div> +</div> + +<div class="ui small basic delete modal" id="delete-gpg"> + <div class="ui icon header"> + <i class="trash icon"></i> + {{.i18n.Tr "settings.gpg_key_deletion"}} + </div> + <div class="content"> + <p>{{.i18n.Tr "settings.gpg_key_deletion_desc"}}</p> + </div> + {{template "base/delete_modal_actions" .}} +</div> diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl new file mode 100644 index 0000000000..1bdf0b15b1 --- /dev/null +++ b/templates/user/settings/keys_ssh.tmpl @@ -0,0 +1,67 @@ +<h4 class="ui top attached header"> + {{.i18n.Tr "settings.manage_ssh_keys"}} + <div class="ui right"> + <div class="ui blue tiny show-panel button" data-panel="#add-ssh-key-panel">{{.i18n.Tr "settings.add_key"}}</div> + </div> +</h4> +<div class="ui attached segment"> + <div class="ui key list"> + <div class="item"> + {{.i18n.Tr "settings.ssh_desc"}} + </div> + {{range .Keys}} + <div class="item"> + <div class="right floated content"> + <button class="ui red tiny button delete-button" id="delete-ssh" data-url="{{$.Link}}/delete?type=ssh" data-id="{{.ID}}"> + {{$.i18n.Tr "settings.delete_key"}} + </button> + </div> + <i class="mega-octicon octicon-key {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted tiny"{{end}}></i> + <div class="content"> + <strong>{{.Name}}</strong> + <div class="print meta"> + {{.Fingerprint}} + </div> + <div class="activity meta"> + <i>{{$.i18n.Tr "settings.add_on"}} <span>{{DateFmtShort .Created}}</span> — <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{DateFmtShort .Updated}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> + </div> + </div> + </div> + {{end}} + </div> +</div> +<br> +<p>{{.i18n.Tr "settings.ssh_helper" "https://help.github.com/articles/generating-ssh-keys" "https://help.github.com/ssh-issues/" | Str2html}}</p> +<div {{if not .HasSSHError}}class="hide"{{end}} id="add-ssh-key-panel"> + <h4 class="ui top attached header"> + {{.i18n.Tr "settings.add_new_key"}} + </h4> + <div class="ui attached segment"> + <form class="ui form" action="{{.Link}}" method="post"> + {{.CsrfTokenHtml}} + <div class="field {{if .Err_Title}}error{{end}}"> + <label for="title">{{.i18n.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">{{.i18n.Tr "settings.key_content"}}</label> + <textarea id="ssh-key-content" name="content" required>{{.content}}</textarea> + </div> + <input name="type" type="hidden" value="ssh"> + <button class="ui green button"> + {{.i18n.Tr "settings.add_key"}} + </button> + </form> + </div> +</div> + +<div class="ui small basic delete modal" id="delete-ssh"> + <div class="ui icon header"> + <i class="trash icon"></i> + {{.i18n.Tr "settings.ssh_key_deletion"}} + </div> + <div class="content"> + <p>{{.i18n.Tr "settings.ssh_key_deletion_desc"}}</p> + </div> + {{template "base/delete_modal_actions" .}} +</div> diff --git a/templates/user/settings/navbar.tmpl b/templates/user/settings/navbar.tmpl index d798d40219..4aac9effb5 100644 --- a/templates/user/settings/navbar.tmpl +++ b/templates/user/settings/navbar.tmpl @@ -16,8 +16,8 @@ OpenID </a> {{end}} - <a class="{{if .PageIsSettingsSSHKeys}}active{{end}} item" href="{{AppSubUrl}}/user/settings/ssh"> - {{.i18n.Tr "settings.ssh_keys"}} + <a class="{{if .PageIsSettingsKeys}}active{{end}} item" href="{{AppSubUrl}}/user/settings/keys"> + {{.i18n.Tr "settings.ssh_gpg_keys"}} </a> <a class="{{if .PageIsSettingsApplications}}active{{end}} item" href="{{AppSubUrl}}/user/settings/applications"> {{.i18n.Tr "settings.applications"}} diff --git a/templates/user/settings/sshkeys.tmpl b/templates/user/settings/sshkeys.tmpl deleted file mode 100644 index 7942afde41..0000000000 --- a/templates/user/settings/sshkeys.tmpl +++ /dev/null @@ -1,74 +0,0 @@ -{{template "base/head" .}} -<div class="user settings sshkeys"> - {{template "user/settings/navbar" .}} - <div class="ui container"> - {{template "base/alert" .}} - <h4 class="ui top attached header"> - {{.i18n.Tr "settings.manage_ssh_keys"}} - <div class="ui right"> - <div class="ui blue tiny show-panel button" data-panel="#add-ssh-key-panel">{{.i18n.Tr "settings.add_key"}}</div> - </div> - </h4> - <div class="ui attached segment"> - <div class="ui key list"> - <div class="item"> - {{.i18n.Tr "settings.ssh_desc"}} - </div> - {{range .Keys}} - <div class="item"> - <div class="right floated content"> - <button class="ui red tiny button delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}"> - {{$.i18n.Tr "settings.delete_key"}} - </button> - </div> - <i class="mega-octicon octicon-key {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted tiny"{{end}}></i> - <div class="content"> - <strong>{{.Name}}</strong> - <div class="print meta"> - {{.Fingerprint}} - </div> - <div class="activity meta"> - <i>{{$.i18n.Tr "settings.add_on"}} <span>{{DateFmtShort .Created}}</span> — <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{DateFmtShort .Updated}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> - </div> - </div> - </div> - {{end}} - </div> - </div> - <br> - <p>{{.i18n.Tr "settings.ssh_helper" "https://help.github.com/articles/generating-ssh-keys" "https://help.github.com/ssh-issues/" | Str2html}}</p> - <div {{if not .HasError}}class="hide"{{end}} id="add-ssh-key-panel"> - <h4 class="ui top attached header"> - {{.i18n.Tr "settings.add_new_key"}} - </h4> - <div class="ui attached segment"> - <form class="ui form" action="{{.Link}}" method="post"> - {{.CsrfTokenHtml}} - <div class="field {{if .Err_Title}}error{{end}}"> - <label for="title">{{.i18n.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">{{.i18n.Tr "settings.key_content"}}</label> - <textarea id="ssh-key-content" name="content" required>{{.content}}</textarea> - </div> - <button class="ui green button"> - {{.i18n.Tr "settings.add_key"}} - </button> - </form> - </div> - </div> - </div> -</div> - -<div class="ui small basic delete modal"> - <div class="ui icon header"> - <i class="trash icon"></i> - {{.i18n.Tr "settings.ssh_key_deletion"}} - </div> - <div class="content"> - <p>{{.i18n.Tr "settings.ssh_key_deletion_desc"}}</p> - </div> - {{template "base/delete_modal_actions" .}} -</div> -{{template "base/footer" .}} |