Skip to content

Commit

Permalink
Add LA feedback functionality (#89)
Browse files Browse the repository at this point in the history
* Add button

Signed off by Colin Schoen <[email protected]>

* Add ability to leave feedback for lab assistants.

* Don't preventDefault() on modal open
  • Loading branch information
colinschoen authored Oct 12, 2016
1 parent 908ccd3 commit 4113ad3
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 6 deletions.
17 changes: 17 additions & 0 deletions app/Feedback.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php namespace App;

use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Feedback extends Model {

protected $table = "feedback";

public function getCreatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))
->timezone('America/Los_Angeles')
->toDateTimeString()
;
}

}
14 changes: 14 additions & 0 deletions app/Http/Controllers/TAController.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
use App\Assignment;
use App\Preference;
use App\Setting;
use App\Feedback;

class TAController extends Controller {

Expand Down Expand Up @@ -890,4 +891,17 @@ public function post_settings_save() {
return redirect()->route("taconsole")->with("message", "The settings were saved successfully.");
}

public function post_feedback_add() {
$uid = Request::input('inputLA');
// Ensure the user exists
User::findOrFail($uid);
$comment = Request::input('inputFeedback');
$feedback = new Feedback;
$feedback->uid = $uid;
$feedback->gsi = Auth::user()->id;
$feedback->comment = $comment;
$feedback->save();
return redirect()->route("taconsole")->with("message", "Feedback successfully saved.");
}

}
1 change: 1 addition & 0 deletions app/Http/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
Route::post("ta/section/import", ["as" => "tasectionimport", "uses" => "TAController@post_section_import", "middleware" => "auth.ta"]);
Route::post("ta/section/edit", ["as" => "tasectionedit", "uses" => "TAController@post_section_edit", "middleware" => "auth.ta"]);
Route::post("ta/section/assign", ["as" => "tasectionassign", "uses" => "TAController@post_section_assign", "middleware" => "auth.ta"]);
Route::post("ta/feedback/add", ["as" => "tafeedbackadd", "uses" => "TAController@post_feedback_add", "middleware" => "auth.tutor"]);
// Route::post("ta/section/unassign", ["as" => "tasectionunassign", "uses" => "TAController@post_section_unassign", "middleware" => "auth.ta"]);
Route::post("ta/section/addla", ["as" => "tasectionaddla", "uses" => "TAController@post_section_addla", "middleware" => "auth.ta"]);
Route::post("ta/section/unassign", ["as" => "tasectionunassign", "uses" => "TAController@post_section_unassign", "middleware" => "auth.ta"]);
Expand Down
44 changes: 38 additions & 6 deletions resources/views/ta/console.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,15 @@
<td><span class="badge">{{{ ($user_hours[$user->id]) }}}</span></td>
<td>{{{ count($user->checkins) }}}</td>
<td>{{{ $user->created_at }}}</td>
<td>@if (Auth::user()->is_gsi()) <span class="userActionsSpan"><a href="#">View Actions</a></span><span id="actions" style="display: none;">@if ($user->is_tutor()) <a href="{{ route("tauserpromote", $user->id) }}"><button class="btn btn-warning"><i class="fa fa-bookmark fa-fw"></i> Make TA</button></a> @endif @if ($user->access == 0) <a href="{{ route("tauserpromotetutor", $user->id) }}"><button class="btn btn-warning"><i class="fa fa-bookmark fa-fw"></i> Make Tutor</button></a> <a href="{{ route("tauserpromote", $user->id) }}"><button class="btn btn-warning"><i class="fa fa-bookmark fa-fw"></i> Make TA</button></a> @else <a href="{{ route("tauserdemote", $user->id) }}"><button class="btn btn-danger"><i class="fa fa-arrow-down fa-fw"></i> Demote</button></a> @endif @endif <button data-toggle="tooltip" data-placement="top" title="Check In User" data-uid="{{{ $user->id }}}" data-name="{{{ $user->name }}}" class="btn btn-info checkInUserBtn"><i class="fa fa-check-circle-o fa-fw"></i></button></span></td>
<td><span class="userActionsSpan"><span id="actions">
<button data-toggle="tooltip" data-placement="top" title="Add internal only feedback" data-uid="{{{ $user->id }}}" class="btn btn-info addLAFeedbackBtn">
<i class="fa fa-comment fa-fw"></i>
</button>
<button data-toggle="tooltip" data-placement="top" title="Check In User" data-uid="{{{ $user->id }}}" data-name="{{{ $user->name }}}" class="btn btn-info checkInUserBtn">
<i class="fa fa-check-circle-o fa-fw"></i>
</button>
</span>
</td>
</tr>
@endforeach
</table>
Expand Down Expand Up @@ -586,6 +594,30 @@
</div>
</div>
</div>
<div id="addLAFeedbackModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Add Internal Only Feedback</h4>
</div>
<form action="{{ route("tafeedbackadd") }}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input type="hidden" id="addFeedbackInputLA" name="inputLA" value="" />
<div class="modal-body">
<div class="form-group">
<label for="inputFeedback">Feedback:</label>
<textarea rows="8" name="inputFeedback" class="form-control"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<input type="submit" class="btn btn-success" value="Save Feedback" />
</div>
</form>
</div>
</div>
</div>
<div id="addSectionLAModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
Expand Down Expand Up @@ -747,11 +779,6 @@
$('#announcementNewForm').slideToggle();
});

$('.userActionsSpan').on('click', function(e) {
e.preventDefault();
$(this).hide();
$(this).siblings("span").fadeIn();
});
$('.checkInActionsBtn').on('click', function(e) {
e.preventDefault();
$(this).hide();
Expand Down Expand Up @@ -790,6 +817,11 @@
$('#inputUID').val($(this).attr("data-uid"));
$('#checkInUserModal').modal('show');
});
$('.addLAFeedbackBtn').on('click', function() {
var uid = $(this).attr("data-uid");
$('#addFeedbackInputLA').val(uid);
$('#addLAFeedbackModal').modal('show');
});
$('#consoleCheckInTable tfoot th').each( function () {
var title = $('#consoleCheckInTable thead th').eq( $(this).index() ).text();
$(this).html( '<input type="text" placeholder="Search '+title+'" />' );
Expand Down

0 comments on commit 4113ad3

Please sign in to comment.