Embed implementacija, animacije, sidebar hover
This commit is contained in:
@@ -3,9 +3,9 @@ package config
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
)
|
||||
|
||||
// PokreniSetup pokreće WebView prozor za prvo podešavanje
|
||||
func PokreniSetup() {
|
||||
func PokreniSetup(fsys fs.FS) {
|
||||
port := NadjiSlobodanPort()
|
||||
if port == 0 {
|
||||
log.Fatal("Greška: nije pronađen nijedan slobodan port")
|
||||
@@ -30,7 +30,7 @@ func PokreniSetup() {
|
||||
http.Error(w, "Greška", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
sadrzaj, err := os.ReadFile("web/templates/setup/index.html")
|
||||
sadrzaj, err := fs.ReadFile(fsys, "web/templates/setup/index.html")
|
||||
if err != nil {
|
||||
http.Error(w, "Greška", http.StatusInternalServerError)
|
||||
return
|
||||
|
||||
@@ -3,8 +3,8 @@ package sqlite
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"io/fs"
|
||||
"path"
|
||||
"sort"
|
||||
|
||||
_ "modernc.org/sqlite"
|
||||
@@ -32,8 +32,8 @@ func OtvoriDB(putanja string) (*sql.DB, error) {
|
||||
return db, nil
|
||||
}
|
||||
|
||||
// PokreniMigracije izvršava sve SQL fajlove iz foldera koji još nisu izvršeni
|
||||
func PokreniMigracije(db *sql.DB, folder string) error {
|
||||
// PokreniMigracije izvršava sve SQL fajlove iz fs.FS koji još nisu izvršeni
|
||||
func PokreniMigracije(db *sql.DB, fsys fs.FS) error {
|
||||
// kreiramo tabelu za praćenje migracija ako ne postoji
|
||||
_, err := db.Exec(`
|
||||
CREATE TABLE IF NOT EXISTS migracije (
|
||||
@@ -46,7 +46,7 @@ func PokreniMigracije(db *sql.DB, folder string) error {
|
||||
}
|
||||
|
||||
// čitamo sve .sql fajlove iz foldera
|
||||
unosi, err := os.ReadDir(folder)
|
||||
unosi, err := fs.ReadDir(fsys, "migrations")
|
||||
if err != nil {
|
||||
return fmt.Errorf("ntech: PokreniMigracije: čitanje foldera: %w", err)
|
||||
}
|
||||
@@ -57,7 +57,7 @@ func PokreniMigracije(db *sql.DB, folder string) error {
|
||||
})
|
||||
|
||||
for _, unos := range unosi {
|
||||
if filepath.Ext(unos.Name()) != ".sql" {
|
||||
if path.Ext(unos.Name()) != ".sql" {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -74,8 +74,8 @@ func PokreniMigracije(db *sql.DB, folder string) error {
|
||||
}
|
||||
|
||||
// čitamo sadržaj SQL fajla
|
||||
putanja := filepath.Join(folder, naziv)
|
||||
sadrzaj, err := os.ReadFile(putanja)
|
||||
putanja := "migrations/" + naziv
|
||||
sadrzaj, err := fs.ReadFile(fsys, putanja)
|
||||
if err != nil {
|
||||
return fmt.Errorf("ntech: PokreniMigracije: čitanje %s: %w", naziv, err)
|
||||
}
|
||||
|
||||
@@ -3,12 +3,13 @@ package handler
|
||||
import (
|
||||
"database/sql"
|
||||
"html/template"
|
||||
"io/fs"
|
||||
"net/http"
|
||||
|
||||
"ntech/internal/db"
|
||||
"ntech/internal/db/sqlite"
|
||||
"ntech/internal/middleware"
|
||||
"ntech/internal/model"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Handler drži zavisnosti koje su potrebne svim handlerima
|
||||
@@ -26,8 +27,9 @@ type Handler struct {
|
||||
PodsetniciFRepo db.PodsetnikRepository
|
||||
PokusajiRepo db.PokusajiPrijaveRepository
|
||||
LoginIstorijsaRepo db.LoginIstorijsaRepository
|
||||
Verzija string
|
||||
Templates map[string]*template.Template
|
||||
Verzija string
|
||||
Templates map[string]*template.Template
|
||||
TemplatesFS fs.FS
|
||||
}
|
||||
|
||||
// Novi kreira novi Handler sa datom bazom
|
||||
|
||||
@@ -3,6 +3,7 @@ package handler
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"io/fs"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
@@ -34,15 +35,15 @@ var standaloneIme = []string{
|
||||
"prijava", "setup", "totp_provera", "prodaja_stampa",
|
||||
}
|
||||
|
||||
// KreirajKes parsuje sve šablone i vraća ih keširane u mapi
|
||||
func KreirajKes() (map[string]*template.Template, error) {
|
||||
// KreirajKes parsuje sve šablone iz fsys i vraća ih keširane u mapi
|
||||
func KreirajKes(fsys fs.FS) (map[string]*template.Template, error) {
|
||||
kes := make(map[string]*template.Template)
|
||||
|
||||
for _, ime := range saSidebar {
|
||||
fajlovi := make([]string, len(bazniSabloni), len(bazniSabloni)+1)
|
||||
copy(fajlovi, bazniSabloni)
|
||||
fajlovi = append(fajlovi, "web/templates/stranice/"+ime+".html")
|
||||
t, err := template.ParseFiles(fajlovi...)
|
||||
t, err := template.ParseFS(fsys, fajlovi...)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("kes: %s: %w", ime, err)
|
||||
}
|
||||
@@ -50,7 +51,7 @@ func KreirajKes() (map[string]*template.Template, error) {
|
||||
}
|
||||
|
||||
for _, ime := range standaloneIme {
|
||||
t, err := template.ParseFiles("web/templates/stranice/" + ime + ".html")
|
||||
t, err := template.ParseFS(fsys, "web/templates/stranice/"+ime+".html")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("kes: %s: %w", ime, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user