937 lines
33 KiB
JavaScript

var _CdeId = null;
var _apiUrl = null;
var _BioRadId = null;
var _toolType = null;
var _workMaterial = {};
var _initialHeaderId = null;
var _toolTypeMetaData = null;
var _initialHeaderAttachmentId = null;
$(document).ready(function () {
if (location.pathname == "/") {
route = "/AwaitingDispo";
}
else {
route = location.pathname;
}
$('ul.nav.navbar-nav').find('a[href="' + route + '"]')
.closest('li').addClass('alert-info');
});
function loadRunInfoAwaitingDisposition() {
var row = $("#grid").igGrid("selectedRow");
if (row == null)
return;
var data = $("#grid").igGrid("findRecordByKey", row.id);
if (data == null)
return;
var targetURL = "RunInfo?tooltypeid=" + data.ToolTypeID + "&headerid=" + data.ID;
window.location.href = targetURL;
}
function initAwaitingDisposition(apiUrl) {
_apiUrl = apiUrl;
$("#grid").igGrid({
autoGenerateColumns: false,
width: "70%",
height: "100%",
primaryKey: "PK",
columns: [
{ key: "PK", dataType: "string", hidden: true, },
{ key: "ID", dataType: "number", hidden: true, },
{ key: "ToolTypeID", dataType: "number", hidden: true, },
{ headerText: "Tool Type", key: "ToolType", dataType: "string", width: "15%" },
{ key: "Tool", dataType: "string", width: "10%" },
{ key: "Reactor", dataType: "string", width: "10%" },
{ key: "RDS", dataType: "string", width: "10%" },
{ key: "PSN", dataType: "string", width: "10%" },
{ key: "Layer", dataType: "string", width: "10%" },
{ key: "Zone", dataType: "string", width: "10%" },
{ key: "InsertDate", dataType: "date", width: "10%", format: "dateTime" },
{ key: "Expiration", dataType: "date", width: "10%", format: "dateTime" }
],
dataSource: _apiUrl + "/awaitingdispo/",
responseDataKey: "Results",
tabIndex: 1,
features: [
{ name: "Selection", mode: "row", multipleSelection: false },
{ name: "Filtering", type: "local" },
{ name: "Sorting", type: "local" },
]
});
$("#RefreshButton").click(function () {
$("#grid").igGrid("dataBind");
});
$("#OpenButton").click(loadRunInfoAwaitingDisposition);
$("#grid").on("dblclick", "tr", loadRunInfoAwaitingDisposition);
};
function initExport(apiUrl, startTimeValue, endTimeValue) {
_apiUrl = apiUrl;
var endTime = new Date(endTimeValue);
var startTime = new Date(startTimeValue);
$.getJSON(_apiUrl + '/tooltypes', function (data) {
$("#ToolType").igCombo({
dataSource: data,
responseDataKey: "Results",
textKey: "ToolTypeName",
valueKey: "ID",
mode: "dropdown",
width: 150
});
});
$("#StartDateControl").igDatePicker({
dateInputFormat: "date",
value: startTime,
width: 125,
inputName: "StartDate",
});
$("#StartTimeControl").igTimePicker({
dateInputFormat: "time",
value: startTime,
width: 110,
inputName: "StartTime",
});
$("#EndDateControl").igDatePicker({
dateInputFormat: "date",
value: endTime,
width: 125,
inputName: "EndDate",
});
$("#EndTimeControl").igTimePicker({
dateInputFormat: "time",
value: endTime,
width: 110,
inputName: "EndTime",
});
};
function loadHeaderGridRunHeaders() {
var toolTypeID = -1; // $("#ToolType").igCombo("value");
var gridCreated = $("#HeaderGrid").data("igGrid");
if (gridCreated)
$("#HeaderGrid").igGrid("destroy");
clearFieldsGridRunHeaders();
var headerURL = _apiUrl + "/tooltypes/" + toolTypeID + "/headertitles";
$("#HeaderGrid").igGrid({
autoGenerateColumns: false,
primaryKey: "ID",
height: "100%",
width: "100%",
features: [
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 25, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: false },
{ name: "Selection", mode: "row", rowSelectionChanged: headerSelectionChangedRunHeaders },
{ name: "Filtering", type: "local" }
],
columns: [
{ key: "ID", dataType: "number", hidden: true },
{ key: "ToolTypeID", dataType: "number", hidden: true },
{ key: "ToolTypeName", dataType: "string", width: "10%" },
{ key: "Title", dataType: "string", width: "40%" },
{ key: "Reactor", dataType: "string", width: "10%" },
{ key: "RDS", dataType: "string", width: "10%" },
{ key: "PSN", dataType: "string", width: "10%" },
{ key: "InsertDate", dataType: "date", format: "dateTime", width: "20%" }
],
dataSource: headerURL,
responseDataKey: "Results",
});
}
function clearFieldsGridRunHeaders() {
var gridCreated = $("#FieldsGrid").data("igGrid");
if (gridCreated)
$("#FieldsGrid").igGrid("destroy");
}
function headerSelectionChangedRunHeaders(evt, ui) {
clearFieldsGridRunHeaders();
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
var url = _apiUrl + "/tooltypes/" + rowData.ToolTypeID + "/headers/" + ui.row.id + "/fields";
$("#FieldsGrid").igGrid({
autoGenerateColumns: false,
primaryKey: "Column",
height: "100%",
width: "100%",
features: [
{ name: 'Resizing' }
],
columns: [
{ key: "Column", dataType: "string", width: "20%", columnCssClass: "FieldTitle", },
{ key: "Value", dataType: "string", }
],
enableHoverStyles: false,
dataSource: url,
responseDataKey: "Results",
});
}
function loadRunInfoRunHeaders() {
var row = $("#HeaderGrid").igGrid("selectedRow");
if (row == null)
return;
var data = $("#HeaderGrid").igGrid("findRecordByKey", row.id);
if (data == null)
return;
var targetURL = "RunInfo?tooltypeid=" + data.ToolTypeID + "&headerid=" + data.ID;
window.location.href = targetURL;
}
function initRunHeaders(apiUrl) {
_apiUrl = apiUrl;
loadHeaderGridRunHeaders();
$("#RefreshButton").click(function () {
$("#HeaderGrid").igGrid("dataBind");
});
$("#OpenButton").click(loadRunInfoRunHeaders);
$("#HeaderGrid").on("dblclick", "tr", loadRunInfoRunHeaders);
}
function loadHeaderGridRunInfo() {
var toolTypeID = $("#ToolType").igCombo("value");
$("#ToolTypeID").text(toolTypeID);
hideDetailsDivRunInfo();
disableHeaderButtonsRunInfo();
$("#HeaderId").text("");
$("#HeaderAttachmentId").text("");
var gridCreated = $("#HeaderGrid").data("igGrid");
if (gridCreated)
$("#HeaderGrid").igGrid("destroy");
$.ajax({
type: "GET",
url: _apiUrl + "/tooltypes/" + toolTypeID + "?sortby=grid",
success: function (r) {
if ((r.Results == null) || (r.Results.ToolType == null) || (r.Results.Metadata == null))
ShowErrorMessage("Invalid tool type: " + toolTypeID);
else {
_toolType = r.Results.ToolType;
_toolTypeMetaData = r.Results.Metadata;
requestHeaderDataRunInfo();
}
},
error: function (e) {
DisplayWSMessage("error", "There was an error getting tooltype info.", e);
}
});
}
function disableHeaderButtonsRunInfo() {
$("#GetDataButton").prop("disabled", true);
$("#ReviewButton").prop("disabled", true);
$("#RecipeParametersButton").prop("disabled", true);
$("#ViewButton").prop("disabled", true);
$("#PinButton").prop("disabled", true);
}
function enableHeaderButtonsRunInfo() {
$("#GetDataButton").prop("disabled", false);
$("#ReviewButton").prop("disabled", false);
$("#RecipeParametersButton").prop("disabled", false);
$("#ViewButton").prop("disabled", false);
$("#PinButton").prop("disabled", false);
}
function hideDetailsDivRunInfo() {
$("#DetailsDiv").prop("hidden", true);
$("#DataAttachmentFrame").prop("src", "");
}
function showDetailsDivRunInfo() {
$("#DetailsDiv").prop("hidden", false);
$("#ExportDiv").prop("hidden", true);
if ((_toolType != null) && (_toolType.OIExportSPName != null) && (_toolType.OIExportSPName.length > 0)) {
$("#ExportDiv").prop("hidden", false);
$("#OIExportButton").prop("disabled", false);
$("#OIExportResult").text('');
}
$("#DataAttachmentFrame").prop("hidden", true);
$("#HeaderAttachmentFrame").prop("hidden", true);
if (_toolType != null) {
var visibleFrames = 0;
if (_toolType.DisplayDataAttachment && _toolType.DisplayDataAttachment.length > 0) {
visibleFrames += 1;
$("#DataAttachmentFrame").prop("hidden", false);
}
if (_toolType.DisplayHeaderAttachment && _toolType.DisplayHeaderAttachment.length > 0) {
visibleFrames += 1;
$("#HeaderAttachmentFrame").prop("hidden", false);
}
var frameWidth = (98 / visibleFrames) + "%";
$("#DataAttachmentFrame,#HeaderAttachmentFrame").css('width', frameWidth);
}
}
function headerSelectionChangedRunInfo(evt, ui) {
if (ui.row.index >= 0) {
if ($("#HeaderId").text() == ui.row.id) {
enableHeaderButtonsRunInfo();
return;
}
}
disableHeaderButtonsRunInfo();
hideDetailsDivRunInfo();
if (ui.row.index >= 0) {
enableHeaderButtonsRunInfo();
$("#HeaderId").text(ui.row.id);
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
$("#HeaderAttachmentId").text(rowData.AttachmentID);
}
}
function cancelHandlerRunInfo(evt, ui) {
return false;
}
function detailSelectionChangedRunInfo(evt, ui) {
$("#DataAttachmentFrame").prop("src", "");
if (ui.row.index >= 0) {
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
var toolTypeID = $("#ToolTypeID").text();
var attachmentUrlBase = _apiUrl + '/tooltypes/' + toolTypeID;
var attachmentId = rowData.AttachmentID;
if ((attachmentId == null) || (attachmentId === ''))
return;
if ((_toolType.DisplayDataAttachment == null) || (_toolType.DisplayDataAttachment === ''))
return;
$("#DataAttachmentFrame").prop("src", attachmentUrlBase + "/data/files/" + attachmentId + "/" + _toolType.DisplayDataAttachment);
}
}
function loadHeaderAttachmentRunInfo() {
var toolTypeID = $("#ToolTypeID").text();
var attachmentId = $("#HeaderAttachmentId").text();
var attachmentUrlBase = _apiUrl + '/tooltypes/' + toolTypeID;
if ((attachmentId == null) || (attachmentId === '') || (_toolType.DisplayHeaderAttachment == null) || (_toolType.DisplayHeaderAttachment === '')) {
$("#HeaderAttachmentFrame").prop("src", "");
} else {
$("#HeaderAttachmentFrame").prop("src", attachmentUrlBase + "/header/files/" + attachmentId + "/" + _toolType.DisplayHeaderAttachment);
}
$("#DataAttachmentFrame").prop("src", "");
}
function markAsReviewedRunInfo() {
var toolTypeId = $("#ToolTypeID").text();
var headerId = $("#HeaderId").text();
$.ajax({
type: "POST",
url: _apiUrl + "/awaitingdispo/markasreviewed?tooltypeid=" + toolTypeId + "&headerid=" + headerId,
success: function () {
},
error: function (e, ajaxOptions, ex) {
DisplayWSMessage("error", "There was an error marking header as reviewed.", e, ex);
$("#ReviewButton").prop("disabled", false);
}
});
}
function loadDetailsRunInfo() {
showDetailsDivRunInfo();
loadHeaderAttachmentRunInfo();
var gridCreated = $("#DetailsGrid").data("igGrid");
if (gridCreated)
$("#DetailsGrid").igGrid("destroy");
var headerId = $("#HeaderId").text();
var toolTypeID = $("#ToolTypeID").text();
var detailsURL = _apiUrl + "/tooltypes/" + toolTypeID + "/headers/" + headerId + "/data";
var gridColumns = [
{ key: "AttachmentID", dataType: "string", hidden: true },
{ key: "Title", dataType: "string", hidden: true },
];
for (var i = 0; i < _toolTypeMetaData.length; i++) {
var f = _toolTypeMetaData[i];
if ((f.Header == false) && (f.GridDisplayOrder > 0)) {
var col = {
key: f.ColumnName,
headerText: f.DisplayTitle,
width: "150px",
};
if (f.GridAttributes != null)
jQuery.extend(col, JSON.parse(f.GridAttributes));
if (col.formatter != null) {
if (col.formatter == "boolToYesNo")
col.formatter = boolToYesNo;
else
col.formatter = null;
}
gridColumns.push(col);
}
}
var gridParms = {
autoGenerateColumns: false,
primaryKey: "ID",
features: [
{ name: "Selection", mode: "row", rowSelectionChanging: detailSelectionChangedRunInfo },
{ name: "Resizing" },
{ name: "Sorting", type: "local" }
],
columns: gridColumns,
dataSource: detailsURL,
responseDataKey: "Results",
dataBound: markAsReviewedRunInfo,
};
if ((_toolType != null) && (_toolType.DataGridAttributes != null)) {
jQuery.extend(gridParms, JSON.parse(_toolType.DataGridAttributes));
}
$("#DetailsGrid").igGrid(gridParms);
}
function requestHeaderDataRunInfo() {
var startDate = $("#StartDate").igDatePicker("value");
var startTime = $("#StartTime").igTimePicker("value");
var endDate = $("#EndDate").igDatePicker("value");
var endTime = $("#EndTime").igTimePicker("value");
var parms = {
datebegin: new Date(
startDate.getFullYear(), startDate.getMonth(), startDate.getDate(),
startTime.getHours(), startTime.getMinutes(), startTime.getSeconds()).toISOString(),
dateend: new Date(
endDate.getFullYear(), endDate.getMonth(), endDate.getDate(),
endTime.getHours(), endTime.getMinutes(), endTime.getSeconds()).toISOString(),
}
var headerId = 0;
if (_initialHeaderId > 0) {
headerId = _initialHeaderId;
parms.headerid = headerId;
$("#HeaderId").text(headerId);
$("#HeaderAttachmentId").text(_initialHeaderAttachmentId);
_initialHeaderId = -1;
}
var headerURL = _apiUrl + "/tooltypes/" + _toolType.ID + "/headers?" + $.param(parms);
var gridColumns = [
{ key: "ID", dataType: "number", hidden: true },
{ key: "AttachmentID", dataType: "string", hidden: true },
{ key: "Title", dataType: "string", hidden: true },
];
for (var i = 0; i < _toolTypeMetaData.length; i++) {
var f = _toolTypeMetaData[i];
if ((f.Header == true) && (f.GridDisplayOrder > 0)) {
var col = {
key: f.ColumnName,
headerText: f.DisplayTitle,
width: "150px",
};
if (f.GridAttributes != null)
jQuery.extend(col, JSON.parse(f.GridAttributes));
if (col.formatter != null) {
if (col.formatter == "boolToYesNo")
col.formatter = boolToYesNo;
else
col.formatter = null;
}
gridColumns.push(col);
}
}
var gridParms = {
autoGenerateColumns: false,
primaryKey: "ID",
height: "100%",
width: "100%",
features: [
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 100, pageSizeList: [50, 100, 250, 500], pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page" },
{ name: "Selection", mode: "row", rowSelectionChanged: headerSelectionChangedRunInfo },
{ name: "Filtering", type: "local" },
{ name: 'Resizing' },
{ name: "Sorting", type: "local" }
],
columns: gridColumns,
dataSource: headerURL,
responseDataKey: "Results",
};
if ((_toolType != null) && (_toolType.HeaderGridAttributes != null)) {
jQuery.extend(gridParms, JSON.parse(_toolType.HeaderGridAttributes));
}
$("#HeaderGrid").igGrid(gridParms);
if (headerId > 0) {
loadDetailsRunInfo();
}
}
function reviewButtonRunInfo() {
var toolTypeId = $("#ToolTypeID").text();
var headerId = parseInt($("#HeaderId").text());
$("#ReviewButton").prop("disabled", true);
$.ajax({
type: "POST",
url: _apiUrl + "/awaitingdispo/markasawaiting?tooltypeid=" + toolTypeId + "&headerid=" + headerId,
success: function (e) {
DisplayWSMessage("info", "Marked as awaiting disposition", e);
$("#ReviewButton").prop("disabled", false);
},
error: function (e, ajaxOptions, ex) {
DisplayWSMessage("error", "There was an error marking header as awaiting disposition.", e, ex);
$("#ReviewButton").prop("disabled", false);
}
});
}
function recipeParametersButtonRunInfo() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow !== null) {
loadDetailsRunInfo();
$("#RecipeParametersButton").prop("disabled", true);
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
var stringified = JSON.stringify(rowData);
stringified = stringified.replace(/"Tool":/gm, '"MesEntity":');
stringified = stringified.replace(/"Equipment ID":/gm, '"MesEntity":');
var jsonObject = JSON.parse(stringified);
DisplayWSMessage("info", "Recipe Parameters", null);
$("#ModalHeaderGrid").igGrid({
dataSource: jsonObject,
dataSourceType: 'json',
features: [
{ name: 'Resizing' }
],
columns: [
{ headerText: "Tool", key: "MesEntity", dataType: "string", width: "10%" },
{ key: "Reactor", dataType: "string", width: "10%" },
{ key: "RDS", dataType: "string", width: "10%" },
{ key: "PSN", dataType: "string", width: "10%" },
{ key: "Layer", dataType: "string", width: "10%" },
{ key: "Zone", dataType: "string", width: "10%" }
]
});
var gridCreated = $("#ModalBodyGrid").data("igGrid");
if (gridCreated)
$("#ModalBodyGrid").igGrid("destroy");
$.getJSON('https://oi-prod-ec-api.mes.infineon.com/api/oiWizard/materials/rds/' + jsonObject.RDS, function (data) {
$("#RecipeParametersButton").prop("disabled", false);
var text = "";
for (var i = 0; i < data.rds.rdsLayers.length; i++) {
text = text
+ data.rds.rdsLayers[i].EpiTime
+ "\t" + data.rds.rdsLayers[i].EpiH2Flow
+ "\t" + data.rds.rdsLayers[i].TCSFlow
+ "\t" + data.rds.rdsLayers[i].DiluentAdjParam
+ "\t" + data.rds.rdsLayers[i].EpiH2Flow
+ "\t" + data.rds.rdsLayers[i].DopantFlow
+ "\t" + data.rds.rdsLayers[i].FOffset
+ "\t" + data.rds.rdsLayers[i].SOffset
+ "\t" + data.rds.rdsLayers[i].ROffset
+ "\t" + data.rds.rdsLayers[i].SuscEtch
+ "\r"
}
$("#textareaClipboard").val(text);
$("#ModalBodyGrid").igGrid({
dataSource: data.rds.rdsLayers,
features: [
{ name: 'Resizing' }
],
columns: [
{ headerText: "Dep Time", key: "EpiTime", dataType: "number", width: "10%" },
{ headerText: "H2", key: "EpiH2Flow", dataType: "number", width: "10%" },
{ headerText: "TCS", key: "TCSFlow", dataType: "number", width: "10%" },
{ headerText: "DIL", key: "DiluentAdjParam", dataType: "string", width: "10%" },
{ headerText: "SRC", key: "EpiH2Flow", dataType: "number", width: "10%" },
{ headerText: "INJ", key: "DopantFlow", dataType: "string", width: "10%" },
{ headerText: "F", key: "FOffset", dataType: "string", width: "10%" },
{ headerText: "S", key: "SOffset", dataType: "string", width: "10%" },
{ headerText: "R", key: "ROffset", dataType: "string", width: "10%" },
{ headerText: "Susc Etch", key: "SuscEtch", dataType: "string", width: "10%" },
],
responseDataKey: "Results",
});
});
}
}
function viewButtonRunInfo() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow !== null) {
$("#ViewButton").prop("disabled", true);
loadDetailsRunInfo();
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
var stringified = JSON.stringify(rowData);
stringified = stringified.replace(/"Tool":/gm, '"MesEntity":');
stringified = stringified.replace(/"Equipment ID":/gm, '"MesEntity":');
var jsonObject = JSON.parse(stringified);
DisplayWSMessage("info", "View", null);
$("#ModalHeaderGrid").igGrid({
dataSource: jsonObject,
dataSourceType: 'json',
features: [
{ name: 'Resizing' }
],
columns: [
{ headerText: "Tool", key: "MesEntity", dataType: "string", width: "10%" },
{ key: "Reactor", dataType: "string", width: "10%" },
{ key: "RDS", dataType: "string", width: "10%" },
{ key: "PSN", dataType: "string", width: "10%" },
{ key: "Layer", dataType: "string", width: "10%" },
{ key: "Zone", dataType: "string", width: "10%" }
]
});
var gridCreated = $("#ModalBodyGrid").data("igGrid");
if (gridCreated)
$("#ModalBodyGrid").igGrid("destroy");
var headerId = $("#HeaderId").text();
var toolTypeID = $("#ToolTypeID").text();
var detailsURL = _apiUrl + "/tooltypes/" + toolTypeID + "/headers/" + headerId + "/data";
$.getJSON(detailsURL, function (data) {
var obj = {};
var text = "";
for (var i = 0; i < data.Results.length && i < 9; i++) {
if (data.Results[i].Thickness) {
text = text + data.Results[i].Thickness + "\t";
obj['Point' + (i + 1)] = data.Results[i].Thickness;
}
else if (data.Results[i].Rs) {
text = text + data.Results[i].Rs + "\t";
obj['Point' + (i + 1)] = data.Results[i].Rs;
}
}
text = text + "\r";
$("#textareaClipboard").val(text);
$("#ModalBodyGrid").igGrid({
dataSource: obj,
dataSourceType: 'json',
features: [
{ name: 'Resizing' }
],
columns: [
{ headerText: "Point 1", key: "Point1", dataType: "string", width: "10%" },
{ headerText: "Point 2", key: "Point2", dataType: "string", width: "10%" },
{ headerText: "Point 3", key: "Point3", dataType: "string", width: "10%" },
{ headerText: "Point 4", key: "Point4", dataType: "string", width: "10%" },
{ headerText: "Point 5", key: "Point5", dataType: "string", width: "10%" },
{ headerText: "Point 6", key: "Point6", dataType: "string", width: "10%" },
{ headerText: "Point 7", key: "Point7", dataType: "string", width: "10%" },
{ headerText: "Point 8", key: "Point8", dataType: "string", width: "10%" },
{ headerText: "Point 9", key: "Point9", dataType: "string", width: "10%" },
]
});
$("#ViewButton").prop("disabled", false);
});
}
}
function pinButtonRunInfo() {
var toolTypeId = $("#ToolTypeID").text();
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow !== null) {
loadDetailsRunInfo();
$("#PinButton").prop("disabled", true);
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
var stringified = JSON.stringify(rowData);
stringified = stringified.replace(/"Tool":/gm, '"MesEntity":');
stringified = stringified.replace(/"Equipment ID":/gm, '"MesEntity":');
var jsonObject = JSON.parse(stringified);
$.ajax({
type: "POST",
url: _apiUrl + '/pin/' + toolTypeId + "/markAsPinned",
data: jsonObject,
success: function (e) {
var gridCreated = $("#ModalBodyGrid").data("igGrid");
if (gridCreated)
$("#ModalBodyGrid").igGrid("destroy");
DisplayWSMessage("info", "Marked as pinned", e);
// DisplayWSMessage("info", stringified, e);
$("#PinButton").prop("disabled", false);
$.getJSON(_apiUrl + '/pin/' + toolTypeId + "/pinned?biorad_id=" + _BioRadId + "&cde_id=" + _CdeId + "&rds=" + jsonObject.RDS, function (data) {
$("#ModalHeaderGrid").igGrid({
dataSource: data,
features: [
{ name: 'Resizing' }
],
columns: [
{ key: "ID", dataType: "number", hidden: true, },
{ key: "ToolTypeID", dataType: "number", hidden: true, },
{ headerText: "Tool", key: "MesEntity", dataType: "string", width: "10%" },
{ key: "Reactor", dataType: "string", width: "10%" },
{ key: "RDS", dataType: "string", width: "10%" },
{ key: "PSN", dataType: "string", width: "10%" },
{ key: "Layer", dataType: "string", width: "10%" },
{ key: "Zone", dataType: "string", width: "10%" }
],
responseDataKey: "Results",
});
var text = "";
for (var i = 0; i < data.Results.length; i++) {
text = text
+ data.Results[i].Point1
+ "\t" + data.Results[i].Point2
+ "\t" + data.Results[i].Point3
+ "\t" + data.Results[i].Point4
+ "\t" + data.Results[i].Point5
+ "\t" + data.Results[i].Point6
+ "\t" + data.Results[i].Point7
+ "\t" + data.Results[i].Point8
+ "\t" + data.Results[i].Point9
+ "\r";
}
$("#textareaClipboard").val(text);
$("#ModalBodyGrid").igGrid({
dataSource: data,
features: [
{ name: 'Resizing' }
],
columns: [
{ key: "ID", dataType: "number", hidden: true, },
{ key: "ToolTypeID", dataType: "number", hidden: true, },
{ headerText: "Point 1", key: "Point1", dataType: "number", width: "10%" },
{ headerText: "Point 2", key: "Point2", dataType: "number", width: "10%" },
{ headerText: "Point 3", key: "Point3", dataType: "number", width: "10%" },
{ headerText: "Point 4", key: "Point4", dataType: "number", width: "10%" },
{ headerText: "Point 5", key: "Point5", dataType: "number", width: "10%" },
{ headerText: "Point 6", key: "Point6", dataType: "number", width: "10%" },
{ headerText: "Point 7", key: "Point7", dataType: "number", width: "10%" },
{ headerText: "Point 8", key: "Point8", dataType: "number", width: "10%" },
{ headerText: "Point 9", key: "Point9", dataType: "number", width: "10%" },
],
responseDataKey: "Results",
});
});
},
error: function (e, ajaxOptions, ex) {
DisplayWSMessage("error", "There was an error marking header as pinned.", e, ex);
$("#PinButton").prop("disabled", false);
}
});
}
}
function oiExportButtonRunInfo() {
var headerId = $("#HeaderId").text();
var toolTypeID = $("#ToolTypeID").text();
$("#OIExportButton").prop("disabled", true);
$.ajax({
type: "POST",
url: _apiUrl + "/tooltypes/" + toolTypeID + "/headers/" + headerId + "/oiexport",
success: function (r) {
$("#OIExportResult").text("Exported!");
},
error: function (e, ajaxOptions, ex) {
DisplayWSMessage("error", "There was an error exporting.", e, ex);
$("#OIExportButton").prop("disabled", false);
}
});
}
function setInitialDateTimesRunInfo() {
var startTime = new Date(Date.now() - 6 * 60 * 60 * 1000);//6 hours back from now
$("#StartDate").igDatePicker({
dateInputFormat: "date",
value: startTime,
width: 125
});
$("#StartTime").igTimePicker({
dateInputFormat: "time",
value: startTime,
width: 110
});
var endTime = new Date(Date.now());
$("#EndDate").igDatePicker({
dateInputFormat: "date",
value: endTime,
width: 125
});
$("#EndTime").igTimePicker({
dateInputFormat: "time",
value: endTime,
width: 110
});
}
function initRunInfo(apiUrl, initialToolTypeID, initialHeaderId, initialHeaderAttachmentId) {
_apiUrl = apiUrl;
_initialHeaderId = initialHeaderId;
_initialHeaderAttachmentId = initialHeaderAttachmentId;
$.getJSON(_apiUrl + '/tooltypes', function (data) {
for (var i = 0; i < data.Results.length; i++) {
if (data.Results[i].ToolTypeName === "CDE") {
_CdeId = data.Results[i].ID;
}
else if (data.Results[i].ToolTypeName === "BioRad") {
_BioRadId = data.Results[i].ID;
}
}
$("#ToolType").igCombo({
dataSource: data,
responseDataKey: "Results",
textKey: "ToolTypeName",
valueKey: "ID",
mode: "dropdown",
width: 150,
itemsRendered: function (evt, ui) {
loadHeaderGridRunInfo();
},
selectionChanged: loadHeaderGridRunInfo,
initialSelectedItems: [{ value: initialToolTypeID }]
});
});
setInitialDateTimesRunInfo();
$("#HeaderGrid").on("dblclick", "tr", loadDetailsRunInfo);
$("#LoadHeadersButton").click(loadHeaderGridRunInfo);
$("#GetDataButton").click(loadDetailsRunInfo);
$("#ReviewButton").click(reviewButtonRunInfo);
$("#RecipeParametersButton").click(recipeParametersButtonRunInfo);
$("#ViewButton").click(viewButtonRunInfo);
$("#PinButton").click(pinButtonRunInfo);
$("#OIExportButton").click(oiExportButtonRunInfo);
setInterval(function () {
if ($("#chkAutoRefresh").is(':checked')) {
setInitialDateTimesRunInfo();
$("#LoadHeadersButton").click();
}
}, 180000);
};
function triggerFileDownload(fileName, url) {
const anchorElement = document.createElement('a');
anchorElement.href = url;
anchorElement.download = fileName ?? '';
anchorElement.click();
anchorElement.remove();
}
function initIndex() {
}
function copy() {
var copyText = document.getElementById("textareaClipboard");
// Select the text field
copyText.select();
copyText.setSelectionRange(0, 99999); // For mobile devices
// Copy the text inside the text field
navigator.clipboard.writeText(copyText.value);
}
function clearWorkMaterial() {
_workMaterial = {};
$("#scan").val("");
$("#layer1").show();
$("#layer2").show();
$("#layer3").show();
$("#username").val("");
$("#runDataSheet1").hide();
$("#runDataSheet2").hide();
$("#runDataSheet3").hide();
$("#runDataSheet4").hide();
$("#runDataSheet5").hide();
$("#runDataSheet6").hide();
$("#runDataSheet1").val("");
$("#runDataSheet2").val("");
$("#runDataSheet3").val("");
$("#runDataSheet4").val("");
$("#runDataSheet5").val("");
$("#runDataSheet6").val("");
var gridCreated = $("#cassetteGrid").data("igGrid");
if (gridCreated)
$("#cassetteGrid").igGrid("destroy");
}
function postWorkMaterial() {
var row = $("#cassetteGrid").igGrid("selectedRow");
if (row == null)
return;
var data = $("#cassetteGrid").igGrid("findRecordByKey", row.id);
if (data == null)
return;
if (!_workMaterial['layer'])
ShowErrorMessage("Select layer and try agian");
else {
_workMaterial['psn'] = data.PSN;
_workMaterial['layer'] = data.Layer;
_workMaterial['pocket'] = data.Pocket;
_workMaterial['reactor'] = data.Reactor;
_workMaterial['inSlotNumber'] = data.InSlotNumber;
_workMaterial['runDataSheet'] = data.RunDataSheet;
_workMaterial['outSlotNumber'] = data.OutSlotNumber;
_workMaterial['inCassetteNumber'] = data.InCassetteNumber;
_workMaterial['outCassetteNumber'] = data.OutCassetteNumber;
var mesage = "Data Saved for {" + _workMaterial['scan'] + "} RDS {" + data.RunDataSheet + "} slot {" + data.OutSlotNumber + "}";
$.post(_apiUrl + "/api/Reactors/", _workMaterial, function (data) {
DisplayWSMessage("info", mesage + " use [" + data + "]", null);
}).fail(function () {
ShowErrorMessage("Error");
});
}
}
function initWorkMaterial(apiUrl) {
_apiUrl = apiUrl;
$("#runDataSheet1").hide();
$("#runDataSheet2").hide();
$("#runDataSheet3").hide();
$("#runDataSheet4").hide();
$("#runDataSheet5").hide();
$("#runDataSheet6").hide();
};
function layer(layerNumber) {
$("#layer1").hide();
$("#layer2").hide();
$("#layer3").hide();
var scan = $("#scan").val();
$("#layer" + layerNumber).show();
var username = $("#username").val();
_workMaterial['layer'] = layerNumber;
if (!scan || scan === "" || scan.length < 3 || (scan[0] !== 'o' && scan[0] !== 'O')) {
ShowErrorMessage("Invalid WM Out");
}
else if (!username || username === "" || username.length < 2) {
ShowErrorMessage("Invalid username");
}
else {
_workMaterial['scan'] = scan;
_workMaterial['username'] = username;
$.getJSON(_apiUrl + "/api/WorkMaterial/" + scan + "/", function (data) {
if (data.Results.length === 0)
ShowErrorMessage("No data found");
else {
$("#cassetteGrid").igGrid({
dataSource: data,
primaryKey: "OutSlotNumber",
features: [
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanged: postWorkMaterial },
{ name: 'Resizing' },
{ name: "Filtering", type: "local" },
],
responseDataKey: "Results",
});
var distinct = [];
for (var i = 0; i < data.Results.length; i++) {
if (distinct.indexOf(data.Results[i].RunDataSheet) > -1)
continue;
distinct.push(data.Results[i].RunDataSheet);
}
if (distinct.length > 0) {
$("#runDataSheet1").val(distinct[0]);
$("#runDataSheet1").show();
}
if (distinct.length > 1) {
$("#runDataSheet2").val(distinct[1]);
$("#runDataSheet2").show();
}
if (distinct.length > 2) {
$("#runDataSheet3").val(distinct[2]);
$("#runDataSheet3").show();
}
if (distinct.length > 3) {
$("#runDataSheet4").val(distinct[3]);
$("#runDataSheet4").show();
}
if (distinct.length > 4) {
$("#runDataSheet5").val(distinct[4]);
$("#runDataSheet5").show();
}
if (distinct.length > 5) {
$("#runDataSheet6").val(distinct[4]);
$("#runDataSheet6").show();
}
$("#cassetteGrid").on("dblclick", "tr", postWorkMaterial);
}
});
}
};
function runDataSheet(runDataSheetIndex) {
var runDataSheet = $("#runDataSheet" + runDataSheetIndex).val();
_workMaterial['runDataSheet'] = runDataSheet;
$("#cassetteGrid").igGridFiltering("filter", ([{ fieldName: "RunDataSheet", expr: runDataSheet, cond: "equals" }]));
};
function restartButton(apiUrl) {
clearWorkMaterial();
};