unknown 4 سال پیش
والد
کامیت
ada63e7c58
5فایلهای تغییر یافته به همراه57 افزوده شده و 0 حذف شده
  1. 25 0
      cartridges.html
  2. 1 0
      generate.html
  3. 25 0
      main.go
  4. 6 0
      models.go
  5. BIN
      printer.db

+ 25 - 0
cartridges.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<title>Картриджа</title>
+</head>
+<body>
+	<p>Список картриджей и их количество:</p>
+	<table>
+		<tr>
+			<td>Наименование</td>
+			<td>Количество</td>
+		</tr>
+		{{ range . }}
+		<tr>
+			{{ range .Name }}
+			<td>{{ . }}</td>
+			{{ end }}
+			{{ range .Quantity }}
+			<td>{{ . }}</td>
+			{{ end }}
+		</tr>
+		{{ end }}
+	</ul>
+</body>
+</html>

+ 1 - 0
generate.html

@@ -44,5 +44,6 @@
 	</form>
 	<br><br>
 	<input type="button" value="Найти совместимый картридж" onclick="location.href = '/compatible'">
+	<input type="button" value="Состояние картриджей" onclick="location.href = '/cartridges'">
 </body>
 </html>

+ 25 - 0
main.go

@@ -37,8 +37,10 @@ func main() {
 	r.HandleFunc("/cartridgeOfPrinter", AddCartridgeOfPrinter)
 	r.HandleFunc("/compatible", FindCompatibleCartridges)
 	r.HandleFunc("/printer/{printerName}", PrinterPage)
+	r.HandleFunc("/cartridges", CartridgePage)
 	fmt.Println("Server is listening...")
 
+
 	http.Handle("/", r)
 	http.ListenAndServe(":" + port, nil)
 }
@@ -61,6 +63,29 @@ func generateCompatible(w http.ResponseWriter, r *http.Request){
 	fmt.Println("Removed file " + filename + ".png")
 }
 
+func CartridgePage(w http.ResponseWriter, r *http.Request){
+	db, err := gorm.Open(sqlite.Open("printer.db"), &gorm.Config{})
+	if err != nil {
+		fmt.Println("Error during opening DB")
+	} else {
+		var cartridges []Cartridges
+		db.Find(&cartridges)
+		var names []string
+		var quantities []uint
+		for _, v := range cartridges{
+			names = append(names, v.Name)
+			quantities = append(quantities, v.Quantity)
+		}
+
+		data := CartridgesOutput{
+			Name: names,
+			Quantity: quantities,
+		}
+		tmpl, _ := template.ParseFiles("cartridges.html")
+		tmpl.Execute(w, data)
+	}
+}
+
 func PrinterPage(w http.ResponseWriter, r *http.Request) {
 	db, err := gorm.Open(sqlite.Open("printer.db"), &gorm.Config{})
 

+ 6 - 0
models.go

@@ -6,6 +6,11 @@ type ViewData struct {
 	CartridgeNames []string
 }
 
+type CartridgesOutput struct{
+	Name []string
+	Quantity []uint
+}
+
 type Output struct {
 	PrinterName string
 	Cartridges  []string
@@ -19,6 +24,7 @@ type Printers struct {
 type Cartridges struct {
 	ID   uint   `gorm:"AUTO_INCREMENT;type:integer"`
 	Name string `gorm:"type:text"`
+	Quantity uint `gorm:"type:integer"`
 }
 
 type Cartridgeofprinter struct {

BIN
printer.db