diff --git a/data.go b/data.go
new file mode 100644
index 0000000..a49ef13
--- /dev/null
+++ b/data.go
@@ -0,0 +1,29 @@
+package main
+
+func (a *App) GetAllBrands() ([]string, error) {
+ var brands []string
+ var err error
+ for row := range a.db.Query("SELECT brand FROM assets GROUP BY brand ORDER BY brand ASC").Range(&err) {
+ var name string
+ err := row.Scan(&name)
+ if err != nil {
+ return nil, err
+ }
+ brands = append(brands, name)
+ }
+ return brands, err
+}
+
+func (a *App) GetAllRAMTypes() ([]string, error) {
+ var types []string
+ var err error
+ for row := range a.db.Query("SELECT type FROM info_ram GROUP BY type ORDER BY type ASC").Range(&err) {
+ var name string
+ err := row.Scan(&name)
+ if err != nil {
+ return nil, err
+ }
+ types = append(types, name)
+ }
+ return types, err
+}
diff --git a/main.go b/main.go
index ad196d6..0a073c1 100644
--- a/main.go
+++ b/main.go
@@ -53,7 +53,7 @@ func main() {
r.GET("/", app.getIndex)
r.GET("/device", app.getDevice)
r.GET("/create", app.getCreateDevice)
- //r.POST("/create", app.postCreateDevice)
+ r.POST("/create", app.postCreateDevice)
err = r.Run()
if err != nil {
log.Fatalf("error serving website: %v", err)
diff --git a/migrations/1_initial.sql b/migrations/1_initial.sql
index c035325..d6a9938 100644
--- a/migrations/1_initial.sql
+++ b/migrations/1_initial.sql
@@ -11,3 +11,9 @@ create table worklog (
timestamp integer not null,
action text not null
) strict;
+
+create table info_ram (
+ asset integer not null unique,
+ capacity integer,
+ type text
+) strict;
diff --git a/static/scripts.js b/static/scripts.js
new file mode 100644
index 0000000..34e9308
--- /dev/null
+++ b/static/scripts.js
@@ -0,0 +1,16 @@
+function newOption(elementId, name) {
+ var el = document.getElementById(elementId)
+ if (el.value !== "New...") {
+ return
+ }
+
+ var newValue = window.prompt("Enter " + name + " Name")
+ if (newValue === null) {
+ return;
+ }
+ var child = document.createElement("option")
+ child.value = newValue
+ child.innerText = newValue
+ el.prepend(child)
+ el.value = newValue
+}
diff --git a/templates/create_device.gohtml b/templates/create_device.gohtml
index e3e1151..3825755 100644
--- a/templates/create_device.gohtml
+++ b/templates/create_device.gohtml
@@ -1,37 +1,8 @@
{{- /*gotype: main.CreateDeviceVM */}}
{{define "create_device"}}
-{{template "header" "Create Device"}}
-
-{{/*
*/}}
-
-
- {{template "create_device_link" createDeviceLink "ram" "Random Access Memory" .Qr}}
-
-
-{{template "footer"}}
-{{end}}
-
-{{define "create_device_link"}}
- {{if .Qr}}
- Random Access Memory
- {{- else}}
- Random Access Memory
- {{- end}}
+ {{if .Type}}
+ {{template "create_device_step2" .}}
+ {{else}}
+ {{template "create_device_step1" .}}
+ {{end}}
{{end}}
diff --git a/templates/create_device_step1.gohtml b/templates/create_device_step1.gohtml
new file mode 100644
index 0000000..c100beb
--- /dev/null
+++ b/templates/create_device_step1.gohtml
@@ -0,0 +1,16 @@
+{{- /*gotype: main.CreateDeviceVM */}}
+{{define "create_device_step1"}}
+{{template "header" "Create Device - Choose Device Type"}}
+
+ {{template "create_device_link" createDeviceLink "ram" "Random Access Memory" .Qr}}
+
+{{template "footer"}}
+{{end}}
+
+{{define "create_device_link"}}
+ {{if .Qr}}
+ Random Access Memory
+ {{- else}}
+ Random Access Memory
+ {{- end}}
+{{end}}
diff --git a/templates/create_device_step2.gohtml b/templates/create_device_step2.gohtml
new file mode 100644
index 0000000..92aee0b
--- /dev/null
+++ b/templates/create_device_step2.gohtml
@@ -0,0 +1,73 @@
+{{- /*gotype: main.CreateDeviceVM */}}
+{{define "create_device_step2"}}
+{{template "header" "Create Device - Enter Device Data"}}
+
+{{template "footer"}}
+{{end}}
diff --git a/templates/header.gohtml b/templates/header.gohtml
index 907f15a..ba9c862 100644
--- a/templates/header.gohtml
+++ b/templates/header.gohtml
@@ -1,10 +1,11 @@
{{define "header"}}
- PC Inventory{{if .}} - {{.}}{{- end}}
+ PC Inventory{{if .}} - {{.}}{{end}}
+
-PC Inventory - {{.}}
+