1704 lines
44 KiB
Go
1704 lines
44 KiB
Go
|
|
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"html/template"
|
|
"fmt"
|
|
"database/sql"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"time"
|
|
"strconv"
|
|
"strings"
|
|
"regexp"
|
|
)
|
|
type komunikat struct{
|
|
Opis string
|
|
}
|
|
|
|
type Plan struct{
|
|
Serie int
|
|
Powtorzenia int
|
|
Nazwa string
|
|
Ciezar int
|
|
Opis string
|
|
data_t string
|
|
Id_cwiczenie int
|
|
|
|
}
|
|
type Plan_rodzaj struct{
|
|
Plan []Plan
|
|
Rodzaj_treningu string
|
|
}
|
|
|
|
type Cwiczenie struct{
|
|
Opis string
|
|
Rodzaj string
|
|
Nazwa string
|
|
Film string
|
|
}
|
|
type CwiczenieTabela struct{
|
|
Id_cwiczenie int
|
|
Nazwa string
|
|
|
|
}
|
|
|
|
type Wyniki struct{
|
|
Ciezar_rzecz int
|
|
Ciezar_cel int
|
|
Nazwa string
|
|
Data_t string
|
|
}
|
|
type ww struct{
|
|
Wyniki []Wyniki
|
|
Nazwa string
|
|
NumerCwiczenia int
|
|
Ilosc_cwiczen int
|
|
}
|
|
type Zmiany struct{
|
|
Co_ile_ciezar int
|
|
Ciezar_dodaj int
|
|
Co_ile_powtorzenie int
|
|
Powtorzenie_dodaj int
|
|
Nazwa string
|
|
Rodzaj string
|
|
|
|
}
|
|
type Uzytkownicy struct {
|
|
Url string
|
|
Login string
|
|
Haslo string
|
|
}
|
|
type Wymiary struct{
|
|
Nazwa string
|
|
Wymiary_2 []Wymiary_2
|
|
}
|
|
type Wymiary_2 struct{
|
|
Wymiar int
|
|
Data string
|
|
}
|
|
type Ustawienia struct{
|
|
Poziom string
|
|
Rodzaj_treningu string
|
|
Zmiany []Zmiany
|
|
}
|
|
|
|
|
|
|
|
type Cookie struct {
|
|
Name string
|
|
Value int
|
|
Path string
|
|
Domain string
|
|
Expires time.Time
|
|
RawExpires string
|
|
MaxAge int
|
|
Secure bool
|
|
HttpOnly bool
|
|
Raw string
|
|
Unparsed []string
|
|
}
|
|
//deklaracja tmpl-POCZATEK
|
|
var tmpl2 = template.Must(template.ParseGlob("planowanieTreningu.html"))
|
|
var tmpl3 = template.Must(template.ParseGlob("cwiczenie.html"))
|
|
var tmpl4 = template.Must(template.ParseGlob("wyniki.html"))
|
|
var tmpl5 = template.Must(template.ParseGlob("wymiary.html"))
|
|
var tmpl6 = template.Must(template.ParseGlob("dodajcwiczenie.html"))
|
|
var tmpl7 = template.Must(template.ParseGlob("wyniki-usun.html"))
|
|
|
|
var tmpl8 = template.Must(template.ParseGlob("planowanieTreningu2.html"))
|
|
var tmpl9 = template.Must(template.ParseGlob("planowanieTreningu3.html"))
|
|
var tmpl10 = template.Must(template.ParseGlob("planowanieTreningu5.html"))
|
|
|
|
var tmpl = template.Must(template.ParseGlob("Twoj-trening.html"))
|
|
//deklaracja tmpl-KONIEC
|
|
|
|
|
|
//deklaracja funkcji-POCZATEK
|
|
func baza(){
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer db.Close()
|
|
}
|
|
|
|
|
|
func getCookie(w http.ResponseWriter, r *http.Request) string {
|
|
var decyzja string
|
|
c1, err := r.Cookie("logowanie")
|
|
if err != nil {
|
|
decyzja="brak"
|
|
}else{
|
|
decyzja=c1.Value
|
|
}
|
|
return decyzja
|
|
}
|
|
|
|
|
|
|
|
func setCookie(w http.ResponseWriter, r *http.Request, id_uzytkownik string) {
|
|
expiration := time.Now().Add(2 * time.Hour)
|
|
c1 := http.Cookie{Name: "logowanie", Value: id_uzytkownik, Expires: expiration}
|
|
http.SetCookie(w, &c1)
|
|
}
|
|
|
|
//deklaracja funkcji-KONIEC
|
|
|
|
|
|
|
|
|
|
func IsNumeric(s string) bool {
|
|
_, err := strconv.ParseFloat(s, 64)
|
|
return err == nil
|
|
}
|
|
|
|
|
|
func blank(s string) bool {
|
|
blank := strings.TrimSpace(s) == ""
|
|
var a bool
|
|
if blank {
|
|
a=true
|
|
} else {
|
|
a=false
|
|
}
|
|
return a
|
|
}
|
|
|
|
|
|
func zmianaUstawien(w http.ResponseWriter, r *http.Request) {
|
|
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
}else{
|
|
|
|
|
|
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("planowanieTreningu4.html")
|
|
t.Execute(w, p)
|
|
}
|
|
}
|
|
|
|
|
|
func planowanieTreningu(w http.ResponseWriter, r *http.Request) {
|
|
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
}else{
|
|
p := Plan{Opis: ""}
|
|
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {panic(err.Error())}
|
|
defer db.Close()
|
|
|
|
|
|
|
|
rows1, err:= db.Query("SELECT COUNT(*) FROM baza.ustawienia WHERE id_uzytkownik=?", getCookie(w,r))
|
|
var sprawdzanie_ustawienia int
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows1.Next() { err = rows1.Scan(&sprawdzanie_ustawienia)}
|
|
|
|
|
|
|
|
if sprawdzanie_ustawienia!=0 || (sprawdzanie_ustawienia==0 && r.Method == "POST" && r.FormValue("poziom")!="") || (sprawdzanie_ustawienia!=0 && r.Method == "POST" && r.FormValue("poziom")!=""){
|
|
|
|
if sprawdzanie_ustawienia==0{
|
|
rodzaj_treningu := r.FormValue("rodzaj_treningu")
|
|
poziom := r.FormValue("poziom")
|
|
rows2, err := db.Query("INSERT INTO ustawienia (id_uzytkownik, poziom, rodzaj_treningu) VALUES (?,?,?)", getCookie(w,r), poziom,rodzaj_treningu)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows2.Close()
|
|
}else if sprawdzanie_ustawienia!=0 && r.FormValue("poziom")!=""{
|
|
rodzaj_treningu := r.FormValue("rodzaj_treningu")
|
|
poziom := r.FormValue("poziom")
|
|
rows2, err := db.Query("UPDATE ustawienia set poziom=?, rodzaj_treningu=? where id_uzytkownik=?", poziom,rodzaj_treningu, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows2.Close()
|
|
}
|
|
|
|
if r.Method == "POST" {
|
|
|
|
|
|
//dodawanie rodzaju treningu oraz co ile powiekszać cieżar-POCZATEK
|
|
|
|
|
|
co_ile_ciezar := r.FormValue("co_ile_ciezar")
|
|
ciezar_dodaj := r.FormValue("ciezar_dodaj")
|
|
co_ile_powtorzenie := r.FormValue("co_ile_powtorzenie")
|
|
powtorzenie_dodaj := r.FormValue("powtorzenie_dodaj")
|
|
// partia := r.FormValue("partia")
|
|
cwiczenie_nazwa := r.FormValue("cwiczenie_nazwa")
|
|
poziom := r.FormValue("poziom")
|
|
Akcja := r.FormValue("Akcja")
|
|
if Akcja=="Zatwierdzam" {
|
|
if IsNumeric(co_ile_ciezar) && co_ile_ciezar!="0" && IsNumeric(ciezar_dodaj) && IsNumeric(powtorzenie_dodaj) && IsNumeric(co_ile_powtorzenie) && co_ile_powtorzenie!="0" && len(co_ile_ciezar)<3 && len(ciezar_dodaj)<3 && len(powtorzenie_dodaj)<3 && len(co_ile_powtorzenie)<3 {
|
|
|
|
|
|
rows3, err := db.Query("SELECT poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
|
|
for rows3.Next() {
|
|
err = rows3.Scan(&poziom)
|
|
if err != nil {panic(err.Error()) }}
|
|
|
|
|
|
var id_cwiczenie int
|
|
if poziom=="zaawansowany"{
|
|
rows22, err := db.Query("SELECT id_cwiczenie from baza.cwiczenie where nazwa=?",cwiczenie_nazwa)
|
|
|
|
for rows22.Next() {
|
|
err = rows22.Scan(&id_cwiczenie)
|
|
if err != nil {panic(err.Error()) }}
|
|
|
|
|
|
|
|
|
|
rows3, err := db.Query("UPDATE baza.zmiany SET ciezar_dodaj=?, powtorzenie_dodaj=?, co_ile_ciezar=?, co_ile_powtorzenie=? where id_cwiczenia=? and id_uzytkownik=?", ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie, id_cwiczenie, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows3.Close()
|
|
|
|
}else if poziom=="początkujący"{
|
|
|
|
rows222, err := db.Query("SELECT id_cwiczenie from baza.cwiczenie where rodzaj=?",cwiczenie_nazwa)
|
|
|
|
for rows222.Next() {
|
|
err = rows222.Scan(&id_cwiczenie)
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
|
|
|
|
|
|
rows3, err := db.Query("UPDATE baza.zmiany SET ciezar_dodaj=?, powtorzenie_dodaj=?, co_ile_ciezar=?, co_ile_powtorzenie=? where id_uzytkownik=? and id_cwiczenia=? ", ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie, getCookie(w,r), id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows3.Close()
|
|
}}
|
|
|
|
|
|
}else{
|
|
p = Plan{Opis: "Musisz podać cyfry mniejsze od 99, a wszystkie pola musza być uzupelnione"}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
Powtorzenia := r.FormValue("Powtorzenia")
|
|
Ciezar := r.FormValue("Ciezar")
|
|
Serie := r.FormValue("Serie")
|
|
Nazwa := r.FormValue("Nazwa")
|
|
|
|
|
|
if IsNumeric(Ciezar) && Nazwa!="" && len(Ciezar)<4{
|
|
|
|
rows1, err:= db.Query("SELECT COUNT(*) FROM baza.trening_cel as a, baza.cwiczenie as b WHERE a.id_cwiczenie=b.id_cwiczenie and b.nazwa=? and a.id_uzytkownik=?", Nazwa, getCookie(w,r))
|
|
var liczba string
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows1.Next() { err = rows1.Scan(&liczba)}
|
|
|
|
if liczba=="0"{
|
|
|
|
rows, err := db.Query("SELECT id_cwiczenie FROM baza.cwiczenie WHERE nazwa=? and uzytkownik=?", Nazwa, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows.Next() {
|
|
emp := CwiczenieTabela{}
|
|
var id_cwiczenie int
|
|
err = rows.Scan(&id_cwiczenie)
|
|
emp.Id_cwiczenie = id_cwiczenie
|
|
rows, err := db.Query("INSERT INTO trening_cel (id_cwiczenie, id_uzytkownik, powtorzenia, ciezar,serie) VALUES (?, ?, ?, ?, ? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
//dodanie do tabeli zmiany
|
|
p = Plan{Opis: "Dodano ćwiczenie do planu treningowego"}
|
|
|
|
rows3, err := db.Query("SELECT poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
|
|
for rows3.Next() {
|
|
err = rows3.Scan(&poziom)
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
if poziom=="początkujący"{
|
|
|
|
rows, err := db.Query("select rodzaj FROM baza.cwiczenie WHERE id_cwiczenie=?", id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows.Next() {
|
|
var rodzaj string
|
|
err = rows.Scan(&rodzaj)
|
|
|
|
|
|
|
|
|
|
rows, err := db.Query("select count(*) FROM baza.zmiany as A, baza.cwiczenie as B WHERE B.rodzaj=? and A.id_cwiczenia=B.id_cwiczenie and id_uzytkownik=?", rodzaj, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows.Next() {
|
|
var liczba int
|
|
err = rows.Scan(&liczba)
|
|
|
|
if liczba!=0 {
|
|
|
|
rows, err := db.Query("select A.ciezar_dodaj, A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie FROM baza.zmiany as A, baza.cwiczenie as B WHERE B.rodzaj=? and A.id_uzytkownik=? and A.id_cwiczenia=B.id_cwiczenie", rodzaj, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows.Next() {
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
|
|
err = rows.Scan(&ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie)
|
|
|
|
rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (?, ?, ?, ?, ?,? )", ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie, id_cwiczenie,getCookie(w,r),)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows2.Close()
|
|
|
|
}
|
|
}else{
|
|
rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (0, 0, 0, 0, ?,? )", id_cwiczenie,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows2.Close()}
|
|
}
|
|
|
|
}}else{
|
|
rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (0, 0, 0, 0, ?,? )", id_cwiczenie,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows2.Close()
|
|
}}
|
|
// rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (0, 0, 0, 0, ?,? )", id_cwiczenie,getCookie(w,r))
|
|
// if err != nil {panic(err.Error())}
|
|
// defer rows2.Close()
|
|
}}else {
|
|
p = Plan{Opis: "To ćwiczenie juz dodano"}
|
|
|
|
}
|
|
|
|
}else if IsNumeric(Ciezar)!=true && Nazwa!="" || len(Ciezar)>3{
|
|
p = Plan{Opis: "Musisz podać tylko liczby mniejsze od 999"}
|
|
}
|
|
|
|
|
|
}
|
|
rows, err := db.Query("select rodzaj_treningu from baza.ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
|
|
for rows.Next() {
|
|
var rodzaj_treningu string
|
|
|
|
err = rows.Scan(&rodzaj_treningu)
|
|
if err != nil { panic(err.Error()) }
|
|
|
|
|
|
if rodzaj_treningu=="FWB" {
|
|
|
|
|
|
rows2, err := db.Query("select nazwa from baza.cwiczenie where (uzytkownik=? or uzytkownik=1)",getCookie(w,r))
|
|
emp2 := Plan{}
|
|
res2 := []Plan{}
|
|
for rows2.Next() {
|
|
var nazwa string
|
|
err = rows2.Scan(&nazwa)
|
|
if err != nil {panic(err.Error()) }
|
|
emp2.Nazwa = nazwa
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl2.ExecuteTemplate(w, "Index", res2)
|
|
|
|
|
|
}else if rodzaj_treningu=="ABS" {
|
|
rows2, err := db.Query("select nazwa from baza.cwiczenie where rodzaj='brzuch' and (uzytkownik=? or uzytkownik=1)",getCookie(w,r))
|
|
emp2 := Plan{}
|
|
res2 := []Plan{}
|
|
for rows2.Next() {
|
|
var nazwa string
|
|
err = rows2.Scan(&nazwa)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
emp2.Nazwa = nazwa
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl2.ExecuteTemplate(w, "Index", res2)
|
|
// t, _ := template.ParseFiles("komunikat.html")
|
|
// t.Execute(w, p)
|
|
|
|
}else{
|
|
|
|
|
|
rows2, err := db.Query("select nazwa from baza.cwiczenie where (uzytkownik=? or uzytkownik=1)",getCookie(w,r))
|
|
emp2 := Plan{}
|
|
res2 := []Plan{}
|
|
for rows2.Next() {
|
|
var nazwa string
|
|
err = rows2.Scan(&nazwa)
|
|
if err != nil {panic(err.Error()) }
|
|
emp2.Nazwa = nazwa
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl2.ExecuteTemplate(w, "Index", res2)
|
|
// t, _ := template.ParseFiles("komunikat.html")
|
|
// t.Execute(w, p)
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rows4, err := db.Query("select poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
for rows4.Next() {
|
|
|
|
var poziom string
|
|
|
|
err = rows4.Scan(&poziom)
|
|
if err != nil { panic(err.Error()) }
|
|
|
|
|
|
if poziom=="zaawansowany" {
|
|
|
|
|
|
|
|
rows4, err := db.Query("select poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
emp4:= Ustawienia{}
|
|
res4 := []Ustawienia{}
|
|
for rows4.Next() {
|
|
var poziom string
|
|
|
|
err = rows4.Scan(&poziom)
|
|
if err != nil { panic(err.Error()) }
|
|
emp4.Poziom = poziom
|
|
rows33, err := db.Query(" SELECT A.ciezar_dodaj,A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie,B.nazwa, B.rodzaj from baza.zmiany as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenia=B.id_cwiczenie ",getCookie(w,r))
|
|
emp33 := Zmiany{}
|
|
res33 := []Zmiany{}
|
|
for rows33.Next() {
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
var Nazwa string
|
|
var Rodzaj string
|
|
err = rows33.Scan(&ciezar_dodaj,&powtorzenie_dodaj,&co_ile_ciezar,&co_ile_powtorzenie,&Nazwa,&Rodzaj)
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
emp33.Ciezar_dodaj = ciezar_dodaj
|
|
emp33.Powtorzenie_dodaj = powtorzenie_dodaj
|
|
emp33.Co_ile_ciezar = co_ile_ciezar
|
|
emp33.Co_ile_powtorzenie = co_ile_powtorzenie
|
|
emp33.Nazwa = Nazwa
|
|
emp33.Rodzaj = Rodzaj
|
|
res33 = append(res33, emp33)
|
|
|
|
}
|
|
emp4.Zmiany=res33
|
|
|
|
|
|
res4 = append(res4, emp4)
|
|
}
|
|
|
|
tmpl9.ExecuteTemplate(w, "Index3", res4)
|
|
|
|
|
|
|
|
}else{
|
|
|
|
rows4, err := db.Query("select poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
emp4:= Ustawienia{}
|
|
res4 := []Ustawienia{}
|
|
for rows4.Next() {
|
|
var poziom string
|
|
|
|
err = rows4.Scan(&poziom)
|
|
if err != nil { panic(err.Error()) }
|
|
emp4.Poziom = poziom
|
|
rows33, err := db.Query(" sELECT A.ciezar_dodaj,A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie, B.rodzaj from baza.zmiany as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenia=B.id_cwiczenie group by A.ciezar_dodaj,A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie, B.rodzaj",getCookie(w,r))
|
|
emp33 := Zmiany{}
|
|
res33 := []Zmiany{}
|
|
for rows33.Next() {
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
var Rodzaj string
|
|
err = rows33.Scan(&ciezar_dodaj,&powtorzenie_dodaj,&co_ile_ciezar,&co_ile_powtorzenie,&Rodzaj)
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
emp33.Ciezar_dodaj = ciezar_dodaj
|
|
emp33.Powtorzenie_dodaj = powtorzenie_dodaj
|
|
emp33.Co_ile_ciezar = co_ile_ciezar
|
|
emp33.Co_ile_powtorzenie = co_ile_powtorzenie
|
|
emp33.Rodzaj = Rodzaj
|
|
res33 = append(res33, emp33)
|
|
|
|
}
|
|
emp4.Zmiany=res33
|
|
|
|
|
|
res4 = append(res4, emp4)
|
|
}
|
|
|
|
tmpl9.ExecuteTemplate(w, "Index3", res4)
|
|
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rows5, err := db.Query(" SELECT poziom, rodzaj_treningu from baza.ustawienia where id_uzytkownik=?",getCookie(w,r))
|
|
emp5 := Ustawienia{}
|
|
res5 := []Ustawienia{}
|
|
for rows5.Next() {
|
|
var Poziom string
|
|
var Rodzaj_treningu string
|
|
|
|
err = rows5.Scan(&Poziom, &Rodzaj_treningu)
|
|
if err != nil {panic(err.Error()) }
|
|
emp5.Poziom = Poziom
|
|
emp5.Rodzaj_treningu = Rodzaj_treningu
|
|
res5 = append(res5, emp5)
|
|
}
|
|
|
|
tmpl10.ExecuteTemplate(w, "Index5", res5)
|
|
|
|
|
|
|
|
|
|
if emp5.Poziom=="początkujący" {
|
|
|
|
rows21, err := db.Query(" SELECT B.rodzaj from baza.trening_cel as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenie=B.id_cwiczenie group by B.rodzaj",getCookie(w,r))
|
|
emp21 := Cwiczenie{}
|
|
res21 := []Cwiczenie{}
|
|
for rows21.Next() {
|
|
var Rodzaj string
|
|
err = rows21.Scan(&Rodzaj)
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
|
|
emp21.Nazwa = Rodzaj
|
|
res21 = append(res21, emp21)
|
|
|
|
}
|
|
|
|
tmpl8.ExecuteTemplate(w, "Index2", res21)
|
|
|
|
}else{
|
|
|
|
rows21, err := db.Query(" SELECT B.nazwa from baza.trening_cel as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenie=B.id_cwiczenie ",getCookie(w,r))
|
|
emp21 := Cwiczenie{}
|
|
res21 := []Cwiczenie{}
|
|
for rows21.Next() {
|
|
|
|
var Nazwa string
|
|
|
|
err = rows21.Scan(&Nazwa)
|
|
if err != nil {panic(err.Error()) }
|
|
emp21.Nazwa = Nazwa
|
|
res21 = append(res21, emp21)
|
|
|
|
}
|
|
|
|
tmpl8.ExecuteTemplate(w, "Index2", res21)
|
|
}
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("planowanieTreningu4.html")
|
|
t.Execute(w, p)
|
|
|
|
|
|
}
|
|
t, _ := template.ParseFiles("komunikat.html")
|
|
t.Execute(w, p)}}
|
|
|
|
|
|
|
|
func treningHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
//otwieranie bazy-POCZATEK
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {panic(err.Error())}
|
|
defer db.Close()
|
|
//otwieranie bazy-KONIEC
|
|
|
|
//autoryzacja-POCZATEK
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
}else{
|
|
|
|
|
|
p := Plan{Opis: ""}
|
|
|
|
|
|
|
|
rows, err := db.Query("select count(*) from baza.zmiany where id_uzytkownik=? and ciezar_dodaj=0 and powtorzenie_dodaj=0 and co_ile_ciezar=0 and co_ile_powtorzenie=0", getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
var sprawdzenie_zmiany int
|
|
for rows.Next() {
|
|
|
|
rows.Scan(&sprawdzenie_zmiany)}
|
|
if sprawdzenie_zmiany!=0 {
|
|
q := Plan{Opis: "nie dodałeś wsztkich zmiennych do ćwiczeń wiec nie masz dostepu do tej zakładki"}
|
|
t, _ := template.ParseFiles("brakdostepu2.html")
|
|
t.Execute(w, q)
|
|
}else{
|
|
|
|
|
|
|
|
//sprawdzanie metody POST - POCZATEK
|
|
if r.Method == "POST" {
|
|
Powtorzenia := r.FormValue("Powtorzenia")
|
|
Ciezar := r.FormValue("Ciezar")
|
|
Serie := r.FormValue("Serie")
|
|
Nazwa := r.FormValue("Nazwa")
|
|
Akcja := r.FormValue("Akcja")
|
|
|
|
currentTime := time.Now()
|
|
data_t:= currentTime.Format("2006-01-02")
|
|
|
|
rows1, err := db.Query("SELECT COUNT(*) FROM baza.trening_rzeczywisty as a, baza.cwiczenie as b WHERE a.id_cwiczenia=b.id_cwiczenie and b.nazwa=? and a.id_uzytkownik=? and a.data_t=?", Nazwa,getCookie(w,r), data_t)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows1.Close()
|
|
var liczba string
|
|
for rows1.Next() {
|
|
err = rows1.Scan(&liczba)
|
|
}
|
|
|
|
|
|
rows, err := db.Query("SELECT id_cwiczenie FROM baza.cwiczenie WHERE nazwa=? and (uzytkownik=? or uzytkownik=1)", Nazwa,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
|
emp := CwiczenieTabela{}
|
|
var id_cwiczenie int
|
|
err = rows.Scan(&id_cwiczenie)
|
|
emp.Id_cwiczenie = id_cwiczenie
|
|
|
|
if Akcja=="usun"{
|
|
rows, err := db.Query("DELETE FROM baza.trening_cel where id_cwiczenie=? and id_uzytkownik=?", id_cwiczenie, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
|
|
rows2, err := db.Query("DELETE FROM baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows2.Close()
|
|
|
|
rows3, err := db.Query("DELETE FROM baza.zmiany where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie, getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer rows3.Close()
|
|
|
|
}else if Akcja=="zatwierdz" && liczba=="0"{
|
|
|
|
|
|
if IsNumeric(Ciezar) && IsNumeric(Powtorzenia) && IsNumeric(Serie) && len(Ciezar)<4 && len(Powtorzenia)<4 && len(Serie)<4 {
|
|
|
|
rows34, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=?",getCookie(w,r),id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
var sprawdzenie int
|
|
|
|
err = rows34.Scan(&sprawdzenie)
|
|
|
|
if sprawdzenie!=0{
|
|
rows3, err := db.Query("select powtorzenia_cel, ciezar_cel,MAX(data_t) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=? group by powtorzenia_cel,ciezar_cel",getCookie(w,r),id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var powtorzenia_cel int
|
|
var ciezar_cel int
|
|
var max string
|
|
err = rows3.Scan(&powtorzenia_cel,&ciezar_cel, &max)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
rows3, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var liczba_treningow int
|
|
err = rows3.Scan(&liczba_treningow)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
|
|
rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie)
|
|
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows5.Next() {
|
|
var id_cwiczenia int
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
|
|
|
|
err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie)
|
|
if err != nil {panic(err.Error())}
|
|
if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{
|
|
|
|
ciezar_cel=ciezar_cel+ciezar_dodaj
|
|
powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj
|
|
rows, err := db.Query("INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."}
|
|
|
|
}else{
|
|
rows, err := db.Query("INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."}
|
|
|
|
|
|
}
|
|
}}}}else{
|
|
rows3, err := db.Query("select powtorzenia, ciezar from baza.trening_cel where id_uzytkownik=? and id_cwiczenie=?",getCookie(w,r),id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var powtorzenia_cel int
|
|
var ciezar_cel int
|
|
err = rows3.Scan(&powtorzenia_cel,&ciezar_cel)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
rows3, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var liczba_treningow int
|
|
err = rows3.Scan(&liczba_treningow)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
|
|
rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows5.Next() {
|
|
var id_cwiczenia int
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
|
|
|
|
err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{
|
|
|
|
ciezar_cel=ciezar_cel+ciezar_dodaj
|
|
powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj
|
|
|
|
rows, err := db.Query("INSERT INTO baza.trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."}
|
|
|
|
}else{
|
|
|
|
rows, err := db.Query("INSERT INTO baza.trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows.Close()
|
|
p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."}
|
|
|
|
}}}}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
p = Plan{Opis: "Podane dane muszą być cyframi mniejszymi od 999"}
|
|
|
|
}}else if Akcja=="zatwierdz" && liczba!="0"{
|
|
p = Plan{Opis: "Dodano juz"}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
rows2, err := db.Query("SELECT rodzaj_treningu FROM ustawienia where id_uzytkownik=?", getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
emp2 := Plan_rodzaj{}
|
|
res2 := []Plan_rodzaj{}
|
|
for rows2.Next() {
|
|
var rodzaj_treningu string
|
|
err = rows2.Scan(&rodzaj_treningu)
|
|
if err != nil {panic(err.Error())}
|
|
emp2.Rodzaj_treningu = rodzaj_treningu
|
|
|
|
|
|
|
|
rows, err := db.Query("SELECT N.serie, N.powtorzenia, P.nazwa, N.ciezar, N.id_cwiczenie FROM trening_cel AS N, cwiczenie AS P WHERE P.id_cwiczenie = N.id_cwiczenie and id_uzytkownik like ?", getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
emp := Plan{}
|
|
res := []Plan{}
|
|
for rows.Next() {
|
|
|
|
|
|
var serie int
|
|
var powtorzenia_cel int
|
|
var nazwa string
|
|
var ciezar_cel int
|
|
|
|
var id_cwiczenie int
|
|
|
|
err = rows.Scan(&serie, &powtorzenia_cel, &nazwa, &ciezar_cel, &id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rows34, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=?",getCookie(w,r),id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
for rows34.Next() {
|
|
|
|
var sprawdzenie int
|
|
|
|
err = rows34.Scan(&sprawdzenie)
|
|
|
|
|
|
if sprawdzenie!=0{
|
|
rows3, err := db.Query("select powtorzenia_cel, ciezar_cel,MAX(data_t) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=? group by powtorzenia_cel,ciezar_cel",getCookie(w,r),id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var powtorzenia_cel int
|
|
var ciezar_cel int
|
|
var max string
|
|
err = rows3.Scan(&powtorzenia_cel,&ciezar_cel, &max)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
rows3, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var liczba_treningow int
|
|
err = rows3.Scan(&liczba_treningow)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
|
|
rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie)
|
|
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows5.Next() {
|
|
var id_cwiczenia int
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
|
|
|
|
err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie)
|
|
if err != nil {panic(err.Error())}
|
|
if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{
|
|
|
|
ciezar_cel=ciezar_cel+ciezar_dodaj
|
|
powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj
|
|
|
|
|
|
emp.Serie = serie
|
|
emp.Powtorzenia = powtorzenia_cel
|
|
emp.Nazwa = nazwa
|
|
emp.Ciezar = ciezar_cel
|
|
emp.Id_cwiczenie = id_cwiczenie
|
|
}else{
|
|
|
|
emp.Serie = serie
|
|
emp.Powtorzenia = powtorzenia_cel
|
|
emp.Nazwa = nazwa
|
|
emp.Ciezar = ciezar_cel
|
|
emp.Id_cwiczenie = id_cwiczenie
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
rows3, err := db.Query("select powtorzenia, ciezar from baza.trening_cel where id_uzytkownik=? and id_cwiczenie=?",getCookie(w,r),id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows3.Next() {
|
|
var powtorzenia_cel int
|
|
var ciezar_cel int
|
|
err = rows3.Scan(&powtorzenia_cel,&ciezar_cel)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
rows4, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows4.Next() {
|
|
var liczba_treningow int
|
|
err = rows4.Scan(&liczba_treningow)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
|
|
|
|
rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows5.Next() {
|
|
var id_cwiczenia int
|
|
var ciezar_dodaj int
|
|
var powtorzenie_dodaj int
|
|
var co_ile_ciezar int
|
|
var co_ile_powtorzenie int
|
|
|
|
|
|
err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{
|
|
|
|
ciezar_cel=ciezar_cel+ciezar_dodaj
|
|
powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj
|
|
|
|
|
|
|
|
|
|
|
|
emp.Serie = serie
|
|
emp.Powtorzenia = powtorzenia_cel
|
|
emp.Nazwa = nazwa
|
|
emp.Ciezar = ciezar_cel
|
|
emp.Id_cwiczenie = id_cwiczenie
|
|
}else{
|
|
|
|
emp.Serie = serie
|
|
emp.Powtorzenia = powtorzenia_cel
|
|
emp.Nazwa = nazwa
|
|
emp.Ciezar = ciezar_cel
|
|
emp.Id_cwiczenie = id_cwiczenie
|
|
}
|
|
}
|
|
}
|
|
}}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res = append(res, emp)
|
|
|
|
}
|
|
emp2.Plan=res
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl.ExecuteTemplate(w, "Index", res2)
|
|
t, _ := template.ParseFiles("komunikat.html")
|
|
t.Execute(w, p)
|
|
|
|
|
|
}
|
|
//autoryzacja-KONIEC
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func logowanieHandler(w http.ResponseWriter, r *http.Request) {
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer db.Close()
|
|
|
|
|
|
|
|
if r.Method == "GET" {
|
|
id_uzytkownik := r.FormValue("cookies")
|
|
setCookie(w, r, id_uzytkownik)
|
|
p := Plan{Opis: ""}
|
|
t, _ := template.ParseFiles("logowanie.html")
|
|
t.Execute(w, p)
|
|
}
|
|
|
|
|
|
if r.Method == "POST" {
|
|
Login := r.FormValue("Login")
|
|
Haslo := r.FormValue("Haslo")
|
|
|
|
rows, err := db.Query("SELECT COUNT(*) FROM baza.uzytkownicy WHERE login=? and haslo=?", Login, Haslo)
|
|
|
|
if err != nil { panic(err.Error()) }
|
|
for rows.Next() {
|
|
var autoryzacja int
|
|
err = rows.Scan(&autoryzacja)
|
|
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
|
|
if autoryzacja!=0{
|
|
|
|
|
|
rows, err := db.Query("SELECT id_uzytkownik FROM baza.uzytkownicy WHERE login=? and haslo=?", Login, Haslo)
|
|
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
for rows.Next() {
|
|
var id_uzytkownik string
|
|
err = rows.Scan(&id_uzytkownik)
|
|
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
setCookie(w, r, id_uzytkownik)
|
|
p := Plan{Opis: ""}
|
|
t, _ := template.ParseFiles("start.html")
|
|
t.Execute(w, p)}
|
|
|
|
}else{
|
|
p := Plan{Opis: "Podano złe hasło lub login."}
|
|
t, _ := template.ParseFiles("logowanie.html")
|
|
t.Execute(w, p)
|
|
|
|
}}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func opisCwiczenia(w http.ResponseWriter, r *http.Request) {
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
}else{
|
|
|
|
nazwa := r.FormValue("Nazwa")
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {panic(err.Error())}
|
|
defer db.Close()
|
|
|
|
rows, err := db.Query("SELECT opis, rodzaj, Film FROM baza.cwiczenie where nazwa=?", nazwa)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
emp := Cwiczenie{}
|
|
res := []Cwiczenie{}
|
|
for rows.Next() {
|
|
var opis string
|
|
var rodzaj string
|
|
var Film string
|
|
err = rows.Scan(&opis, &rodzaj, &Film)
|
|
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
emp.Opis = opis
|
|
emp.Rodzaj = rodzaj
|
|
if Film!=""{
|
|
emp.Film =Film
|
|
|
|
}
|
|
emp.Nazwa =nazwa
|
|
res = append(res, emp)
|
|
}
|
|
tmpl3.ExecuteTemplate(w, "Index", res)
|
|
//koniec wyświetlanie trenngu
|
|
}}
|
|
|
|
func wynikiHandler(w http.ResponseWriter, r *http.Request) {
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
|
|
}else{
|
|
p := Plan{Opis: ""}
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {panic(err.Error())}
|
|
defer db.Close()
|
|
|
|
if r.Method == "POST" {
|
|
|
|
Nazwa2 := r.FormValue("Nazwa")
|
|
data_t2 := r.FormValue("Data")
|
|
Ciezar2 := r.FormValue("Ciezar")
|
|
Akcja2:= r.FormValue("Akcja")
|
|
|
|
|
|
rows2, err := db.Query("SELECT COUNT(*) FROM baza.trening_rzeczywisty AS A, baza.cwiczenie AS B where B.nazwa=? and A.id_uzytkownik=? and A.data_t=?", Nazwa2,getCookie(w,r), data_t2)
|
|
if err != nil {panic(err.Error())}
|
|
for rows2.Next() {
|
|
var sprawdzanieBaza int
|
|
err = rows2.Scan(&sprawdzanieBaza)
|
|
if err != nil {panic(err.Error()) }
|
|
if sprawdzanieBaza!=0 {
|
|
if Akcja2=="Usun" {
|
|
insert, err := db.Query("delete A from baza.trening_rzeczywisty AS A, baza.cwiczenie AS B where B.nazwa=? and A.id_uzytkownik=? and A.data_t=? and A.id_cwiczenia=B.id_cwiczenie;", Nazwa2,getCookie(w,r), data_t2)
|
|
if err != nil {panic(err.Error())}
|
|
defer insert.Close()
|
|
}else if Ciezar2!="" && Akcja2=="Edytuj" && len(Ciezar2)<4 {
|
|
rows3, err := db.Query("UPDATE baza.trening_rzeczywisty AS A, baza.cwiczenie AS B SET A.ciezar=? where B.nazwa=? and A.id_uzytkownik=? and A.data_t=? and A.id_cwiczenia=B.id_cwiczenie;", Ciezar2, Nazwa2, getCookie(w,r), data_t2)
|
|
if err != nil {panic(err.Error())}
|
|
defer rows3.Close()
|
|
}else{
|
|
|
|
p = Plan{Opis: "Prosze podać cyfry do 999"}
|
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
|
p = Plan{Opis: "Wynik o takiej dacie oraz nazwie nie istanieje w bazie"}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
rows, err := db.Query("SELECT C.nazwa FROM baza.trening_cel AS N, baza.cwiczenie AS C WHERE id_uzytkownik=? and C.id_cwiczenie = N.id_cwiczenie",getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
var i int
|
|
i=0
|
|
emp := ww{}
|
|
res := []ww{}
|
|
for rows.Next() {
|
|
var nazwa string
|
|
err = rows.Scan(&nazwa)
|
|
if err != nil {panic(err.Error())}
|
|
emp.Nazwa=nazwa
|
|
|
|
i++
|
|
emp.NumerCwiczenia=i
|
|
|
|
|
|
|
|
rows2, err := db.Query("SELECT P.ciezar,P.ciezar_cel, P.data_t FROM baza.trening_rzeczywisty AS P, baza.cwiczenie AS C WHERE C.nazwa = ? and C.id_cwiczenie = P.id_cwiczenia and P.id_uzytkownik=?", nazwa,getCookie(w,r))
|
|
|
|
if err != nil {panic(err.Error())}
|
|
emp2 := Wyniki{}
|
|
res2 := []Wyniki{}
|
|
for rows2.Next() {
|
|
var ciezar_rzecz int
|
|
var ciezar_cel int
|
|
var data_t string
|
|
|
|
err = rows2.Scan(&ciezar_rzecz, &ciezar_cel, &data_t)
|
|
if err != nil { panic(err.Error()) }
|
|
emp2.Ciezar_rzecz = ciezar_rzecz
|
|
emp2.Ciezar_cel = ciezar_cel
|
|
emp2.Data_t = data_t
|
|
res2 = append(res2, emp2)
|
|
}
|
|
emp.Wyniki=res2
|
|
|
|
|
|
res = append(res, emp)
|
|
}
|
|
|
|
tmpl4.ExecuteTemplate(w, "Index", res)
|
|
|
|
rows4, err := db.Query("SELECT B.nazwa FROM baza.trening_rzeczywisty as A, cwiczenie as B where B.id_cwiczenie=A.id_cwiczenia and A.id_uzytkownik=? GROUP BY A.id_cwiczenia", getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
|
|
emp2 := Wyniki{}
|
|
res2 := []Wyniki{}
|
|
for rows4.Next() {
|
|
|
|
var nazwa string
|
|
err = rows4.Scan(&nazwa)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
|
|
emp2.Nazwa = nazwa
|
|
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl7.ExecuteTemplate(w, "Index2", res2)
|
|
|
|
t, _ := template.ParseFiles("komunikat.html")
|
|
t.Execute(w, p)
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
func dodaj_cwiczenieHandler(w http.ResponseWriter, r *http.Request) {
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer db.Close()
|
|
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
|
|
}else{
|
|
p := Plan{Opis: ""}
|
|
|
|
if r.Method == "POST" {
|
|
Nazwa := r.FormValue("Nazwa")
|
|
|
|
Rodzaj := r.FormValue("Rodzaj")
|
|
Opis := r.FormValue("Opis")
|
|
Film := r.FormValue("Film")
|
|
|
|
|
|
rows, err := db.Query("SELECT COUNT(*) FROM baza.cwiczenie WHERE nazwa=? and uzytkownik=? or uzytkownik=1", Nazwa,getCookie(w,r))
|
|
|
|
if err != nil {panic(err.Error())}
|
|
var sprawdzanienazwa int
|
|
for rows.Next() {
|
|
|
|
|
|
err = rows.Scan(&sprawdzanienazwa)
|
|
|
|
|
|
|
|
if sprawdzanienazwa==0{
|
|
if blank(Nazwa)==false && blank(Rodzaj)==false && blank(Opis)==false && len(Nazwa)<45 && len(Opis)<400 && len(Film)<150{
|
|
insert, err := db.Query("INSERT INTO baza.cwiczenie ( opis, rodzaj, nazwa, Film, uzytkownik) VALUES ( ?,?,?,?,? )",Opis, Rodzaj, Nazwa, Film,getCookie(w,r))
|
|
|
|
fmt.Println(insert)
|
|
fmt.Println(err)
|
|
}else{
|
|
p = Plan{Opis: "Musisz wypełnić wszystkie pola. Pole film jest opcjonalne. Maksymalna ilośc znaków to: nazwa ćwiczenia-45 znaków, opis-400 znaków i film-150 znaków"}
|
|
|
|
}
|
|
}else{
|
|
|
|
p = Plan{Opis: "Cwiczenie o tej nazwie juz istnieje."}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
rows2, err := db.Query("select nazwa from baza.cwiczenie where uzytkownik=?",getCookie(w,r))
|
|
emp2 := Plan{}
|
|
res2 := []Plan{}
|
|
for rows2.Next() {
|
|
var nazwa string
|
|
err = rows2.Scan(&nazwa)
|
|
if err != nil {panic(err.Error()) }
|
|
emp2.Nazwa = nazwa
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl6.ExecuteTemplate(w, "Index", res2)
|
|
t, _ := template.ParseFiles("komunikat.html")
|
|
t.Execute(w, p)
|
|
}}
|
|
|
|
|
|
func usun_cwiczenieHandler(w http.ResponseWriter, r *http.Request) {
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer db.Close()
|
|
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
|
|
}else{
|
|
|
|
if r.Method == "POST" {
|
|
NazwaUsun := r.FormValue("NazwaUsun")
|
|
|
|
insert, err := db.Query("delete A from baza.trening_rzeczywisty as A, baza.cwiczenie as B where B.id_cwiczenie=A.id_cwiczenia and B.nazwa=? and B.uzytkownik=?", NazwaUsun,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer insert.Close()
|
|
|
|
|
|
|
|
insert2, err := db.Query("delete A from baza.zmiany as A, baza.cwiczenie as B where B.id_cwiczenie=A.id_cwiczenia and B.nazwa=? and B.uzytkownik=?", NazwaUsun,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer insert2.Close()
|
|
insert3, err := db.Query("delete A from baza.trening_cel as A, baza.cwiczenie as B where B.id_cwiczenie=A.id_cwiczenie and B.nazwa=? and B.uzytkownik=?", NazwaUsun,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer insert3.Close()
|
|
|
|
|
|
|
|
insert4, err := db.Query("delete from baza.cwiczenie where nazwa=? and uzytkownik=?", NazwaUsun,getCookie(w,r))
|
|
if err != nil {panic(err.Error())}
|
|
defer insert4.Close()
|
|
}
|
|
|
|
|
|
rows2, err := db.Query("select nazwa from baza.cwiczenie where uzytkownik=?",getCookie(w,r))
|
|
emp2 := Plan{}
|
|
res2 := []Plan{}
|
|
for rows2.Next() {
|
|
var nazwa string
|
|
err = rows2.Scan(&nazwa)
|
|
if err != nil {panic(err.Error()) }
|
|
emp2.Nazwa = nazwa
|
|
res2 = append(res2, emp2)
|
|
}
|
|
tmpl6.ExecuteTemplate(w, "Index", res2)
|
|
|
|
}}
|
|
|
|
|
|
|
|
func rejestracja(w http.ResponseWriter, r *http.Request) {
|
|
// p := Uzytkownicy{Url: "/start"}
|
|
// t, _ := template.ParseFiles("pocz.html")
|
|
// t.Execute(w, p)
|
|
|
|
var IsLetter = regexp.MustCompile(`^[0-9a-zA-Z]+$`).MatchString
|
|
|
|
|
|
if r.Method == "POST" {
|
|
Login := r.FormValue("Login")
|
|
Haslo := r.FormValue("Haslo")
|
|
Haslo2 := r.FormValue("Haslo2")
|
|
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {panic(err.Error())}
|
|
defer db.Close()
|
|
|
|
|
|
|
|
if Haslo2==Haslo {
|
|
|
|
if len(Login)>0 && len(Haslo)>0 && len(Login)<7 && len(Haslo)<7 && IsLetter(Haslo) && IsLetter(Login) {
|
|
|
|
|
|
|
|
|
|
rows, err := db.Query("SELECT COUNT(*) FROM baza.uzytkownicy WHERE login=?", Login)
|
|
|
|
var login int
|
|
for rows.Next() {
|
|
err = rows.Scan(&login)
|
|
if err != nil {panic(err.Error())}
|
|
|
|
}
|
|
|
|
if login==0{
|
|
|
|
|
|
|
|
insert, err := db.Query("INSERT INTO uzytkownicy (login, haslo) VALUES ( ?,? )",Login, Haslo)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer insert.Close()
|
|
|
|
|
|
|
|
|
|
p := komunikat{Opis: ""}
|
|
t, _ := template.ParseFiles("logowanie.html")
|
|
t.Execute(w, p)
|
|
}else{
|
|
p := komunikat{Opis: "Ten login jest już zajęty"}
|
|
t, _ := template.ParseFiles("rejestracja.html")
|
|
t.Execute(w, p)
|
|
|
|
}}else{
|
|
p := komunikat{Opis: "Login i hasło nie mogą być puste, nie mogą mieć wiecej niz 6 znaków i muszą się składać tylko z liter i cyfr"}
|
|
t, _ := template.ParseFiles("rejestracja.html")
|
|
t.Execute(w, p)
|
|
|
|
}}else{
|
|
p := komunikat{Opis: "Hasła muszą być takie same"}
|
|
t, _ := template.ParseFiles("rejestracja.html")
|
|
t.Execute(w, p)}
|
|
|
|
}else{
|
|
p := komunikat{Opis: ""}
|
|
t, _ := template.ParseFiles("rejestracja.html")
|
|
t.Execute(w, p)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func start(w http.ResponseWriter, r *http.Request) {
|
|
p := Uzytkownicy{Url: "/start"}
|
|
t, _ := template.ParseFiles("start.html")
|
|
t.Execute(w, p)
|
|
|
|
|
|
}
|
|
|
|
func wymiary(w http.ResponseWriter, r *http.Request) {
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer db.Close()
|
|
|
|
if getCookie(w,r)=="brak" {
|
|
p := Plan{Opis: "zakładka"}
|
|
t, _ := template.ParseFiles("brakdostepu.html")
|
|
t.Execute(w, p)
|
|
|
|
}else{
|
|
p := Plan{Opis: ""}
|
|
|
|
if r.Method == "POST" {
|
|
nazwa := r.FormValue("Nazwa")
|
|
wymiar := r.FormValue("wymiar")
|
|
Akcja := r.FormValue("Akcja")
|
|
DataEdycja := r.FormValue("DataEdycja")
|
|
|
|
|
|
currentTime := time.Now()
|
|
data:= currentTime.Format("2006-01-02")
|
|
|
|
|
|
|
|
|
|
|
|
rows, err := db.Query("SELECT COUNT(*) FROM baza.wymiary where nazwa=? and data=? and id_uzytkownik=?",nazwa,data, getCookie(w,r))
|
|
|
|
if err != nil {panic(err.Error())}
|
|
|
|
for rows.Next() {
|
|
var istnieje int
|
|
|
|
err = rows.Scan(&istnieje)
|
|
if err != nil {panic(err.Error()) }
|
|
|
|
if istnieje==0 && Akcja=="Dodaj" && IsNumeric(wymiar) && len(wymiar)<4{
|
|
insert, err := db.Query("INSERT INTO baza.wymiary ( id_uzytkownik, wymiar, nazwa, data) VALUES ( ?,?,?,?)",getCookie(w,r), wymiar, nazwa, data)
|
|
if err != nil { panic(err.Error())}
|
|
defer insert.Close()
|
|
|
|
}else if Akcja=="Edytuj" && IsNumeric(wymiar) {
|
|
|
|
|
|
if istnieje!=0 {
|
|
UPDATE, err := db.Query("UPDATE baza.wymiary set wymiar=? where nazwa=? and data=? and id_uzytkownik=?",wymiar, nazwa, DataEdycja, getCookie(w,r))
|
|
if err != nil { panic(err.Error())}
|
|
defer UPDATE.Close()
|
|
}else{
|
|
p = Plan{Opis: "Podana data nie istnieje."}
|
|
|
|
}
|
|
|
|
|
|
}else if Akcja=="Usun"{
|
|
DELETE, err := db.Query("DELETE from baza.wymiary where nazwa=? and id_uzytkownik=?", nazwa, getCookie(w,r))
|
|
if err != nil { panic(err.Error())}
|
|
defer DELETE.Close()
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
p = Plan{Opis: "Wszytkie pola formularza muszą być uzupełnione.Podane dane muszą być cyframi mniejszymi od 999."}
|
|
}}}
|
|
|
|
rows, err := db.Query("SELECT nazwa from wymiary where id_uzytkownik=? group by nazwa",getCookie(w,r))
|
|
|
|
if err != nil {panic(err.Error())}
|
|
emp := Wymiary{}
|
|
res := []Wymiary{}
|
|
for rows.Next() {
|
|
var nazwa string
|
|
|
|
err = rows.Scan(&nazwa)
|
|
if err != nil {panic(err.Error()) }
|
|
emp.Nazwa = nazwa
|
|
|
|
rows2, err := db.Query("SELECT wymiar, data from wymiary where nazwa=? and id_uzytkownik=?",nazwa, getCookie(w,r))
|
|
|
|
if err != nil {panic(err.Error())}
|
|
emp2 := Wymiary_2{}
|
|
res2 := []Wymiary_2{}
|
|
for rows2.Next() {
|
|
var wymiar int
|
|
var data string
|
|
|
|
err = rows2.Scan(&wymiar, &data)
|
|
if err != nil {panic(err.Error()) }
|
|
emp2.Wymiar = wymiar
|
|
emp2.Data = data
|
|
|
|
|
|
res2= append(res2, emp2)
|
|
}
|
|
emp.Wymiary_2=res2
|
|
|
|
res= append(res, emp)
|
|
}
|
|
tmpl5.ExecuteTemplate(w, "Index", res)
|
|
t, _ := template.ParseFiles("komunikat.html")
|
|
t.Execute(w, p)
|
|
|
|
}
|
|
}
|
|
|
|
|
|
func main() {
|
|
db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer db.Close()
|
|
/*
|
|
//wpisywanie do bazy
|
|
insert, err := db.Query("INSERT INTO trening_rzeczywisty VALUES ( 1, 1, 1, 22, 33, 44 )")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer insert.Close()
|
|
*/
|
|
|
|
//wybieranie z bazy
|
|
/* results, err := db.Query("SELECT login FROM uzytkownicy")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
|
|
for results.Next() {
|
|
var login string
|
|
err = results.Scan(&login)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
}*/
|
|
/*
|
|
//usuwanie wiersza z bazy
|
|
insertq, err := db.Query("DELETE FROM uzytkownicy WHERE id_uzytkownik=4")
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
defer insertq.Close()
|
|
*/
|
|
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
|
|
http.HandleFunc("/trening/", treningHandler)
|
|
// http.HandleFunc("/wypisz_usun/", wypiszHandler_usun)
|
|
http.HandleFunc("/logowanie", logowanieHandler)
|
|
http.HandleFunc("/planer/", planowanieTreningu)
|
|
http.HandleFunc("/cwiczenie/", opisCwiczenia)
|
|
http.HandleFunc("/wyniki/", wynikiHandler)
|
|
http.HandleFunc("/dodajcwiczenie/", dodaj_cwiczenieHandler)
|
|
http.HandleFunc("/usuncwiczenie/", usun_cwiczenieHandler)
|
|
http.HandleFunc("/rejestracja/", rejestracja)
|
|
http.HandleFunc("/wymiary/", wymiary)
|
|
http.HandleFunc("/zmianaUstawien/", zmianaUstawien)
|
|
|
|
|
|
http.HandleFunc("/start/", start)
|
|
http.ListenAndServe(":8099", nil)
|
|
|
|
}
|
|
|
|
|