Improve main and admin menus
This commit is contained in:
parent
64d069ddaa
commit
ff2bb2d443
3 changed files with 182 additions and 53 deletions
|
|
@ -1,15 +1,82 @@
|
|||
package controllers
|
||||
|
||||
import "github.com/gofiber/fiber/v2"
|
||||
import (
|
||||
"git.readonly.ch/bouzoure/pop-camarades/helpers"
|
||||
"git.readonly.ch/bouzoure/pop-camarades/models"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
func Homepage(c *fiber.Ctx) error {
|
||||
userid, err := helpers.GetSessionUserId(c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
allowedSectionsMembers, err := helpers.PermissionsGetSections(
|
||||
userid, "show_member",
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
allowedSectionsContacts, err := helpers.PermissionsGetSections(
|
||||
userid, "show_contact",
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
db, err := helpers.GetDatabase()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var membersCount int64
|
||||
var contactsCount int64
|
||||
|
||||
db.Find(
|
||||
&models.Person{},
|
||||
"is_member = ? AND section_id IN ?",
|
||||
true, allowedSectionsMembers,
|
||||
).Count(&membersCount)
|
||||
|
||||
db.Find(
|
||||
&models.Person{},
|
||||
"is_contact = ? AND section_id IN ?",
|
||||
true, allowedSectionsContacts,
|
||||
).Count(&contactsCount)
|
||||
|
||||
return c.Render("index", fiber.Map{
|
||||
"PageTitle": "Accueil",
|
||||
"PageTitle": "Accueil",
|
||||
"MembersCount": membersCount,
|
||||
"ContactsCount": contactsCount,
|
||||
})
|
||||
}
|
||||
|
||||
func Admin(c *fiber.Ctx) error {
|
||||
db, err := helpers.GetDatabase()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var sectionsCount int64
|
||||
var listsCount int64
|
||||
var fieldsCount int64
|
||||
var usersCount int64
|
||||
var rolesCount int64
|
||||
|
||||
db.Find(&models.Section{}).Count(§ionsCount)
|
||||
db.Find(&models.List{}).Count(&listsCount)
|
||||
db.Find(&models.Field{}).Count(&fieldsCount)
|
||||
db.Find(&models.User{}).Count(&usersCount)
|
||||
db.Find(&models.Role{}).Count(&rolesCount)
|
||||
|
||||
return c.Render("admin", fiber.Map{
|
||||
"PageTitle": "Administration",
|
||||
"PageTitle": "Administration",
|
||||
"SectionsCount": sectionsCount,
|
||||
"ListsCount": listsCount,
|
||||
"FieldsCount": fieldsCount,
|
||||
"UsersCount": usersCount,
|
||||
"RolesCount": rolesCount,
|
||||
})
|
||||
}
|
||||
|
|
|
|||
123
views/admin.html
123
views/admin.html
|
|
@ -12,47 +12,88 @@
|
|||
<hr />
|
||||
</div>
|
||||
|
||||
<div class="row" style="max-width: 600px;">
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/sections">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-building me-2"></i>
|
||||
Gestion des sections
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/lists">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-list-check me-2"></i>
|
||||
Gestion des listes
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/fields">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-database-add me-2"></i>
|
||||
Gestion des champs supplémentaires
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/users">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-person-square me-2"></i>
|
||||
Gestion des utilisateurs
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/roles">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-briefcase me-2"></i>
|
||||
Gestion des rôles
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="row mw-900">
|
||||
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/sections">
|
||||
<div class="alert alert-primary">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-building me-2"></i>
|
||||
Gestion des sections
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ SectionsCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/lists">
|
||||
<div class="alert alert-primary">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-list-check me-2"></i>
|
||||
Gestion des listes
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ ListsCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/fields">
|
||||
<div class="alert alert-primary">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-database-add me-2"></i>
|
||||
Gestion des champs supplémentaires
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ FieldsCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/users">
|
||||
<div class="alert alert-primary">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-person-square me-2"></i>
|
||||
Gestion des utilisateurs
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ UsersCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin/roles">
|
||||
<div class="alert alert-primary">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-briefcase me-2"></i>
|
||||
Gestion des rôles
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ RolesCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
|||
|
|
@ -11,35 +11,56 @@
|
|||
<hr />
|
||||
</div>
|
||||
|
||||
<div class="row" style="max-width: 600px;">
|
||||
<div class="row mw-900">
|
||||
{% if Globals.AllowMembersPage %}
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/members">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-people me-2"></i>
|
||||
Gestion des membres
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-people me-2"></i>
|
||||
Gestion des membres
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ MembersCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if Globals.AllowContactsPage %}
|
||||
<div class="col-12">
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/contacts">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-telephone me-2"></i>
|
||||
Gestion des contacts
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-telephone me-2"></i>
|
||||
Gestion des sympathisants
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
{{ ContactsCount }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if Globals.UserIsAdmin %}
|
||||
<div class="col-12">
|
||||
<div class="col-12">
|
||||
<a class="dashboard-tile" href="/admin">
|
||||
<div class="alert alert-primary">
|
||||
<i class="bi-gear me-2"></i>
|
||||
Administration de l'application
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 text-center text-md-start col-md-6">
|
||||
<i class="bi-gear me-2"></i>
|
||||
Administration de l'application
|
||||
</div>
|
||||
<div class="col text-center text-md-end fs-1">
|
||||
<i class="bi-arrow-right"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue