Skip to content

Commit d09688b

Browse files
committed
Combined Igor UI changes
1 parent 81cd926 commit d09688b

2 files changed

Lines changed: 106 additions & 96 deletions

File tree

app/javascript/controllers/requests_controller.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ export default class extends Controller {
2828
responsive: true,
2929
columnDefs: [
3030
{ orderable: false, targets: 'no-sort' },
31-
{ type: "date", targets: [4, 5, 6] }
31+
{ type: "date", targets: [5, 6, 7] }
3232
],
33-
order: [[4, "asc"]],
33+
order: [[5, "asc"]],
3434
layout: {
3535
topStart: {
3636
buttons: [

app/views/requests/instructor_index.html.erb

Lines changed: 104 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -44,102 +44,112 @@
4444
</button>
4545
</div>
4646
</div>
47-
<table class="table table-bordered table-striped datatable"
48-
id="requests-table">
49-
<thead>
50-
<tr class="table-info">
51-
<th class="text-center align-content-center no-sort" style="min-width: 60px;">
52-
<input type="checkbox"
53-
id="select-all-requests"
54-
data-requests-target="selectAllCheckbox"
55-
data-action="change->requests#toggleSelectAll"
56-
aria-label="Select all pending requests">
57-
</th>
58-
<th id="assignment">Assignment</th>
59-
<th class="text-center align-content-center" id="name">Name</th>
60-
<th class="text-center align-content-center" id="student-id">Student ID</th>
61-
<th class="text-center align-content-center" style="min-width: 198px;">Requested At</th>
62-
<th class="text-center align-content-center" style="min-width: 198px;">Original Due Date</th>
63-
<th class="text-center align-content-center" style="min-width: 198px;">Requested Due Date</th>
64-
<th class="text-center align-content-center" style="min-width: 90px;"># of Days</th>
65-
<th class="text-center align-content-center" style="min-width: 240px;">Status</th>
66-
<th class="text-center align-content-center no-sort" style="min-width: 220px;">Actions</th>
67-
</tr>
68-
</thead>
69-
<tbody>
70-
<% @requests.each do |request| %>
71-
<tr>
72-
<td class="text-center align-content-center">
73-
<% if request.status == 'pending' %>
74-
<input type="checkbox"
75-
data-requests-target="rowCheckbox"
76-
data-request-id="<%= request.id %>"
77-
data-action="change->requests#toggleRowSelection"
78-
aria-label="Select request <%= request.id %> for <%= request.user.try(:name) || 'N/A' %>">
79-
<% end %>
80-
</td>
81-
<td class="align-content-center"><%= request.assignment ? request.assignment.name : "N/A" %></td>
82-
<td class="text-center align-content-center"><%= request.user.try(:name) || 'N/A' %></td>
83-
<td class="text-center align-content-center"><%= request.user.try(:student_id) || 'N/A' %></td>
84-
<td class="text-center align-content-center" data-order="<%= request.created_at.iso8601 %>">
85-
<%= request.created_at&.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
86-
</td>
87-
<td class="text-center align-content-center" data-order="<%= request.assignment&.due_date&.iso8601 %>">
88-
<%= request.assignment&.due_date&.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
89-
</td>
90-
<td class="text-center align-content-center" data-order="<%= request.requested_due_date&.iso8601 %>">
91-
<%= request.requested_due_date.present? ? request.requested_due_date.strftime('%a, %b %-d at %-I:%M%P') : 'N/A' %>
92-
</td>
93-
<td class="text-center align-content-center">
94-
<% if request.assignment&.due_date && request.requested_due_date.present? %>
95-
<%= (request.requested_due_date.to_date - request.assignment.due_date.to_date).to_i %>
96-
<% else %>
97-
N/A
98-
<% end %>
99-
</td>
100-
<td class="text-center align-content-center" data-export="<%= status_export_string(request) %>">
101-
<% case request.status %>
102-
<% when 'pending' %>
103-
<span class="badge text-bg-info">Pending</span>
104-
<% when 'approved' %>
105-
<% if request.auto_approved %>
106-
<span class="badge text-bg-success">Auto Approved</span>
107-
<% else %>
108-
<span class="badge text-bg-success">Approved</span>
47+
<div class="table-responsive">
48+
<table class="table table-bordered table-striped datatable"
49+
id="requests-table">
50+
<thead>
51+
<tr class="table-info">
52+
<th class="text-center align-content-center no-sort" style="min-width: 60px;" data-priority="1">
53+
<input type="checkbox"
54+
id="select-all-requests"
55+
data-requests-target="selectAllCheckbox"
56+
data-action="change->requests#toggleSelectAll"
57+
aria-label="Select all pending requests">
58+
</th>
59+
<th class="text-center align-content-center no-sort" style="min-width: 100px;" data-priority="1">Actions</th>
60+
<th class="text-center align-content-center" id="assignment" style="min-width: 120px; max-width: 200px;" data-priority="2">Assignment</th>
61+
<th class="text-center align-content-center" id="name" data-priority="5">Name</th>
62+
<th class="text-center align-content-center" id="student-id" data-priority="9">Student ID</th>
63+
<th class="text-center align-content-center" style="min-width: 198px;" data-priority="7">Requested At</th>
64+
<th class="text-center align-content-center" style="min-width: 198px;" data-priority="8">Original Due Date</th>
65+
<th class="text-center align-content-center" style="min-width: 198px;" data-priority="4">Requested Due Date</th>
66+
<th class="text-center align-content-center" style="min-width: 90px;" data-priority="6"># of Days</th>
67+
<th class="text-center align-content-center" style="min-width: 200px;" data-priority="3">Status</th>
68+
</tr>
69+
</thead>
70+
<tbody>
71+
<% @requests.each do |request| %>
72+
<tr>
73+
<td class="text-center align-content-center">
74+
<% if request.status == 'pending' %>
75+
<input type="checkbox"
76+
data-requests-target="rowCheckbox"
77+
data-request-id="<%= request.id %>"
78+
data-action="change->requests#toggleRowSelection"
79+
aria-label="Select request <%= request.id %> for <%= request.user.try(:name) || 'N/A' %>">
80+
<% end %>
81+
</td>
82+
<td class="text-center align-content-center">
83+
<div class="d-flex flex-column align-items-center gap-1">
84+
<%= link_to course_request_path(@course, request), class: "btn btn-sm btn-primary", title: "View", aria: { label: "View request" } do %>
85+
<i class="fas fa-arrow-right"></i>
86+
<% end %>
87+
<% if request.status == 'pending' %>
88+
<div class="btn-group flex-column">
89+
<button type="button"
90+
class="btn btn-sm btn-success"
91+
data-action="click->requests#approve"
92+
data-url="<%= approve_course_request_path(@course, request, format: :json) %>"
93+
title="Approve"
94+
aria-label="Approve request">
95+
<i class="fas fa-check"></i>
96+
</button>
97+
<button type="button"
98+
class="btn btn-sm btn-danger mt-1"
99+
data-action="click->requests#reject"
100+
data-url="<%= reject_course_request_path(@course, request, format: :json) %>"
101+
title="Reject"
102+
aria-label="Reject request">
103+
<i class="fas fa-times"></i>
104+
</button>
105+
</div>
109106
<% end %>
110-
on <%= request.updated_at.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
111-
by <%= request.auto_approved ? 'Auto Approval System' : request.last_processed_by_user&.name || 'Unknown' %>
112-
<% when 'denied' %>
113-
<span class="badge text-bg-danger me-3">Denied</span>
114-
on <%= request.updated_at.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
115-
by <%= request.last_processed_by_user&.name || 'Unknown' %>
116-
<% else %>
117-
<span class="badge text-bg-secondary">Unknown</span>
118-
<% end %>
119-
</td>
120-
<td class="text-center align-content-center">
121-
<%= link_to 'View', course_request_path(@course, request), class: "btn btn-sm btn-primary" %>
122-
<% if request.status == 'pending' %>
123-
<div class="btn-group d-inline-flex">
124-
<button type="button"
125-
class="btn btn-sm btn-success ms-1"
126-
data-action="click->requests#approve"
127-
data-url="<%= approve_course_request_path(@course, request, format: :json) %>">
128-
Approve
129-
</button>
130-
<button type="button"
131-
class="btn btn-sm btn-danger ms-1"
132-
data-action="click->requests#reject"
133-
data-url="<%= reject_course_request_path(@course, request, format: :json) %>">
134-
Reject
135-
</button>
136107
</div>
137-
<% end %>
138-
</td>
139-
</tr>
140-
<% end %>
141-
</tbody>
142-
</table>
108+
</td>
109+
<td class="text-center align-content-center" style="max-width: 200px; word-wrap: break-word;"><%= request.assignment ? request.assignment.name : "N/A" %></td>
110+
<td class="text-center align-content-center"><%= request.user.try(:name) || 'N/A' %></td>
111+
<td class="text-center align-content-center"><%= request.user.try(:student_id) || 'N/A' %></td>
112+
<td class="text-center align-content-center" data-order="<%= request.created_at.iso8601 %>">
113+
<%= request.created_at&.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
114+
</td>
115+
<td class="text-center align-content-center" data-order="<%= request.assignment&.due_date&.iso8601 %>">
116+
<%= request.assignment&.due_date&.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
117+
</td>
118+
<td class="text-center align-content-center" data-order="<%= request.requested_due_date&.iso8601 %>">
119+
<%= request.requested_due_date.present? ? request.requested_due_date.strftime('%a, %b %-d at %-I:%M%P') : 'N/A' %>
120+
</td>
121+
<td class="text-center align-content-center">
122+
<% if request.assignment&.due_date && request.requested_due_date.present? %>
123+
<%= (request.requested_due_date.to_date - request.assignment.due_date.to_date).to_i %>
124+
<% else %>
125+
N/A
126+
<% end %>
127+
</td>
128+
<td class="text-center align-content-center" data-export="<%= status_export_string(request) %>">
129+
<% case request.status %>
130+
<% when 'pending' %>
131+
<span class="badge text-bg-info">Pending</span>
132+
<% when 'approved' %>
133+
<% if request.auto_approved %>
134+
<span class="badge text-bg-success">Auto Approved</span>
135+
<% else %>
136+
<span class="badge text-bg-success">Approved</span>
137+
<% end %>
138+
on <%= request.updated_at.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
139+
by <%= request.auto_approved ? 'Auto Approval System' : request.last_processed_by_user&.name || 'Unknown' %>
140+
<% when 'denied' %>
141+
<span class="badge text-bg-danger me-3">Denied</span>
142+
on <%= request.updated_at.strftime('%a, %b %-d at %-I:%M%P') || 'N/A' %>
143+
by <%= request.last_processed_by_user&.name || 'Unknown' %>
144+
<% else %>
145+
<span class="badge text-bg-secondary">Unknown</span>
146+
<% end %>
147+
</td>
148+
</tr>
149+
<% end %>
150+
</tbody>
151+
</table>
152+
</div>
143153
<% else %>
144154
<div class="alert alert-warning">There are no current requests.</div>
145155
<% end %>

0 commit comments

Comments
 (0)