Browse Source

switched to a new index page template - newindex.html

TooManySugar 3 years ago
parent
commit
497f6f866f
5 changed files with 243 additions and 9 deletions
  1. 48 8
      cmd/web/handlers.go
  2. 5 1
      cmd/web/main.go
  3. 142 0
      ui/templates/newindex.html
  4. 45 0
      ui/templates/torrententry.html
  5. 3 0
      ui/templates/torrentlist.html

+ 48 - 8
cmd/web/handlers.go

@@ -4,19 +4,26 @@ import (
 	"fmt"
 	"html/template"
 
-	// "io"
 	"net/http"
 	"strconv"
 
 	"github.com/gorilla/mux"
 )
 
+// Struct for torrent entry in 'New torrents' list 
+type Entry struct {
+	Num int
+	Link string
+}
+
+// indexHandler handels index page
 func indexHandler(w http.ResponseWriter, r *http.Request) {
 	data := struct {
 		User     string
 		Password string
 		Title    string
 		Items    []string
+		Entrys 	 []Entry
 	}{
 		User:  "",
 		Title: "My page",
@@ -45,13 +52,14 @@ func indexHandler(w http.ResponseWriter, r *http.Request) {
 		}
 	}
 
-	/*
-		fmt.Println(data.User)
-		fmt.Println(data.Password)
-	*/
+	// fmt.Println(data.User)
+	// fmt.Println(data.Password)
 
-	tindexTemplate, err := template.New("").ParseFiles(INDEX_TEMPLATE, "ui\\templates\\placeholder.html")
+	// tindexTemplate, err := template.New("").ParseFiles(INDEX_TEMPLATE, "ui\\templates\\placeholder.html")
 
+	tindexTemplate, err := template.New("").ParseFiles(NewIndexTemplate, TorrentEntry, TorrentList)
+
+	
 	if err != nil {
 		fmt.Println("Error in templates loading")
 		fmt.Println(err)
@@ -59,9 +67,41 @@ func indexHandler(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 
-	err = tindexTemplate.ExecuteTemplate(w, "index", data)
+	data.Entrys = append(data.Entrys, Entry{Num: 54, Link: "/files/torrents/2torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 10, Link: "/files/torrents/1torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 23, Link: "/files/torrents/3torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 82, Link: "/files/torrents/4torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 12, Link: "/files/torrents/5torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 98, Link: "/files/torrents/6torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 18, Link: "/files/torrents/7torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 35, Link: "/files/torrents/8torrent.torrent"})
+	data.Entrys = append(data.Entrys, Entry{Num: 4,  Link: "/files/torrents/9torrent.torrent"})
+
+
+	// LastTorrents, err := dBConnector.SelectTorrents(10)
+	// if err != nil {
+	// 	fmt.Println(err)
+	// }
+	// for _, torrent := LastTorrents  {
+	//	torrentTopic, err := dBConnector.GetTorrentTopic(torrent.Hash)
+	// 	if err != nil {
+	// 		fmt.Println(err)
+	// 		continue
+	// 	}
+	// 	torrentEntry := Entry{
+	// 		Title:       torrentTopic.Title,
+	// 		Desc:        torrentTopic.Desc,
+	// 		TopicLink:   torrentTopic.Link,
+	// 		Endorsments: torrent.Endors,
+	// 		TorrentLink: GenTorrentLink(torrent.Hash),
+	// 	}
+	// 	data.Entrys = append(data.Entrys, torrentEntry)
+	// }
+
+	err = tindexTemplate.ExecuteTemplate(w, "newindex", data)
 	if err != nil {
 		fmt.Println(err)
+		w.Write([]byte("Internal server error"))
 	}
 }
 
@@ -108,7 +148,7 @@ func logInPostHandler(w http.ResponseWriter, r *http.Request) {
 		}
 		fmt.Printf("Login error")
 		logInTemplate.Execute(w, data)
-		//w.Write([]byte("Login error"))
+		// w.Write([]byte("Login error"))
 	}
 
 }

+ 5 - 1
cmd/web/main.go

@@ -14,7 +14,11 @@ import (
 
 const (
 	NOMYSQL        = false
-	INDEX_TEMPLATE = "ui\\templates\\index.html" //TODO в var структуру с парсом из файла JSON
+
+	//TODO в var структуру с парсом из файла JSON
+	NewIndexTemplate = "ui\\templates\\newindex.html"
+	TorrentList = "ui\\templates\\torrentlist.html"
+	TorrentEntry = "ui\\templates\\torrententry.html"
 )
 
 var (

+ 142 - 0
ui/templates/newindex.html

@@ -0,0 +1,142 @@
+{{define "newindex"}}
+<!DOCTYPE html>
+
+<html lang="ru">
+
+    <head>
+        <meta charset="UTF-8">
+        <meta name="" >
+        <title>Bootlegs.su INDEX</title>
+
+        <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
+    </head>
+
+    <body class="min-h-screen bg-gray-200">
+        <header class="fixed lg:mx-auto w-full h-18 z-40" >
+            <div class="lg:w-9/12 w-full h-full lg:mx-auto bg-indigo-500 lg:rounded-b-3xl shadow-md">
+                <div class="grid grid-cols-5 divide-x divide-indigo-300 h-full px-2 pb-2  text-center font-sans font-semibold text-2xl text-gray-100 text-opacity-9s0">
+                    <div class="container h-full">
+                       <div class="container h-full p-2">
+                           <a href="">
+                               <div class="container h-full rounded-md hover:bg-indigo-600 hover:bg-opacity-20 hover:text-gray-200">
+                                    <div class="container py-2">
+                                        Главная
+                                    </div>
+                                </div>
+                           </a>
+                        </div>
+                    </div>
+                    <div class="container h-full">
+                        <div class="container h-full p-2">
+                            <a href="torrents.html">
+                                <div class="container h-full rounded-md hover:bg-indigo-600 hover:bg-opacity-20 hover:text-gray-200">
+                                    <div class="container py-2">
+                                        Торренты
+                                    </div>
+                                </div>
+                            </a>
+                         </div>
+                     </div>
+                     <div class="container h-full">
+                        <div class="container h-full p-2">
+                            <a href="stats.html">
+                                <div class="container h-full rounded-md hover:bg-indigo-600 hover:bg-opacity-20 hover:text-gray-200">
+                                    <div class="container py-2">
+                                        Статистика
+                                    </div>
+                                </div>
+                            </a>
+                         </div>
+                     </div>
+                     <div class="container h-full">
+                        <div class="container h-full p-2">
+                            <a href="news.html">
+                                <div class="container h-full rounded-md hover:bg-indigo-600 hover:bg-opacity-20 hover:text-gray-200">
+                                    <div class="container py-2">
+                                        Новости
+                                    </div>
+                                </div>
+                            </a>
+                         </div>
+                     </div>
+                     <div class="container h-full">
+                        <div class="container h-full p-2">
+                            <a href="forum.html">
+                                <div class="container h-full rounded-md hover:bg-indigo-600 hover:bg-opacity-20 hover:text-gray-200">
+                                    <div class="container py-2">
+                                        Форум
+                                    </div>
+                                </div>
+                            </a>
+                         </div>
+                     </div>
+                </div>
+            </div>
+
+        </header>
+
+        <div class="container w-auto lg:w-9/12 mx-auto pt-19">
+            <div class="container w-auto mx-8 pt-20 pb-5 bg-white bg-opacity-80 rounded-b-md shadow-md">
+
+                <div class="container w-auto h-auto mx-11 mt-7 px-5 py-3  bg-red-100 shadow-lg rounded-md bg-opacity-100">
+                    <div class="container">
+                        <div class="flex flex-col ">
+                            <div class="font-bold text-3xl mb-3">Последние новости</div>
+                            <div class="grid col-1 divide-y-2 divide-red-900">
+                                <div class="p-2 w-full">
+                                    <div class="w-4/5 text-xl"> <!-- Template for messages start-->
+                                        Пользователям, у которых возникают проблемы с регистрацией: не используйте при регистрации адрес почты на mail.ru, вводите любой другой адрес (можно вымышленный)
+                                    </div>
+                                    <div class="flex container w-full">
+                                        <div class="w-full"></div>
+                                        <div class="flex-none">
+                                            Админ, 3 Февраля 2005
+                                        </div>
+                                    </div> <!-- Template for messages end-->
+                                </div>
+                                <div class="p-2 text-xl">Дорогие друзья, если у вас не качается раздача, при этом вы видите, что сиды явно присутствуют и у всех остальных нормально качается - проверьте, не пользуетесь ли вы случайно версией uTorrent 3.4.2 (или более поздней), и если это так - поставьте более раннюю версию и не обновляйтесь без необходимости. Ждать, что начнет качаться само, - бесполезно!</div>
+                                <div class="p-2 text-xl">Текст</div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="container w-auto h-23 mx-11 mt-10 px-5 py-3 font-bold text-3xl">
+                    Новые торренты
+                </div>
+                {{template "torrentlist" .}}
+            </div>
+        </div>
+
+        <footer class="container w-100 pt-4 pb-2 mx-auto text-center text-xs">
+            Курсовая работа 2021
+        </footer>
+
+
+    <body>
+    <style type=text/css>
+        .trapezoid {
+            border-style: solid;
+            top: 0px;
+            right: 0px;
+            margin-left: auto;
+            margin-right: 0px;
+            width: 10px;
+            box-sizing: content-box;
+            border-width: 0 0 104px 8em;
+            border-color: #3b82f6 transparent;
+            box-sizing: content-box;
+        }
+
+        .tcover {
+            width: 120px;
+            height: 180px;
+            top: 3px;
+            left: 71px;
+            -webkit-transform: rotate(51deg);
+            -moz-transform: rotate(51deg);
+            -o-transform: rotate(51deg);
+            transform: rotate(51deg);
+        }
+    </style>
+</html>
+{{end}}

+ 45 - 0
ui/templates/torrententry.html

@@ -0,0 +1,45 @@
+    {{define "torrententry"}}
+    <div class="flex flex-row container w-auto h-50 mx-11 my-6 bg-white shadow-lg rounded-md bg-opacity-100">
+        <div class="flex-grow">
+            <a class="" href="#">
+                <div class="flex flex-row flex-grow">
+                    <div class="pl-5 py-3">
+                        <div class="grid col-1  h-20">
+                            <div class="ml-1 font-bold text-xl">
+                            Название
+                            </div>
+                            <div class="ml-3 overflow-hidden">
+                            После своих неудачных {{.Num}} приключений в Порт-Рояле капитан Блад возвращается на Тортугу, не зная, как жить дальше…
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </a>
+        </div>
+        <div class="flex flex-row">
+            <div class="container relative w-40">
+                <a href="#">
+                <div class="h-full">
+                    <div class="absolute trapezoid"></div>
+                </div>
+                </a>
+                <div class="container absolute tcover"></div>
+            </div>
+            <div class="flex xl:w-52 md:w-36 rounded-r-md bg-blue-500 rounded-r-md z-20">
+                <div class="container relative h-full w-full">
+                    <div class="absolute top-1/4 right-1/5 xl:right-10 h-3/5 xl:w-3/5 w-4/5">
+                        <a href="{{.Link}}">
+                            <button class="container bg-white h-2/3 w-full rounded-lg text-lg">
+                                Скачать
+                            </button>
+                        </a>
+                        <div class="container w-full h-full text-center text-gray-900 text-opacity-80 text-xs">
+                            Загрузок: 45
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    {{end}}

+ 3 - 0
ui/templates/torrentlist.html

@@ -0,0 +1,3 @@
+{{define "torrentlist"}}
+{{ range .Entrys }}{{template "torrententry" .}} {{ end }}
+{{end}}