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

Added current version number information (really lazily)

Former-commit-id: 94c07c4ea5425b921b79415dbb532f1557f81d7c [formerly 831d807551fce85448eb75159812c23a8bf3ead3] [formerly 07049a072587969f1fc4632fdd56edd33aae1f31 [formerly 058f893a901fa0c0ddc875ed06668173c58381f5 [formerly 189adc2fe2]]]
Former-commit-id: 0581c8c6ff9af9741dfc1e7c4f2270cba635bd1c [formerly 9f7127a4e6031c2525fa21477b15569c0ac43cd2]
Former-commit-id: fd2a63bad694b3c74728d9c5ecca20f66be1dfaa
Former-commit-id: 639d64bb26
This commit is contained in:
Zack Scholl 2016-03-29 12:30:31 -04:00
parent 53729454e0
commit c35c2ea1ce
3 changed files with 22 additions and 18 deletions

8
db.go
View File

@ -43,7 +43,7 @@ type WikiData struct {
Locked string
}
func getCurrentText(title string, version int) (string, []versionsInfo, bool, time.Duration, bool, string) {
func getCurrentText(title string, version int) (string, []versionsInfo, bool, time.Duration, bool, string, int) {
Open(RuntimeArgs.DatabaseLocation)
defer Close()
title = strings.ToLower(title)
@ -53,8 +53,9 @@ func getCurrentText(title string, version int) (string, []versionsInfo, bool, ti
currentText := ""
encrypted := false
locked := ""
currentVersionNum := -1
if !open {
return currentText, vi, isCurrent, totalTime, encrypted, locked
return currentText, vi, isCurrent, totalTime, encrypted, locked, currentVersionNum
}
err := db.View(func(tx *bolt.Tx) error {
var err error
@ -75,6 +76,7 @@ func getCurrentText(title string, version int) (string, []versionsInfo, bool, ti
currentText = p.CurrentText
encrypted = p.Encrypted
locked = p.Locked
currentVersionNum = len(p.Diffs) - 1
if version > -1 && version < len(p.Diffs) {
// get that version of text instead
currentText = rebuildTextsToDiffN(p, version)
@ -87,7 +89,7 @@ func getCurrentText(title string, version int) (string, []versionsInfo, bool, ti
if err != nil {
fmt.Printf("Could not get WikiData: %s", err)
}
return currentText, vi, isCurrent, totalTime, encrypted, locked
return currentText, vi, isCurrent, totalTime, encrypted, locked, currentVersionNum
}
func (p *WikiData) load(title string) error {

View File

@ -93,7 +93,7 @@ func encryptionRoute(c *gin.Context) {
if option == "/decrypt" {
if c.BindJSON(&jsonLoad) == nil {
var err error
currentText, _, _, _, encrypted, _ := getCurrentText(title, -1)
currentText, _, _, _, encrypted, _, _ := getCurrentText(title, -1)
if encrypted == true {
currentText, err = decryptString(currentText, jsonLoad.Password)
if err != nil {
@ -241,7 +241,7 @@ func editNote(c *gin.Context) {
} else {
version := c.DefaultQuery("version", "-1")
versionNum, _ := strconv.Atoi(version)
currentText, versions, currentVersion, totalTime, encrypted, locked := getCurrentText(title, versionNum)
currentText, versions, currentVersion, totalTime, encrypted, locked, currentVersionNum := getCurrentText(title, versionNum)
if strings.Contains(c.Request.Header.Get("User-Agent"), "curl/") {
c.Data(200, "text/plain", []byte(currentText))
return
@ -262,17 +262,18 @@ func editNote(c *gin.Context) {
CodeType := getCodeType(title)
c.HTML(http.StatusOK, "index.tmpl", gin.H{
"Title": title,
"WikiName": RuntimeArgs.WikiName,
"ExternalIP": RuntimeArgs.ExternalIP,
"CurrentText": currentText,
"NumRows": numRows,
"Versions": versions,
"TotalTime": totalTimeString,
"SocketType": RuntimeArgs.Socket,
"NoEdit": !currentVersion,
"Coding": len(CodeType) > 0,
"CodeType": CodeType,
"Title": title,
"WikiName": RuntimeArgs.WikiName,
"ExternalIP": RuntimeArgs.ExternalIP,
"CurrentText": currentText,
"CurrentVersionNum": currentVersionNum,
"NumRows": numRows,
"Versions": versions,
"TotalTime": totalTimeString,
"SocketType": RuntimeArgs.Socket,
"NoEdit": !currentVersion,
"Coding": len(CodeType) > 0,
"CodeType": CodeType,
})
}
}
@ -287,7 +288,7 @@ func everythingElse(c *gin.Context) {
if strings.ToLower(title) == "help" {
versionNum = -1
}
currentText, versions, _, totalTime, encrypted, locked := getCurrentText(title, versionNum)
currentText, versions, _, totalTime, encrypted, locked, _ := getCurrentText(title, versionNum)
if (strings.Contains(currentText, "self-destruct\n") || strings.Contains(currentText, "\nself-destruct")) && strings.ToLower(title) != "help" {
currentText = strings.Replace(currentText, "self-destruct\n", `> *This page has been deleted, you cannot return after closing.*`+"\n", 1)
currentText = strings.Replace(currentText, "\nself-destruct", "\n"+`> *This page has been deleted, you cannot return after closing.*`, 1)
@ -301,7 +302,7 @@ func everythingElse(c *gin.Context) {
if strings.ToLower(title) == "help" {
versionNum = -1
}
currentText, _, _, _, _, _ := getCurrentText(title, versionNum)
currentText, _, _, _, _, _, _ := getCurrentText(title, versionNum)
c.Writer.Header().Set("Content-Type", contentType(title))
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Max-Age", "86400")

View File

@ -86,6 +86,7 @@
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" class="active"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Edit <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="dropdown-header">Version: #{{ .CurrentVersionNum }}</li>
<li class="dropdown-header">Time edited: {{ .TotalTime }}</li>
<li role="separator" class="divider"></li>
<li class="dropdown-header">Other versions</li>