mirror of https://github.com/go-gitea/gitea
Improve some modal action buttons (#24289)
Follow #24097 and #24285 And add a devtest page for modal action button testing. http://localhost:3000/devtest/fomantic-modal Now the `modal_actions_confirm.tmpl` could support: green / blue / yellow positive buttons, the negative button is "secondary". ps: this PR is only a small improvement, there are still a lot of buttons not having proper colors. In the future these buttons could be improved by this approach. These buttons could also be improved according to the conclusion of #24285 in the future. ![image](https://user-images.githubusercontent.com/2114189/233847773-a6d6b29b-7b5c-490e-8425-40dfd0ad2529.png) And add GitHub-like single danger button (context: https://github.com/go-gitea/gitea/issues/24285#issuecomment-1519100312) ![image](https://user-images.githubusercontent.com/2114189/233891566-055d7611-894d-4d5a-baf5-f6369180bf8d.png) --------- Co-authored-by: silverwind <me@silverwind.io>pull/21120/head
parent
47748df9b3
commit
75c62054a6
@ -1,21 +1,38 @@ |
||||
{{/* |
||||
Template Attributes: |
||||
* locale |
||||
* ModalButtonStyle: "yes" (default) or "confirm" |
||||
|
||||
Two buttons (negative, positive): |
||||
* ModalButtonTypes: "yes" (default) or "confirm" |
||||
* ModalButtonColors: "green" (default) / "blue" / "yellow" |
||||
* ModalButtonCancelText |
||||
* ModalButtonOkText |
||||
|
||||
Single danger button (GitHub-like): |
||||
* ModalButtonDangerText "This action will destroy your data" |
||||
|
||||
The ".ok.button" and ".cancel.button" selectors are also used by Fomantic Modal internally |
||||
*/}} |
||||
<div class="actions"> |
||||
{{if .ModalButtonDangerText}} |
||||
<button class="ui danger red ok button">{{.ModalButtonDangerText}}</button> |
||||
{{else}} |
||||
{{$textNegitive := .locale.Tr "modal.no"}} |
||||
{{$textPositive := .locale.Tr "modal.yes"}} |
||||
{{if eq .ModalButtonStyle "confirm"}} |
||||
{{if eq .ModalButtonTypes "confirm"}} |
||||
{{$textNegitive = .locale.Tr "modal.cancel"}} |
||||
{{$textPositive = .locale.Tr "modal.confirm"}} |
||||
{{end}} |
||||
{{if .ModalButtonCancelText}}{{$textNegitive = .ModalButtonCancelText}}{{end}} |
||||
{{if .ModalButtonOkText}}{{$textPositive = .ModalButtonOkText}}{{end}} |
||||
<button class="ui red cancel button">{{svg "octicon-x"}} {{$textNegitive}}</button> |
||||
<button class="ui green ok button">{{svg "octicon-check"}} {{$textPositive}}</button> |
||||
|
||||
{{$stylePositive := "green"}} |
||||
{{if eq .ModalButtonColors "blue"}} |
||||
{{$stylePositive = "blue"}} |
||||
{{else if eq .ModalButtonColors "yellow"}} |
||||
{{$stylePositive = "yellow"}} |
||||
{{end}} |
||||
<button class="ui secondary basic cancel button">{{svg "octicon-x"}} {{$textNegitive}}</button> |
||||
<button class="ui {{$stylePositive}} ok button">{{svg "octicon-check"}} {{$textPositive}}</button> |
||||
{{end}} |
||||
</div> |
||||
|
@ -0,0 +1,49 @@ |
||||
{{template "base/head" .}} |
||||
<div class="page-content devtest ui container"> |
||||
<div class="ui g-modal-confirm modal" id="test-modal-default"> |
||||
<div class="header">{{svg "octicon-file"}} Default dialog <span>title</span></div> |
||||
<div class="content"> |
||||
very long aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
||||
</div> |
||||
{{template "base/modal_actions_confirm" (dict "locale" $.locale)}} |
||||
</div> |
||||
|
||||
<div class="ui g-modal-confirm modal" id="test-modal-confirm"> |
||||
<div class="header">Confirm dialog</div> |
||||
<div class="content">hello, this is the modal dialog content</div> |
||||
{{template "base/modal_actions_confirm" (dict "locale" $.locale "ModalButtonTypes" "confirm")}} |
||||
</div> |
||||
|
||||
<div class="ui g-modal-confirm modal" id="test-modal-blue"> |
||||
<div class="header">Blue dialog</div> |
||||
<div class="content">hello, this is the modal dialog content</div> |
||||
{{template "base/modal_actions_confirm" (dict "locale" $.locale "ModalButtonColors" "blue")}} |
||||
</div> |
||||
|
||||
<div class="ui g-modal-confirm modal" id="test-modal-yellow"> |
||||
<div class="header">yellow dialog</div> |
||||
<div class="content">hello, this is the modal dialog content</div> |
||||
{{template "base/modal_actions_confirm" (dict "locale" $.locale "ModalButtonColors" "yellow")}} |
||||
</div> |
||||
|
||||
<div class="ui g-modal-confirm modal" id="test-modal-danger"> |
||||
{{svg "octicon-x" 16 "inside close"}} |
||||
<div class="header">dangerous action dialog</div> |
||||
<div class="content">hello, this is the modal dialog content, this is a dangerous operation</div> |
||||
{{template "base/modal_actions_confirm" (dict "ModalButtonDangerText" "I know and must do this is dangerous operation")}} |
||||
</div> |
||||
|
||||
<div class="modal-buttons"></div> |
||||
<script type="module"> |
||||
for (const el of $('.ui.modal')) { |
||||
const $btn = $('<button>').text(`Show ${el.id}`).on('click', () => { |
||||
$(el).modal({onApprove() {alert('confirmed')}}).modal('show'); |
||||
}); |
||||
$('.modal-buttons').append($btn); |
||||
} |
||||
</script> |
||||
<style> |
||||
.modal-buttons button { margin: 5px; } |
||||
</style> |
||||
</div> |
||||
{{template "base/footer" .}} |
Loading…
Reference in new issue