From 60f51303d35138f9e958cf84bf8a46afe7a3169b Mon Sep 17 00:00:00 2001 From: PenguinCabinet Date: Tue, 31 Dec 2024 20:28:20 +0900 Subject: [PATCH] Loading flag --- app_nikki.go | 57 +++++++++++++++-------- frontend/index.html | 2 +- frontend/src/js/main.js | 75 +++++++++++++++++++------------ frontend/wailsjs/go/main/App.d.ts | 10 +++-- frontend/wailsjs/go/main/App.js | 20 ++++++--- frontend/wailsjs/go/models.ts | 2 + main.go | 2 + 7 files changed, 111 insertions(+), 57 deletions(-) diff --git a/app_nikki.go b/app_nikki.go index 07e33a5..b9668a0 100644 --- a/app_nikki.go +++ b/app_nikki.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "io/ioutil" "os" "path" @@ -15,9 +16,10 @@ type Nikki_date_t struct { } type Nikki_t struct { - Fname string - Date Nikki_date_t - Content string + Fname string + Date Nikki_date_t + Content string + Is_loading bool } func (a *App) Add_nikki_today() { @@ -39,18 +41,14 @@ func (a *App) Add_nikki_today() { f.Close() } -func (a *App) Parse_nikki_file(fname string) Nikki_t { - content, err := ioutil.ReadFile(path.Join(a.Setting_data.Nikki_dir, fname)) - if err != nil { - panic(err) - } +func (a *App) Parse_nikki_file_fname(fname string) Nikki_t { Fname_format_golang := TimeFormat_conv(a.Setting_data.Fname_format) - t, err := time.Parse(Fname_format_golang, fname) + t, _ := time.Parse(Fname_format_golang, fname) return Nikki_t{ - Fname: fname, Content: string(content), + Fname: fname, Content: "", Is_loading: true, Date: Nikki_date_t{ Year: t.Year(), Month: int(t.Month()), @@ -75,20 +73,32 @@ func (a *App) Write_nikki_file(v Nikki_t) { } } -func (a *App) Set_nikki(v []Nikki_t) { - for i, e := range v { - if a.Nikki_data[i].Content != e.Content { - a.Nikki_data[i].Content = e.Content - a.Write_nikki_file(a.Nikki_data[i]) - } +func (a *App) Set_nikki(index int, v Nikki_t) { + if a.Nikki_data[index].Content != v.Content { + a.Nikki_data[index].Content = v.Content + a.Write_nikki_file(a.Nikki_data[index]) } } +func (a *App) Load_nikki_content() { + + for i := 0; i < len(a.Nikki_data); i++ { + content, err := ioutil.ReadFile(path.Join(a.Setting_data.Nikki_dir, a.Nikki_data[i].Fname)) + if err != nil { + panic(err) + } + a.Nikki_data[i].Content = string(content) + a.Nikki_data[i].Is_loading = false + } +} + func (a *App) Load_nikki() { + fmt.Printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") var reslut []Nikki_t for _, e := range a.Get_dir_fnames(a.Setting_data.Nikki_dir) { - reslut = append(reslut, a.Parse_nikki_file(e)) + fmt.Printf("%v\n", reslut) + reslut = append(reslut, a.Parse_nikki_file_fname(e)) } sort.SliceStable(reslut, func(i, j int) bool { @@ -101,9 +111,20 @@ func (a *App) Load_nikki() { return reslut[i].Date.Day > reslut[j].Date.Day }) a.Nikki_data = reslut + fmt.Printf("%v\n", a.Nikki_data) } +/* func (a *App) Get_nikki() []Nikki_t { - return a.Nikki_data + return a.Nikki_data + } +*/ + +func (a *App) Get_nikki(index int) Nikki_t { + return a.Nikki_data[index] +} + +func (a *App) Get_nikki_count() int { + return len(a.Nikki_data) } diff --git a/frontend/index.html b/frontend/index.html index a9f2cd1..e789cbb 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,5 +1,5 @@ - + diff --git a/frontend/src/js/main.js b/frontend/src/js/main.js index 70c10cc..b0a42ea 100644 --- a/frontend/src/js/main.js +++ b/frontend/src/js/main.js @@ -7,7 +7,7 @@ import * as bootstrap from 'bootstrap' // Supports weights 100-900 import '@fontsource/noto-sans-jp'; -import { Get_nikki, Get_setting, Set_nikki, Set_setting, Select_Nikki_dir_Dialog } from '../../wailsjs/go/main/App.js' +import { Get_nikki, Get_nikki_count, Get_setting, Set_nikki, Set_setting, Select_Nikki_dir_Dialog } from '../../wailsjs/go/main/App.js' let Nikki_data = [] let Setting_data = {} @@ -21,8 +21,8 @@ function Update_nikki_front(data) { let Nikki_move_index = 0; function Nikki_move_prev() { Nikki_move_index++; - if (Nikki_move_index >= Nikki_data.length) - Nikki_move_index = Nikki_data.length - 1; + if (Nikki_move_index >= Get_nikki_count()) + Nikki_move_index = Get_nikki_count() - 1; } function Nikki_move_next() { Nikki_move_index--; @@ -32,48 +32,49 @@ function Nikki_move_next() { function Nikki_move_today() { Nikki_move_index = 0; } -function Nikki_move_prev_month() { - if (Nikki_data[Nikki_move_index].Date.Year == 0) { +async function Nikki_move_prev_month() { + if ((await Get_nikki(Nikki_move_index)).Date.Year == 0) { Nikki_move_prev(); return; } let target_nikki_date = new Date( - Nikki_data[Nikki_move_index].Date.Year, - Nikki_data[Nikki_move_index].Date.Month, - Nikki_data[Nikki_move_index].Date.Day, + (await Get_nikki(Nikki_move_index)).Date.Year, + (await Get_nikki(Nikki_move_index)).Date.Month, + (await Get_nikki(Nikki_move_index)).Date.Day, ); target_nikki_date.setMonth(target_nikki_date.getMonth() - 1); while ( target_nikki_date < (new Date( - Nikki_data[Nikki_move_index].Date.Year, - Nikki_data[Nikki_move_index].Date.Month, - Nikki_data[Nikki_move_index].Date.Day, + (await Get_nikki(Nikki_move_index)).Date.Year, + (await Get_nikki(Nikki_move_index)).Date.Month, + (await Get_nikki(Nikki_move_index)).Date.Day, )) - && Nikki_move_index < Nikki_data.length - 1) { + && Nikki_move_index < Get_nikki_count() - 1) { Nikki_move_index++; } - if (Nikki_move_index >= Nikki_data.length) - Nikki_move_index = Nikki_data.length - 1; + if (Nikki_move_index >= Get_nikki_count()) + Nikki_move_index = Get_nikki_count() - 1; } -function Nikki_move_next_month() { - if (Nikki_data[Nikki_move_index].Date.Year == 0) { +async function Nikki_move_next_month() { + Nikki_data + if ((await Get_nikki(Nikki_move_index)).Date.Year == 0) { Nikki_move_next(); return; } let target_nikki_date = new Date( - Nikki_data[Nikki_move_index].Date.Year, - Nikki_data[Nikki_move_index].Date.Month, - Nikki_data[Nikki_move_index].Date.Day, + (await Get_nikki(Nikki_move_index)).Date.Year, + (await Get_nikki(Nikki_move_index)).Date.Month, + (await Get_nikki(Nikki_move_index)).Date.Day, ); target_nikki_date.setMonth(target_nikki_date.getMonth() + 1); while ( target_nikki_date > (new Date( - Nikki_data[Nikki_move_index].Date.Year, - Nikki_data[Nikki_move_index].Date.Month, - Nikki_data[Nikki_move_index].Date.Day, + (await Get_nikki(Nikki_move_index)).Date.Year, + (await Get_nikki(Nikki_move_index)).Date.Month, + (await Get_nikki(Nikki_move_index)).Date.Day, )) && Nikki_move_index > 0) { Nikki_move_index--; @@ -88,14 +89,24 @@ async function Select_Nikki_dir() { document.getElementById("Nikki_dir").value = path; } -function Update() { - if (Nikki_data != null) { +async function Update() { + console.log((await Get_nikki(Nikki_index)).Is_loading); + console.log((await Get_nikki(Nikki_index)).Is_loading); + if ((await Get_nikki(Nikki_index)).Is_loading == false) { + let Nikki_data = (await Get_nikki(Nikki_index)); - Nikki_data[Nikki_index].Content = document.getElementById("Nikki-Content").value; - Set_nikki(Nikki_data); + Nikki_data.Content = document.getElementById("Nikki-Content").value; + Set_nikki(Nikki_index, Nikki_data); + console.log(Nikki_move_index, Nikki_index, Nikki_data); if (Nikki_move_index != Nikki_index) { Nikki_index = Nikki_move_index - Update_nikki_front(Nikki_data[Nikki_index]); + Update_nikki_front((await Get_nikki(Nikki_move_index))); + } + } else { + console.log("AAA"); + if ((await Get_nikki_count()) > 0) { + document.getElementById("Nikki-Title").innerText = "Loading..."; + document.getElementById("Nikki-Content").value = "Loading..."; } } @@ -106,21 +117,27 @@ function Update() { } async function Init() { + /* Nikki_data = await Get_nikki(); if (Nikki_data != null) Update_nikki_front(Nikki_data[0]); + */ Setting_data = await Get_setting(); document.getElementById("Nikki_dir").value = Setting_data.Nikki_dir; document.getElementById("Fname_format").value = Setting_data.Fname_format; + while ((await Get_nikki(0)).Is_loading) { + } + Update_nikki_front(await Get_nikki(0)); + setInterval(() => { Update() }, 100); } -document.addEventListener("DOMContentLoaded", function () { - Init(); +document.addEventListener("DOMContentLoaded", async function () { + await Init(); document.getElementById("Nikki_move_prev").onclick = Nikki_move_prev; document.getElementById("Nikki_move_next").onclick = Nikki_move_next; document.getElementById("Nikki_move_prev_month").onclick = Nikki_move_prev_month; diff --git a/frontend/wailsjs/go/main/App.d.ts b/frontend/wailsjs/go/main/App.d.ts index f08f24a..c50ec9a 100644 --- a/frontend/wailsjs/go/main/App.d.ts +++ b/frontend/wailsjs/go/main/App.d.ts @@ -6,19 +6,23 @@ export function Add_nikki_today():Promise; export function Get_dir_fnames(arg1:string):Promise>; -export function Get_nikki():Promise>; +export function Get_nikki(arg1:number):Promise; + +export function Get_nikki_count():Promise; export function Get_setting():Promise; export function Load_nikki():Promise; +export function Load_nikki_content():Promise; + export function Load_setting():Promise; -export function Parse_nikki_file(arg1:string):Promise; +export function Parse_nikki_file_fname(arg1:string):Promise; export function Select_Nikki_dir_Dialog():Promise; -export function Set_nikki(arg1:Array):Promise; +export function Set_nikki(arg1:number,arg2:main.Nikki_t):Promise; export function Set_setting(arg1:main.Setting_t):Promise; diff --git a/frontend/wailsjs/go/main/App.js b/frontend/wailsjs/go/main/App.js index 17a0399..babca9d 100644 --- a/frontend/wailsjs/go/main/App.js +++ b/frontend/wailsjs/go/main/App.js @@ -10,8 +10,12 @@ export function Get_dir_fnames(arg1) { return window['go']['main']['App']['Get_dir_fnames'](arg1); } -export function Get_nikki() { - return window['go']['main']['App']['Get_nikki'](); +export function Get_nikki(arg1) { + return window['go']['main']['App']['Get_nikki'](arg1); +} + +export function Get_nikki_count() { + return window['go']['main']['App']['Get_nikki_count'](); } export function Get_setting() { @@ -22,20 +26,24 @@ export function Load_nikki() { return window['go']['main']['App']['Load_nikki'](); } +export function Load_nikki_content() { + return window['go']['main']['App']['Load_nikki_content'](); +} + export function Load_setting() { return window['go']['main']['App']['Load_setting'](); } -export function Parse_nikki_file(arg1) { - return window['go']['main']['App']['Parse_nikki_file'](arg1); +export function Parse_nikki_file_fname(arg1) { + return window['go']['main']['App']['Parse_nikki_file_fname'](arg1); } export function Select_Nikki_dir_Dialog() { return window['go']['main']['App']['Select_Nikki_dir_Dialog'](); } -export function Set_nikki(arg1) { - return window['go']['main']['App']['Set_nikki'](arg1); +export function Set_nikki(arg1, arg2) { + return window['go']['main']['App']['Set_nikki'](arg1, arg2); } export function Set_setting(arg1) { diff --git a/frontend/wailsjs/go/models.ts b/frontend/wailsjs/go/models.ts index 092e6f5..a16fca0 100644 --- a/frontend/wailsjs/go/models.ts +++ b/frontend/wailsjs/go/models.ts @@ -20,6 +20,7 @@ export namespace main { Fname: string; Date: Nikki_date_t; Content: string; + Is_loading: boolean; static createFrom(source: any = {}) { return new Nikki_t(source); @@ -30,6 +31,7 @@ export namespace main { this.Fname = source["Fname"]; this.Date = this.convertValues(source["Date"], Nikki_date_t); this.Content = source["Content"]; + this.Is_loading = source["Is_loading"]; } convertValues(a: any, classs: any, asMap: boolean = false): any { diff --git a/main.go b/main.go index e616261..25810d2 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,8 @@ func main() { app.Add_nikki_today() app.Load_nikki() + app.Nikki_data[0].Is_loading = false + //app.Load_nikki_content() // Create application with options err := wails.Run(&options.App{