feat: add possibility to hide upload button #25

Merged
jriou merged 1 commit from tapiron/coller:feat/make_file_upload_button_optional into main 2025-09-15 09:20:51 +02:00
4 changed files with 34 additions and 27 deletions

View file

@ -33,6 +33,7 @@ The file format is **JSON**:
* **observation_internal** (int): Number of seconds to wait between two observations (default 60) * **observation_internal** (int): Number of seconds to wait between two observations (default 60)
* **languages** ([]string): List of supported [languages](https://github.com/microsoft/monaco-editor/tree/main/src/basic-languages) * **languages** ([]string): List of supported [languages](https://github.com/microsoft/monaco-editor/tree/main/src/basic-languages)
* **language** (string): Default language (default "text") * **language** (string): Default language (default "text")
* **enable_upload_file_button** (bool): Display the upload file button in the UI (default true)
The configuration file is not required but the service might not be exposed to the public. The configuration file is not required but the service might not be exposed to the public.

View file

@ -7,24 +7,25 @@ import (
) )
type Config struct { type Config struct {
Title string `json:"title"` Title string `json:"title"`
DatabaseType string `json:"database_type"` DatabaseType string `json:"database_type"`
DatabaseDsn string `json:"database_dsn"` DatabaseDsn string `json:"database_dsn"`
IDLength int `json:"id_length"` IDLength int `json:"id_length"`
PasswordLength int `json:"password_length"` PasswordLength int `json:"password_length"`
ExpirationInterval int `json:"expiration_interval"` ExpirationInterval int `json:"expiration_interval"`
ListenAddress string `json:"listen_address"` ListenAddress string `json:"listen_address"`
ListenPort int `json:"listen_port"` ListenPort int `json:"listen_port"`
Expirations []int `json:"expirations"` Expirations []int `json:"expirations"`
Expiration int `json:"expiration"` Expiration int `json:"expiration"`
MaxUploadSize int64 `json:"max_upload_size"` MaxUploadSize int64 `json:"max_upload_size"`
ShowVersion bool `json:"show_version"` ShowVersion bool `json:"show_version"`
EnableMetrics bool `json:"enable_metrics"` EnableMetrics bool `json:"enable_metrics"`
PrometheusRoute string `json:"prometheus_route"` PrometheusRoute string `json:"prometheus_route"`
PrometheusNotesMetric string `json:"prometheus_notes_metric"` PrometheusNotesMetric string `json:"prometheus_notes_metric"`
ObservationInterval int `json:"observation_internal"` ObservationInterval int `json:"observation_internal"`
Languages []string `json:"languages"` Languages []string `json:"languages"`
Language string `json:"language"` Language string `json:"language"`
EnableUploadFileButton bool `json:"enable_upload_file_button"`
tapiron marked this conversation as resolved Outdated

Could you update the README.md file with this new setting please?

Could you update the [README.md](https://git.riou.xyz/jriou/coller/src/branch/main/src/cmd/collerd/README.md) file with this new setting please?

For booleans, I would like to add an "enable" prefix like enable_upload_file_button.

For booleans, I would like to add an "enable" prefix like `enable_upload_file_button`.

Updated variable names, json config key and added doc in README.md.

I also removed useless if statement.

Updated variable names, json config key and added doc in README.md. I also removed useless if statement.
} }
func NewConfig() *Config { func NewConfig() *Config {
@ -69,7 +70,8 @@ func NewConfig() *Config {
"SQL", "SQL",
"YAML", "YAML",
}, },
Language: "text", Language: "text",
EnableUploadFileButton: true,
} }
} }

View file

@ -186,14 +186,15 @@ func (h *GetProtectedNoteHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque
} }
type PageData struct { type PageData struct {
Title string Title string
Version string Version string
Expirations []int Expirations []int
Expiration int Expiration int
Languages []string Languages []string
Err error Err error
URL string URL string
Note *Note Note *Note
EnableUploadFileButton bool
} }
type HomeHandler struct { type HomeHandler struct {
@ -431,6 +432,7 @@ func (s *Server) Start() error {
if s.config.ShowVersion { if s.config.ShowVersion {
p.Version = s.version p.Version = s.version
} }
p.EnableUploadFileButton = s.config.EnableUploadFileButton
templates, err := template.New("templates").Funcs(funcs).ParseFS(templatesFS, "templates/*.html") templates, err := template.New("templates").Funcs(funcs).ParseFS(templatesFS, "templates/*.html")
if err != nil { if err != nil {

View file

@ -31,9 +31,11 @@
value="delete-after-read" name="delete-after-read"> value="delete-after-read" name="delete-after-read">
<label class="col-form-label col-form-label-sm" for="delete-after-read">Delete after read</label> <label class="col-form-label col-form-label-sm" for="delete-after-read">Delete after read</label>
</div> </div>
{{if .EnableUploadFileButton}}
<div class="col"> <div class="col">
<input type="file" class="form-control" for="file" id="file" name="file" accept="text/plain" /> <input type="file" class="form-control" for="file" id="file" name="file" accept="text/plain" />
</div> </div>
{{end}}
<div class="col"> <div class="col">
<select class="form-select" aria-label="Expiration" id="expiration" name="expiration"> <select class="form-select" aria-label="Expiration" id="expiration" name="expiration">
<option disabled>Expiration</option> <option disabled>Expiration</option>