dashboard: can customize main image background

This commit is contained in:
nemunaire 2023-05-12 15:41:43 +02:00
parent 37dde01444
commit 20dc1f65dc
8 changed files with 29 additions and 4 deletions

View File

@ -157,7 +157,7 @@ func saveChallengeInfo(c *gin.Context) {
// Ignore the error, try to continue
}
err = sync.ImportChallengeInfo(info)
err = sync.ImportChallengeInfo(info, DashboardDir)
if err != nil {
log.Println("Unable to ImportChallengeInfo:", err.Error())
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"errmsg": fmt.Sprintf("Something goes wrong when trying to import related files: %s", err.Error())})

View File

@ -350,6 +350,13 @@
</div>
</div>
<div class="form-group row">
<label for="dashboard_back" class="col-sm-3 col-form-label col-form-label-sm">Fond dashboard</label>
<div class="col-sm-9">
<input type="text" class="form-control form-control-sm" id="dashboard_back" ng-model="challenge.dashboard_back">
</div>
</div>
<div class="form-group row">
<label for="partner_0_alt" class="col-sm-3 col-form-label col-form-label-sm">Partenaires</label>
<div class="col-sm-9">

View File

@ -9,7 +9,7 @@ import (
)
// ImportChallengeInfo imports images defined in the challengeinfo.
func ImportChallengeInfo(ci *settings.ChallengeInfo) (err error) {
func ImportChallengeInfo(ci *settings.ChallengeInfo, dashboardDir string) (err error) {
if len(ci.MainLogo) > 0 {
for i, logo := range ci.MainLogo {
dest := path.Join(fic.FilesDir, "logo", path.Base(logo))
@ -22,6 +22,14 @@ func ImportChallengeInfo(ci *settings.ChallengeInfo) (err error) {
}
}
if len(ci.DashboardBackground) > 0 {
dest := path.Join(dashboardDir, path.Base(ci.DashboardBackground))
err = importFile(GlobalImporter, ci.DashboardBackground, dest)
if err != nil {
return
}
}
if len(ci.Partners) > 0 {
for i, partner := range ci.Partners {
dest := path.Join(fic.FilesDir, "partner", path.Base(partner.Src))

View File

@ -149,6 +149,14 @@ func declareStaticRoutes(router *gin.RouterGroup, baseURL string) {
}
})
router.GET("/background.png", func(c *gin.Context) {
if forwarder != nil && fwdPublicJson {
fwd_request(c.Writer, c.Request, *forwarder)
} else {
http.ServeFile(c.Writer, c.Request, path.Join(DashboardDir, "background.png"))
}
})
router.GET("/public.json", func(c *gin.Context) {
c.Writer.Header().Set("Cache-Control", "no-cache")
if forwarder != nil && fwdPublicJson {

View File

@ -36,7 +36,7 @@ body {
}
.bg-public {
background-image: url('../img/logo-epita-bw.png');
background-image: url('../background.png');
background-repeat: no-repeat;
background-size: contain;
height: 100vh;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

View File

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<meta name="author" content="EPITA Laboratoire SRS">
<meta name="author" content="nemunaire">
<meta name="robots" content="all">
<base href="{{.urlbase}}">
<link href="{{.urlbase}}css/bootstrap.min.css" type="text/css" rel="stylesheet" media="screen">

View File

@ -39,6 +39,8 @@ type ChallengeInfo struct {
MainLogo []string `json:"main_logo,omitempty"`
// MainLink stores link to the parent website.
MainLink string `json:"main_link,omitempty"`
// DashboardBackground stores path to the background used on the public dashboard.
DashboardBackground string `json:"dashboard_background,omitempty"`
// Partners holds the challenge partners list.
Partners []ChallengePartner `json:"partners,omitempty"`
}