Tested and reconfigured ability to add files to the main corrective action form.

This commit is contained in:
Daniel Wathen 2023-02-20 15:24:27 -07:00
parent 2366bef0d3
commit 0dd3d4ec2a
20 changed files with 114 additions and 555 deletions

Binary file not shown.

View File

@ -336,7 +336,7 @@ namespace Fab2ApprovalSystem.Controllers
public ActionResult Attachment_Read([DataSourceRequest] DataSourceRequest request, int caNO)
{
return Json(caDMO.GetCAAttachmentsList(caNO, "").ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
return Json(caDMO.GetCAAttachmentsList(caNO, "Main").ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
/// <summary>
@ -409,14 +409,14 @@ namespace Fab2ApprovalSystem.Controllers
/// <param name="D2Files"></param>
/// <param name="caNo"></param>
/// <returns></returns>
public ActionResult D2FilesAttachSave(IEnumerable<HttpPostedFileBase> D2Files, int caNo)
public ActionResult AttachSave(IEnumerable<HttpPostedFileBase> files, int caNo)
{
try
{
// The Name of the Upload component is "files"
if (D2Files != null)
if (files != null)
{
foreach (var file in D2Files)
foreach (var file in files)
{
// Some browsers send file names with full path.
// We are only interested in the file name.
@ -443,8 +443,7 @@ namespace Fab2ApprovalSystem.Controllers
FileGUID = guid,
FileName = fileName,
UploadedByID = (int)Session[GlobalVars.SESSION_USERID],
Section = Functions.CASectionMapper(GlobalVars.CASection.D2)
Section = Functions.CASectionMapper(GlobalVars.CASection.Main)
};

View File

@ -412,6 +412,21 @@ namespace Fab2ApprovalSystem.Controllers
return Json(new[] { issue }.ToDataSourceResult(request, ModelState));
}
/// <summary>
///
/// </summary>
/// <param name="request"></param>
/// <param name="ca"></param>
/// <returns></returns>
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult DeleteCAItem([DataSourceRequest] DataSourceRequest request, CorrectiveAction ca)
{
ldDMO.DeleteCADocument(ca.CANo, int.Parse(Session[GlobalVars.SESSION_USERID].ToString()), "Corrective Action");
return Json(new[] { ca }.ToDataSourceResult(request, ModelState));
}
/// <summary>
///
/// </summary>

View File

@ -726,7 +726,7 @@ namespace Fab2ApprovalSystem.Controllers
emailBody += "<h3>" + training.ECN + " - " + ecnTitle + "</h3>";
emailBody += "<table>";
emailBody += "<tr><th>Name</th><th>Date Assigned</th></tr>";
emailBody += "<tr><th>Name</th><th>Date Assigned</th><th>Out of Office</th></tr>";
List<TrainingAssignment> openAssignments = trainingDMO.GetOpenAssignmentsByTrainingID(training.TrainingID);
foreach (TrainingAssignment assignment in openAssignments)
{
@ -734,7 +734,14 @@ namespace Fab2ApprovalSystem.Controllers
string DateAssigned = assignmentDate.HasValue ? assignmentDate.Value.ToString("MM/dd/yyyy") : "<not available>";
emailBody += "<tr><td>" + assignment.FullName + "</td><td>" + DateAssigned + "</td></tr>";
emailBody += "<tr><td>" + assignment.FullName + "</td><td>" + DateAssigned + "</td>";
if (userDMO.GetUserByID(assignment.UserID).OOO)
emailBody += "<td>X</td>";
else
emailBody += "<td></td>";
emailBody += "</tr>";
}
emailBody += "</table>";

View File

@ -325,7 +325,6 @@ namespace Fab2ApprovalSystem.DMO
/// <returns></returns>
public IEnumerable<CA_Attachment> GetCAAttachmentsList(int caNo, string section)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", caNo);
parameters.Add("@Section", section);

View File

@ -359,6 +359,9 @@ namespace Fab2ApprovalSystem.Misc
{
switch (casection)
{
case GlobalVars.CASection.Main:
return "Main";
case GlobalVars.CASection.D1:
return "D1";

View File

@ -107,7 +107,7 @@ namespace Fab2ApprovalSystem.Misc
public enum CASection
{
D1, D2, D3, D4, D5,D6, D7, D8, CF
Main, D1, D2, D3, D4, D5,D6, D7, D8, CF
}

View File

@ -435,9 +435,19 @@
<div class="form-group">
<label class="control-label">Affected Documents:</label>
<div class="col-sm-12">
@(Html.Kendo().Upload()
.Name("files")
.Async(a => a
.Save("AttachSave", "CorrectiveAction", new { caNo = Model.CANo })
.AutoUpload(true)
)
.ShowFileList(false)
.Events(events => events
.Success("onFileUploadSuccess")
.Upload("CheckFileType")
.Error("onFileUploadError")
)
)
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.CA_Attachment>()
.Name("Attachments")
.Columns(columns =>
@ -452,7 +462,7 @@
columns.Command(command => command.Custom("Delete").Click("DeleteCAAttachment"));
})
.Scrollable()
.Sortable()
.HtmlAttributes(new { style = "height:300px; width:100%; font-size: 10px", Readonly = "Readonly" })
.DataSource(dataSource => dataSource
@ -465,7 +475,7 @@
model.Id(p => p.ID);
})
.PageSize(50)
.Read(read => read.Action("Attach_Read", "CorrectiveAction", new { caNO = Model.CANo }))
.Read(read => read.Action("Attachment_Read", "CorrectiveAction", new { caNO = Model.CANo }))
.Destroy(destroy => destroy.Action("DeleteCAAttachment", "CorrectionAction"))
)
)
@ -3947,8 +3957,16 @@
}
function onFileUploadSuccess(e) {
//alert(e.message);
var grid = $("#Attachments").data("kendoGrid");
grid.dataSource.read($('#txtCANo').val());
}
function onFileUploadError(e) {
alert("Error Uploading File!!! Please Try Again...");
var grid = $("#Attachments").data("kendoGrid");
grid.dataSource.read($('#txtCANo').val());
}
function onD4FileUploadSuccess(e) {
var grid = $("#D4Attachments").data("kendoGrid");

View File

@ -322,8 +322,7 @@
<div class="form-group">
<label class="control-label">Affected Documents:</label>
<div class="col-sm-12">
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.CA_Attachment>()
.Name("Attachments")
@ -341,6 +340,7 @@
})
.Sortable()
.Scrollable()
.HtmlAttributes(new { style = "height:300px; width:100%; font-size: 10px", Readonly = "Readonly" })
.DataSource(dataSource => dataSource
.Ajax()
@ -1714,11 +1714,6 @@
}
function buildLinks(fileNames, caNo) {
var template = "";

View File

@ -1,4 +1,4 @@
@using Microsoft.AspNet.Identity
@using Microsoft.AspNet.Identity
@{
Layout = "_HomeLayout.cshtml";
}
@ -163,110 +163,6 @@
</div>
</div>
<div class="modal fade" id="OOODialog" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Out Of Office for user: @User.Identity.GetUserName()</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">Delegate To:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
@(Html.Kendo().DropDownList()
.Name("DelegateTo")
.HtmlAttributes(new { style = "width: 250px" })
.DataTextField("FullName")
.DataValueField("UserID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetAllUserList", "Admin");
});
})
)
</div>
</div>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<label for="CurrentUser">Start Date:</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">End Date:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtStartDate")
//.Value()
)
</div>
</div>
</div>
@*<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtEndDate")
//.Value()
)
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="SaveOOOInfo">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="ReAssignApproval" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
@ -498,6 +394,13 @@
return numStr;
}
function toggleDelegate() {
var control = document.getElementById("DelegateControl");
var label = document.getElementById("DelegateLabel");
control.classList.toggle("hideControl");
label.classList.toggle("hideControl");
}
function onAllDocsDB(e) {
var grid = $("#alltasklist").data("kendoGrid");

View File

@ -76,7 +76,7 @@
})
.PageSize(50)
.Read(read => read.Action("GetCorrectiveActionList", "Home"))
.Destroy(destroy => destroy.Action("DeleteItem", "Home"))
.Destroy(destroy => destroy.Action("DeleteCAItem", "Home"))
)
)
</div>

