Browse Source

deletion feature

master
Fr3deric 7 years ago
parent
commit
df1edc8cab
  1. 16
      journalmarks/journalmarks.py
  2. 28
      journalmarks/templates/overview.html

16
journalmarks/journalmarks.py

@ -161,6 +161,22 @@ def create():
return json.dumps(tag) return json.dumps(tag)
@journalmarks.route('/delete', methods=['POST'])
@login_required
def delete():
if len(request.json) != 1 or 'tag' not in request.json:
return ('invalid fields', 400, None)
tag = request.json['tag']
try:
j = Journalmark.select().where(
(Journalmark.tag == tag) & (Journalmark.user == flask_g.user)
).get()
j.delete_instance()
except DoesNotExist:
return ('tag not found', 404, None)
return json.dumps('ok')
@journalmarks.route('/update', methods=['POST']) @journalmarks.route('/update', methods=['POST'])
@login_required @login_required
def update(): def update():

28
journalmarks/templates/overview.html

@ -23,6 +23,7 @@ function run() {
n.getElementsByClassName('tag')[0].innerText = j.tag; n.getElementsByClassName('tag')[0].innerText = j.tag;
n.getElementsByClassName('tag')[0].href = '/' + j.tag; n.getElementsByClassName('tag')[0].href = '/' + j.tag;
n.getElementsByClassName('url')[0].innerText = 'decrypting...'; n.getElementsByClassName('url')[0].innerText = 'decrypting...';
n.getElementsByClassName('really-delete-yes')[0].dataset.tag = j.tag;
document.getElementById('journalmarks').appendChild(n); document.getElementById('journalmarks').appendChild(n);
decrs.push(journalmarks_decrypturl(j.content).then(function(url) { decrs.push(journalmarks_decrypturl(j.content).then(function(url) {
n.getElementsByClassName('url')[0].href = url.url; n.getElementsByClassName('url')[0].href = url.url;
@ -37,6 +38,20 @@ function run() {
})); }));
}); });
return Promise.all(decrs); return Promise.all(decrs);
}).then(function() {
Array.from(document.getElementsByClassName('delete')).forEach(function(elem) { elem.addEventListener('click', function(e) {
e.target.style.display = 'none';
e.target.parentElement.getElementsByClassName('really-delete')[0].style.display = 'inline';
})});
Array.from(document.getElementsByClassName('really-delete-yes')).forEach(function(elem) { elem.addEventListener('click', function(e) {
post_object('{{ url_for('journalmarks.delete') }}', {tag: e.target.dataset.tag}).then(function() {
window.location.href = '{{ url_for('journalmarks.overview') }}';
});
})});
Array.from(document.getElementsByClassName('really-delete-no')).forEach(function(elem) { elem.addEventListener('click', function(e) {
e.target.parentElement.style.display = 'none';
e.target.parentElement.parentElement.getElementsByClassName('delete')[0].style.display = 'inline';
})});
}).catch(function(error) { }).catch(function(error) {
console.log(error); console.log(error);
//deleteKey(); //deleteKey();
@ -86,6 +101,9 @@ td {
td div { td div {
word-break: break-all; word-break: break-all;
} }
.really-delete {
display: none;
}
</style> </style>
{% endblock %} {% endblock %}
@ -104,7 +122,15 @@ td div {
<tr><td>Created:</td><td><span class="date"></td></tr> <tr><td>Created:</td><td><span class="date"></td></tr>
<tr class="comment-row"><td>Comment:</td><td><div><span class="comment"></span></div></td></tr> <tr class="comment-row"><td>Comment:</td><td><div><span class="comment"></span></div></td></tr>
</table> </table>
<p class="actionlinks"><a href="">edit comment</a> | <a href="">delete</a></p> <p class="actionlinks">
<!--<button class="pure-button">edit comment</button>-->
<button class="pure-button delete">Delete</button>
<span class="really-delete">
Really delete?
<button class="pure-button really-delete-yes">Yes!</button>
<button class="pure-button really-delete-no">No!</button>
</span>
</p>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

Loading…
Cancel
Save