paste settings improved
This commit is contained in:
parent
e3adeb642f
commit
b2a3402b24
@ -3028,6 +3028,36 @@ def init_routes(app):
|
|||||||
"mediaCounts": [media_count]
|
"mediaCounts": [media_count]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@app.route('/paste/<int:paste_id>/settings', methods=['GET', 'POST'])
|
||||||
|
@login_required
|
||||||
|
def paste_settings(paste_id):
|
||||||
|
paste = Paste.query.get_or_404(paste_id)
|
||||||
|
|
||||||
|
if paste.owner_id != current_user.id:
|
||||||
|
flash('You do not have permission to modify this paste.', 'danger')
|
||||||
|
return redirect(url_for('user_dashboard'))
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
paste.title = request.form.get('title') or None
|
||||||
|
paste.language = request.form.get('language') or None
|
||||||
|
paste.editable = 'editable' in request.form
|
||||||
|
paste.private = 'private' in request.form
|
||||||
|
expires = request.form.get('expires_at')
|
||||||
|
paste.expires_at = datetime.strptime(expires, "%Y-%m-%d") if expires else None
|
||||||
|
db.session.commit()
|
||||||
|
flash('Paste settings updated.', 'success')
|
||||||
|
return redirect(url_for('paste_settings', paste_id=paste.id))
|
||||||
|
|
||||||
|
# 👇 Pasamos la lista de lenguajes al template
|
||||||
|
pygments_languages = get_readable_languages()
|
||||||
|
|
||||||
|
return render_template(
|
||||||
|
'paste_settings.html',
|
||||||
|
paste=paste,
|
||||||
|
pygments_languages=pygments_languages
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/generate_code_from_paste/<int:id>', methods=['GET'])
|
@app.route('/generate_code_from_paste/<int:id>', methods=['GET'])
|
||||||
def generate_code_from_paste(id):
|
def generate_code_from_paste(id):
|
||||||
"""
|
"""
|
||||||
|
45
templates/paste_settings.html
Normal file
45
templates/paste_settings.html
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block title %}Paste Settings{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<div class="container mt-4">
|
||||||
|
<h3>Settings for: paste_{{ paste.id }}.{{ paste.get_extension() }}</h3>
|
||||||
|
<form method="POST">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="title" class="form-label">Title</label>
|
||||||
|
<input type="text" id="title" name="title" class="form-control" value="{{ paste.title or '' }}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="language" class="form-label">Language (Optional)</label>
|
||||||
|
<select class="form-select" id="language" name="language">
|
||||||
|
<option value="">Select a Language, leave it blank to auto detect</option>
|
||||||
|
{% for value, label in pygments_languages %}
|
||||||
|
<option value="{{ value }}" {% if paste.language == value %}selected{% endif %}>
|
||||||
|
{{ label }}
|
||||||
|
</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="expires_at" class="form-label">Expires At</label>
|
||||||
|
<input type="date" id="expires_at" name="expires_at" class="form-control"
|
||||||
|
value="{{ paste.expires_at.strftime('%Y-%m-%d') if paste.expires_at else '' }}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check mb-2">
|
||||||
|
<input class="form-check-input" type="checkbox" id="private" name="private" {% if paste.private %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="private">Private</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check mb-2">
|
||||||
|
<input class="form-check-input" type="checkbox" id="editable" name="editable" {% if paste.editable %}checked{% endif %}>
|
||||||
|
<label class="form-check-label" for="editable">Editable</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">Save Changes</button>
|
||||||
|
<a href="{{ url_for('user_dashboard') }}" class="btn btn-secondary">Back</a>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
@ -267,9 +267,11 @@
|
|||||||
{% for paste in pastes %}
|
{% for paste in pastes %}
|
||||||
<tr id="paste-{{ paste.id }}">
|
<tr id="paste-{{ paste.id }}">
|
||||||
<td>{{ paste.id }}</td>
|
<td>{{ paste.id }}</td>
|
||||||
<td>paste_{{ paste.id }}.{{ paste.get_extension() }}</td>
|
<td>
|
||||||
|
<a href="{{ url_for('paste_settings', paste_id=paste.id) }}">
|
||||||
|
paste_{{ paste.id }}.{{ paste.get_extension() }}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
|
||||||
<td>{{ paste.get_type() }}</td>
|
<td>{{ paste.get_type() }}</td>
|
||||||
<td>{{ paste.size }}</td>
|
<td>{{ paste.size }}</td>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user