Skip to content

Instantly share code, notes, and snippets.

View jfjensen's full-sized avatar

Jes Fink-Jensen jfjensen

View GitHub Profile
@jfjensen
jfjensen / content.tmpl
Created March 10, 2022 18:26
The "content" template
{{define "content" -}}
<div class="container">
<h3 class="title"> organic products </h3>
<div class="products-container">
{{range $index, $item :=.}}
<div class="product" data-name="p-{{$index}}">
<img src="{{$item.Img}}" alt="">
<h3>{{$item.Name}}</h3>
<div class="price">{{$item.Price}}</div>
</div>
@jfjensen
jfjensen / footer.tmpl
Created March 10, 2022 18:28
The "footer" template
@jfjensen
jfjensen / main.go
Created March 14, 2022 21:32
A simple Desktop Data-entry app written in Golang using the Fyne package
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/layout"
@jfjensen
jfjensen / loadjson.go
Created March 15, 2022 12:14
The loadJsonData() function
func loadJsonData() []string {
fmt.Println("Loading data from JSON file")
input, _ := ioutil.ReadFile("data.json")
var data []string
json.Unmarshal(input, &data)
fmt.Println(data)
return data
}
@jfjensen
jfjensen / savejson.go
Created March 15, 2022 12:16
The saveJsonData() function
func saveJsonData(data binding.StringList) {
fmt.Println("Saving data to JSON file")
d, _ := data.Get()
jsonData, _ := json.Marshal(d)
ioutil.WriteFile("data.json", jsonData, 0644)
}
@jfjensen
jfjensen / setupapp.go
Created March 15, 2022 12:18
Setting up the desktop app
myApp := app.New()
myWindow := myApp.NewWindow("List Data")
loadedData := loadJsonData()
data := binding.NewStringList()
data.Set(loadedData)
defer saveJsonData(data)
@jfjensen
jfjensen / list.go
Last active March 15, 2022 12:23
Creating a widget to list our data items
list := widget.NewListWithData(data,
func() fyne.CanvasObject {
return widget.NewLabel("template")
},
func(i binding.DataItem, o fyne.CanvasObject) {
o.(*widget.Label).Bind(i.(binding.String))
})
@jfjensen
jfjensen / updatedeleteitem.go
Last active March 15, 2022 12:37
When a list item is clicked, a window pops up that allows you to update or delete the item...
list.OnSelected = func(id widget.ListItemID) {
list.Unselect(id)
d, _ := data.GetValue(id)
w := myApp.NewWindow("Edit Data")
itemName := widget.NewEntry()
itemName.Text = d
updateData := widget.NewButton("Update", func() {
data.SetValue(id, itemName.Text)
@jfjensen
jfjensen / additem.go
Last active March 15, 2022 12:47
Create a button to add an item to the data list
add := widget.NewButton("Add", func() {
w := myApp.NewWindow("Add Data")
itemName := widget.NewEntry()
addData := widget.NewButton("Add", func() {
data.Append(itemName.Text)
w.Close()
})
@jfjensen
jfjensen / setcontentsmainwindow.go
Created March 15, 2022 12:52
Here we set the contents of the main window of our app.
exit := widget.NewButton("Quit", func() {
myWindow.Close()
})
myWindow.SetContent(container.NewBorder(nil, container.New(layout.NewVBoxLayout(), add, exit), nil, nil, list))
myWindow.Resize(fyne.NewSize(400, 600))
myWindow.SetMaster()
myWindow.CenterOnScreen()
myWindow.ShowAndRun()