Readmode, not accidental suppressions anymore

This commit is contained in:
justine 2022-03-19 12:48:54 +01:00
parent 5ef2f5fc55
commit 1f288bd583
7 changed files with 79 additions and 9 deletions

Binary file not shown.

View File

@ -13,7 +13,7 @@ services:
#ports:
#- 8080:8080
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.docker.network=traefik_traefik"
networks:

View File

@ -18,7 +18,8 @@ def render():
#Delete has been clicked
try:
todelete = request.args.get("delete")
delnote(int(todelete))
if todelete is not None:
delnote(int(todelete))
except Exception as e:
pass
@ -30,6 +31,15 @@ def render():
except Exception as e:
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()))
#Export mode
@ -37,15 +47,36 @@ def render():
def rawnotes():
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
@app.route('/edit', methods=['GET', 'POST'])
def edit():
import time
if request.method == "GET":
print("GET")
notenumber = request.args.get("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
@app.route('/', methods=['POST'])

View File

@ -26,9 +26,9 @@ class note:
timestamp = timestamp.strftime("%d/%m/%Y-%H:%M:%S")
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
from flask import Markup
@ -37,7 +37,25 @@ class note:
<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>
<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>
<div class="notetime">Created : {self.rendertime(self.createtime)}
<br>Modified : {self.rendertime(self.modtime)}</div><br>

View File

@ -43,7 +43,7 @@ def catnotes(notelist: list):
"""
final = ""
for note in notelist:
final += note.flaskrender()
final += note.titlerender()
return final

View File

@ -9,9 +9,10 @@
<h1 class="pagetitle">$ ~/sqnotes</h1>
<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="text" cols = "60*" class="text">{{ ntext }}</textarea><br>
<input type="hidden" name="notenumber" value="{{ notenumber }}" />
<button type="submit" name="submit">OK</button>
<div class="notetime">Note : you can drag the textbox to make it bigger.</div>
</form>

20
src/templates/read.html Normal file
View 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>