EnVisageOnline/Beta/Source/EnVisage/Views/PeopleResource/Details.cshtml

367 lines
16 KiB
Plaintext

@using EnVisage.Code
@using EnVisage.Code.HtmlHelpers
@model EnVisage.Models.PeopleResourceModel
@{
ViewBag.Title = "People Resource Details";
}
<script type="text/javascript">
var multik;
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var multik1;
init.push(function () {
$('input#@Html.ClientIdFor(x => x.IsActiveEmployee)').switcher({
on_state_content: 'Active',
off_state_content: 'Inactive'
});
$('input#@Html.ClientIdFor(x => x.IsActiveEmployee)').parent().css("width", "80px");
$('.datepicker').datepicker();
initTrainings();
});
function loadTraining(trainingId, resourceId)
{
if (trainingId.length > 0)
StartEdit('Trainings', trainingId, null, null, 'erorMsgPlaceholder');
var url = trainingId.length > 0 ? "?Id=" + trainingId + "&resourceId=" + resourceId : "?resourceId=" + resourceId;
$('#trainingReload').load('@Url.Action("LoadTraining", "PeopleResource")' + url, function () {
initTrainings();
$('#editScheduleTraining').on('hidden.bs.modal', function () {
if (trainingId.length > 0) {
StopEdit();
RemoveLock('Trainings', trainingId);
}
}).modal('show');
});
}
function editTraining(aId, trainingId) {
if (!CheckLock(aId, 'Trainings', trainingId))
return false;
loadTraining(trainingId, '@Model.Id');
return true;
}
function deleteTraining(aId, trainingId) {
if (!CheckLock(aId, 'Trainings', trainingId))
return false;
if (trainingId.length > 0)
StartEdit('Trainings', trainingId, null, null, 'erorMsgPlaceholder');
$("#deleteTrainingId").val(trainingId);
$('#modal-warning').on('hidden.bs.modal', function () {
if (trainingId.length > 0) {
StopEdit();
RemoveLock('Trainings', trainingId);
}
}).modal('show');
return true;
}
function toggleTeamListView(element) {
$(element).parent().children('div.teamsList').toggle(100, function () {
if ($(this).parent().children('div.header').children('i.icon').hasClass('fa-caret-right')) {
$(this).parent().children('div.header').children('i.icon').removeClass('fa-caret-right');
$(this).parent().children('div.header').children('i.icon').addClass('fa-caret-down');
} else {
$(this).parent().children('div.header').children('i.icon').removeClass('fa-caret-down');
$(this).parent().children('div.header').children('i.icon').addClass('fa-caret-right');
}
});
}
</script>
<div id="erorMsgPlaceholder"></div>
<div class="panel widget-messages-alt" id="information">
<div class="panel-heading">
<span class="panel-title ui-expander">
<a data-toggle="collapse" data-target="#panelInfo">
<i class="panel-title-icon fa fa-info"></i>People Resource Information
</a>
</span>
</div>
<div id="panelInfo" class="panel-collapse collapse in">
<div class="panel-body padding-sm">
<div class="messages-list">
<div class="form-group">
@Html.LabelFor(model => model.FirstName, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.TextBoxFor(model => model.FirstName, new { @class = "form-control", @readonly = "true" })
@Html.ValidationMessageFor(model => model.FirstName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.LastName, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.TextBoxFor(model => model.LastName, new { @class = "form-control", @readonly = "true" })
@Html.ValidationMessageFor(model => model.LastName)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.IsActiveEmployee, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.CheckBoxFor(model => model.IsActiveEmployee, new { @class = "switcher-disabled-default", @disabled = "disabled" })
@Html.ValidationMessageFor(model => model.IsActiveEmployee)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.StartDate, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.EditorFor(model => model.StartDate, new { @class = "form-control", @Disabled = true })
@Html.ValidationMessageFor(model => model.StartDate)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.EndDate, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.EditorFor(model => model.EndDate, new { @class = "form-control", @Disabled = true })
@Html.ValidationMessageFor(model => model.EndDate)
</div>
</div>
</div>
<div>
<fieldset id="fsTeams">
<div class="form-group">
<label class="col col-sm-2 control-label">Team</label>
<div class="col col-sm-10 teamsList">
<label class="control-label">@Model.Team.Name</label>
</div>
</div>
</fieldset>
</div>
<div>
<fieldset id="fsExpenditures">
<div class="form-group">
<label class="col col-sm-2 control-label">Expenditure</label>
<div class="col col-sm-10 teamsList">
<span>@Model.ExpenditureCategory.Expenditure.Name</span>
</div>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<div class="panel widget-messages-alt" id="skills">
<div class="panel-heading">
<span class="panel-title ui-expander">
<a data-toggle="collapse" data-target="#panelSkills" class="collapsed">
<i class="panel-title-icon fa fa-laptop"></i>Resource Skills
</a>
</span>
</div>
<div id="panelSkills" class="panel-collapse collapse">
<div class="panel-body padding-sm">
<div class="messages-list">
</div>
</div>
</div>
</div>
<div class="panel widget-messages-alt" id="time">
<div class="panel-heading">
<span class="panel-title ui-expander">
<a data-toggle="collapse" data-target="#panelTime" class="collapsed">
<i class="panel-title-icon fa fa-clock-o"></i>Resource Time
</a>
</span>
</div>
<div id="panelTime" class="panel-collapse collapse">
<div class="panel-body padding-sm">
<div class="messages-list">
</div>
</div>
</div>
</div>
<div class="panel widget-messages-alt" id="vacation">
<div class="panel-heading">
<span class="panel-title ui-expander">
<a data-toggle="collapse" data-target="#panelVacation" class="collapsed">
<i class="panel-title-icon fa fa-beer"></i>Vacation Schedule
</a>
</span>
</div>
<div id="panelVacation" class="panel-collapse collapse">
<div class="panel-body padding-sm">
@if(Html.CheckSecurityObjectPermission(Areas.Vacations, AccessLevel.Write))
{
<a class="btn btn-primary" style="margin-bottom: 10px;" href='@Url.Action("EditVacation", "PeopleResource", new {peopleResourceId=Model.Id})'>Add Vacation</a>
}
@if (Html.CheckSecurityObjectPermission(Areas.Vacations, AccessLevel.Read))
{
<div class="messages-list table-light no-margin">
<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" id="tblVacations" style="margin-bottom: 25px;">
<thead>
<tr>
<th>Start Date</th>
<th>End Date</th>
<th>Duration</th>
<th>Hours Available</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var vacation in Model.Vacations)
{
<tr>
<td>@vacation.StartDate.Value.ToShortDateString()</td>
<td>@vacation.EndDate.Value.ToShortDateString()</td>
<td>@(vacation.Duration) days</td>
<td>@((int) (vacation.UOMValue*vacation.PeopleResourceVacations.Count - vacation.PeopleResourceVacations.Sum(t => t.HoursOff))) hours</td>
<td>
@if (Html.CheckSecurityObjectPermission(Areas.Vacations, AccessLevel.Write))
{
<a id="aEditVac_@vacation.Id" onclick="return CheckLock(this.id, 'Vacations', '@vacation.Id')" href="@Url.Action("EditVacation", "PeopleResource", new {id = vacation.Id})" data-placement="left" class="btn btn-primary popover-warning popover-dark"><i class="fa fa-pencil"></i> Edit</a>
<a id="aDeleteVac_@vacation.Id" onclick="return CheckLock(this.id, 'Vacations', '@vacation.Id')" href="@Url.Action("DeleteVacation", "PeopleResource", new {id = vacation.Id})" data-placement="left" class="btn btn-danger popover-warning popover-dark"><i class="fa fa-trash-o"></i> Delete</a>
}
</td>
</tr>
}
</tbody>
<tfoot>
</tfoot>
</table>
</div>
}
</div>
</div>
</div>
<div class="panel widget-messages-alt" id="tranings">
<div class="panel-heading">
<span class="panel-title ui-expander">
<a data-toggle="collapse" data-target="#panelTraining" class="collapsed">
<i class="panel-title-icon fa fa-rocket"></i>Training Schedule
</a>
</span>
</div>
<div id="panelTraining" class="panel-collapse collapse">
<div class="panel-body padding-sm">
@if(Html.CheckSecurityObjectPermission(Areas.Trainings, AccessLevel.Write))
{
<a class="btn btn-primary" style="margin-bottom: 10px;" href="javascript:;" onclick="loadTraining('', '@Model.Id');">Schedule a Training</a>
}
@if (Html.CheckSecurityObjectPermission(Areas.Trainings, AccessLevel.Read))
{
<div class="messages-list table-light no-margin">
<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" id="tblTrainings" style="margin-bottom: 25px;">
<thead>
<tr>
<th>Start Date</th>
<th>End Date</th>
<th>Duration</th>
<th>Name</th>
<th>Type</th>
<th>Hours Allocated</th>
<th>Cost</th>
<th>Skills</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var training in Model.Trainings)
{
<tr>
<td>@training.TrainingStartDate.ToShortDateString()</td>
<td>@training.TrainingEndDate.ToShortDateString()</td>
<td>@(training.TrainingDuration) days</td>
<td>@(training.TrainingName)</td>
<td>@(training.TrainingTypeName)</td>
<td>@(training.TrainingTimeAllocated) %</td>
<td>@(training.TrainingCost)</td>
<td></td>
<td>
@if (Html.CheckSecurityObjectPermission(Areas.Trainings, AccessLevel.Write))
{
<a href="#" id="aEditTrain_@training.Id" onclick="return editTraining(this.id, '@training.Id')" data-placement="left" class="btn btn-primary popover-warning popover-dark"><i class="fa fa-pencil"></i> Edit</a>
<a href="#" id="aDeleteTrain_@training.Id" onclick="return deleteTraining(this.id, '@training.Id')" data-placement="left" class="btn btn-danger popover-warning popover-dark"><i class="fa fa-trash-o"></i> Delete</a>
}
</td>
</tr>
}
</tbody>
<tfoot>
</tfoot>
</table>
</div>
}
</div>
</div>
</div>
<div class="panel widget-messages-alt" id="loan-outs">
<div class="panel-heading">
<span class="panel-title ui-expander">
<a data-toggle="collapse" data-target="#panelLoanOuts" class="collapsed">
<i class="panel-title-icon fa fa-envelope"></i>Resource Loan-outs
</a>
</span>
</div>
<div id="panelLoanOuts" class="panel-collapse collapse">
<div class="panel-body padding-sm">
<div class="messages-list">
</div>
</div>
</div>
</div>
<div class="form-group" style="margin-bottom: 0;">
<div class="col-sm-offset-2 col-sm-10">
<a class="btn btn-primary" href="@Url.Action("Board", "Team")"><i class="fa fa-backward"></i> Back to people resources</a>
</div>
</div>
<!-- Modal -->
<div id="editScheduleTraining" class="modal fade" tabindex="-1" role="dialog" style="display: none;">
<div class="modal-dialog">
<div class="modal-content" id="trainingReload">
@Html.Partial("_scheduleTraining", Model.Training)
</div> <!-- / .modal-content -->
</div> <!-- / .modal-dialog -->
</div> <!-- /.modal -->
<!-- / Modal -->
<!-- Warning modal alert -->
<div id="modal-warning" class="modal fade" tabindex="-1" role="dialog" style="display: none;">
<div class="modal-dialog">
@Html.BeginForm("DeleteTraining", "PeopleResource")
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.Id)
<input type="hidden" id="deleteTrainingId" name="deleteTrainingId" />
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
<h4 class="modal-title" >Delete Training</h4>
</div>
<div class="modal-title"></div>
<div class="modal-body"><strong>Deleting this training will affect all resources involved. Continue?</strong></div>
<div class="modal-footer">
<button type="submit" class="btn btn-danger" data-dismiss="modal" onclick="blockUI()">OK</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</div> <!-- / .modal-content -->
}
</div> <!-- / .modal-dialog -->
</div> <!-- / .modal -->
<!-- Modal -->
@section Scripts
{
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>
}