Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
2ea5131739 | |||
c10ac8669c | |||
682cdfa95c | |||
0436d6e24a |
1
app.py
1
app.py
@ -331,6 +331,7 @@ def admin():
|
|||||||
photos=photos,
|
photos=photos,
|
||||||
accent_color=config["appearance"]["accent_color"],
|
accent_color=config["appearance"]["accent_color"],
|
||||||
config=config,
|
config=config,
|
||||||
|
nonce=g.csp_nonce,
|
||||||
)
|
)
|
||||||
|
|
||||||
@app.route("/admin/logout")
|
@app.route("/admin/logout")
|
||||||
|
@ -203,8 +203,8 @@
|
|||||||
<td class="editable" data-field="iso">{{ photo.iso }}</td>
|
<td class="editable" data-field="iso">{{ photo.iso }}</td>
|
||||||
<td>{{ photo.width }}x{{ photo.height }}</td>
|
<td>{{ photo.width }}x{{ photo.height }}</td>
|
||||||
<td>
|
<td>
|
||||||
<button id="save-btn">Save</button>
|
<button class="save-btn">Save</button>
|
||||||
<button class="delete-btn" id="delete-btn">Delete</button>
|
<button class="delete-btn">Delete</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -244,7 +244,7 @@
|
|||||||
<label for="about.profile_image">Profile Image:</label>
|
<label for="about.profile_image">Profile Image:</label>
|
||||||
<div style="display: flex; align-items: center; gap: 1rem;">
|
<div style="display: flex; align-items: center; gap: 1rem;">
|
||||||
<img id="profile-preview" src="/static/profile.jpeg" alt="Profile" style="width: 100px; height: 100px; object-fit: cover; border-radius: 50%;">
|
<img id="profile-preview" src="/static/profile.jpeg" alt="Profile" style="width: 100px; height: 100px; object-fit: cover; border-radius: 50%;">
|
||||||
<input type="file" id="profile_image_upload" accept="image/jpeg,image/png" style="flex: 1;">
|
<input type="file" class="profile-image-upload" accept="image/jpeg,image/png" style="flex: 1;">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@ -284,7 +284,8 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function saveChanges(button) {
|
function saveChanges(event) {
|
||||||
|
const button = event.target;
|
||||||
const row = button.closest('tr');
|
const row = button.closest('tr');
|
||||||
const photoId = row.dataset.id;
|
const photoId = row.dataset.id;
|
||||||
const updatedData = {};
|
const updatedData = {};
|
||||||
@ -314,8 +315,9 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deletePhoto(button) {
|
function deletePhoto(event) {
|
||||||
if (confirm('Are you sure you want to delete this photo?')) {
|
if (confirm('Are you sure you want to delete this photo?')) {
|
||||||
|
const button = event.target;
|
||||||
const row = button.closest('tr');
|
const row = button.closest('tr');
|
||||||
const photoId = row.dataset.id;
|
const photoId = row.dataset.id;
|
||||||
|
|
||||||
@ -338,10 +340,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('delete-btn').addEventListener('click', deletePhoto);
|
document.querySelectorAll('.delete-btn').forEach(button => {
|
||||||
document.getElementById('save-btn').addEventListener('click', saveChanges);
|
button.addEventListener('click', (event) => deletePhoto(event));
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById('profile_image_upload').addEventListener('change', async (e) => {
|
document.querySelectorAll('.save-btn').forEach(button => {
|
||||||
|
button.addEventListener('click', (event) => saveChanges(event));
|
||||||
|
});
|
||||||
|
|
||||||
|
document.querySelectorAll('.profile-image-upload').forEach(input => {
|
||||||
|
input.addEventListener('change', async (e) => {
|
||||||
const file = e.target.files[0];
|
const file = e.target.files[0];
|
||||||
if (!file) return;
|
if (!file) return;
|
||||||
|
|
||||||
@ -364,6 +372,7 @@
|
|||||||
alert('Error uploading profile image: ' + error);
|
alert('Error uploading profile image: ' + error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById('configForm').addEventListener('submit', async (e) => {
|
document.getElementById('configForm').addEventListener('submit', async (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
Loading…
Reference in New Issue
Block a user