mirror of
https://github.com/StefBuwalda/WebTech.git
synced 2025-10-29 19:00:00 +00:00
Edit service
This commit is contained in:
@@ -1,13 +1,9 @@
|
||||
from flask_wtf import FlaskForm # type: ignore
|
||||
from wtforms import (
|
||||
StringField,
|
||||
SubmitField,
|
||||
URLField,
|
||||
)
|
||||
from wtforms import StringField, SubmitField, URLField
|
||||
from wtforms.validators import DataRequired
|
||||
|
||||
|
||||
class ServiceForm(FlaskForm):
|
||||
name = StringField("Service name:", validators=[DataRequired()])
|
||||
url = URLField("Service URL:", validators=[DataRequired()])
|
||||
submit = SubmitField("Add")
|
||||
submit = SubmitField("Submit")
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
<div class="bg-light container-xxl">
|
||||
<div class="row row-cols-3">
|
||||
<div class="col-sm-2" onclick="location.href='{{service.url}}';" style="cursor: pointer;">
|
||||
<img class="fit-picture" src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Google_%22G%22_logo.svg/2048px-Google_%22G%22_logo.svg.png">
|
||||
<img class="fit-picture"
|
||||
src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Google_%22G%22_logo.svg/2048px-Google_%22G%22_logo.svg.png">
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="row">
|
||||
@@ -16,14 +17,21 @@
|
||||
{{service["name"]}}
|
||||
</div>
|
||||
<div class="col-sm-2 dots dropdown">
|
||||
<button class="btn btn-light" type="button" id="threeDotDropdown" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<button class="btn btn-light" type="button" id="threeDotDropdown" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
⋮
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="threeDotDropdown">
|
||||
<li><a class="dropdown-item">Edit</a></li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li>
|
||||
<form action="{{ url_for('dash.delete_item', service_id=service.id) }}" method="POST" style="display:inline;">
|
||||
<a class="dropdown-item"
|
||||
href="{{ url_for('dash.edit_service', service_id=service.id) }}">Edit</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
<li>
|
||||
<form action="{{ url_for('dash.delete_item', service_id=service.id) }}" method="POST"
|
||||
style="display:inline;">
|
||||
<button type="submit" class="dropdown-item">Delete</button>
|
||||
</form>
|
||||
</li>
|
||||
|
||||
@@ -5,5 +5,47 @@ Add service
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
123
|
||||
<form class="form bg-body-tertiary" method="POST">
|
||||
{{ form.hidden_tag() }}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
||||
<symbol id="check-circle-fill" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z" />
|
||||
</symbol>
|
||||
<symbol id="exclamation-triangle-fill" fill="currentColor" viewBox="0 0 16 16">
|
||||
<path
|
||||
d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z" />
|
||||
</symbol>
|
||||
</svg>
|
||||
{% if feedback %}
|
||||
{% if feedback=="Service succesfully added" %}
|
||||
<div class="alert alert-success d-flex align-items-center" role="alert">
|
||||
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Success:">
|
||||
<use xlink:href="#check-circle-fill" />
|
||||
</svg>
|
||||
<div>
|
||||
{{feedback}}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-danger d-flex align-items-center" role="alert">
|
||||
<svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Danger:">
|
||||
<use xlink:href="#exclamation-triangle-fill" />
|
||||
</svg>
|
||||
<div>
|
||||
{{feedback}}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div>
|
||||
{{ form.name.label }} <br> {{ form.name() }}
|
||||
</div>
|
||||
<div>
|
||||
{{ form.url.label }} <br> {{ form.url() }}
|
||||
</div>
|
||||
<div class="submit">
|
||||
{{ form.submit(value="Edit") }}
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -56,11 +56,24 @@ def service():
|
||||
)
|
||||
|
||||
|
||||
@dash_blueprint.route("/edit_service/<int:service_id>", methods=["POST"])
|
||||
@dash_blueprint.route(
|
||||
"/edit_service/<int:service_id>", methods=["GET", "POST"]
|
||||
)
|
||||
@login_required
|
||||
def edit_service(service_id: int):
|
||||
service = Service.query.get_or_404(service_id)
|
||||
|
||||
if current_user.id != service.user_id:
|
||||
redirect(url_for("dash.index"))
|
||||
|
||||
return render_template("edit_service.html")
|
||||
# Correcte gebruiker
|
||||
form = ServiceForm()
|
||||
if form.validate_on_submit(): # type: ignore
|
||||
if service.name != form.name.data or service.url != form.url.data:
|
||||
service.name = form.name.data
|
||||
service.url = form.url.data
|
||||
db.session.commit()
|
||||
return redirect(url_for("dash.index"))
|
||||
# Fill in correct data
|
||||
form = ServiceForm(name=service.name, url=service.url)
|
||||
return render_template("edit_service.html", form=form)
|
||||
|
||||
Reference in New Issue
Block a user