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: |
Template Attributes: |
||||||
* locale |
* locale |
||||||
* ModalButtonStyle: "yes" (default) or "confirm" |
|
||||||
|
Two buttons (negative, positive): |
||||||
|
* ModalButtonTypes: "yes" (default) or "confirm" |
||||||
|
* ModalButtonColors: "green" (default) / "blue" / "yellow" |
||||||
* ModalButtonCancelText |
* ModalButtonCancelText |
||||||
* ModalButtonOkText |
* 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 |
The ".ok.button" and ".cancel.button" selectors are also used by Fomantic Modal internally |
||||||
*/}} |
*/}} |
||||||
<div class="actions"> |
<div class="actions"> |
||||||
|
{{if .ModalButtonDangerText}} |
||||||
|
<button class="ui danger red ok button">{{.ModalButtonDangerText}}</button> |
||||||
|
{{else}} |
||||||
{{$textNegitive := .locale.Tr "modal.no"}} |
{{$textNegitive := .locale.Tr "modal.no"}} |
||||||
{{$textPositive := .locale.Tr "modal.yes"}} |
{{$textPositive := .locale.Tr "modal.yes"}} |
||||||
{{if eq .ModalButtonStyle "confirm"}} |
{{if eq .ModalButtonTypes "confirm"}} |
||||||
{{$textNegitive = .locale.Tr "modal.cancel"}} |
{{$textNegitive = .locale.Tr "modal.cancel"}} |
||||||
{{$textPositive = .locale.Tr "modal.confirm"}} |
{{$textPositive = .locale.Tr "modal.confirm"}} |
||||||
{{end}} |
{{end}} |
||||||
{{if .ModalButtonCancelText}}{{$textNegitive = .ModalButtonCancelText}}{{end}} |
{{if .ModalButtonCancelText}}{{$textNegitive = .ModalButtonCancelText}}{{end}} |
||||||
{{if .ModalButtonOkText}}{{$textPositive = .ModalButtonOkText}}{{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> |
</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