Demo mod, favicon ispravka i putanja ntech.env uz bazu
- NTECH_ENV=demo aktivira demo mod: korisnik Demo/Demo1234 (admin) se kreira ili resetuje pri svakom pokretanju - Login ekran u demo modu prikazuje pre-popunjena polja i "DEMO verzija" - ntech.env se čuva u istom direktorijumu kao SQLite baza (umesto uvek u radnom direktorijumu) — rešava Docker volume problem - favicon.svg: uklonjen width="100%" koji je sprečavao prikaz ikone u brauzeru
This commit is contained in:
@@ -4,8 +4,17 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// PutanjaNtechEnv vraća putanju do ntech.env fajla na osnovu putanje SQLite baze.
|
||||
// Fajl se čuva u istom direktorijumu kao i baza, tako da volume mount direktorijuma
|
||||
// pokriva i bazu i konfiguraciju.
|
||||
func PutanjaNtechEnv(sqlitePutanja string) string {
|
||||
dir := filepath.Dir(sqlitePutanja)
|
||||
return filepath.Join(dir, "ntech.env")
|
||||
}
|
||||
|
||||
// lista portova koje proveravamo pri prvom pokretanju
|
||||
var kandidatPortovi = []int{8080, 3000, 8000, 9090}
|
||||
|
||||
@@ -32,8 +41,8 @@ func NadjiSlobodanPort() int {
|
||||
}
|
||||
|
||||
// proverava da li je ovo prvo pokretanje programa
|
||||
func JelPrvoPokretanje() bool {
|
||||
_, err := os.Stat("ntech.env")
|
||||
func JelPrvoPokretanje(envFajl string) bool {
|
||||
_, err := os.Stat(envFajl)
|
||||
return os.IsNotExist(err)
|
||||
}
|
||||
|
||||
@@ -56,7 +65,7 @@ func StatusPortova() []PortStatus {
|
||||
}
|
||||
|
||||
// SacuvajEnv upisuje izabrani port u ntech.env fajl
|
||||
func SacuvajEnv(port int) error {
|
||||
func SacuvajEnv(port int, envFajl string) error {
|
||||
sadrzaj := fmt.Sprintf("NTECH_PORT=%d\n", port)
|
||||
return os.WriteFile("ntech.env", []byte(sadrzaj), 0600)
|
||||
return os.WriteFile(envFajl, []byte(sadrzaj), 0600)
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ func nadjiLokalneAdrese() []string {
|
||||
}
|
||||
|
||||
// PokreniSetup pokreće HTTP server za prvo podešavanje i čeka da korisnik završi
|
||||
func PokreniSetup(fsys fs.FS) {
|
||||
func PokreniSetup(fsys fs.FS, envFajl string) {
|
||||
port := NadjiSlobodanPort()
|
||||
if port == 0 {
|
||||
slog.Error("setup: nije pronađen nijedan slobodan port"); os.Exit(1)
|
||||
@@ -90,7 +90,7 @@ func PokreniSetup(fsys fs.FS) {
|
||||
Port int `json:"port"`
|
||||
}
|
||||
json.NewDecoder(req.Body).Decode(&telo)
|
||||
if err := SacuvajEnv(telo.Port); err != nil {
|
||||
if err := SacuvajEnv(telo.Port, envFajl); err != nil {
|
||||
http.Error(w, "Greška pri čuvanju podešavanja", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ type Handler struct {
|
||||
PdvKprRepo db.PdvKprRepository
|
||||
NivelacijaRepo db.NivelacijaRepository
|
||||
Verzija string
|
||||
JelDemo bool
|
||||
AssetV string // verzija statičkih fajlova za cache-busting (postavlja se pri pokretanju)
|
||||
Templates map[string]*template.Template
|
||||
TemplatesFS fs.FS
|
||||
|
||||
@@ -64,6 +64,7 @@ func (h *Handler) PrikazPrijave(w http.ResponseWriter, r *http.Request) {
|
||||
"LoginPozadinaBlurKartice": loginBlurKartice,
|
||||
"LoginPozadinaZatamnjenjeKartice": loginZatamnjenjeKartice,
|
||||
"Verzija": h.Verzija,
|
||||
"JelDemo": h.JelDemo,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user