View File

@ -163,109 +163,6 @@
</div>
</div>
<div class="modal fade" id="OOODialog" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Out Of Office for user: @User.Identity.GetUserName()</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">Delegate To:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
@(Html.Kendo().DropDownList()
.Name("DelegateTo")
.HtmlAttributes(new { style = "width: 250px" })
.DataTextField("FullName")
.DataValueField("UserID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetAllUserList", "Admin");
});
})
)
</div>
</div>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<label for="CurrentUser">Start Date:</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">End Date:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtStartDate")
//.Value()
)
</div>
</div>
</div>
@*<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtEndDate")
//.Value()
)
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="SaveOOOInfo">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="ReAssignApproval" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">

View File

@ -13,6 +13,10 @@
.hide {
visibility: hidden;
}
.hideControl {
display: none;
}
</style>
<nav class="navbar navbar-default" role="navigation" style="font-size: 11px">
@ -301,8 +305,21 @@
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
<input type="checkbox" name="AddDelegate" id="AddDelegate" value="false" onclick="toggleDelegate()" />
<label for="AddDelegate">Add Delegate?</label>
</div>
</div>
</div>
</div>
</div>
<br />
<div class="row hideControl" id="DelegateLabel">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
@ -314,7 +331,7 @@
</div>
</div>
<div class="row">
<div class="row hideControl" id="DelegateControl">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
@ -370,12 +387,12 @@
</div>
</div>
@*<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@ -496,8 +513,15 @@
$('#SaveOOOInfo').on('click', function () {
var tab = $('#currentTab').val();
var bfound = false;
var delegate = "";
if (userid == $("#DelegateTo").data("kendoDropDownList").value()) {
var checkbox = $('#AddDelegate').is(":checked");
if (checkbox === true) {
delegate = $("#DelegateTo").data("kendoDropDownList").value();
}
if (userid == delegate) {
alert('The OOO person cannot be same as the delegate to person');
return false;
}
@ -547,7 +571,7 @@
url: urlString,
data: {
//oooUserID: userids,
delegatedTo: $("#DelegateTo").data("kendoDropDownList").value(),
delegatedTo: delegate,
startDate: $("#txtStartDate").val(),
endDate: $("#txtEndDate").val(),
tab: tab
@ -579,6 +603,14 @@
//grid.removeRow($(element));
}
function toggleDelegate() {
var control = document.getElementById("DelegateControl");
var label = document.getElementById("DelegateLabel");
control.classList.toggle("hideControl");
label.classList.toggle("hideControl");
}
function showReAssignRole(_pendingApprovers, _closeDate, _issueID, _docType, _submitDate) {
//alert(_closeDate);;

View File

@ -1,4 +1,4 @@
@using Microsoft.AspNet.Identity
@using Microsoft.AspNet.Identity
@{
Layout = "_HomeLayout.cshtml";
}
@ -164,110 +164,7 @@
</div>
</div>
<div class="modal fade" id="OOODialog" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Out Of Office for user: @User.Identity.GetUserName()</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">Delegate To:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
@(Html.Kendo().DropDownList()
.Name("DelegateTo")
.HtmlAttributes(new { style = "width: 250px" })
.DataTextField("FullName")
.DataValueField("UserID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetAllUserList", "Admin");
});
})
)
</div>
</div>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<label for="CurrentUser">Start Date:</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">End Date:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtStartDate")
//.Value()
)
</div>
</div>
</div>
@*<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtEndDate")
//.Value()
)
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="SaveOOOInfo">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="ReAssignApproval" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
@ -297,4 +194,4 @@
</html>
</html>

