05/22 Enhance codes and fix bugs 2
This commit is contained in:
@@ -579,7 +579,7 @@ function buildCommentEl(c) {
|
||||
<div class="card mb-3">
|
||||
<div class="card-header"><i class="bi bi-pencil-square me-2"></i>Update Ticket</div>
|
||||
<div class="card-body">
|
||||
<form method="POST" action="{{ url_for('tickets.update_ticket', ticket_id=ticket.id) }}">
|
||||
<form id="ticket-update-form" method="POST" action="{{ url_for('tickets.update_ticket', ticket_id=ticket.id) }}">
|
||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Status</label>
|
||||
@@ -623,10 +623,55 @@ function buildCommentEl(c) {
|
||||
<textarea class="form-control" name="internal_notes" rows="2"
|
||||
placeholder="Private notes for IT team…">{{ ticket.internal_notes or '' }}</textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary w-100">
|
||||
<i class="bi bi-check2 me-2"></i>Save Changes
|
||||
</button>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<button type="submit" id="update-save-btn" class="btn btn-primary flex-grow-1">
|
||||
<i class="bi bi-check2 me-2"></i>Save Changes
|
||||
</button>
|
||||
<span id="update-feedback" style="font-size:12px;display:none;"></span>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
(function() {
|
||||
const form = document.getElementById('ticket-update-form');
|
||||
if (!form) return;
|
||||
form.addEventListener('submit', function(e) {
|
||||
e.preventDefault();
|
||||
const btn = document.getElementById('update-save-btn');
|
||||
const fb = document.getElementById('update-feedback');
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = '<span class="spinner-border spinner-border-sm me-1"></span>Saving…';
|
||||
fb.style.display = 'none';
|
||||
fetch(form.action, {
|
||||
method: 'POST',
|
||||
headers: { 'X-Requested-With': 'XMLHttpRequest',
|
||||
'X-CSRFToken': document.querySelector('meta[name="csrf-token"]').content },
|
||||
body: new FormData(form)
|
||||
})
|
||||
.then(r => r.json())
|
||||
.then(data => {
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = '<i class="bi bi-check2 me-2"></i>Save Changes';
|
||||
if (data.ok) {
|
||||
fb.textContent = '✓ Saved';
|
||||
fb.style.color = 'var(--success)';
|
||||
fb.style.display = 'inline';
|
||||
setTimeout(() => { fb.style.display = 'none'; }, 3000);
|
||||
} else {
|
||||
fb.textContent = 'Error saving';
|
||||
fb.style.color = 'var(--danger)';
|
||||
fb.style.display = 'inline';
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = '<i class="bi bi-check2 me-2"></i>Save Changes';
|
||||
fb.textContent = 'Network error';
|
||||
fb.style.color = 'var(--danger)';
|
||||
fb.style.display = 'inline';
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -728,6 +773,24 @@ function buildCommentEl(c) {
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Linked Tickets (read-only for employees) -->
|
||||
{% if not current_user.is_it_staff and linked_tickets %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header"><i class="bi bi-link-45deg me-2"></i>Linked Tickets</div>
|
||||
<div class="card-body" style="font-size:13px;">
|
||||
{% for lnk, other in linked_tickets %}
|
||||
<div class="d-flex align-items-center gap-2 mb-2"
|
||||
style="padding:6px 8px;background:var(--surface2);border-radius:6px;border:1px solid var(--border);">
|
||||
<a href="{{ url_for('tickets.ticket_detail', ticket_id=other.id) }}"
|
||||
class="mono" style="font-size:11px;color:var(--accent3);flex-shrink:0;">{{ other.ticket_number }}</a>
|
||||
<span style="font-size:10px;background:var(--border);color:var(--muted);padding:1px 6px;border-radius:4px;flex-shrink:0;">{{ lnk.link_type.replace('_',' ') }}</span>
|
||||
<div style="font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;">{{ other.title }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Ticket Info -->
|
||||
<div class="card mb-3">
|
||||
<div class="card-header"><i class="bi bi-info-circle me-2"></i>Ticket Details</div>
|
||||
|
||||
Reference in New Issue
Block a user