1
0
mirror of https://github.com/schollz/cowyo.git synced 2023-08-10 21:13:00 +03:00

Improve history UI and non-history route speed

This commit is contained in:
Zack Scholl 2017-03-24 07:09:41 -06:00
parent f45b4f86ca
commit 30f3956568
3 changed files with 37 additions and 15 deletions

View File

@ -108,10 +108,20 @@ func handlePageRequest(c *gin.Context) {
rawHTML = GithubMarkdownToHTML(rawText) rawHTML = GithubMarkdownToHTML(rawText)
} }
} }
versionsInt64 := p.Text.GetMajorSnapshots(60) // get snapshots 60 seconds apart
versionsText := make([]string, len(versionsInt64)) // Get history
var versionsInt64 []int64
var versionsChangeSums []int
var versionsText []string
if command[0:2] == "/h" {
versionsInt64, versionsChangeSums = p.Text.GetMajorSnapshotsAndChangeSums(1) // get snapshots 60 seconds apart
versionsText = make([]string, len(versionsInt64))
for i, v := range versionsInt64 { for i, v := range versionsInt64 {
versionsText[i] = time.Unix(v/1000000000, 0).String() versionsText[i] = time.Unix(v/1000000000, 0).Format("Mon Jan 2 15:04:05 MST 2006")
}
versionsText = reverseSliceString(versionsText)
versionsInt64 = reverseSliceInt64(versionsInt64)
versionsChangeSums = reverseSliceInt(versionsChangeSums)
} }
if command[0:2] == "/r" { if command[0:2] == "/r" {
@ -144,6 +154,7 @@ func handlePageRequest(c *gin.Context) {
"RawPage": rawText, "RawPage": rawText,
"Versions": versionsInt64, "Versions": versionsInt64,
"VersionsText": versionsText, "VersionsText": versionsText,
"VersionsChangeSums": versionsChangeSums,
"IsLocked": p.IsLocked, "IsLocked": p.IsLocked,
"IsEncrypted": p.IsEncrypted, "IsEncrypted": p.IsEncrypted,
"ListItems": renderList(rawText), "ListItems": renderList(rawText),

View File

@ -438,9 +438,12 @@
{{ if .ViewPage }} {{ .RenderedPage }} {{ end }} {{ if .ViewPage }} {{ .RenderedPage }} {{ end }}
{{ if .EditPage }} <textarea autofocus placeholder="Start typing, it will save automatically." id="userInput">{{ .RawPage }}</textarea>{{ end }} {{ if .EditPage }} <textarea autofocus placeholder="Start typing, it will save automatically." id="userInput">{{ .RawPage }}</textarea>{{ end }}
{{ if .HistoryPage }} {{ if .HistoryPage }}
<h1>History</h1>
<ul> <ul>
{{range $i, $e := .Versions}} {{range $i, $e := .Versions}}
<li>Version {{index $.VersionsText $i}}&nbsp;&nbsp;<a href="/{{ $.Page }}/view?version={{$e}}">View</a>&nbsp;&nbsp;<a href="/{{ $.Page }}/list?version={{$e}}">List</a>&nbsp;&nbsp;<a href="/{{ $.Page }}/raw?version={{$e}}">Raw</a></li> <li style="list-style: none;">
<a href="/{{ $.Page }}/view?version={{$e}}">View</a>&nbsp;&nbsp;<a href="/{{ $.Page }}/list?version={{$e}}">List</a>&nbsp;&nbsp;<a href="/{{ $.Page }}/raw?version={{$e}}">Raw</a>&nbsp;&nbsp;
{{index $.VersionsText $i}}&nbsp;({{if lt (index $.VersionsChangeSums $i) 0}}<span style="color:red">{{else}}<span style="color:green">+{{end}}{{index $.VersionsChangeSums $i}}</span>)</li>
{{end}} {{end}}
</ul> </ul>
{{ end }} {{ end }}

View File

@ -254,9 +254,17 @@ func reverseSliceInt64(s []int64) []int64 {
} }
return s return s
} }
func reverseSliceString(s []string) []string { func reverseSliceString(s []string) []string {
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i] s[i], s[j] = s[j], s[i]
} }
return s return s
} }
func reverseSliceInt(s []int) []int {
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
return s
}