diff options
| -rw-r--r-- | frontend/utility.go | 13 | ||||
| -rw-r--r-- | modules/lists/lists.go | 7 | ||||
| -rw-r--r-- | views/includes/navbar.html | 1 | ||||
| -rw-r--r-- | views/includes/notification.html | 23 |
4 files changed, 43 insertions, 1 deletions
diff --git a/frontend/utility.go b/frontend/utility.go index 6dbef6a..4138963 100644 --- a/frontend/utility.go +++ b/frontend/utility.go | |||
| @@ -7,6 +7,19 @@ type PaginationRange struct { | |||
| 7 | After []int | 7 | After []int |
| 8 | } | 8 | } |
| 9 | 9 | ||
| 10 | type Notification struct { | ||
| 11 | Type string `json:"type"` | ||
| 12 | Message string `json:"message"` | ||
| 13 | } | ||
| 14 | |||
| 15 | func NewErrorNotification(message string) Notification { | ||
| 16 | return Notification{"error", message} | ||
| 17 | } | ||
| 18 | |||
| 19 | func NewNotification(message string) Notification { | ||
| 20 | return Notification{"info", message} | ||
| 21 | } | ||
| 22 | |||
| 10 | // PaginationFromPage gibt die Seiten vor und nach der gegebenen Seite zurück. pageRange gibt an, wie viele Seiten vor und nach der aktuellen Page angezeigt werden soll. | 23 | // PaginationFromPage gibt die Seiten vor und nach der gegebenen Seite zurück. pageRange gibt an, wie viele Seiten vor und nach der aktuellen Page angezeigt werden soll. |
| 11 | func PaginationFromPage(pageRange, currentPage, maxPage int) PaginationRange { | 24 | func PaginationFromPage(pageRange, currentPage, maxPage int) PaginationRange { |
| 12 | var before []int | 25 | var before []int |
diff --git a/modules/lists/lists.go b/modules/lists/lists.go index 39cc4d0..a6d0284 100644 --- a/modules/lists/lists.go +++ b/modules/lists/lists.go | |||
| @@ -464,7 +464,12 @@ func (m *Module) updateListSettings(w http.ResponseWriter, r *http.Request, p ht | |||
| 464 | list.Name = name | 464 | list.Name = name |
| 465 | list.Description = description | 465 | list.Description = description |
| 466 | 466 | ||
| 467 | m.viewListSettings(w, r, p) | 467 | data := m.g.Renderer.DefaultData() |
| 468 | data["user"] = user | ||
| 469 | data["list"] = list | ||
| 470 | data["notification"] = frontend.NewNotification("Aenderungen gespeichert") | ||
| 471 | |||
| 472 | m.g.Renderer.RenderPage("list_settings", w, data) | ||
| 468 | el.EditList(user, eventlogging.EditListData{ | 473 | el.EditList(user, eventlogging.EditListData{ |
| 469 | ListID: id, | 474 | ListID: id, |
| 470 | OldName: oldName, | 475 | OldName: oldName, |
diff --git a/views/includes/navbar.html b/views/includes/navbar.html index 23514f8..13fd22d 100644 --- a/views/includes/navbar.html +++ b/views/includes/navbar.html | |||
| @@ -14,4 +14,5 @@ | |||
| 14 | </ul> | 14 | </ul> |
| 15 | </div> | 15 | </div> |
| 16 | </nav> | 16 | </nav> |
| 17 | {{ if .notification }}{{ template "notification" .notification }}{{ end }} | ||
| 17 | {{ end }} | 18 | {{ end }} |
diff --git a/views/includes/notification.html b/views/includes/notification.html new file mode 100644 index 0000000..d8323b7 --- /dev/null +++ b/views/includes/notification.html | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | {{ define "notification" }} | ||
| 2 | <style scoped> | ||
| 3 | #notification { | ||
| 4 | transition: opacity .5s; | ||
| 5 | opacity: 1.0; | ||
| 6 | padding: 8px; | ||
| 7 | } | ||
| 8 | |||
| 9 | #notification div { | ||
| 10 | padding: 8px; | ||
| 11 | border-radius: 4px; | ||
| 12 | } | ||
| 13 | </style> | ||
| 14 | <div class="row" id="notification"> | ||
| 15 | <div class="col s12 center-align white-text {{ if eq .Type "error" }}red darken-2 {{ else }}green lighten-2{{ end }}"> | ||
| 16 | {{ .Message }} | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | <script>'use strict'; | ||
| 20 | const el = document.getElementById('notification'); | ||
| 21 | setTimeout(() => el.style.opacity = 0.0, 3000); | ||
| 22 | </script> | ||
| 23 | {{ end }} | ||
