mirror of https://github.com/go-gitea/gitea.git
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.  And add GitHub-like single danger button (context: https://github.com/go-gitea/gitea/issues/24285#issuecomment-1519100312)  --------- 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">
|
||||
{{$textNegitive := .locale.Tr "modal.no"}}
|
||||
{{$textPositive := .locale.Tr "modal.yes"}}
|
||||
{{if eq .ModalButtonStyle "confirm"}}
|
||||
{{$textNegitive = .locale.Tr "modal.cancel"}}
|
||||
{{$textPositive = .locale.Tr "modal.confirm"}}
|
||||
{{if .ModalButtonDangerText}}
|
||||
<button class="ui danger red ok button">{{.ModalButtonDangerText}}</button>
|
||||
{{else}}
|
||||
{{$textNegitive := .locale.Tr "modal.no"}}
|
||||
{{$textPositive := .locale.Tr "modal.yes"}}
|
||||
{{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}}
|
||||
|
||||
{{$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}}
|
||||
{{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>
|
||||
</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