Readmode, not accidental suppressions anymore
This commit is contained in:
parent
5ef2f5fc55
commit
1f288bd583
Binary file not shown.
@ -13,7 +13,7 @@ services:
|
|||||||
#ports:
|
#ports:
|
||||||
#- 8080:8080
|
#- 8080:8080
|
||||||
labels:
|
labels:
|
||||||
- "traefik.http.routers.sqnotes.rule=Host(`notes.sq.lan`)"
|
- "traefik.http.routers.sqnotes.rule=Host(`notes.squi.fr`)"
|
||||||
- "traefik.http.services.sqnotes.loadbalancer.server.port=8080"
|
- "traefik.http.services.sqnotes.loadbalancer.server.port=8080"
|
||||||
- "traefik.docker.network=traefik_traefik"
|
- "traefik.docker.network=traefik_traefik"
|
||||||
networks:
|
networks:
|
||||||
|
37
src/app.py
37
src/app.py
@ -18,7 +18,8 @@ def render():
|
|||||||
#Delete has been clicked
|
#Delete has been clicked
|
||||||
try:
|
try:
|
||||||
todelete = request.args.get("delete")
|
todelete = request.args.get("delete")
|
||||||
delnote(int(todelete))
|
if todelete is not None:
|
||||||
|
delnote(int(todelete))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -30,6 +31,15 @@ def render():
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
#Read has been clicked
|
||||||
|
try:
|
||||||
|
toread = request.args.get("toread")
|
||||||
|
if toread is not None:
|
||||||
|
return redirect(url_for('readmode', note=(int(toread))))
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
pass
|
||||||
|
|
||||||
return render_template("homepage.html", nr = catnotes(getnotes()))
|
return render_template("homepage.html", nr = catnotes(getnotes()))
|
||||||
|
|
||||||
#Export mode
|
#Export mode
|
||||||
@ -37,15 +47,36 @@ def render():
|
|||||||
def rawnotes():
|
def rawnotes():
|
||||||
return render_template("export.html", rawnotes = exportnotes())
|
return render_template("export.html", rawnotes = exportnotes())
|
||||||
|
|
||||||
|
#Read mode
|
||||||
|
@app.route('/readmode', methods=['GET','POST'])
|
||||||
|
def readmode():
|
||||||
|
if request.method == 'GET':
|
||||||
|
notenumber = request.args.get("note")
|
||||||
|
mynote = findnote(int(notenumber))
|
||||||
|
return render_template("read.html", note=mynote.flaskrender())
|
||||||
|
|
||||||
|
|
||||||
#Edition mode
|
#Edition mode
|
||||||
@app.route('/edit', methods=['GET', 'POST'])
|
@app.route('/edit', methods=['GET', 'POST'])
|
||||||
def edit():
|
def edit():
|
||||||
import time
|
import time
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
|
print("GET")
|
||||||
notenumber = request.args.get("notenumber")
|
notenumber = request.args.get("notenumber")
|
||||||
mynote = findnote(int(notenumber))
|
mynote = findnote(int(notenumber))
|
||||||
delnote(int(notenumber))
|
return render_template("edit.html", notenumber=notenumber, ntitle=mynote.title, ntext=mynote.text)
|
||||||
return render_template("edit.html", notenumber=notenumber, ntitle=mynote.title, ntext=mynote.text)
|
if request.method == "POST":
|
||||||
|
print("POST")
|
||||||
|
print(request.args.get("submit"))
|
||||||
|
notetitle = request.form['title']
|
||||||
|
notetext = request.form['text']
|
||||||
|
notenumber = int(request.form['notenumber'])
|
||||||
|
delnote(notenumber)
|
||||||
|
rightnow = int(time.time())
|
||||||
|
newnote = note(createtime=notenumber, modtime=rightnow, title=notetitle, text=notetext)
|
||||||
|
addnote(newnote)
|
||||||
|
return render_template("read.html", note=newnote.flaskrender())
|
||||||
|
|
||||||
|
|
||||||
#Basic route, allows note creation
|
#Basic route, allows note creation
|
||||||
@app.route('/', methods=['POST'])
|
@app.route('/', methods=['POST'])
|
||||||
|
@ -26,9 +26,9 @@ class note:
|
|||||||
timestamp = timestamp.strftime("%d/%m/%Y-%H:%M:%S")
|
timestamp = timestamp.strftime("%d/%m/%Y-%H:%M:%S")
|
||||||
return timestamp
|
return timestamp
|
||||||
|
|
||||||
def flaskrender(self):
|
def titlerender(self):
|
||||||
"""
|
"""
|
||||||
Render the note as html for flask, using flask.Markup
|
Render the note title and details as html for flask, using flask.Markup.
|
||||||
"""
|
"""
|
||||||
import markdown
|
import markdown
|
||||||
from flask import Markup
|
from flask import Markup
|
||||||
@ -37,7 +37,25 @@ class note:
|
|||||||
<hr>
|
<hr>
|
||||||
<div class="notetitle">{Markup.escape(self.title)}</div>
|
<div class="notetitle">{Markup.escape(self.title)}</div>
|
||||||
<form action="." method="GET" name="{self.createtime}">
|
<form action="." method="GET" name="{self.createtime}">
|
||||||
<button type="submit" name="delete" value="{self.createtime}" class="delbutton" onclick="return confirm('Really ?')">Delete</button>|<button type="submit" name="edit" value="{self.createtime}" class="editbutton">Edit</button>
|
<button type="submit" name="delete" value="{self.createtime}" class="delbutton" onclick="return confirm('Really ?')">Delete</button>|<button type="submit" name="edit" value="{self.createtime}" class="editbutton">Edit</button>|<button type="submit" name="toread" value="{self.createtime}" class="readbutton">Read</button>
|
||||||
|
</form>
|
||||||
|
<div class="notetime">Created : {self.rendertime(self.createtime)}
|
||||||
|
<br>Modified : {self.rendertime(self.modtime)}</div><br>
|
||||||
|
"""
|
||||||
|
return Markup(rendered)
|
||||||
|
|
||||||
|
def flaskrender(self):
|
||||||
|
"""
|
||||||
|
Render the note whole content as html for flask, using flask.Markup
|
||||||
|
"""
|
||||||
|
import markdown
|
||||||
|
from flask import Markup, url_for
|
||||||
|
|
||||||
|
rendered = f"""
|
||||||
|
<hr>
|
||||||
|
<div class="notetitle">{Markup.escape(self.title)}</div>
|
||||||
|
<form action="." method="GET" name="{self.createtime}">
|
||||||
|
<button type="submit" name="delete" value="{self.createtime}" class="delbutton" onclick="return confirm('Really ?')">Delete</button>|<button type="submit" name="edit" value="{self.createtime}" class="editbutton">Edit</button>|<a href="{ url_for('render') }" class="backlink">Back</a>
|
||||||
</form>
|
</form>
|
||||||
<div class="notetime">Created : {self.rendertime(self.createtime)}
|
<div class="notetime">Created : {self.rendertime(self.createtime)}
|
||||||
<br>Modified : {self.rendertime(self.modtime)}</div><br>
|
<br>Modified : {self.rendertime(self.modtime)}</div><br>
|
||||||
|
@ -43,7 +43,7 @@ def catnotes(notelist: list):
|
|||||||
"""
|
"""
|
||||||
final = ""
|
final = ""
|
||||||
for note in notelist:
|
for note in notelist:
|
||||||
final += note.flaskrender()
|
final += note.titlerender()
|
||||||
|
|
||||||
return final
|
return final
|
||||||
|
|
||||||
|
@ -9,9 +9,10 @@
|
|||||||
|
|
||||||
<h1 class="pagetitle">$ ~/sqnotes</h1>
|
<h1 class="pagetitle">$ ~/sqnotes</h1>
|
||||||
<div class="div1">
|
<div class="div1">
|
||||||
<form action="." method="POST">
|
<form action="{{ url_for('edit') }}" method="POST">
|
||||||
<textarea type="text" name="title" class="title">{{ ntitle }}</textarea><br>
|
<textarea type="text" name="title" class="title">{{ ntitle }}</textarea><br>
|
||||||
<textarea type="text" name="text" cols = "60*" class="text">{{ ntext }}</textarea><br>
|
<textarea type="text" name="text" cols = "60*" class="text">{{ ntext }}</textarea><br>
|
||||||
|
<input type="hidden" name="notenumber" value="{{ notenumber }}" />
|
||||||
<button type="submit" name="submit">OK</button>
|
<button type="submit" name="submit">OK</button>
|
||||||
<div class="notetime">Note : you can drag the textbox to make it bigger.</div>
|
<div class="notetime">Note : you can drag the textbox to make it bigger.</div>
|
||||||
</form>
|
</form>
|
||||||
|
20
src/templates/read.html
Normal file
20
src/templates/read.html
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="{{ url_for('static', filename='styles/main.css') }}" type="text/css" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
|
<!--<link href='https://fonts.googleapis.com/css?family=Source Sans Pro' rel='stylesheet'> -->
|
||||||
|
<title>sqnotes</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{ note }}
|
||||||
|
</body>
|
||||||
|
<footer>
|
||||||
|
<hr>
|
||||||
|
<div class="notetime">
|
||||||
|
<p>
|
||||||
|
You've reached the bottom. Made by Squip, 2022.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</meta>
|
||||||
|
</html>
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user