Compare commits

...
Sign in to create a new pull request.

5 commits
main ... main

4 changed files with 78 additions and 0 deletions

View file

@ -89,6 +89,22 @@ func (c *Context) GetRequesBodyMap() map[string]interface{} {
return dat
}
// get raw data for file binary
func (c *Context) GetRawBody() ([]byte, error) {
if c.Request.httpRequest.Body == nil {
return nil, errors.New("empty body")
}
defer c.Request.httpRequest.Body.Close()
data, err := io.ReadAll(c.Request.httpRequest.Body)
if err != nil {
return nil, err
}
return data, nil
}
// get json body and bind to dest interface
func (c *Context) GetRequesBodyStruct(dest interface{}) error {
body := c.Request.httpRequest.Body

View file

@ -9,10 +9,13 @@ import (
"bytes"
"fmt"
"net/http"
"strings"
)
// Response represents an HTTP response to be sent to the client, including headers, body, status code, and metadata.
type Response struct {
FlashMessage string
MsgType string
headers []header
body []byte
statusCode int
@ -144,6 +147,23 @@ func (rs *Response) Redirect(url string) *Response {
}, map[string]interface{}{
"url": "url",
})
if rs.FlashMessage != "" || rs.MsgType != "" {
if !strings.Contains(url, "?") {
url += "?"
} else {
url += "&"
}
if rs.FlashMessage != "" {
url += "flash_message=" + rs.FlashMessage
}
if rs.MsgType != "" {
if rs.FlashMessage != "" {
url += "&"
}
url += "msg_type=" + rs.MsgType
}
}
if v.Failed() {
if url[0:1] != "/" {
rs.redirectTo = "/" + url

View file

@ -0,0 +1,14 @@
package components
type FormColorOpacity struct {
ColorID string
OpacityID string
Label string
ColorHexValue string
OpacityValue string
Hint string
Error string
IsDisabled bool
IsRequired bool
HasOpacity bool
}

View file

@ -0,0 +1,28 @@
{{ define "form_color_opacity"}}
<div class="input-container">
<script src="/public/jscolor.js"></script>
<label class="form-label" for="{{.ColorID}}">{{.Label}}</label><br>
<input id="{{ .ColorID }}" data-jscolor="{alphaElement:'#{{ .OpacityID }}'}" value="{{ .ColorHexValue }}" name="{{ .ColorID }}"
{{if eq .IsDisabled true}}
disabled
{{end}}
{{if eq .IsRequired true}}
required
{{end}}
>
{{if eq .HasOpacity true}}
opacity: <input id="{{ .OpacityID }}" value="{{ .OpacityValue }}" name="{{ .OpacityID }}" size="5"
{{if eq .IsDisabled true}}
disabled
{{end}}
{{if eq .IsRequired true}}
required
{{end}}
>
{{if ne .Hint ""}}<small id="{{.ID}}Help" class="form-text text-muted">{{.Hint}}</small>{{end}}
{{if ne .Error ""}}<div class="error">{{.Error}}</div>{{end}}
{{end}}
</div>
{{end}}
<input type="text" id="name" name="name" placeholder class="form-control" required autocomplete="off" value="Plaza estrella" aria-describedby="nameHelp">