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: #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:

View File

@ -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'])

View File

@ -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>

View File

@ -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

View File

@ -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
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>