initial add
This commit is contained in:
284
Fab2ApprovalSystem/Views/Training/ViewTrainings.cshtml
Normal file
284
Fab2ApprovalSystem/Views/Training/ViewTrainings.cshtml
Normal file
@ -0,0 +1,284 @@
|
||||
@model IEnumerable<Fab2ApprovalSystem.Models.Training>
|
||||
|
||||
@{
|
||||
ViewBag.Title = "View Trainings";
|
||||
Layout = "~/Views/Admin/_AdminLayout.cshtml";
|
||||
}
|
||||
<script src="~/Scripts/excel-bootstrap-table-filter-bundle.js"></script>
|
||||
<script src="~/Scripts/moment.js"></script>
|
||||
<link rel="stylesheet" href="~/Content/excel-bootstrap-table-filter-style.css" />
|
||||
<h2>View Trainings</h2>
|
||||
<style>
|
||||
|
||||
tr:nth-child(even) {
|
||||
background: #CCC
|
||||
}
|
||||
|
||||
tr:nth-child(odd) {
|
||||
background: #FFF
|
||||
}
|
||||
|
||||
#cover-spin {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(255,255,255,0.7);
|
||||
z-index: 9999;
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@-webkit-keyframes spin {
|
||||
from {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@@keyframes spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
#cover-spin::after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 48%;
|
||||
top: 40%;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-style: solid;
|
||||
border-color: black;
|
||||
border-top-color: transparent;
|
||||
border-width: 4px;
|
||||
border-radius: 50%;
|
||||
-webkit-animation: spin .8s linear infinite;
|
||||
animation: spin .8s linear infinite;
|
||||
}
|
||||
</style>
|
||||
<div id="cover-spin">
|
||||
|
||||
</div>
|
||||
<button id="ShowManualExecutionForm">Manually Execute an ECN Training</button>
|
||||
<div id="displayTable">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="filterableCol">
|
||||
ECN#
|
||||
</th>
|
||||
<th class="filterableCol">
|
||||
ECN Title
|
||||
</th>
|
||||
<th class="filterableCol" dateFormat="M/D/YYYY hh:mm:ss" isType="date">
|
||||
Started Date
|
||||
</th>
|
||||
|
||||
<th class="filterableCol" dateFormat="M/D/YYYY hh:mm:ss" isType="date">
|
||||
Completed Date
|
||||
</th>
|
||||
<th>
|
||||
Assigned Groups
|
||||
<br />
|
||||
@Html.DropDownList("GroupFilter", new SelectList(ViewBag.TrainingGroups, "TrainingGroupID", "TrainingGroupName"), "- Select Group Filter -")
|
||||
</th>
|
||||
<th class="filterableCol">
|
||||
Status
|
||||
</th>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
if (item.Deleted != true)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.ECN)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.StartedDate)
|
||||
</td>
|
||||
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.CompletedDate)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.ECNTrainingGroups)
|
||||
</td>
|
||||
@if (item.Status == true)
|
||||
{
|
||||
<td>Complete</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td>In Progress</td>
|
||||
}
|
||||
<td>
|
||||
@Html.ActionLink("View", "ViewTrainingAssignments", new { trainingID = item.TrainingID }, new { @class = "btn btn-primary" })
|
||||
</td>
|
||||
@if ((bool)Session[GlobalVars.IS_ADMIN] == true)
|
||||
{
|
||||
<td>
|
||||
@Html.ActionLink("Delete", "DeleteTrainingByID", new { trainingId = item.TrainingID }, new { @class = "btn btn-primary" })
|
||||
</td>
|
||||
}
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="modal fade" id="ManualECNTrainingExecuteForm" tabindex="0" role="dialog" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header" style="background-color: #e4daa1; font-size: 15px;">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="myModalLabel">Manually Execute a Training - Use Sparingly as this will delete any existing training and start a new one.</h4>
|
||||
</div>
|
||||
<div class="modal-body" id="CAFindingsAttachmentContainer" style="background-color: #75adc6; font-size: 12px;">
|
||||
<label for="ecnNumberToExecute">ECN#: </label>
|
||||
<input type="text" id="ecnNumberToExecute" />
|
||||
<button type="button" class="btn btn-default" id="CheckECN">Check ECN</button>
|
||||
<label for="CheckECN" id="ECNCheckMessage"></label>
|
||||
<div id="TrainingGroupOptions" >
|
||||
@(Html.Kendo().MultiSelect()
|
||||
.Name("TrainingGroupIDs")
|
||||
.BindTo(new SelectList(ViewBag.AllGroups, "TrainingGroupID", "TrainingGroupName"))
|
||||
.HtmlAttributes(new { style = "font-size:10px" })
|
||||
.Value(ViewBag.Nothing)
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer" style="background-color: #e4daa1; font-size: 15px;">
|
||||
<button type="button" class="btn btn-default" id="ExecuteManualTraining">Execute</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('#displayTable').excelTableFilter();
|
||||
$('#GroupFilter').on('change', function () {
|
||||
$('#cover-spin').show(0);
|
||||
var SelectedGroup = $('#GroupFilter').val();
|
||||
|
||||
var url = '@Html.Raw(Url.Action("ViewTrainings", "Training", new { filterType = 1, filterValue = "Group" }))';
|
||||
url = url.replace('Group', SelectedGroup);
|
||||
window.location.href = url;
|
||||
$('#cover-spin').hide(0);
|
||||
})
|
||||
$("#ShowManualExecutionForm").on('click', function (e) {
|
||||
|
||||
ClearECNTrainingExecuteForm();
|
||||
$("#ManualECNTrainingExecuteForm").modal("show");
|
||||
})
|
||||
|
||||
$("#ExecuteManualTraining").on('click', function () {
|
||||
$('#cover-spin').show(0);
|
||||
var ecnId = $("#ecnNumberToExecute").val();
|
||||
var trainingGroupIds = $("#TrainingGroupIDs").data("kendoMultiSelect").value();
|
||||
trainingGroupIds = trainingGroupIds;
|
||||
console.log(trainingGroupIds);
|
||||
//trainingGroupIds = trainingGroupIds.join();
|
||||
if (trainingGroupIds == '') {
|
||||
$('#ECNCheckMessage').text("Please select training groups to assign to.");
|
||||
$('#ECNCheckMessage').css("color", "red");
|
||||
return;
|
||||
}
|
||||
//alert(trainingGroupIds);
|
||||
|
||||
if (ecnId != '' || ecnId != null) {
|
||||
if (confirm("Are you sure you want to execute this training?")) {
|
||||
|
||||
var sendData = {
|
||||
ecnId: ecnId,
|
||||
trainingGroupsIn: trainingGroupIds
|
||||
}
|
||||
$.ajax({
|
||||
url: "/Training/ManuallyExecuteECNTraining",
|
||||
type: "POST",
|
||||
datatype: "json",
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: JSON.stringify(sendData),
|
||||
success: function (data) {
|
||||
alert(data);
|
||||
$("#ManualECNTrainingExecuteForm").modal("hide");
|
||||
$('#cover-spin').hide(0);
|
||||
},
|
||||
error: function (result) {
|
||||
alert("Failed " + result);
|
||||
$('#cover-spin').hide(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
alert('No ECN ID entered');
|
||||
$('#cover-spin').hide(0);
|
||||
}
|
||||
})
|
||||
$("#CheckECN").on('click', function () {
|
||||
$('#ECNCheckMessage').text("");
|
||||
var ecnId = $("#ecnNumberToExecute").val();
|
||||
|
||||
if (ecnId != '') {
|
||||
$.ajax({
|
||||
url: "/Training/CheckECN",
|
||||
type: "POST",
|
||||
datatype: "json",
|
||||
data: {
|
||||
ecnId: ecnId
|
||||
},
|
||||
success: function (result) {
|
||||
$(result).each(function (i, val) {
|
||||
console.log(val);
|
||||
|
||||
});
|
||||
$("#TrainingGroupIDs").data("kendoMultiSelect").value(result)
|
||||
$('#ECNCheckMessage').text("ECN Found.");
|
||||
$('#ECNCheckMessage').css("color", "green");
|
||||
if (result.indexOf("ECN not yet approved.") > 0) {
|
||||
$('#ECNCheckMessage').text("ECN found, but not yet approved. Please approve before continuing.");
|
||||
$('#ECNCheckMessage').css("color", "red");
|
||||
}
|
||||
},
|
||||
error: function (result) {
|
||||
$('#ECNCheckMessage').text("Error Getting ECN");
|
||||
$('#ECNCheckMessage').css("color", "red");
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('#ECNCheckMessage').text("Please enter an ECN number...");
|
||||
$('#ECNCheckMessage').css("color", "red");
|
||||
}
|
||||
})
|
||||
|
||||
function ClearECNTrainingExecuteForm() {
|
||||
$("#ecnNumberToExecute").val('');
|
||||
}
|
||||
</script>
|
Reference in New Issue
Block a user