Updated Static Site Files
This commit is contained in:
parent
2acb024d87
commit
af15db0209
2
.gitignore
vendored
2
.gitignore
vendored
@ -345,3 +345,5 @@ ASALocalRun/
|
|||||||
Adaptation/.kanbn
|
Adaptation/.kanbn
|
||||||
Adaptation/FileHandlers/json/StaticSite/json/work-items.json
|
Adaptation/FileHandlers/json/StaticSite/json/work-items.json
|
||||||
Adaptation/FileHandlers/json/StaticSite/igniteui/**/*
|
Adaptation/FileHandlers/json/StaticSite/igniteui/**/*
|
||||||
|
Adaptation/FileHandlers/json/StaticSite/json/**/*
|
||||||
|
Adaptation/FileHandlers/json/StaticSite/markdown/**/*
|
||||||
|
@ -70,7 +70,7 @@ public class ProcessData : IProcessData
|
|||||||
ReadOnlyDictionary<int, Record> keyValuePairs = GetWorkItems(workItems);
|
ReadOnlyDictionary<int, Record> keyValuePairs = GetWorkItems(workItems);
|
||||||
WriteFileStructure(destinationDirectory, keyValuePairs);
|
WriteFileStructure(destinationDirectory, keyValuePairs);
|
||||||
WriteFiles(fileRead, destinationDirectory, fileInfoCollection, fileNameWithoutExtension, keyValuePairs);
|
WriteFiles(fileRead, destinationDirectory, fileInfoCollection, fileNameWithoutExtension, keyValuePairs);
|
||||||
WriteKanbanFiles(fileRead, destinationDirectory, cssLines, frontMatterLines, fileInfoCollection, keyValuePairs);
|
WriteKanbanFiles(fileRead, url, cssLines, frontMatterLines, fileInfoCollection, destinationDirectory, keyValuePairs);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ReadOnlyDictionary<int, Record> GetWorkItems(WorkItem[] workItems)
|
private static ReadOnlyDictionary<int, Record> GetWorkItems(WorkItem[] workItems)
|
||||||
@ -95,7 +95,7 @@ public class ProcessData : IProcessData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteFiles(IFileRead fileRead, string destinationDirectory, List<FileInfo> fileInfoCollection, string fileNameWithoutExtension, ReadOnlyDictionary<int, Record> keyValuePairs)
|
private static void WriteFiles(IFileRead fileRead, string destinationDirectory, List<FileInfo> fileInfoCollection, string fileNameWithoutExtension, ReadOnlyDictionary<int, Record> keyValuePairs)
|
||||||
{
|
{
|
||||||
string old;
|
string old;
|
||||||
string json;
|
string json;
|
||||||
@ -127,32 +127,34 @@ public class ProcessData : IProcessData
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteKanbanFiles(IFileRead fileRead, string destinationDirectory, ReadOnlyCollection<string> cssLines, ReadOnlyCollection<string> frontMatterLines, List<FileInfo> fileInfoCollection, ReadOnlyDictionary<int, Record> keyValuePairs)
|
private static void WriteKanbanFiles(IFileRead fileRead, string url, ReadOnlyCollection<string> cssLines, ReadOnlyCollection<string> frontMatterLines, List<FileInfo> fileInfoCollection, string destinationDirectory, ReadOnlyDictionary<int, Record> keyValuePairs)
|
||||||
{
|
{
|
||||||
string old;
|
string old;
|
||||||
string json;
|
string json;
|
||||||
Record record;
|
Record record;
|
||||||
|
string markdown;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
|
string jsonDirectory;
|
||||||
string tasksDirectory;
|
string tasksDirectory;
|
||||||
string kanbanDirectory;
|
string kanbanDirectory;
|
||||||
string vscodeDirectory;
|
string vscodeDirectory;
|
||||||
string[] iterationPaths;
|
string[] iterationPaths;
|
||||||
string singletonDirectory;
|
string singletonDirectory;
|
||||||
List<string> indexLines = new();
|
string iterationPathDirectory;
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
||||||
foreach (KeyValuePair<int, Record> keyValuePair in keyValuePairs)
|
foreach (KeyValuePair<int, Record> keyValuePair in keyValuePairs)
|
||||||
{
|
{
|
||||||
record = keyValuePair.Value;
|
record = keyValuePair.Value;
|
||||||
singletonDirectory = destinationDirectory;
|
iterationPathDirectory = destinationDirectory;
|
||||||
iterationPaths = record.WorkItem.IterationPath.Split('\\');
|
iterationPaths = record.WorkItem.IterationPath.Split('\\');
|
||||||
json = JsonSerializer.Serialize(record, jsonSerializerOptions);
|
json = JsonSerializer.Serialize(record, jsonSerializerOptions);
|
||||||
foreach (string iterationPath in iterationPaths)
|
foreach (string iterationPath in iterationPaths)
|
||||||
{
|
{
|
||||||
if (iterationPath.Contains("Sprint"))
|
if (iterationPath.Contains("Sprint"))
|
||||||
continue;
|
continue;
|
||||||
singletonDirectory = Path.Combine(singletonDirectory, iterationPath);
|
iterationPathDirectory = Path.Combine(iterationPathDirectory, iterationPath);
|
||||||
}
|
}
|
||||||
singletonDirectory = Path.Combine(singletonDirectory, record.WorkItem.WorkItemType.Replace(" ", "-"), $"{record.WorkItem.Id}-{record.WorkItem.WorkItemType.Replace(" ", "-")}");
|
singletonDirectory = Path.Combine(iterationPathDirectory, record.WorkItem.WorkItemType.Replace(" ", "-"), $"{record.WorkItem.Id}-{record.WorkItem.WorkItemType.Replace(" ", "-")}");
|
||||||
kanbanDirectory = Path.Combine(singletonDirectory, ".kanbn");
|
kanbanDirectory = Path.Combine(singletonDirectory, ".kanbn");
|
||||||
if (!Directory.Exists(kanbanDirectory))
|
if (!Directory.Exists(kanbanDirectory))
|
||||||
_ = Directory.CreateDirectory(kanbanDirectory);
|
_ = Directory.CreateDirectory(kanbanDirectory);
|
||||||
@ -162,35 +164,28 @@ public class ProcessData : IProcessData
|
|||||||
vscodeDirectory = Path.Combine(singletonDirectory, ".vscode");
|
vscodeDirectory = Path.Combine(singletonDirectory, ".vscode");
|
||||||
if (!Directory.Exists(vscodeDirectory))
|
if (!Directory.Exists(vscodeDirectory))
|
||||||
_ = Directory.CreateDirectory(vscodeDirectory);
|
_ = Directory.CreateDirectory(vscodeDirectory);
|
||||||
|
jsonDirectory = Path.Combine(singletonDirectory, record.WorkItem.Id.ToString());
|
||||||
|
if (!Directory.Exists(jsonDirectory))
|
||||||
|
_ = Directory.CreateDirectory(jsonDirectory);
|
||||||
checkFile = Path.Combine(vscodeDirectory, "settings.json");
|
checkFile = Path.Combine(vscodeDirectory, "settings.json");
|
||||||
if (!File.Exists(checkFile))
|
if (!File.Exists(checkFile))
|
||||||
File.WriteAllText(checkFile, "{ \"[markdown]\": { \"editor.wordWrap\": \"off\" }, \"cSpell.words\": [ \"kanbn\" ] }");
|
File.WriteAllText(checkFile, "{ \"[markdown]\": { \"editor.wordWrap\": \"off\" }, \"cSpell.words\": [ \"kanbn\" ] }");
|
||||||
indexLines.Clear();
|
markdown = GetIndexLines(frontMatterLines, record);
|
||||||
indexLines.AddRange(frontMatterLines);
|
|
||||||
indexLines.Add(string.Empty);
|
|
||||||
indexLines.Add($"# {record.WorkItem.Id}");
|
|
||||||
indexLines.Add(string.Empty);
|
|
||||||
indexLines.Add("## Backlog");
|
|
||||||
indexLines.Add(string.Empty);
|
|
||||||
indexLines.Add("## Todo");
|
|
||||||
indexLines.Add(string.Empty);
|
|
||||||
indexLines.Add("## In Progress");
|
|
||||||
indexLines.Add(string.Empty);
|
|
||||||
indexLines.Add("## Done");
|
|
||||||
checkFile = Path.Combine(kanbanDirectory, "board.css");
|
checkFile = Path.Combine(kanbanDirectory, "board.css");
|
||||||
if (!File.Exists(checkFile))
|
if (!File.Exists(checkFile))
|
||||||
File.WriteAllLines(checkFile, cssLines);
|
File.WriteAllLines(checkFile, cssLines);
|
||||||
checkFile = Path.Combine(kanbanDirectory, "index.md");
|
checkFile = Path.Combine(kanbanDirectory, "index.md");
|
||||||
if (!File.Exists(checkFile))
|
if (!File.Exists(checkFile))
|
||||||
File.WriteAllLines(checkFile, indexLines);
|
File.WriteAllText(checkFile, markdown);
|
||||||
checkFile = Path.Combine(kanbanDirectory, ".json");
|
checkFile = Path.Combine(jsonDirectory, ".json");
|
||||||
if (File.Exists(checkFile))
|
old = File.Exists(checkFile) ? File.ReadAllText(checkFile) : string.Empty;
|
||||||
{
|
if (old != json)
|
||||||
old = File.ReadAllText(checkFile);
|
File.WriteAllText(checkFile, json);
|
||||||
if (old == json)
|
markdown = GetMarkdownLines(url, record, jsonDirectory, iterationPathDirectory);
|
||||||
continue;
|
checkFile = Path.Combine(vscodeDirectory, "markdown.md");
|
||||||
}
|
old = File.Exists(checkFile) ? File.ReadAllText(checkFile) : string.Empty;
|
||||||
File.WriteAllText(checkFile, json);
|
if (old != markdown)
|
||||||
|
File.WriteAllText(checkFile, markdown);
|
||||||
if (!fileRead.IsEAFHosted)
|
if (!fileRead.IsEAFHosted)
|
||||||
fileInfoCollection.Add(new(checkFile));
|
fileInfoCollection.Add(new(checkFile));
|
||||||
}
|
}
|
||||||
@ -213,11 +208,11 @@ public class ProcessData : IProcessData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
records = GetKeyValuePairs(keyValuePairs, keyValuePair.Value, nests);
|
records = GetKeyValuePairs(keyValuePairs, keyValuePair.Value, nests);
|
||||||
record = new(keyValuePair.Value, parentWorkItem, records, null);
|
record = new(keyValuePair.Value, parentWorkItem, records);
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
record = new(keyValuePair.Value, parentWorkItem, new(Array.Empty<Record>()), null);
|
record = new(keyValuePair.Value, parentWorkItem, new(Array.Empty<Record>()));
|
||||||
}
|
}
|
||||||
results.Add(keyValuePair.Key, record);
|
results.Add(keyValuePair.Key, record);
|
||||||
}
|
}
|
||||||
@ -251,6 +246,49 @@ public class ProcessData : IProcessData
|
|||||||
return new(results.Distinct().ToArray());
|
return new(results.Distinct().ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string GetIndexLines(ReadOnlyCollection<string> frontMatterLines, Record record)
|
||||||
|
{
|
||||||
|
List<string> results = new();
|
||||||
|
results.Clear();
|
||||||
|
results.AddRange(frontMatterLines);
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add($"# {record.WorkItem.Id}");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add("## Backlog");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add("## Todo");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add("## In Progress");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add("## Done");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
return string.Join(Environment.NewLine, results);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetMarkdownLines(string url, Record record, string jsonDirectory, string iterationPathDirectory)
|
||||||
|
{
|
||||||
|
List<string> results = new();
|
||||||
|
string link;
|
||||||
|
string target;
|
||||||
|
results.Add($"# {record.WorkItem.Id}");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add($"## {record.WorkItem.Title}");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
foreach (Record r in record.Children)
|
||||||
|
results.Add($"- [{r.WorkItem.Id}]({url}{r.WorkItem.Id})");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
results.Add("```bash");
|
||||||
|
foreach (Record r in record.Children)
|
||||||
|
{
|
||||||
|
link = Path.Combine(jsonDirectory, $"{r.WorkItem.Id}-{r.WorkItem.WorkItemType}");
|
||||||
|
target = Path.Combine(iterationPathDirectory, r.WorkItem.WorkItemType, $"{r.WorkItem.Id}-{r.WorkItem.WorkItemType}", r.WorkItem.Id.ToString());
|
||||||
|
results.Add($"mklink /J \"{link}\" \"{target}\"");
|
||||||
|
}
|
||||||
|
results.Add("```");
|
||||||
|
results.Add(string.Empty);
|
||||||
|
return string.Join(Environment.NewLine, results);
|
||||||
|
}
|
||||||
|
|
||||||
private static ReadOnlyCollection<Record> GetKeyValuePairs(ReadOnlyDictionary<int, WorkItem> keyValuePairs, WorkItem workItem, List<bool> nests)
|
private static ReadOnlyCollection<Record> GetKeyValuePairs(ReadOnlyDictionary<int, WorkItem> keyValuePairs, WorkItem workItem, List<bool> nests)
|
||||||
{
|
{
|
||||||
List<Record> results = new();
|
List<Record> results = new();
|
||||||
@ -283,7 +321,7 @@ public class ProcessData : IProcessData
|
|||||||
else
|
else
|
||||||
_ = keyValuePairs.TryGetValue(w.Parent.Value, out parentWorkItem);
|
_ = keyValuePairs.TryGetValue(w.Parent.Value, out parentWorkItem);
|
||||||
records = GetKeyValuePairs(keyValuePairs, w, nests);
|
records = GetKeyValuePairs(keyValuePairs, w, nests);
|
||||||
record = new(w, parentWorkItem, records, null);
|
record = new(w, parentWorkItem, records);
|
||||||
results.Add(record);
|
results.Add(record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -256,11 +256,11 @@ public class ProcessData : IProcessData
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
records = GetKeyValuePairs(keyValuePairs, keyValuePair.Value, nests);
|
records = GetKeyValuePairs(keyValuePairs, keyValuePair.Value, nests);
|
||||||
record = new(keyValuePair.Value, parentWorkItem, records, null);
|
record = new(keyValuePair.Value, parentWorkItem, records);
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
record = new(keyValuePair.Value, parentWorkItem, new(Array.Empty<Record>()), null);
|
record = new(keyValuePair.Value, parentWorkItem, new(Array.Empty<Record>()));
|
||||||
}
|
}
|
||||||
results.Add(keyValuePair.Key, record);
|
results.Add(keyValuePair.Key, record);
|
||||||
}
|
}
|
||||||
@ -309,7 +309,7 @@ public class ProcessData : IProcessData
|
|||||||
else
|
else
|
||||||
_ = keyValuePairs.TryGetValue(w.Parent.Value, out parentWorkItem);
|
_ = keyValuePairs.TryGetValue(w.Parent.Value, out parentWorkItem);
|
||||||
records = GetKeyValuePairs(keyValuePairs, w, nests);
|
records = GetKeyValuePairs(keyValuePairs, w, nests);
|
||||||
record = new(w, parentWorkItem, records, null);
|
record = new(w, parentWorkItem, records);
|
||||||
results.Add(record);
|
results.Add(record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
65
Adaptation/FileHandlers/json/StaticSite/html/122508.html
Normal file
65
Adaptation/FileHandlers/json/StaticSite/html/122508.html
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - 122508 - Feature iteration should be set to max of children</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/122508.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/122508.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand" style="min-width: 20px;">
|
||||||
|
<span id="siteHeader"> </span> - 122508 - Feature iteration should be set to max of children
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/122508">122508</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 10px;">
|
||||||
|
|
||||||
|
<div style="height: 550px;" id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/check-122508.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
65
Adaptation/FileHandlers/json/StaticSite/html/122514.html
Normal file
65
Adaptation/FileHandlers/json/StaticSite/html/122514.html
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - 122514 - Features and children must have a Tag</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/122514.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/122514.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand" style="min-width: 20px;">
|
||||||
|
<span id="siteHeader"> </span> - 122514 - Features and children must have a Tag
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/122514">122514</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 10px;">
|
||||||
|
|
||||||
|
<div style="height: 550px;" id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/check-122514.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
65
Adaptation/FileHandlers/json/StaticSite/html/123066.html
Normal file
65
Adaptation/FileHandlers/json/StaticSite/html/123066.html
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - 123066 - When children of a Feature are not New Feature must also not be New</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/123066.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/123066.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand" style="min-width: 20px;">
|
||||||
|
<span id="siteHeader"> </span> - 123066 - When children of a Feature are not New Feature must also not be New
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/123066">123066</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 10px;">
|
||||||
|
|
||||||
|
<div style="height: 550px;" id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/check-123066.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -4,14 +4,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
<title>FI Backlog HiRel (Leominster)</title>
|
<title>Infineon - 123067 - WIP</title>
|
||||||
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
<link href="/styles/leo.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
<link href="/styles/123067.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/js/leo.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/js/123067.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
@ -27,12 +27,12 @@
|
|||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="navbar-brand" style="min-width: 20px;">
|
<div class="navbar-brand" style="min-width: 20px;">
|
||||||
FI Backlog HiRel (Leominster)
|
<span id="siteHeader"> </span> - 123067 - WIP
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-collapse collapse">
|
<div class="navbar-collapse collapse">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li><a target="_blank" href="/markdown/Feature.html">Feature(s)</a></li>
|
<li><a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/123067">123067</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="navbar-text navbar-right">
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
@ -56,7 +56,7 @@
|
|||||||
<script>
|
<script>
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
initIndex("/json/work-items.json?v=2024-10-07-18-50");
|
initIndex("/markdown/check-123067.json?v=2024-10-07-18-50");
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
65
Adaptation/FileHandlers/json/StaticSite/html/126169.html
Normal file
65
Adaptation/FileHandlers/json/StaticSite/html/126169.html
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - 126169 - Children of a Feature should have the same priority</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/126169.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/126169.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand" style="min-width: 20px;">
|
||||||
|
<span id="siteHeader"> </span> - 126169 - Children of a Feature should have the same priority
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/126169">126169</a></li>
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 10px;">
|
||||||
|
|
||||||
|
<div style="height: 550px;" id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/check-126169.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
68
Adaptation/FileHandlers/json/StaticSite/html/business.html
Normal file
68
Adaptation/FileHandlers/json/StaticSite/html/business.html
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - Business Value</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/business.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/business.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand">
|
||||||
|
<span id="siteHeader"> </span> - Business Value</br>
|
||||||
|
What is the relative value to the Customer or business?
|
||||||
|
• Do our users prefer this over that?
|
||||||
|
• What is the revenue impact on our business?
|
||||||
|
• Is there a potential penalty or other negative effects if we delay?
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 80px; margin-left: 15px;">
|
||||||
|
|
||||||
|
<div id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid" border="1"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "business", "Value", "/markdown/_PI4/business.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
64
Adaptation/FileHandlers/json/StaticSite/html/effort.html
Normal file
64
Adaptation/FileHandlers/json/StaticSite/html/effort.html
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - Effort</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/effort.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/effort.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand">
|
||||||
|
<span id="siteHeader"> </span> - Effort
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 80px; margin-left: 15px;">
|
||||||
|
|
||||||
|
<div id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid" border="1"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "effort", "Effort", "/markdown/_PI4/effort.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
68
Adaptation/FileHandlers/json/StaticSite/html/risk.html
Normal file
68
Adaptation/FileHandlers/json/StaticSite/html/risk.html
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - Risk Reduction and/or Opportunity Enablement</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/risk.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/risk.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand">
|
||||||
|
<span id="siteHeader"> </span> - Risk Reduction and/or Opportunity Enablement</br>
|
||||||
|
What else does this do for our business?
|
||||||
|
• Reduce the risk of this or future delivery?
|
||||||
|
• Is there value in the information we will receive?
|
||||||
|
• Enable new business opportunities?
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 80px; margin-left: 15px;">
|
||||||
|
|
||||||
|
<div id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid" border="1"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "risk", "Risk", "/markdown/_PI4/risk.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
69
Adaptation/FileHandlers/json/StaticSite/html/time.html
Normal file
69
Adaptation/FileHandlers/json/StaticSite/html/time.html
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - Time Criticality</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/time.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/time.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand">
|
||||||
|
<span id="siteHeader"> </span> - Time Criticality</br>
|
||||||
|
How does user/business value decay over time?
|
||||||
|
• Is there a fixed deadline?
|
||||||
|
• Will they wait for us or move to another Solution?
|
||||||
|
• What is the current effect on Customer satisfaction?
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 80px; margin-left: 15px;">
|
||||||
|
|
||||||
|
<div id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid" border="1"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "time", "Critical", "/markdown/_PI4/time.json?v=2024-10-07-18-50");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -4,14 +4,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
<title>FI Backlog Mesa</title>
|
<title>Infineon - User Stor(ies) with parents</title>
|
||||||
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
<link href="/styles/mes.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
<link href="/styles/with-parents.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/js/mes.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/js/with-parents.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
@ -27,12 +27,11 @@
|
|||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="navbar-brand" style="min-width: 20px;">
|
<div class="navbar-brand" style="min-width: 20px;">
|
||||||
FI Backlog Mes
|
<span id="siteHeader"> </span> - User Stor(ies) with parents
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-collapse collapse">
|
<div class="navbar-collapse collapse">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li><a target="_blank" href="/markdown/Feature.html">Feature(s)</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p class="navbar-text navbar-right">
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
@ -56,7 +55,7 @@
|
|||||||
<script>
|
<script>
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
initIndex("/json/work-items.json?v=2024-10-07-18-50");
|
initIndex("/markdown/with-parents.json?v=2024-10-07-18-50");
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
64
Adaptation/FileHandlers/json/StaticSite/html/wsjf.html
Normal file
64
Adaptation/FileHandlers/json/StaticSite/html/wsjf.html
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title>Infineon - Result of Weightest Shortest Job First calculation (see @SCALE formula)</title>
|
||||||
|
<link href="/styles/bootstrap.min.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/themes/bootstrap3/default/infragistics.theme.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/igniteui/css/structure/infragistics.css?v=2024-10-07-18-50" rel="stylesheet" />
|
||||||
|
<link href="/styles/wsjf.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
|
||||||
|
<script src="/js/jquery-3.6.0.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/jquery-ui.min.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/js/wsjf.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.core.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.lob.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
<script src="/igniteui/js/infragistics.dv.js?v=2024-10-07-18-50" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-brand">
|
||||||
|
<span id="siteHeader"> </span> - Result of Weightest Shortest Job First calculation (see @SCALE formula)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
</ul>
|
||||||
|
<p class="navbar-text navbar-right">
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container-fluid body-content" style="margin-top: 40px; margin-left: 15px;">
|
||||||
|
|
||||||
|
<div style="height: 550px;" id="HeaderGridDiv">
|
||||||
|
<table id="HeaderGrid" border="1"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div id="AllGridDiv">
|
||||||
|
<table id="AllGrid"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initIndex("/markdown/with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -1,14 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<title>FI Backlog</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h2><a href="mes.html">FI Backlog Mesa</a></h2>
|
|
||||||
<h2><a href="leo.html">FI Backlog HiRel (Leominster)</a></h2>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
157
Adaptation/FileHandlers/json/StaticSite/js/122508.js
Normal file
157
Adaptation/FileHandlers/json/StaticSite/js/122508.js
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.Priority[0] - b.Priority[0] || a.TimeCriticality[0] - b.TimeCriticality[0] || b.State[0] - a.State[0] || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
workItem = data[i];
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
$("#HeaderGrid").igGrid({
|
||||||
|
autoGenerateColumns: false,
|
||||||
|
dataSource: workItems,
|
||||||
|
height: "100%",
|
||||||
|
primaryKey: "Id",
|
||||||
|
width: "100%",
|
||||||
|
columns: [
|
||||||
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
|
{ key: "Id", dataType: "number" },
|
||||||
|
{ key: "Requester", dataType: "string" },
|
||||||
|
{ headerText: "Assigned To", key: "AssignedTo", dataType: "string" },
|
||||||
|
{ key: "Title", dataType: "string", width: "20%" },
|
||||||
|
{ headerText: "System(s)", key: "Tags", dataType: "string" },
|
||||||
|
{ key: "Priority", dataType: "string" },
|
||||||
|
{ key: "State", dataType: "string" },
|
||||||
|
{ headerText: "Effort in Days", key: "Effort", dataType: "number" },
|
||||||
|
{ headerText: "UAT as of", key: "ResolvedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "CMP Date", key: "ClosedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "Target", key: "TargetDate", dataType: "date", format: "date" },
|
||||||
|
{ key: "AreaPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "AssignedTo", dataType: "string", hidden: true },
|
||||||
|
{ key: "BusinessValue", dataType: "number", hidden: true },
|
||||||
|
{ key: "ChangedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "CommentCount", dataType: "number", hidden: true },
|
||||||
|
{ key: "CreatedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "Description", dataType: "string", hidden: true },
|
||||||
|
{ key: "IterationPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
{ name: "Sorting", type: "local" },
|
||||||
|
{ name: "Filtering", type: "local" },
|
||||||
|
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanging: detailSelectionChangedRunInfo },
|
||||||
|
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 10, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
157
Adaptation/FileHandlers/json/StaticSite/js/122514.js
Normal file
157
Adaptation/FileHandlers/json/StaticSite/js/122514.js
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.Priority[0] - b.Priority[0] || a.TimeCriticality[0] - b.TimeCriticality[0] || b.State[0] - a.State[0] || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
workItem = data[i];
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
$("#HeaderGrid").igGrid({
|
||||||
|
autoGenerateColumns: false,
|
||||||
|
dataSource: workItems,
|
||||||
|
height: "100%",
|
||||||
|
primaryKey: "Id",
|
||||||
|
width: "100%",
|
||||||
|
columns: [
|
||||||
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
|
{ key: "Id", dataType: "number" },
|
||||||
|
{ key: "Requester", dataType: "string" },
|
||||||
|
{ headerText: "Assigned To", key: "AssignedTo", dataType: "string" },
|
||||||
|
{ key: "Title", dataType: "string", width: "20%" },
|
||||||
|
{ headerText: "System(s)", key: "Tags", dataType: "string" },
|
||||||
|
{ key: "Priority", dataType: "string" },
|
||||||
|
{ key: "State", dataType: "string" },
|
||||||
|
{ headerText: "Effort in Days", key: "Effort", dataType: "number" },
|
||||||
|
{ headerText: "UAT as of", key: "ResolvedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "CMP Date", key: "ClosedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "Target", key: "TargetDate", dataType: "date", format: "date" },
|
||||||
|
{ key: "AreaPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "AssignedTo", dataType: "string", hidden: true },
|
||||||
|
{ key: "BusinessValue", dataType: "number", hidden: true },
|
||||||
|
{ key: "ChangedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "CommentCount", dataType: "number", hidden: true },
|
||||||
|
{ key: "CreatedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "Description", dataType: "string", hidden: true },
|
||||||
|
{ key: "IterationPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
{ name: "Sorting", type: "local" },
|
||||||
|
{ name: "Filtering", type: "local" },
|
||||||
|
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanging: detailSelectionChangedRunInfo },
|
||||||
|
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 10, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
157
Adaptation/FileHandlers/json/StaticSite/js/123066.js
Normal file
157
Adaptation/FileHandlers/json/StaticSite/js/123066.js
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.Priority[0] - b.Priority[0] || a.TimeCriticality[0] - b.TimeCriticality[0] || b.State[0] - a.State[0] || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
workItem = data[i];
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
$("#HeaderGrid").igGrid({
|
||||||
|
autoGenerateColumns: false,
|
||||||
|
dataSource: workItems,
|
||||||
|
height: "100%",
|
||||||
|
primaryKey: "Id",
|
||||||
|
width: "100%",
|
||||||
|
columns: [
|
||||||
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
|
{ key: "Id", dataType: "number" },
|
||||||
|
{ key: "Requester", dataType: "string" },
|
||||||
|
{ headerText: "Assigned To", key: "AssignedTo", dataType: "string" },
|
||||||
|
{ key: "Title", dataType: "string", width: "20%" },
|
||||||
|
{ headerText: "System(s)", key: "Tags", dataType: "string" },
|
||||||
|
{ key: "Priority", dataType: "string" },
|
||||||
|
{ key: "State", dataType: "string" },
|
||||||
|
{ headerText: "Effort in Days", key: "Effort", dataType: "number" },
|
||||||
|
{ headerText: "UAT as of", key: "ResolvedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "CMP Date", key: "ClosedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "Target", key: "TargetDate", dataType: "date", format: "date" },
|
||||||
|
{ key: "AreaPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "AssignedTo", dataType: "string", hidden: true },
|
||||||
|
{ key: "BusinessValue", dataType: "number", hidden: true },
|
||||||
|
{ key: "ChangedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "CommentCount", dataType: "number", hidden: true },
|
||||||
|
{ key: "CreatedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "Description", dataType: "string", hidden: true },
|
||||||
|
{ key: "IterationPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
{ name: "Sorting", type: "local" },
|
||||||
|
{ name: "Filtering", type: "local" },
|
||||||
|
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanging: detailSelectionChangedRunInfo },
|
||||||
|
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 10, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
157
Adaptation/FileHandlers/json/StaticSite/js/123067.js
Normal file
157
Adaptation/FileHandlers/json/StaticSite/js/123067.js
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.Priority[0] - b.Priority[0] || a.TimeCriticality[0] - b.TimeCriticality[0] || b.State[0] - a.State[0] || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
workItem = data[i];
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
$("#HeaderGrid").igGrid({
|
||||||
|
autoGenerateColumns: false,
|
||||||
|
dataSource: workItems,
|
||||||
|
height: "100%",
|
||||||
|
primaryKey: "Id",
|
||||||
|
width: "100%",
|
||||||
|
columns: [
|
||||||
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
|
{ key: "Id", dataType: "number" },
|
||||||
|
{ key: "Requester", dataType: "string" },
|
||||||
|
{ headerText: "Assigned To", key: "AssignedTo", dataType: "string" },
|
||||||
|
{ key: "Title", dataType: "string", width: "20%" },
|
||||||
|
{ headerText: "System(s)", key: "Tags", dataType: "string" },
|
||||||
|
{ key: "Priority", dataType: "string" },
|
||||||
|
{ key: "State", dataType: "string" },
|
||||||
|
{ headerText: "Effort in Days", key: "Effort", dataType: "number" },
|
||||||
|
{ headerText: "UAT as of", key: "ResolvedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "CMP Date", key: "ClosedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "Target", key: "TargetDate", dataType: "date", format: "date" },
|
||||||
|
{ key: "AreaPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "AssignedTo", dataType: "string", hidden: true },
|
||||||
|
{ key: "BusinessValue", dataType: "number", hidden: true },
|
||||||
|
{ key: "ChangedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "CommentCount", dataType: "number", hidden: true },
|
||||||
|
{ key: "CreatedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "Description", dataType: "string", hidden: true },
|
||||||
|
{ key: "IterationPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
{ name: "Sorting", type: "local" },
|
||||||
|
{ name: "Filtering", type: "local" },
|
||||||
|
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanging: detailSelectionChangedRunInfo },
|
||||||
|
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 10, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
157
Adaptation/FileHandlers/json/StaticSite/js/126169.js
Normal file
157
Adaptation/FileHandlers/json/StaticSite/js/126169.js
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.Priority[0] - b.Priority[0] || a.TimeCriticality[0] - b.TimeCriticality[0] || b.State[0] - a.State[0] || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
workItem = data[i];
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
$("#HeaderGrid").igGrid({
|
||||||
|
autoGenerateColumns: false,
|
||||||
|
dataSource: workItems,
|
||||||
|
height: "100%",
|
||||||
|
primaryKey: "Id",
|
||||||
|
width: "100%",
|
||||||
|
columns: [
|
||||||
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
|
{ key: "Id", dataType: "number" },
|
||||||
|
{ key: "Requester", dataType: "string" },
|
||||||
|
{ headerText: "Assigned To", key: "AssignedTo", dataType: "string" },
|
||||||
|
{ key: "Title", dataType: "string", width: "20%" },
|
||||||
|
{ headerText: "System(s)", key: "Tags", dataType: "string" },
|
||||||
|
{ key: "Priority", dataType: "string" },
|
||||||
|
{ key: "State", dataType: "string" },
|
||||||
|
{ headerText: "Effort in Days", key: "Effort", dataType: "number" },
|
||||||
|
{ headerText: "UAT as of", key: "ResolvedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "CMP Date", key: "ClosedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "Target", key: "TargetDate", dataType: "date", format: "date" },
|
||||||
|
{ key: "AreaPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "AssignedTo", dataType: "string", hidden: true },
|
||||||
|
{ key: "BusinessValue", dataType: "number", hidden: true },
|
||||||
|
{ key: "ChangedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "CommentCount", dataType: "number", hidden: true },
|
||||||
|
{ key: "CreatedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "Description", dataType: "string", hidden: true },
|
||||||
|
{ key: "IterationPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
{ name: "Sorting", type: "local" },
|
||||||
|
{ name: "Filtering", type: "local" },
|
||||||
|
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanging: detailSelectionChangedRunInfo },
|
||||||
|
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 10, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
205
Adaptation/FileHandlers/json/StaticSite/js/business.js
Normal file
205
Adaptation/FileHandlers/json/StaticSite/js/business.js
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
var _apiUrl = null;
|
||||||
|
|
||||||
|
function compareFunction(a, b) {
|
||||||
|
return b.PollValue.split('-')[0] - a.PollValue.split('-')[0] || a.Priority[0] - b.Priority[0] || b.ParentId - a.ParentId || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPollValue(pollValue) {
|
||||||
|
var result;
|
||||||
|
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0)
|
||||||
|
result = "0-9-Unknown";
|
||||||
|
else {
|
||||||
|
if (pollValue.Average !== null)
|
||||||
|
result = "0-8-Not";
|
||||||
|
if (pollValue.Average > 2)
|
||||||
|
result = `${pollValue.Average}-1-${pollValue.Count}-High (Most Critical)`;
|
||||||
|
else if (pollValue.Average > 1)
|
||||||
|
result = `${pollValue.Average}-2-${pollValue.Count}-Medium`;
|
||||||
|
else if (pollValue.Average > 0)
|
||||||
|
result = `${pollValue.Average}-3-${pollValue.Count}-Low`;
|
||||||
|
else
|
||||||
|
result = "0-8-Not";
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data, dataB) {
|
||||||
|
var parent;
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
parent = data[i].Parent;
|
||||||
|
workItem = data[i].WorkItem;
|
||||||
|
if (workItem.WorkItemType !== 'Feature')
|
||||||
|
continue;
|
||||||
|
if (workItem.IterationPath !== 'ART SPS')
|
||||||
|
continue;
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
if (parent === null) {
|
||||||
|
workItem["ParentId"] = 9999999;
|
||||||
|
workItem["ParentTitle"] = null;
|
||||||
|
workItem["ParentState"] = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
workItem["ParentId"] = parent["Id"];
|
||||||
|
workItem["ParentTitle"] = parent["Title"];
|
||||||
|
workItem["ParentState"] = getState(parent["State"]);
|
||||||
|
}
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["PollValue"] = getPollValue(dataB[workItem.Id]);
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendValue(element, page, id) {
|
||||||
|
var body = { time: new Date().getTime(), id: id, page: page, value: element.value };
|
||||||
|
$.post(_apiUrl + "save", body)
|
||||||
|
.done(function (msg) {
|
||||||
|
console.log("Posted value of " + element.value + " for " + id + " on page " + page + " " + msg);
|
||||||
|
})
|
||||||
|
.fail(function (xhr, textStatus, errorThrown) {
|
||||||
|
alert(textStatus);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setWorkItems(workItems, page, description) {
|
||||||
|
var record;
|
||||||
|
var html = "<tr><th>Parent Id</th><th>Parent Title</th><th>Id</th><th>Requester</th><th>Title</th><th>Assigned To</th><th>System(s)</th><th>Priority</th><th>Poll Value</th><th>Value</th><th>Up</th><th>Down</th></tr>";
|
||||||
|
const element = document.getElementById("HeaderGrid");
|
||||||
|
for (var i = 0; i < workItems.length; i++) {
|
||||||
|
record = workItems[i];
|
||||||
|
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" +
|
||||||
|
"</td><td>" + record.ParentTitle +
|
||||||
|
"</td><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
|
||||||
|
"</td><td>" + record.Requester +
|
||||||
|
"</td><td>" + record.Title +
|
||||||
|
"</td><td>" + record.AssignedTo +
|
||||||
|
"</td><td>" + record.Tags +
|
||||||
|
"</td><td>" + record.Priority +
|
||||||
|
"</td><td>" + record.PollValue +
|
||||||
|
"</td><td>" +
|
||||||
|
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
|
||||||
|
'<option value="9">Unknown</option>' +
|
||||||
|
'<option value="1">High (Most ' + description + ')</option>' +
|
||||||
|
'<option value="2">Medium</option>' +
|
||||||
|
'<option value="3">Low</option>' +
|
||||||
|
'</select>' +
|
||||||
|
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
||||||
|
}
|
||||||
|
element.innerHTML = html.replaceAll(">null<", "> <");
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url, apiUrl, page, description, urlB) {
|
||||||
|
_apiUrl = apiUrl;
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(urlB, { _: new Date().getTime() }, function (dataB) {
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data, dataB);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
setWorkItems(workItems, page, description);
|
||||||
|
$(".up,.down").click(function () {
|
||||||
|
var row = $(this).parents("tr:first");
|
||||||
|
if ($(this).is(".up")) {
|
||||||
|
row.insertBefore(row.prev());
|
||||||
|
} else {
|
||||||
|
row.insertAfter(row.next());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
205
Adaptation/FileHandlers/json/StaticSite/js/effort.js
Normal file
205
Adaptation/FileHandlers/json/StaticSite/js/effort.js
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
var _apiUrl = null;
|
||||||
|
|
||||||
|
function compareFunction(a, b) {
|
||||||
|
return b.PollValue.split('-')[0] - a.PollValue.split('-')[0] || a.Priority[0] - b.Priority[0] || b.ParentId - a.ParentId || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPollValue(pollValue) {
|
||||||
|
var result;
|
||||||
|
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0)
|
||||||
|
result = "0-9-Unknown";
|
||||||
|
else {
|
||||||
|
if (pollValue.Average !== null)
|
||||||
|
result = "0-8-Not";
|
||||||
|
if (pollValue.Average > 2)
|
||||||
|
result = `${pollValue.Average}-1-${pollValue.Count}-High (Most Critical)`;
|
||||||
|
else if (pollValue.Average > 1)
|
||||||
|
result = `${pollValue.Average}-2-${pollValue.Count}-Medium`;
|
||||||
|
else if (pollValue.Average > 0)
|
||||||
|
result = `${pollValue.Average}-3-${pollValue.Count}-Low`;
|
||||||
|
else
|
||||||
|
result = "0-8-Not";
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data, dataB) {
|
||||||
|
var parent;
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
parent = data[i].Parent;
|
||||||
|
workItem = data[i].WorkItem;
|
||||||
|
if (workItem.WorkItemType !== 'Feature')
|
||||||
|
continue;
|
||||||
|
if (workItem.IterationPath !== 'ART SPS')
|
||||||
|
continue;
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
if (parent === null) {
|
||||||
|
workItem["ParentId"] = 9999999;
|
||||||
|
workItem["ParentTitle"] = null;
|
||||||
|
workItem["ParentState"] = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
workItem["ParentId"] = parent["Id"];
|
||||||
|
workItem["ParentTitle"] = parent["Title"];
|
||||||
|
workItem["ParentState"] = getState(parent["State"]);
|
||||||
|
}
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["PollValue"] = getPollValue(dataB[workItem.Id]);
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendValue(element, page, id) {
|
||||||
|
var body = { time: new Date().getTime(), id: id, page: page, value: element.value };
|
||||||
|
$.post(_apiUrl + "save", body)
|
||||||
|
.done(function (msg) {
|
||||||
|
console.log("Posted value of " + element.value + " for " + id + " on page " + page + " " + msg);
|
||||||
|
})
|
||||||
|
.fail(function (xhr, textStatus, errorThrown) {
|
||||||
|
alert(textStatus);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setWorkItems(workItems, page, description) {
|
||||||
|
var record;
|
||||||
|
var html = "<tr><th>Parent Id</th><th>Parent Title</th><th>Id</th><th>Requester</th><th>Title</th><th>Assigned To</th><th>System(s)</th><th>Priority</th><th>Poll Value</th><th>Value</th><th>Up</th><th>Down</th></tr>";
|
||||||
|
const element = document.getElementById("HeaderGrid");
|
||||||
|
for (var i = 0; i < workItems.length; i++) {
|
||||||
|
record = workItems[i];
|
||||||
|
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" +
|
||||||
|
"</td><td>" + record.ParentTitle +
|
||||||
|
"</td><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
|
||||||
|
"</td><td>" + record.Requester +
|
||||||
|
"</td><td>" + record.Title +
|
||||||
|
"</td><td>" + record.AssignedTo +
|
||||||
|
"</td><td>" + record.Tags +
|
||||||
|
"</td><td>" + record.Priority +
|
||||||
|
"</td><td>" + record.PollValue +
|
||||||
|
"</td><td>" +
|
||||||
|
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
|
||||||
|
'<option value="9">Unknown</option>' +
|
||||||
|
'<option value="1">High (Most ' + description + ')</option>' +
|
||||||
|
'<option value="2">Medium</option>' +
|
||||||
|
'<option value="3">Low</option>' +
|
||||||
|
'</select>' +
|
||||||
|
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
||||||
|
}
|
||||||
|
element.innerHTML = html.replaceAll(">null<", "> <");
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url, apiUrl, page, description, urlB) {
|
||||||
|
_apiUrl = apiUrl;
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(urlB, { _: new Date().getTime() }, function (dataB) {
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data, dataB);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
setWorkItems(workItems, page, description);
|
||||||
|
$(".up,.down").click(function () {
|
||||||
|
var row = $(this).parents("tr:first");
|
||||||
|
if ($(this).is(".up")) {
|
||||||
|
row.insertBefore(row.prev());
|
||||||
|
} else {
|
||||||
|
row.insertAfter(row.next());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
@ -110,7 +110,23 @@ function getWorkItems(data) {
|
|||||||
return workItems;
|
return workItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function initIndex(url) {
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
var workItems = getWorkItems(data);
|
var workItems = getWorkItems(data);
|
||||||
console.log(data.length);
|
console.log(data.length);
|
||||||
@ -146,8 +162,9 @@ function initIndex(url) {
|
|||||||
{ key: "Revision", dataType: "number", hidden: true },
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
{ key: "StartDate", dataType: "string", hidden: true },
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
{ key: "WorkItemType", dataType: "string", hidden: true },
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
{ name: "Sorting", type: "local" },
|
{ name: "Sorting", type: "local" },
|
||||||
|
@ -90,7 +90,7 @@ function getTimeCriticality(workItemType, timeCriticality) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getWorkItems(data) {
|
function getRecords(data) {
|
||||||
var workItems = [];
|
var workItems = [];
|
||||||
var workItem;
|
var workItem;
|
||||||
for (var i = data.length - 1; i > -1; i--) {
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
@ -110,9 +110,25 @@ function getWorkItems(data) {
|
|||||||
return workItems;
|
return workItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function initIndex(url) {
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
var workItems = getWorkItems(data);
|
var workItems = getRecords(data);
|
||||||
console.log(data.length);
|
console.log(data.length);
|
||||||
if (data.length > 0)
|
if (data.length > 0)
|
||||||
console.log(data[0]);
|
console.log(data[0]);
|
||||||
@ -146,8 +162,9 @@ function initIndex(url) {
|
|||||||
{ key: "Revision", dataType: "number", hidden: true },
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
{ key: "StartDate", dataType: "string", hidden: true },
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
{ key: "WorkItemType", dataType: "string", hidden: true },
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
{ name: "Sorting", type: "local" },
|
{ name: "Sorting", type: "local" },
|
||||||
|
205
Adaptation/FileHandlers/json/StaticSite/js/risk.js
Normal file
205
Adaptation/FileHandlers/json/StaticSite/js/risk.js
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
var _apiUrl = null;
|
||||||
|
|
||||||
|
function compareFunction(a, b) {
|
||||||
|
return b.PollValue.split('-')[0] - a.PollValue.split('-')[0] || a.Priority[0] - b.Priority[0] || b.ParentId - a.ParentId || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPollValue(pollValue) {
|
||||||
|
var result;
|
||||||
|
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0)
|
||||||
|
result = "0-9-Unknown";
|
||||||
|
else {
|
||||||
|
if (pollValue.Average !== null)
|
||||||
|
result = "0-8-Not";
|
||||||
|
if (pollValue.Average > 2)
|
||||||
|
result = `${pollValue.Average}-1-${pollValue.Count}-High (Most Critical)`;
|
||||||
|
else if (pollValue.Average > 1)
|
||||||
|
result = `${pollValue.Average}-2-${pollValue.Count}-Medium`;
|
||||||
|
else if (pollValue.Average > 0)
|
||||||
|
result = `${pollValue.Average}-3-${pollValue.Count}-Low`;
|
||||||
|
else
|
||||||
|
result = "0-8-Not";
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data, dataB) {
|
||||||
|
var parent;
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
parent = data[i].Parent;
|
||||||
|
workItem = data[i].WorkItem;
|
||||||
|
if (workItem.WorkItemType !== 'Feature')
|
||||||
|
continue;
|
||||||
|
if (workItem.IterationPath !== 'ART SPS')
|
||||||
|
continue;
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
if (parent === null) {
|
||||||
|
workItem["ParentId"] = 9999999;
|
||||||
|
workItem["ParentTitle"] = null;
|
||||||
|
workItem["ParentState"] = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
workItem["ParentId"] = parent["Id"];
|
||||||
|
workItem["ParentTitle"] = parent["Title"];
|
||||||
|
workItem["ParentState"] = getState(parent["State"]);
|
||||||
|
}
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["PollValue"] = getPollValue(dataB[workItem.Id]);
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendValue(element, page, id) {
|
||||||
|
var body = { time: new Date().getTime(), id: id, page: page, value: element.value };
|
||||||
|
$.post(_apiUrl + "save", body)
|
||||||
|
.done(function (msg) {
|
||||||
|
console.log("Posted value of " + element.value + " for " + id + " on page " + page + " " + msg);
|
||||||
|
})
|
||||||
|
.fail(function (xhr, textStatus, errorThrown) {
|
||||||
|
alert(textStatus);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setWorkItems(workItems, page, description) {
|
||||||
|
var record;
|
||||||
|
var html = "<tr><th>Parent Id</th><th>Parent Title</th><th>Id</th><th>Requester</th><th>Title</th><th>Assigned To</th><th>System(s)</th><th>Priority</th><th>Poll Value</th><th>Value</th><th>Up</th><th>Down</th></tr>";
|
||||||
|
const element = document.getElementById("HeaderGrid");
|
||||||
|
for (var i = 0; i < workItems.length; i++) {
|
||||||
|
record = workItems[i];
|
||||||
|
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" +
|
||||||
|
"</td><td>" + record.ParentTitle +
|
||||||
|
"</td><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
|
||||||
|
"</td><td>" + record.Requester +
|
||||||
|
"</td><td>" + record.Title +
|
||||||
|
"</td><td>" + record.AssignedTo +
|
||||||
|
"</td><td>" + record.Tags +
|
||||||
|
"</td><td>" + record.Priority +
|
||||||
|
"</td><td>" + record.PollValue +
|
||||||
|
"</td><td>" +
|
||||||
|
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
|
||||||
|
'<option value="9">Unknown</option>' +
|
||||||
|
'<option value="1">High (Most ' + description + ')</option>' +
|
||||||
|
'<option value="2">Medium</option>' +
|
||||||
|
'<option value="3">Low</option>' +
|
||||||
|
'</select>' +
|
||||||
|
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
||||||
|
}
|
||||||
|
element.innerHTML = html.replaceAll(">null<", "> <");
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url, apiUrl, page, description, urlB) {
|
||||||
|
_apiUrl = apiUrl;
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(urlB, { _: new Date().getTime() }, function (dataB) {
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data, dataB);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
setWorkItems(workItems, page, description);
|
||||||
|
$(".up,.down").click(function () {
|
||||||
|
var row = $(this).parents("tr:first");
|
||||||
|
if ($(this).is(".up")) {
|
||||||
|
row.insertBefore(row.prev());
|
||||||
|
} else {
|
||||||
|
row.insertAfter(row.next());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
205
Adaptation/FileHandlers/json/StaticSite/js/time.js
Normal file
205
Adaptation/FileHandlers/json/StaticSite/js/time.js
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
var _apiUrl = null;
|
||||||
|
|
||||||
|
function compareFunction(a, b) {
|
||||||
|
return b.PollValue.split('-')[0] - a.PollValue.split('-')[0] || a.Priority[0] - b.Priority[0] || b.ParentId - a.ParentId || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPollValue(pollValue) {
|
||||||
|
var result;
|
||||||
|
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0)
|
||||||
|
result = "0-9-Unknown";
|
||||||
|
else {
|
||||||
|
if (pollValue.Average !== null)
|
||||||
|
result = "0-8-Not";
|
||||||
|
if (pollValue.Average > 2)
|
||||||
|
result = `${pollValue.Average}-1-${pollValue.Count}-High (Most Critical)`;
|
||||||
|
else if (pollValue.Average > 1)
|
||||||
|
result = `${pollValue.Average}-2-${pollValue.Count}-Medium`;
|
||||||
|
else if (pollValue.Average > 0)
|
||||||
|
result = `${pollValue.Average}-3-${pollValue.Count}-Low`;
|
||||||
|
else
|
||||||
|
result = "0-8-Not";
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data, dataB) {
|
||||||
|
var parent;
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
parent = data[i].Parent;
|
||||||
|
workItem = data[i].WorkItem;
|
||||||
|
if (workItem.WorkItemType !== 'Feature')
|
||||||
|
continue;
|
||||||
|
if (workItem.IterationPath !== 'ART SPS')
|
||||||
|
continue;
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
if (parent === null) {
|
||||||
|
workItem["ParentId"] = 9999999;
|
||||||
|
workItem["ParentTitle"] = null;
|
||||||
|
workItem["ParentState"] = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
workItem["ParentId"] = parent["Id"];
|
||||||
|
workItem["ParentTitle"] = parent["Title"];
|
||||||
|
workItem["ParentState"] = getState(parent["State"]);
|
||||||
|
}
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["PollValue"] = getPollValue(dataB[workItem.Id]);
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendValue(element, page, id) {
|
||||||
|
var body = { time: new Date().getTime(), id: id, page: page, value: element.value };
|
||||||
|
$.post(_apiUrl + "save", body)
|
||||||
|
.done(function (msg) {
|
||||||
|
console.log("Posted value of " + element.value + " for " + id + " on page " + page + " " + msg);
|
||||||
|
})
|
||||||
|
.fail(function (xhr, textStatus, errorThrown) {
|
||||||
|
alert(textStatus);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setWorkItems(workItems, page, description) {
|
||||||
|
var record;
|
||||||
|
var html = "<tr><th>Parent Id</th><th>Parent Title</th><th>Id</th><th>Requester</th><th>Title</th><th>Assigned To</th><th>System(s)</th><th>Priority</th><th>Poll Value</th><th>Value</th><th>Up</th><th>Down</th></tr>";
|
||||||
|
const element = document.getElementById("HeaderGrid");
|
||||||
|
for (var i = 0; i < workItems.length; i++) {
|
||||||
|
record = workItems[i];
|
||||||
|
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" +
|
||||||
|
"</td><td>" + record.ParentTitle +
|
||||||
|
"</td><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
|
||||||
|
"</td><td>" + record.Requester +
|
||||||
|
"</td><td>" + record.Title +
|
||||||
|
"</td><td>" + record.AssignedTo +
|
||||||
|
"</td><td>" + record.Tags +
|
||||||
|
"</td><td>" + record.Priority +
|
||||||
|
"</td><td>" + record.PollValue +
|
||||||
|
"</td><td>" +
|
||||||
|
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
|
||||||
|
'<option value="9">Unknown</option>' +
|
||||||
|
'<option value="1">High (Most ' + description + ')</option>' +
|
||||||
|
'<option value="2">Medium</option>' +
|
||||||
|
'<option value="3">Low</option>' +
|
||||||
|
'</select>' +
|
||||||
|
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
||||||
|
}
|
||||||
|
element.innerHTML = html.replaceAll(">null<", "> <");
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url, apiUrl, page, description, urlB) {
|
||||||
|
_apiUrl = apiUrl;
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(urlB, { _: new Date().getTime() }, function (dataB) {
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data, dataB);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
setWorkItems(workItems, page, description);
|
||||||
|
$(".up,.down").click(function () {
|
||||||
|
var row = $(this).parents("tr:first");
|
||||||
|
if ($(this).is(".up")) {
|
||||||
|
row.insertBefore(row.prev());
|
||||||
|
} else {
|
||||||
|
row.insertAfter(row.next());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
174
Adaptation/FileHandlers/json/StaticSite/js/with-parents.js
Normal file
174
Adaptation/FileHandlers/json/StaticSite/js/with-parents.js
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.Priority[0] - b.Priority[0] || a.TimeCriticality[0] - b.TimeCriticality[0] || b.State[0] - a.State[0] || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var parent;
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
parent = data[i].Parent;
|
||||||
|
workItem = data[i].WorkItem;
|
||||||
|
if (workItem.WorkItemType !== 'User Story' && workItem.WorkItemType !== 'Bug')
|
||||||
|
continue;
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
if (parent === null) {
|
||||||
|
workItem["ParentId"] = null;
|
||||||
|
workItem["ParentTitle"] = null;
|
||||||
|
workItem["ParentState"] = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
workItem["ParentId"] = parent["Id"];
|
||||||
|
workItem["ParentTitle"] = parent["Title"];
|
||||||
|
workItem["ParentState"] = getState(parent["State"]);
|
||||||
|
}
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url) {
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
$("#HeaderGrid").igGrid({
|
||||||
|
autoGenerateColumns: false,
|
||||||
|
dataSource: workItems,
|
||||||
|
height: "100%",
|
||||||
|
primaryKey: "Id",
|
||||||
|
width: "100%",
|
||||||
|
columns: [
|
||||||
|
{ key: "Violation", dataType: "string", hidden: true },
|
||||||
|
{ headerText: "Parent Id", key: "ParentId", dataType: "string" },
|
||||||
|
{ headerText: "Parent State", key: "ParentState", dataType: "string" },
|
||||||
|
{ key: "Id", dataType: "number" },
|
||||||
|
{ key: "Requester", dataType: "string" },
|
||||||
|
{ headerText: "Assigned To", key: "AssignedTo", dataType: "string" },
|
||||||
|
{ key: "Title", dataType: "string", width: "20%" },
|
||||||
|
{ headerText: "System(s)", key: "Tags", dataType: "string" },
|
||||||
|
{ key: "Priority", dataType: "string" },
|
||||||
|
{ key: "State", dataType: "string" },
|
||||||
|
{ headerText: "Effort in Days", key: "Effort", dataType: "number" },
|
||||||
|
{ headerText: "UAT as of", key: "ResolvedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "CMP Date", key: "ClosedDate", dataType: "date", format: "date" },
|
||||||
|
{ headerText: "Target", key: "TargetDate", dataType: "date", format: "date" },
|
||||||
|
{ key: "ParentTitle", dataType: "string", hidden: true },
|
||||||
|
{ key: "AreaPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "AssignedTo", dataType: "string", hidden: true },
|
||||||
|
{ key: "BusinessValue", dataType: "number", hidden: true },
|
||||||
|
{ key: "ChangedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "CommentCount", dataType: "number", hidden: true },
|
||||||
|
{ key: "CreatedDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "Description", dataType: "string", hidden: true },
|
||||||
|
{ key: "IterationPath", dataType: "string", hidden: true },
|
||||||
|
{ key: "Revision", dataType: "number", hidden: true },
|
||||||
|
{ key: "RiskReductionMinusOpportunityEnablement", dataType: "string", hidden: true },
|
||||||
|
{ key: "StartDate", dataType: "string", hidden: true },
|
||||||
|
{ key: "WeightedShortestJobFirst", dataType: "number", hidden: true },
|
||||||
|
{ key: "WorkItemType", dataType: "string", hidden: true },
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
{ name: "Sorting", type: "local" },
|
||||||
|
{ name: "Filtering", type: "local" },
|
||||||
|
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanging: detailSelectionChangedRunInfo },
|
||||||
|
{ name: "Paging", type: "local", recordCountKey: "TotalRows", pageSize: 10, pageSizeUrlKey: "pageSize", "pageIndexUrlKey": "page", showPageSizeDropDown: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
165
Adaptation/FileHandlers/json/StaticSite/js/wsjf.js
Normal file
165
Adaptation/FileHandlers/json/StaticSite/js/wsjf.js
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
var _apiUrl = null;
|
||||||
|
|
||||||
|
function compareFunction(a, b) {
|
||||||
|
return a.WeightedShortestJobFirst - b.WeightedShortestJobFirst || b.ParentId - a.ParentId || a.Id - b.Id;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOne(rowData) {
|
||||||
|
if (rowData == null)
|
||||||
|
return;
|
||||||
|
var data = [];
|
||||||
|
data.push({ name: "Edit in ADO", value: '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + rowData["Id"] + '">Edit in ADO ' + rowData["Id"] + '</a>' });
|
||||||
|
for (const property in rowData) {
|
||||||
|
if (rowData[property] == null)
|
||||||
|
continue;
|
||||||
|
data.push({ name: property, value: rowData[property].toString() });
|
||||||
|
}
|
||||||
|
$("#AllGrid").igGrid({
|
||||||
|
autoGenerateColumns: true,
|
||||||
|
dataSource: data,
|
||||||
|
width: "100%",
|
||||||
|
showHeader: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadOne() {
|
||||||
|
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
|
||||||
|
if (selectedRow == null)
|
||||||
|
return;
|
||||||
|
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function detailSelectionChangedRunInfo(evt, ui) {
|
||||||
|
if (ui.row.index === 0)
|
||||||
|
return;
|
||||||
|
var rowData = ui.owner.grid.dataSource.dataView()[ui.row.index];
|
||||||
|
showOne(rowData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getState(state) {
|
||||||
|
var result;
|
||||||
|
if (state == null)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (state === "New")
|
||||||
|
result = `1-${state}`;
|
||||||
|
else if (state === "Active")
|
||||||
|
result = `2-${state}`;
|
||||||
|
else if (state === "Resolved")
|
||||||
|
result = `3-${state}`;
|
||||||
|
else if (state === "Closed")
|
||||||
|
result = `4-${state}`;
|
||||||
|
else if (state === "Removed")
|
||||||
|
result = `5-${state}`;
|
||||||
|
else
|
||||||
|
result = `8-${state}`;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPriority(workItemType, priority) {
|
||||||
|
var result;
|
||||||
|
if (workItemType === "Bug")
|
||||||
|
result = "0-Bug";
|
||||||
|
else if (priority == null || priority === 0)
|
||||||
|
result = "9-Null";
|
||||||
|
else if (priority === 1)
|
||||||
|
result = `${priority}-High`;
|
||||||
|
else if (priority === 2)
|
||||||
|
result = `${priority}-Med`;
|
||||||
|
else if (priority === 3)
|
||||||
|
result = `${priority}-Low`;
|
||||||
|
else if (priority === 4)
|
||||||
|
result = `${priority}-TBD`;
|
||||||
|
else
|
||||||
|
result = "8-Not";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getWorkItems(data) {
|
||||||
|
var parent;
|
||||||
|
var workItem;
|
||||||
|
var workItems = [];
|
||||||
|
for (var i = data.length - 1; i > -1; i--) {
|
||||||
|
parent = data[i].Parent;
|
||||||
|
workItem = data[i].WorkItem;
|
||||||
|
if (workItem.WorkItemType !== 'Feature')
|
||||||
|
continue;
|
||||||
|
if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
|
||||||
|
continue;
|
||||||
|
if ((window.location.href.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (window.location.href.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
|
||||||
|
continue;
|
||||||
|
if (workItem["WeightedShortestJobFirst"] === null)
|
||||||
|
workItem["WeightedShortestJobFirst"] = 9999999;
|
||||||
|
if (parent === null) {
|
||||||
|
workItem["ParentId"] = 9999999;
|
||||||
|
workItem["ParentTitle"] = null;
|
||||||
|
workItem["ParentState"] = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
workItem["ParentId"] = parent["Id"];
|
||||||
|
workItem["ParentTitle"] = parent["Title"];
|
||||||
|
workItem["ParentState"] = getState(parent["State"]);
|
||||||
|
}
|
||||||
|
workItem["State"] = getState(workItem["State"])
|
||||||
|
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"])
|
||||||
|
workItems.push(workItem);
|
||||||
|
}
|
||||||
|
workItems.sort(compareFunction);
|
||||||
|
return workItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setWorkItems(workItems) {
|
||||||
|
var record;
|
||||||
|
var html = "<tr><th>Parent Id</th><th>Parent Title</th><th>Id</th><th>Requester</th><th>Title</th><th>Assigned To</th><th>System(s)</th><th>WSJF</th><th>Value</th><th>Up</th><th>Down</th></tr>";
|
||||||
|
const element = document.getElementById("HeaderGrid");
|
||||||
|
for (var i = 0; i < workItems.length; i++) {
|
||||||
|
record = workItems[i];
|
||||||
|
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" +
|
||||||
|
"</td><td>" + record.Title +
|
||||||
|
"</td><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
|
||||||
|
"</td><td>" + record.Requester +
|
||||||
|
"</td><td>" + record.Title +
|
||||||
|
"</td><td>" + record.AssignedTo +
|
||||||
|
"</td><td>" + record.Tags +
|
||||||
|
"</td><td>" + record.WeightedShortestJobFirst +
|
||||||
|
"</td><td> " +
|
||||||
|
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
|
||||||
|
}
|
||||||
|
element.innerHTML = html.replaceAll(">null<", "> <");
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSite() {
|
||||||
|
if (window.location.href.indexOf('=LEO') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "HiRel (Leominster)");
|
||||||
|
document.getElementById("siteHeader").innerText = "HiRel (Leominster)";
|
||||||
|
}
|
||||||
|
else if (window.location.href.indexOf('=MES') > -1) {
|
||||||
|
document.title = document.title.replace("Infineon", "Mesa");
|
||||||
|
document.getElementById("siteHeader").innerText = "Mesa";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.title = document.title.replace("Infineon", "Infineon");
|
||||||
|
document.getElementById("siteHeader").innerText = "Infineon";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initIndex(url, apiUrl) {
|
||||||
|
_apiUrl = apiUrl;
|
||||||
|
updateSite();
|
||||||
|
$.getJSON(url, { _: new Date().getTime() }, function (data) {
|
||||||
|
var workItems = getWorkItems(data);
|
||||||
|
console.log(data.length);
|
||||||
|
if (data.length > 0)
|
||||||
|
console.log(data[0]);
|
||||||
|
setWorkItems(workItems);
|
||||||
|
$(".up,.down").click(function () {
|
||||||
|
var row = $(this).parents("tr:first");
|
||||||
|
if ($(this).is(".up")) {
|
||||||
|
row.insertBefore(row.prev());
|
||||||
|
} else {
|
||||||
|
row.insertAfter(row.next());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("#HeaderGrid").on("dblclick", "tr", loadOne);
|
||||||
|
}
|
12
Adaptation/FileHandlers/json/StaticSite/styles/122508.css
Normal file
12
Adaptation/FileHandlers/json/StaticSite/styles/122508.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
12
Adaptation/FileHandlers/json/StaticSite/styles/122514.css
Normal file
12
Adaptation/FileHandlers/json/StaticSite/styles/122514.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
12
Adaptation/FileHandlers/json/StaticSite/styles/123066.css
Normal file
12
Adaptation/FileHandlers/json/StaticSite/styles/123066.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
12
Adaptation/FileHandlers/json/StaticSite/styles/123067.css
Normal file
12
Adaptation/FileHandlers/json/StaticSite/styles/123067.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
12
Adaptation/FileHandlers/json/StaticSite/styles/126169.css
Normal file
12
Adaptation/FileHandlers/json/StaticSite/styles/126169.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
26
Adaptation/FileHandlers/json/StaticSite/styles/business.css
Normal file
26
Adaptation/FileHandlers/json/StaticSite/styles/business.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
height: 550px;
|
||||||
|
min-width: 1200px;
|
||||||
|
max-width: 1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid tr td {
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
min-width: 1200px;
|
||||||
|
margin-left: 15px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
26
Adaptation/FileHandlers/json/StaticSite/styles/effort.css
Normal file
26
Adaptation/FileHandlers/json/StaticSite/styles/effort.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
height: 550px;
|
||||||
|
min-width: 1200px;
|
||||||
|
max-width: 1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid tr td {
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
min-width: 1200px;
|
||||||
|
margin-left: 15px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
12
Adaptation/FileHandlers/json/StaticSite/styles/files.css
Normal file
12
Adaptation/FileHandlers/json/StaticSite/styles/files.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#DetailsGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
26
Adaptation/FileHandlers/json/StaticSite/styles/risk.css
Normal file
26
Adaptation/FileHandlers/json/StaticSite/styles/risk.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
height: 550px;
|
||||||
|
min-width: 1200px;
|
||||||
|
max-width: 1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid tr td {
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
min-width: 1200px;
|
||||||
|
margin-left: 15px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
26
Adaptation/FileHandlers/json/StaticSite/styles/time.css
Normal file
26
Adaptation/FileHandlers/json/StaticSite/styles/time.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
height: 550px;
|
||||||
|
min-width: 1200px;
|
||||||
|
max-width: 1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid tr td {
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
min-width: 1200px;
|
||||||
|
margin-left: 15px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
26
Adaptation/FileHandlers/json/StaticSite/styles/wsjf.css
Normal file
26
Adaptation/FileHandlers/json/StaticSite/styles/wsjf.css
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#HeaderGridDiv,
|
||||||
|
#DetailsGridDiv {
|
||||||
|
font-size: 12px;
|
||||||
|
height: 550px;
|
||||||
|
min-width: 1200px;
|
||||||
|
max-width: 1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
#HeaderGrid tr td {
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#AllGrid {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
min-width: 1200px;
|
||||||
|
margin-left: 15px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
@ -1,36 +0,0 @@
|
|||||||
namespace Adaptation.FileHandlers.json.WorkItems;
|
|
||||||
|
|
||||||
public class PollValues
|
|
||||||
{
|
|
||||||
|
|
||||||
#nullable enable
|
|
||||||
|
|
||||||
public PollValues(float? business,
|
|
||||||
int businessCount,
|
|
||||||
float? effort,
|
|
||||||
int effortCount,
|
|
||||||
float? risk,
|
|
||||||
int riskCount,
|
|
||||||
float? time,
|
|
||||||
int timeCount)
|
|
||||||
{
|
|
||||||
Business = business;
|
|
||||||
BusinessCount = businessCount;
|
|
||||||
Effort = effort;
|
|
||||||
EffortCount = effortCount;
|
|
||||||
Risk = risk;
|
|
||||||
RiskCount = riskCount;
|
|
||||||
Time = time;
|
|
||||||
TimeCount = timeCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float? Business { get; set; }
|
|
||||||
public int? BusinessCount { get; set; }
|
|
||||||
public float? Effort { get; set; }
|
|
||||||
public int? EffortCount { get; set; }
|
|
||||||
public float? Risk { get; set; }
|
|
||||||
public int? RiskCount { get; set; }
|
|
||||||
public float? Time { get; set; }
|
|
||||||
public int? TimeCount { get; set; }
|
|
||||||
|
|
||||||
}
|
|
@ -7,17 +7,15 @@ public class Record
|
|||||||
|
|
||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
public Record(WorkItem workItem, WorkItem? parent, ReadOnlyCollection<Record> children, PollValues? pollValues)
|
public Record(WorkItem workItem, WorkItem? parent, ReadOnlyCollection<Record> children)
|
||||||
{
|
{
|
||||||
WorkItem = workItem;
|
WorkItem = workItem;
|
||||||
Parent = parent;
|
Parent = parent;
|
||||||
Children = children;
|
Children = children;
|
||||||
PollValues = pollValues;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorkItem WorkItem { get; set; }
|
public WorkItem WorkItem { get; set; }
|
||||||
public WorkItem? Parent { get; set; }
|
public WorkItem? Parent { get; set; }
|
||||||
public ReadOnlyCollection<Record> Children { get; set; }
|
public ReadOnlyCollection<Record> Children { get; set; }
|
||||||
public PollValues? PollValues { get; set; }
|
|
||||||
|
|
||||||
}
|
}
|
@ -129,7 +129,6 @@
|
|||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Fields.cs" />
|
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Fields.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Html.cs" />
|
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Html.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Links.cs" />
|
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Links.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\PollValues.cs" />
|
|
||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Record.cs" />
|
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Record.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Relation.cs" />
|
<Compile Include="Adaptation\FileHandlers\json\WorkItems\Relation.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\json\WorkItems\SystemAssignedTo.cs" />
|
<Compile Include="Adaptation\FileHandlers\json\WorkItems\SystemAssignedTo.cs" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user