View File

@ -202,109 +202,6 @@
</div>
</div>
<div class="modal fade" id="OOODialog" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Out Of Office for user: @User.Identity.GetUserName()</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">Delegate To:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
@(Html.Kendo().DropDownList()
.Name("DelegateTo")
.HtmlAttributes(new { style = "width: 250px" })
.DataTextField("FullName")
.DataValueField("UserID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetAllUserList", "Admin");
});
})
)
</div>
</div>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<label for="CurrentUser">Start Date:</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">End Date:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtStartDate")
//.Value()
)
</div>
</div>
</div>
@*<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtEndDate")
//.Value()
)
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="SaveOOOInfo">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="ReAssignApproval" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">

View File

@ -89,109 +89,6 @@
</div>
</div>
@*<div class="modal fade" id="OOODialog" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Out Of Office for user: @User.Identity.GetUserName()</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">Delegate To:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="control-group">
<div class="controls">
<div class="controls">
@(Html.Kendo().DropDownList()
.Name("DelegateTo")
.HtmlAttributes(new { style = "width: 250px" })
.DataTextField("FullName")
.DataValueField("UserID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetAllUserList", "Admin");
});
})
)
</div>
</div>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<label for="CurrentUser">Start Date:</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<div class="controls">
<label for="CurrentUser">End Date:</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtStartDate")
//.Value()
)
</div>
</div>
</div>
@*<div class="col-sm-6">
<div class="control-group">
<div class="controls">
<input type="text" id="test"/>
</div>
</div>
</div>*@@*
<div class="col-sm-6">
<div class="control-group">
<div class="controls">
@(Html.Kendo().DatePicker()
.Name("txtEndDate")
//.Value()
)
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="SaveOOOInfo">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="ReAssignApproval" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-dialog">