Cost of Delay

This commit is contained in:
Mike Phares 2025-01-28 13:27:12 -07:00
parent 08a23114c9
commit 304bf04afe
45 changed files with 55913 additions and 414 deletions

View File

@ -5,6 +5,12 @@
"type": "coreclr", "type": "coreclr",
"request": "attach", "request": "attach",
"processId": 25140 "processId": 25140
},
{
"type": "node",
"request": "launch",
"name": "node Launch Current Opened File",
"program": "${file}"
} }
] ]
} }

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - 122508 - Feature iteration should be set to max of children</title> <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="/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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/122508.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/122508.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/122508.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -56,7 +56,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/check-122508.json?v=2024-10-07-18-50"); initIndex("/markdown/check-122508.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - 122514 - Features and children must have a Tag</title> <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="/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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/122514.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/122514.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/122514.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -56,7 +56,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/check-122514.json?v=2024-10-07-18-50"); initIndex("/markdown/check-122514.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - 122517 - Feature start date should be min activated date of children</title> <title>Infineon - 122517 - Feature start date should be min activated date of children</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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/122517.css?no-cache=2024-10-04-08-34" rel="stylesheet" /> <link href="/styles/122517.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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/122517.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/122517.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -56,7 +56,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/check-122517.json?v=2024-10-07-18-50"); initIndex("/markdown/check-122517.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <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> <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="/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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/123066.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/123066.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/123066.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -56,7 +56,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/check-123066.json?v=2024-10-07-18-50"); initIndex("/markdown/check-123066.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - 123067 - WIP</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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/123067.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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/123067.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/123067.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -56,7 +56,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/check-123067.json?v=2024-10-07-18-50"); initIndex("/markdown/check-123067.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - 126169 - Children of a Feature should have the same priority</title> <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="/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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/126169.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/126169.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/126169.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -56,7 +56,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/check-126169.json?v=2024-10-07-18-50"); initIndex("/markdown/check-126169.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - Business Value</title> <title>Infineon - Business Value</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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/business.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/business.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/business.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -59,7 +59,7 @@ What is the relative value to the Customer or business?
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/bugs-features-with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "business", "Value", "Business Value", "/markdown/PI4-Results/business.json?v=2024-10-07-18-50"); initIndex("/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "business", "Value", "Business Value", "/markdown/PI5-Results/business.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -0,0 +1,109 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Infineon - Cost of Delay (CoD) (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=2025-01-22-10-49" rel="stylesheet" />
<link href="/igniteui/css/structure/infragistics.css?v=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/cod.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
<script src="/js/scripts/jquery-1.6.4.min.js"></script>
<script src="/js/scripts/jquery.signalR-2.4.3.min.js"></script>
<script src="/signalr/hubs"></script>
<script src="/js/cod-b.js?v=2025-01-22-10-49" 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">&nbsp;</span> -
<span id="th-span">&nbsp;</span>
<button id="toggle">Toggle</button>
</div>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
</ul>
<p class="navbar-text navbar-right">
&nbsp;
</p>
</div>
</div>
</div>
<div class="container-fluid body-content" style="margin-top: 40px; margin-left: 15px;">
<div id="HeaderGridDiv">
<table id="HeaderGrid" border="1"></table>
</div>
<br />&nbsp;
<div id="AllGridDiv">
<table id="AllGrid"></table>
</div>
<textarea id="AllTextarea" rows="20" cols="147"></textarea>
</div>
<script>
$(document).ready(function () {
const fromHtml = true;
const signalRUrl = "/signalr";
const windowLocationHRef = window.location.href;
const apiUrl = "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/";
const workItems = {
a: "/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49",
b: "/markdown/{[]}.json?v=2025-01-22-10-49"
};
const b = {
page: "business",
description: "Value",
th: "Business Value",
span: "What is the relative value to the Customer or business?<br>• Do our users prefer this over that?<br>• What is the revenue impact on our business?<br>• Is there a potential penalty or other negative effects if we delay?"
};
const r = {
page: "risk",
description: "Risk",
th: "Risk Reduction and/or Opportunity Enablement",
span: "What else does this do for our business?<br>• Reduce the risk of this or future delivery?<br>• Is there value in the information we will receive?<br>• Enable new business opportunities?"
};
const t = {
page: "time",
description: "Critical",
th: "Time Criticality",
span: "How does user/business value decay over time?<br>• Is there a fixed deadline?<br>• Will they wait for us or move to another Solution?<br>• What is the current effect on Customer satisfaction?"
};
const c = {
page: "cod",
description: "CoD",
th: "Cost of Delay (CoD)",
span: "Cost of Delay (CoD) is the money lost by delaying or not doing a job for a specific time. It's a measure of the economic value of a job over time."
};
const e = {
page: "effort",
description: "Effort",
th: "Effort",
span: "Effort"
};
const w = {
page: "wsjf",
description: "WSJF",
th: "Weightest Shortest Job First calculation (WSJF)",
span: "Weightest Shortest Job First calculation (see @SCALE formula)"
};
initIndex(fromHtml, windowLocationHRef, workItems, b, r, t, c, e, w, apiUrl, signalRUrl);
});
</script>
</body>
</html>

View File

@ -0,0 +1,97 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Infineon - Cost of Delay (CoD) (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=2025-01-22-10-49" rel="stylesheet" />
<link href="/igniteui/css/structure/infragistics.css?v=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/cod.css?no-cache=2024-10-04-08-34" rel="stylesheet" />
<script src="/js/jquery-3.6.0.min.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/jquery-ui.min.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/scripts/jquery.signalR-2.4.3.min.js"></script>
<script src="/signalr/hubs"></script>
<script src="/js/cod.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/igniteui/js/infragistics.core.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/igniteui/js/infragistics.lob.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/igniteui/js/infragistics.dv.js?v=2025-01-22-10-49" 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">&nbsp;</span> - Cost of Delay (CoD) (see @SCALE formula)
</div>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
</ul>
<p class="navbar-text navbar-right">
&nbsp;
</p>
</div>
</div>
</div>
<div class="container-fluid body-content" style="margin-top: 40px; margin-left: 15px;">
<div id="HeaderGridDiv">
<table id="HeaderGrid" border="1"></table>
</div>
<br />&nbsp;
<div id="AllGridDiv">
<table id="AllGrid"></table>
</div>
</div>
<script>
$(document).ready(function () {
const fromHtml = true;
const windowLocationHRef = window.location.href;
const headerGrid = document.getElementById("HeaderGrid");
const workItems = {
a: "/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49",
b: "/markdown/{}.json?v=2025-01-22-10-49"
};
const b = {
page: "business",
description: "Value",
th: "Business Value",
span: "What is the relative value to the Customer or business?<br>• Do our users prefer this over that?<br>• What is the revenue impact on our business?<br>• Is there a potential penalty or other negative effects if we delay?"
};
const r = {
page: "risk",
description: "Risk",
th: "Risk Reduction and/or Opportunity Enablement",
span: "What else does this do for our business?<br>• Reduce the risk of this or future delivery?<br>• Is there value in the information we will receive?<br>• Enable new business opportunities?"
};
const t = {
page: "time",
description: "Critical",
th: "Time Criticality",
span: "How does user/business value decay over time?<br>• Is there a fixed deadline?<br>• Will they wait for us or move to another Solution?<br>• What is the current effect on Customer satisfaction?"
};
const c = {
page: "cod",
description: "CoD",
th: "Cost of Delay (CoD)",
span: "Cost of Delay (CoD) is the money lost by delaying or not doing a job for a specific time. It's a measure of the economic value of a job over time."
};
initIndex(fromHtml, windowLocationHRef, headerGrid, workItems, b, r, t, c, "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/");
});
</script>
</body>
</html>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - Effort</title> <title>Infineon - Effort</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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/effort.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/effort.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/effort.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -55,7 +55,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/bugs-features-with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "effort", "Effort", "Effort", "/markdown/PI4-Results/effort.json?v=2024-10-07-18-50"); initIndex("/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "effort", "Effort", "Effort", "/markdown/PI5-Results/effort.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - Risk Reduction and/or Opportunity Enablement</title> <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="/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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/risk.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/risk.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/risk.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -59,7 +59,7 @@ What else does this do for our business?
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/bugs-features-with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "risk", "Risk", "Risk Reduction and/or Opportunity Enablement", "/markdown/PI4-Results/risk.json?v=2024-10-07-18-50"); initIndex("/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "risk", "Risk", "Risk Reduction and/or Opportunity Enablement", "/markdown/PI5-Results/risk.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - Time Criticality</title> <title>Infineon - Time Criticality</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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/time.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/time.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/time.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -32,7 +32,6 @@ How does user/business value decay over time?
• Is there a fixed deadline? • Is there a fixed deadline?
• Will they wait for us or move to another Solution? • Will they wait for us or move to another Solution?
• What is the current effect on Customer satisfaction? • What is the current effect on Customer satisfaction?
</div> </div>
</div> </div>
<div class="navbar-collapse collapse"> <div class="navbar-collapse collapse">
@ -60,7 +59,7 @@ How does user/business value decay over time?
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/bugs-features-with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "time", "Critical", "Time Criticality", "/markdown/PI4-Results/time.json?v=2024-10-07-18-50"); initIndex("/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/", "time", "Critical", "Time Criticality", "/markdown/PI5-Results/time.json?v=2025-01-22-10-49");
}); });
</script> </script>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - User Stor(ies) with parents</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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/with-parents.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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/with-parents.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/with-parents.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -55,7 +55,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/bugs-user-stories-with-parents.json?v=2024-10-07-18-50"); initIndex("/markdown/bugs-user-stories-with-parents.json?v=2025-01-22-10-49");
}); });
</script> </script>

View 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/igniteui/css/structure/infragistics.css?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/jquery-ui.min.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/wsjf-b.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/igniteui/js/infragistics.core.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/igniteui/js/infragistics.lob.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script src="/igniteui/js/infragistics.dv.js?v=2025-01-22-10-49" 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">&nbsp;</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">
&nbsp;
</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 />&nbsp;
<div id="AllGridDiv">
<table id="AllGrid"></table>
</div>
</div>
<script>
$(document).ready(function () {
initIndex("/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/");
});
</script>
</body>
</html>

View File

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<title>SignalR Simple Chat</title>
<style type="text/css">
.container {
background-color: #99CCFF;
border: thick solid #808080;
padding: 20px;
margin: 20px;
}
</style>
</head>
<body>
<div class="container">
<input type="text" id="message" />
<input type="button" id="sendmessage" value="Send" />
<input type="hidden" id="displayname" />
<ul id="discussion"></ul>
</div>
<script src="/js/scripts/jquery-1.6.4.min.js"></script>
<script src="/js/scripts/jquery.signalR-2.4.3.min.js"></script>
<script src="/signalr/hubs"></script>
<script src="/js/wsjf-c.js?v=2025-01-22-10-49" type="text/javascript"></script>
<script>
$(document).ready(function () {
initIndex("/signalr", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/");
});
</script>
</body>
</html>

View File

@ -6,15 +6,15 @@
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<title>Infineon - Result of Weightest Shortest Job First calculation (see @SCALE formula)</title> <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="/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=2025-01-22-10-49" 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=2025-01-22-10-49" rel="stylesheet" />
<link href="/styles/wsjf.css?no-cache=2024-10-04-08-34" 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-3.6.0.min.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
<script src="/js/wsjf.js?v=2024-10-07-18-50" type="text/javascript"></script> <script src="/js/wsjf.js?v=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" 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=2025-01-22-10-49" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -55,7 +55,7 @@
<script> <script>
$(document).ready(function () { $(document).ready(function () {
initIndex("/markdown/bugs-features-with-parents.json?v=2024-10-07-18-50", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/"); initIndex("/markdown/bugs-features-with-parents.json?v=2025-01-22-10-49", "https://oi-metrology-viewer-prod.mes.infineon.com:4438/api/v1/ado/");
}); });
</script> </script>

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,22 +1,22 @@
var _apiUrl = null; var _apiUrl = null;
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.BusinessValue === null || b.BusinessValue === null) { if (a.BusinessValue == undefined || b.BusinessValue == undefined) {
var aPollValue = a.PollValue.split('-'); var aPollValue = a.PollValue.split('-');
var bPollValue = b.PollValue.split('-'); var bPollValue = b.PollValue.split('-');
return bPollValue[0].trim() - aPollValue[0].trim() || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id; return bPollValue[0] - aPollValue[0] || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} else { } else {
return b.BusinessValue - a.BusinessValue || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.BusinessValue - a.BusinessValue || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} }
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -30,7 +30,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -45,7 +45,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -66,7 +66,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -81,45 +81,34 @@ function getPriority(workItemType, priority) {
return result; return result;
} }
function getInversePriority(priority) { function getPollValue(description, pollValue) {
var result; var result;
if (priority == null || priority === 0) if (pollValue == undefined || pollValue.BusinessValue == undefined || pollValue.BusinessValue.InverseAverage == undefined)
result = "0.000"; result = "";
else if (priority === 1) else if (pollValue.BusinessValue.InverseAverage >= 4)
result = "3.000"; result = `${pollValue.BusinessValue.InverseAverage} - 1-Highest (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (priority === 2) else if (pollValue.BusinessValue.InverseAverage >= 3)
result = "2.000"; result = `${pollValue.BusinessValue.InverseAverage} - 2-High - ${pollValue.Count} Vote(s)`;
else if (priority === 3) else if (pollValue.BusinessValue.InverseAverage >= 2)
result = "1.000"; result = `${pollValue.BusinessValue.InverseAverage} - 3-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.BusinessValue.InverseAverage >= 1)
result = `${pollValue.BusinessValue.InverseAverage} - 4-Low - ${pollValue.Count} Vote(s)`;
else if (pollValue.BusinessValue.InverseAverage >= 0)
result = `${pollValue.BusinessValue.InverseAverage} - 5-Lowest - ${pollValue.Count} Vote(s)`;
else else
result = "0.000"; result = "";
return result;
}
function getPollValue(description, priority, priorityDisplay, pollValue) {
var result;
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0 || pollValue.Average === null)
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
else if (pollValue.Average > 2)
result = `${pollValue.Average} - 1-High (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 1)
result = `${pollValue.Average} - 2-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 0)
result = `${pollValue.Average} - 3-Low - ${pollValue.Count} Vote(s)`;
else
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
return result; return result;
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -128,12 +117,12 @@ function updateRecordCoD(workItem) {
function updateRecordOther(workItem, dataB, description) { function updateRecordOther(workItem, dataB, description) {
workItem["State"] = getState(workItem["State"]); workItem["State"] = getState(workItem["State"]);
var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]); var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]);
workItem["PollValue"] = getPollValue(description, workItem["Priority"], priority, dataB[workItem.Id]); workItem["PollValue"] = getPollValue(description, dataB[workItem.Id]);
workItem["Priority"] = priority; workItem["Priority"] = priority;
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;
@ -183,13 +172,46 @@ function sendValue(element, page, id) {
}); });
} }
function getFibonacciValue(average) {
var result;
if (average >= 7)
result = 34;
else if (average >= 6)
result = 21;
else if (average >= 5)
result = 13;
else if (average >= 4)
result = 8;
else if (average >= 3)
result = 5;
else if (average >= 2)
result = 3;
else if (average >= 1)
result = 2;
else if (average >= 0)
result = 1;
else
result = "";
return result;
}
function setRecords(workItems, page, description, th) { function setRecords(workItems, page, description, th) {
var record; 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>State</th><th>Value</th><th>Up</th><th>Down</th><th>Poll Value</th><th>" + th + "</th></tr>"; var array = [];
var count = "";
var select = "";
var average = "";
var fibonacciValue = "";
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>State</th><th>Value</th><th>Poll Average</th><th>Fibonacci</th><th>Poll Description</th><th>Vote(s)</th><th>" + th + "</th><th>Up</th><th>Down</th></tr>";
const element = document.getElementById("HeaderGrid"); const element = document.getElementById("HeaderGrid");
for (var i = 0; i < workItems.length; i++) { for (var i = 0; i < workItems.length; i++) {
record = workItems[i]; record = workItems[i];
var length = record.BusinessValue === null ? "" : record.BusinessValue.toString().length; array = record.PollValue.split('-')
average = array.length > 0 ? array[0] : "";
fibonacciValue = getFibonacciValue(average);
select = array.length > 2 ? array[1] + '-' + array[2] : "";
count = array.length > 3 ? array[3].trim().split(' ')[0] : "";
var length = record.BusinessValue == undefined ? "" : record.BusinessValue.toString().length;
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" + 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>" + 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>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
@ -201,14 +223,19 @@ function setRecords(workItems, page, description, th) {
"</td><td>" + "</td><td>" +
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' + '<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
'<option value="9">Unknown</option>' + '<option value="9">Unknown</option>' +
'<option value="1">High (Most ' + description + ')</option>' + '<option value="1">Highest (Most ' + description + ')</option>' +
'<option value="2">Medium</option>' + '<option value="2">High</option>' +
'<option value="3">Low</option>' + '<option value="3">Medium</option>' +
'<option value="4">Low</option>' +
'<option value="5">Lowest</option>' +
"</select>" + "</select>" +
"</td><td>" + average +
"</td><td>" + fibonacciValue +
"</td><td>" + select +
"</td><td>" + count +
"</td><td>" + length + " - " + record.BusinessValue +
"</td><td><a href='#' class='up'>Up</a>" + "</td><td><a href='#' class='up'>Up</a>" +
"</td><td><a href='#' class='down'>Down</a>" + "</td><td><a href='#' class='down'>Down</a>" +
"</td><td>" + record.PollValue +
"</td><td>" + length + " - " + record.BusinessValue +
"</td></tr>"; "</td></tr>";
} }
element.innerHTML = html.replaceAll(">null<", ">&nbsp;<"); element.innerHTML = html.replaceAll(">null<", ">&nbsp;<");

File diff suppressed because one or more lines are too long

View File

@ -1,22 +1,22 @@
var _apiUrl = null; var _apiUrl = null;
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.Effort === null || b.Effort === null) { if (a.Effort == undefined || b.Effort == undefined) {
var aPollValue = a.PollValue.split('-'); var aPollValue = a.PollValue.split('-');
var bPollValue = b.PollValue.split('-'); var bPollValue = b.PollValue.split('-');
return bPollValue[0].trim() - aPollValue[0].trim() || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id; return bPollValue[0] - aPollValue[0] || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} else { } else {
return b.Effort - a.Effort || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.Effort - a.Effort || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} }
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -30,7 +30,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -45,7 +45,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -66,7 +66,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -81,45 +81,34 @@ function getPriority(workItemType, priority) {
return result; return result;
} }
function getInversePriority(priority) { function getPollValue(description, pollValue) {
var result; var result;
if (priority == null || priority === 0) if (pollValue == undefined || pollValue.Effort == undefined || pollValue.Effort.InverseAverage == undefined)
result = "0.000"; result = "";
else if (priority === 1) else if (pollValue.Effort.InverseAverage >= 4)
result = "3.000"; result = `${pollValue.Effort.InverseAverage} - 1-Highest (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (priority === 2) else if (pollValue.Effort.InverseAverage >= 3)
result = "2.000"; result = `${pollValue.Effort.InverseAverage} - 2-High - ${pollValue.Count} Vote(s)`;
else if (priority === 3) else if (pollValue.Effort.InverseAverage >= 2)
result = "1.000"; result = `${pollValue.Effort.InverseAverage} - 3-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.Effort.InverseAverage >= 1)
result = `${pollValue.Effort.InverseAverage} - 4-Low - ${pollValue.Count} Vote(s)`;
else if (pollValue.Effort.InverseAverage >= 0)
result = `${pollValue.Effort.InverseAverage} - 5-Lowest - ${pollValue.Count} Vote(s)`;
else else
result = "0.000"; result = "";
return result;
}
function getPollValue(description, priority, priorityDisplay, pollValue) {
var result;
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0 || pollValue.Average === null)
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
else if (pollValue.Average > 2)
result = `${pollValue.Average} - 1-High (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 1)
result = `${pollValue.Average} - 2-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 0)
result = `${pollValue.Average} - 3-Low - ${pollValue.Count} Vote(s)`;
else
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
return result; return result;
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -128,12 +117,12 @@ function updateRecordCoD(workItem) {
function updateRecordOther(workItem, dataB, description) { function updateRecordOther(workItem, dataB, description) {
workItem["State"] = getState(workItem["State"]); workItem["State"] = getState(workItem["State"]);
var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]); var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]);
workItem["PollValue"] = getPollValue(description, workItem["Priority"], priority, dataB[workItem.Id]); workItem["PollValue"] = getPollValue(description, dataB[workItem.Id]);
workItem["Priority"] = priority; workItem["Priority"] = priority;
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;
@ -183,13 +172,46 @@ function sendValue(element, page, id) {
}); });
} }
function getFibonacciValue(average) {
var result;
if (average >= 7)
result = 34;
else if (average >= 6)
result = 21;
else if (average >= 5)
result = 13;
else if (average >= 4)
result = 8;
else if (average >= 3)
result = 5;
else if (average >= 2)
result = 3;
else if (average >= 1)
result = 2;
else if (average >= 0)
result = 1;
else
result = "";
return result;
}
function setRecords(workItems, page, description, th) { function setRecords(workItems, page, description, th) {
var record; 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>State</th><th>Value</th><th>Up</th><th>Down</th><th>Poll Value</th><th>" + th + "</th></tr>"; var array = [];
var count = "";
var select = "";
var average = "";
var fibonacciValue = "";
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>State</th><th>Value</th><th>Poll Average</th><th>Fibonacci</th><th>Poll Description</th><th>Vote(s)</th><th>" + th + "</th><th>Up</th><th>Down</th></tr>";
const element = document.getElementById("HeaderGrid"); const element = document.getElementById("HeaderGrid");
for (var i = 0; i < workItems.length; i++) { for (var i = 0; i < workItems.length; i++) {
record = workItems[i]; record = workItems[i];
var length = record.Effort === null ? "" : record.Effort.toString().length; array = record.PollValue.split('-')
average = array.length > 0 ? array[0] : "";
fibonacciValue = getFibonacciValue(average);
select = array.length > 2 ? array[1] + '-' + array[2] : "";
count = array.length > 3 ? array[3].trim().split(' ')[0] : "";
var length = record.Effort == undefined ? "" : record.Effort.toString().length;
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" + 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>" + 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>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
@ -201,14 +223,19 @@ function setRecords(workItems, page, description, th) {
"</td><td>" + "</td><td>" +
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' + '<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
'<option value="9">Unknown</option>' + '<option value="9">Unknown</option>' +
'<option value="1">High (Most ' + description + ')</option>' + '<option value="1">Highest (Most ' + description + ')</option>' +
'<option value="2">Medium</option>' + '<option value="2">High</option>' +
'<option value="3">Low</option>' + '<option value="3">Medium</option>' +
'<option value="4">Low</option>' +
'<option value="5">Lowest</option>' +
"</select>" + "</select>" +
"</td><td>" + average +
"</td><td>" + fibonacciValue +
"</td><td>" + select +
"</td><td>" + count +
"</td><td>" + length + " - " + record.Effort +
"</td><td><a href='#' class='up'>Up</a>" + "</td><td><a href='#' class='up'>Up</a>" +
"</td><td><a href='#' class='down'>Down</a>" + "</td><td><a href='#' class='down'>Down</a>" +
"</td><td>" + record.PollValue +
"</td><td>" + length + " - " + record.Effort +
"</td></tr>"; "</td></tr>";
} }
element.innerHTML = html.replaceAll(">null<", ">&nbsp;<"); element.innerHTML = html.replaceAll(">null<", ">&nbsp;<");

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.CoD === null || b.CoD === null) { if (a.CoD == undefined || b.CoD == undefined) {
return b.Id - a.Id; return b.Id - a.Id;
} else { } else {
return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.CoD - a.CoD || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -1,22 +1,22 @@
var _apiUrl = null; var _apiUrl = null;
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.RiskReductionMinusOpportunityEnablement === null || b.RiskReductionMinusOpportunityEnablement === null) { if (a.RiskReductionMinusOpportunityEnablement == undefined || b.RiskReductionMinusOpportunityEnablement == undefined) {
var aPollValue = a.PollValue.split('-'); var aPollValue = a.PollValue.split('-');
var bPollValue = b.PollValue.split('-'); var bPollValue = b.PollValue.split('-');
return bPollValue[0].trim() - aPollValue[0].trim() || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id; return bPollValue[0] - aPollValue[0] || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} else { } else {
return b.RiskReductionMinusOpportunityEnablement - a.RiskReductionMinusOpportunityEnablement || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.RiskReductionMinusOpportunityEnablement - a.RiskReductionMinusOpportunityEnablement || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} }
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -30,7 +30,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -45,7 +45,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -66,7 +66,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -81,45 +81,34 @@ function getPriority(workItemType, priority) {
return result; return result;
} }
function getInversePriority(priority) { function getPollValue(description, pollValue) {
var result; var result;
if (priority == null || priority === 0) if (pollValue == undefined || pollValue.RiskReductionOpportunityEnablement == undefined || pollValue.RiskReductionOpportunityEnablement.InverseAverage == undefined)
result = "0.000"; result = "";
else if (priority === 1) else if (pollValue.RiskReductionOpportunityEnablement.InverseAverage >= 4)
result = "3.000"; result = `${pollValue.RiskReductionOpportunityEnablement.InverseAverage} - 1-Highest (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (priority === 2) else if (pollValue.RiskReductionOpportunityEnablement.InverseAverage >= 3)
result = "2.000"; result = `${pollValue.RiskReductionOpportunityEnablement.InverseAverage} - 2-High - ${pollValue.Count} Vote(s)`;
else if (priority === 3) else if (pollValue.RiskReductionOpportunityEnablement.InverseAverage >= 2)
result = "1.000"; result = `${pollValue.RiskReductionOpportunityEnablement.InverseAverage} - 3-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.RiskReductionOpportunityEnablement.InverseAverage >= 1)
result = `${pollValue.RiskReductionOpportunityEnablement.InverseAverage} - 4-Low - ${pollValue.Count} Vote(s)`;
else if (pollValue.RiskReductionOpportunityEnablement.InverseAverage >= 0)
result = `${pollValue.RiskReductionOpportunityEnablement.InverseAverage} - 5-Lowest - ${pollValue.Count} Vote(s)`;
else else
result = "0.000"; result = "";
return result;
}
function getPollValue(description, priority, priorityDisplay, pollValue) {
var result;
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0 || pollValue.Average === null)
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
else if (pollValue.Average > 2)
result = `${pollValue.Average} - 1-High (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 1)
result = `${pollValue.Average} - 2-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 0)
result = `${pollValue.Average} - 3-Low - ${pollValue.Count} Vote(s)`;
else
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
return result; return result;
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -128,12 +117,12 @@ function updateRecordCoD(workItem) {
function updateRecordOther(workItem, dataB, description) { function updateRecordOther(workItem, dataB, description) {
workItem["State"] = getState(workItem["State"]); workItem["State"] = getState(workItem["State"]);
var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]); var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]);
workItem["PollValue"] = getPollValue(description, workItem["Priority"], priority, dataB[workItem.Id]); workItem["PollValue"] = getPollValue(description, dataB[workItem.Id]);
workItem["Priority"] = priority; workItem["Priority"] = priority;
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;
@ -183,13 +172,46 @@ function sendValue(element, page, id) {
}); });
} }
function getFibonacciValue(average) {
var result;
if (average >= 7)
result = 34;
else if (average >= 6)
result = 21;
else if (average >= 5)
result = 13;
else if (average >= 4)
result = 8;
else if (average >= 3)
result = 5;
else if (average >= 2)
result = 3;
else if (average >= 1)
result = 2;
else if (average >= 0)
result = 1;
else
result = "";
return result;
}
function setRecords(workItems, page, description, th) { function setRecords(workItems, page, description, th) {
var record; 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>State</th><th>Value</th><th>Up</th><th>Down</th><th>Poll Value</th><th>" + th + "</th></tr>"; var array = [];
var count = "";
var select = "";
var average = "";
var fibonacciValue = "";
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>State</th><th>Value</th><th>Poll Average</th><th>Fibonacci</th><th>Poll Description</th><th>Vote(s)</th><th>" + th + "</th><th>Up</th><th>Down</th></tr>";
const element = document.getElementById("HeaderGrid"); const element = document.getElementById("HeaderGrid");
for (var i = 0; i < workItems.length; i++) { for (var i = 0; i < workItems.length; i++) {
record = workItems[i]; record = workItems[i];
var length = record.RiskReductionMinusOpportunityEnablement === null ? "" : record.RiskReductionMinusOpportunityEnablement.toString().length; array = record.PollValue.split('-')
average = array.length > 0 ? array[0] : "";
fibonacciValue = getFibonacciValue(average);
select = array.length > 2 ? array[1] + '-' + array[2] : "";
count = array.length > 3 ? array[3].trim().split(' ')[0] : "";
var length = record.RiskReductionMinusOpportunityEnablement == undefined ? "" : record.RiskReductionMinusOpportunityEnablement.toString().length;
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" + 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>" + 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>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
@ -201,14 +223,19 @@ function setRecords(workItems, page, description, th) {
"</td><td>" + "</td><td>" +
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' + '<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
'<option value="9">Unknown</option>' + '<option value="9">Unknown</option>' +
'<option value="1">High (Most ' + description + ')</option>' + '<option value="1">Highest (Most ' + description + ')</option>' +
'<option value="2">Medium</option>' + '<option value="2">High</option>' +
'<option value="3">Low</option>' + '<option value="3">Medium</option>' +
'<option value="4">Low</option>' +
'<option value="5">Lowest</option>' +
"</select>" + "</select>" +
"</td><td>" + average +
"</td><td>" + fibonacciValue +
"</td><td>" + select +
"</td><td>" + count +
"</td><td>" + length + " - " + record.RiskReductionMinusOpportunityEnablement +
"</td><td><a href='#' class='up'>Up</a>" + "</td><td><a href='#' class='up'>Up</a>" +
"</td><td><a href='#' class='down'>Down</a>" + "</td><td><a href='#' class='down'>Down</a>" +
"</td><td>" + record.PollValue +
"</td><td>" + length + " - " + record.RiskReductionMinusOpportunityEnablement +
"</td></tr>"; "</td></tr>";
} }
element.innerHTML = html.replaceAll(">null<", ">&nbsp;<"); element.innerHTML = html.replaceAll(">null<", ">&nbsp;<");

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,95 @@
/*!
* ASP.NET SignalR JavaScript Library 2.4.3
* http://signalr.net/
*
* Copyright (c) .NET Foundation. All rights reserved.
* Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
*
*/
/// <reference path="..\..\SignalR.Client.JS\Scripts\jquery-1.6.4.js" />
/// <reference path="jquery.signalR.js" />
(function ($, window, undefined) {
/// <param name="$" type="jQuery" />
"use strict";
if (typeof ($.signalR) !== "function") {
throw new Error("SignalR: SignalR is not loaded. Please ensure jquery.signalR-x.js is referenced before ~/signalr/js.");
}
var signalR = $.signalR;
function makeProxyCallback(hub, callback) {
return function () {
// Call the client hub method
callback.apply(hub, $.makeArray(arguments));
};
}
function registerHubProxies(instance, shouldSubscribe) {
var key, hub, memberKey, memberValue, subscriptionMethod;
for (key in instance) {
if (instance.hasOwnProperty(key)) {
hub = instance[key];
if (!(hub.hubName)) {
// Not a client hub
continue;
}
if (shouldSubscribe) {
// We want to subscribe to the hub events
subscriptionMethod = hub.on;
} else {
// We want to unsubscribe from the hub events
subscriptionMethod = hub.off;
}
// Loop through all members on the hub and find client hub functions to subscribe/unsubscribe
for (memberKey in hub.client) {
if (hub.client.hasOwnProperty(memberKey)) {
memberValue = hub.client[memberKey];
if (!$.isFunction(memberValue)) {
// Not a client hub function
continue;
}
// Use the actual user-provided callback as the "identity" value for the registration.
subscriptionMethod.call(hub, memberKey, makeProxyCallback(hub, memberValue), memberValue);
}
}
}
}
}
$.hubConnection.prototype.createHubProxies = function () {
var proxies = {};
this.starting(function () {
// Register the hub proxies as subscribed
// (instance, shouldSubscribe)
registerHubProxies(proxies, true);
this._registerSubscribedHubs();
}).disconnected(function () {
// Unsubscribe all hub proxies when we "disconnect". This is to ensure that we do not re-add functional call backs.
// (instance, shouldSubscribe)
registerHubProxies(proxies, false);
});
proxies['weightedShortestJobFirstHub'] = this.createHubProxy('weightedShortestJobFirstHub');
proxies['weightedShortestJobFirstHub'].client = { };
proxies['weightedShortestJobFirstHub'].server = {
send: function (name, message) {
return proxies['weightedShortestJobFirstHub'].invoke.apply(proxies['weightedShortestJobFirstHub'], $.merge(["Send"], $.makeArray(arguments)));
}
};
return proxies;
};
signalR.hub = $.hubConnection("/signalr", { useDefaultPath: false });
$.extend(signalR, signalR.hub.createHubProxies());
}(window.jQuery, window));

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,22 @@
var _apiUrl = null; var _apiUrl = null;
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.TimeCriticality === null || b.TimeCriticality === null) { if (a.TimeCriticality == undefined || b.TimeCriticality == undefined) {
var aPollValue = a.PollValue.split('-'); var aPollValue = a.PollValue.split('-');
var bPollValue = b.PollValue.split('-'); var bPollValue = b.PollValue.split('-');
return bPollValue[0].trim() - aPollValue[0].trim() || b.State[0] - a.State[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.State[0] - a.State[0] || bPollValue[0] - aPollValue[0] || bPollValue[bPollValue.length - 1].trim()[0] - aPollValue[aPollValue.length - 1].trim()[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} else { } else {
return b.TimeCriticality - a.TimeCriticality || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.TimeCriticality - a.TimeCriticality || b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
} }
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -30,7 +30,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -45,7 +45,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -66,7 +66,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -81,45 +81,34 @@ function getPriority(workItemType, priority) {
return result; return result;
} }
function getInversePriority(priority) { function getPollValue(description, pollValue) {
var result; var result;
if (priority == null || priority === 0) if (pollValue == undefined || pollValue.TimeCriticality == undefined || pollValue.TimeCriticality.InverseAverage == undefined)
result = "0.000"; result = "";
else if (priority === 1) else if (pollValue.TimeCriticality.InverseAverage >= 4)
result = "3.000"; result = `${pollValue.TimeCriticality.InverseAverage} - 1-Highest (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (priority === 2) else if (pollValue.TimeCriticality.InverseAverage >= 3)
result = "2.000"; result = `${pollValue.TimeCriticality.InverseAverage} - 2-High - ${pollValue.Count} Vote(s)`;
else if (priority === 3) else if (pollValue.TimeCriticality.InverseAverage >= 2)
result = "1.000"; result = `${pollValue.TimeCriticality.InverseAverage} - 3-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.TimeCriticality.InverseAverage >= 1)
result = `${pollValue.TimeCriticality.InverseAverage} - 4-Low - ${pollValue.Count} Vote(s)`;
else if (pollValue.TimeCriticality.InverseAverage >= 0)
result = `${pollValue.TimeCriticality.InverseAverage} - 5-Lowest - ${pollValue.Count} Vote(s)`;
else else
result = "0.000"; result = "";
return result;
}
function getPollValue(description, priority, priorityDisplay, pollValue) {
var result;
if (pollValue === undefined || pollValue.Records.length === undefined || pollValue.Records.length === 0 || pollValue.Average === null)
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
else if (pollValue.Average > 2)
result = `${pollValue.Average} - 1-High (Most ${description}) - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 1)
result = `${pollValue.Average} - 2-Medium - ${pollValue.Count} Vote(s)`;
else if (pollValue.Average > 0)
result = `${pollValue.Average} - 3-Low - ${pollValue.Count} Vote(s)`;
else
result = getInversePriority(priority) + ' - ' + priorityDisplay + ' - *Priority';
return result; return result;
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -128,12 +117,12 @@ function updateRecordCoD(workItem) {
function updateRecordOther(workItem, dataB, description) { function updateRecordOther(workItem, dataB, description) {
workItem["State"] = getState(workItem["State"]); workItem["State"] = getState(workItem["State"]);
var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]); var priority = getPriority(workItem["WorkItemType"], workItem["Priority"]);
workItem["PollValue"] = getPollValue(description, workItem["Priority"], priority, dataB[workItem.Id]); workItem["PollValue"] = getPollValue(description, dataB[workItem.Id]);
workItem["Priority"] = priority; workItem["Priority"] = priority;
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;
@ -183,13 +172,47 @@ function sendValue(element, page, id) {
}); });
} }
function getFibonacciValue(average) {
var result;
if (average >= 7)
result = 34;
else if (average >= 6)
result = 21;
else if (average >= 5)
result = 13;
else if (average >= 4)
result = 8;
else if (average >= 3)
result = 5;
else if (average >= 2)
result = 3;
else if (average >= 1)
result = 2;
else if (average >= 0)
result = 1;
else
result = "";
return result;
}
function setRecords(workItems, page, description, th) { function setRecords(workItems, page, description, th) {
var record; 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>State</th><th>Value</th><th>Up</th><th>Down</th><th>Poll Value</th><th>" + th + "</th></tr>"; var array = [];
var count = "";
var select = "";
var average = "";
var fibonacciValue = "";
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>State</th><th>Value</th><th>Poll Average</th><th>Fibonacci</th><th>Poll Description</th><th>Vote(s)</th><th>" + th + "</th><th>Up</th><th>Down</th></tr>";
const element = document.getElementById("HeaderGrid"); const element = document.getElementById("HeaderGrid");
for (var i = 0; i < workItems.length; i++) { for (var i = 0; i < workItems.length; i++) {
record = workItems[i]; record = workItems[i];
var length = record.TimeCriticality === null ? "" : record.TimeCriticality.toString().length; array = record.PollValue.split('-')
average = array.length > 0 ? array[0] : "";
fibonacciValue = getFibonacciValue(average);
select = array.length > 2 ? array[1] + '-' + array[2] : "";
count = array.length > 3 ? array[3].trim().split(' ')[0] : "";
var length = record.TimeCriticality == undefined ? "" : record.TimeCriticality.toString().length;
html += "<tr><td>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.ParentId + '">' + record.ParentId + "</a>" + 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>" + 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>" + '<a target="_blank" href="https://tfs.intra.infineon.com/tfs/FactoryIntegration/ART%20SPS/_workitems/edit/' + record.Id + '">' + record.Id + "</a>" +
@ -201,14 +224,19 @@ function setRecords(workItems, page, description, th) {
"</td><td>" + "</td><td>" +
'<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' + '<select onchange="sendValue(this, \'' + page + '\', ' + record.Id + ')">' +
'<option value="9">Unknown</option>' + '<option value="9">Unknown</option>' +
'<option value="1">High (Most ' + description + ')</option>' + '<option value="1">Highest (Most ' + description + ')</option>' +
'<option value="2">Medium</option>' + '<option value="2">High</option>' +
'<option value="3">Low</option>' + '<option value="3">Medium</option>' +
'<option value="4">Low</option>' +
'<option value="5">Lowest</option>' +
"</select>" + "</select>" +
"</td><td>" + average +
"</td><td>" + fibonacciValue +
"</td><td>" + select +
"</td><td>" + count +
"</td><td>" + length + " - " + record.TimeCriticality +
"</td><td><a href='#' class='up'>Up</a>" + "</td><td><a href='#' class='up'>Up</a>" +
"</td><td><a href='#' class='down'>Down</a>" + "</td><td><a href='#' class='down'>Down</a>" +
"</td><td>" + record.PollValue +
"</td><td>" + length + " - " + record.TimeCriticality +
"</td></tr>"; "</td></tr>";
} }
element.innerHTML = html.replaceAll(">null<", ">&nbsp;<"); element.innerHTML = html.replaceAll(">null<", ">&nbsp;<");

View File

@ -1,5 +1,5 @@
function compareFunction(a, b) { function compareFunction(a, b) {
if (a.ParentCoD === null || b.ParentCoD === null) { if (a.ParentCoD == undefined || b.ParentCoD == undefined) {
return b.ParentCoD - a.ParentCoD || b.Id - a.Id; return b.ParentCoD - a.ParentCoD || b.Id - a.Id;
} else { } else {
return b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id; return b.State[0] - a.State[0] || b.ParentId - a.ParentId || a.Id - b.Id;
@ -7,12 +7,12 @@ function compareFunction(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -26,7 +26,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -41,7 +41,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -62,7 +62,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -78,14 +78,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem.Effort === null) if (workItem.Effort == undefined)
workItem.Effort = 10123; workItem.Effort = 10123;
if (workItem.BusinessValue === null) if (workItem.BusinessValue == undefined)
workItem.BusinessValue = 99999; workItem.BusinessValue = 99999;
if (workItem.TimeCriticality === null) if (workItem.TimeCriticality == undefined)
workItem.TimeCriticality = 99999; workItem.TimeCriticality = 99999;
if (workItem.RiskReductionMinusOpportunityEnablement === null) if (workItem.RiskReductionMinusOpportunityEnablement == undefined)
workItem.RiskReductionMinusOpportunityEnablement = 99999; workItem.RiskReductionMinusOpportunityEnablement = 99999;
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablement + workItem.TimeCriticality + workItem.BusinessValue;
} }
@ -97,7 +97,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;

View File

@ -0,0 +1,321 @@
var _apiUrl = null;
function compareFunction(a, b) {
return b.WeightedShortestJobFirst - a.WeightedShortestJobFirst || b.CoDRank - b.CoDRank || b.ParentId - a.ParentId || a.Id - b.Id;
}
function compareEffortFunction(a, b) {
return a.Effort - b.Effort || b.ParentId - a.ParentId || a.Id - b.Id;
}
function compareBusinessValueFunction(a, b) {
return a.BusinessValue - b.BusinessValue || b.ParentId - a.ParentId || a.Id - b.Id;
}
function compareTimeCriticalityFunction(a, b) {
return a.TimeCriticality - b.TimeCriticality || b.ParentId - a.ParentId || a.Id - b.Id;
}
function compareRiskReductionMinusOpportunityEnablementFunction(a, b) {
return b.RiskReductionMinusOpportunityEnablement - b.RiskReductionMinusOpportunityEnablement || b.ParentId - a.ParentId || a.Id - b.Id;
}
function compareCostOfDelay(a, b) {
return b.CoD - b.CoD || b.ParentId - a.ParentId || a.Id - b.Id;
}
function showOne(rowData) {
if (rowData == undefined)
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] == undefined)
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 == undefined)
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 == undefined)
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 == undefined || 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 updateRecordCoD(workItem) {
if (workItem != undefined) {
if (workItem["Effort"] == undefined)
workItem["Effort"] = 1;
if (workItem["BusinessValue"] == undefined)
workItem["BusinessValue"] = 99999;
if (workItem["TimeCriticality"] == undefined)
workItem["TimeCriticality"] = 99999;
if (workItem["RiskReductionMinusOpportunityEnablement"] == undefined)
workItem["RiskReductionMinusOpportunityEnablement"] = 99999;
}
}
function getFibonacci(length) {
var results = [];
for (var i = 0; i < length; i++) {
results.push(21);
}
var index = 0;
var fibonacci = [3, 5, 8, 13, 20];
var factor = (length / fibonacci.length).toFixed();
for (var j = 0; j < fibonacci.length; j++) {
for (var i = 0; i < factor; i++) {
results[index] = fibonacci[j];
index += 1;
}
}
// for (var i = 0; i < results.length; i++) {
// console.log(results[i]);
// }
return results;
}
function updateCoD(records) {
var workItem;
var collection = [];
for (var i = 0; i < records.length; i++) {
workItem = records[i];
if (workItem.Priority[0] === '2') {
workItem.EffortFibonacci = 2;
workItem.BusinessValueFibonacci = 2;
workItem.TimeCriticalityFibonacci = 2;
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 2;
continue;
}
else if (workItem.Priority[0] === '3') {
workItem.EffortFibonacci = 1;
workItem.BusinessValueFibonacci = 1;
workItem.TimeCriticalityFibonacci = 1;
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 1;
continue;
}
collection.push(workItem);
}
var fibonacci = getFibonacci(collection.length);
collection.sort(compareEffortFunction);
for (var i = 0; i < collection.length; i++) {
workItem = collection[i];
workItem.EffortFibonacci = fibonacci[i];
}
records.sort(compareEffortFunction);
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.EffortRank = (((i + 1) / records.length) * 100).toFixed();
}
collection.sort(compareBusinessValueFunction);
for (var i = 0; i < collection.length; i++) {
workItem = collection[i];
workItem.BusinessValueFibonacci = fibonacci[i];
}
records.sort(compareBusinessValueFunction);
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.BusinessValueRank = (((i + 1) / records.length) * 100).toFixed();
}
collection.sort(compareTimeCriticalityFunction);
for (var i = 0; i < collection.length; i++) {
workItem = collection[i];
workItem.TimeCriticalityFibonacci = fibonacci[i];
}
records.sort(compareTimeCriticalityFunction);
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.TimeCriticalityRank = (((i + 1) / records.length) * 100).toFixed();
}
collection.sort(compareRiskReductionMinusOpportunityEnablementFunction);
for (var i = 0; i < collection.length; i++) {
workItem = collection[i];
workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[i];
}
records.sort(compareRiskReductionMinusOpportunityEnablementFunction);
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.RiskReductionMinusOpportunityEnablementRank = (((i + 1) / records.length) * 100).toFixed();
}
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablementFibonacci + workItem.TimeCriticalityFibonacci + workItem.BusinessValueFibonacci;
}
records.sort(compareCostOfDelay);
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.CoDRank = (((i + 1) / records.length) * 100).toFixed();
}
for (var i = 0; i < records.length; i++) {
workItem = records[i];
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') {
workItem.WeightedShortestJobFirst = 0.000001;
workItem.WeightedShortestJobFirstRank = 0;
}
else {
workItem.WeightedShortestJobFirstRank = (((i + 1) / records.length) * 100).toFixed();
workItem.WeightedShortestJobFirst = (workItem.CoD / workItem.EffortFibonacci).toFixed(3);
}
}
}
function updateRecordOther(workItem) {
workItem["State"] = getState(workItem["State"]);
workItem["Priority"] = getPriority(workItem["WorkItemType"], workItem["Priority"]);
}
function updateRecordParent(parent, workItem) {
if (parent == undefined) {
workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null;
workItem["ParentState"] = null;
workItem["ParentCoD"] = 9999999;
}
else {
workItem["ParentId"] = parent["Id"];
workItem["ParentCoD"] = parent["CoD"];
workItem["ParentTitle"] = parent["Title"];
workItem["ParentState"] = getState(parent["State"]);
}
}
function getRecords(data) {
var parent;
var workItem;
var records = [];
for (var i = 0; i < data.length; i++) {
parent = data[i].Parent;
workItem = data[i].WorkItem;
if (workItem.WorkItemType !== 'Feature')
continue;
if (workItem.State !== 'Active' && workItem.State !== 'New')
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;
updateRecordCoD(parent);
updateRecordCoD(workItem);
updateRecordOther(workItem);
updateRecordParent(parent, workItem);
records.push(workItem);
}
updateCoD(records);
records.sort(compareFunction);
return records;
}
function setRecords(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>State</th><th>Priority</th><th>Risk Reduction and/or Opportunity Enablement</th><th>Time Criticality</th><th>Business Value</th><th>CoD</th><th>Effort</th><th>WSJF</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.State +
"</td><td>" + record.Priority +
"</td><td>" + record.RiskReductionMinusOpportunityEnablementRank + '% - ' + record.RiskReductionMinusOpportunityEnablement + ' - ' + record.RiskReductionMinusOpportunityEnablementFibonacci +
"</td><td>" + record.TimeCriticalityRank + '% - ' +record.TimeCriticality + ' - ' + record.TimeCriticalityFibonacci +
"</td><td>" + record.BusinessValueRank + '% - ' +record.BusinessValue + ' - ' + record.BusinessValueFibonacci +
"</td><td>" + record.CoDRank + '% - ' + record.CoD +
"</td><td>" + record.EffortRank + '% - ' +record.Effort + ' - ' + record.EffortFibonacci +
"</td><td>" + record.WeightedShortestJobFirst +
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
}
element.innerHTML = html.replaceAll(">null<", ">&nbsp;<");
}
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 records = getRecords(data);
console.log(data.length);
if (data.length > 0)
console.log(data[0]);
setRecords(records);
$(".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);
}

View File

@ -0,0 +1,47 @@
var _apiUrl = null;
function initIndex(url, apiUrl) {
_apiUrl = apiUrl;
//Set the hubs URL for the connection
$.connection.hub.url = url;
$.connection.hub.logging = true;
// Declare a proxy to reference the hub.
// var chat = $.connection.myHub;
var chat = $.connection.weightedShortestJobFirstHub;
// Create a function that the hub can call to broadcast messages.
chat.client.addNotification = function (name, message) {
// Html encode display name and message.
console.log(message);
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text("hash").html();
// Add the message to the page.
$('#discussion').append('<li><strong>' + encodedName
+ '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.start({ transport: 'longPolling' }).done(function () {
$('#sendmessage').click(function () {
// Call the Send method on the hub.
// chat.server.send($('#displayname').val(), $('#message').val());
var notification = {
"Json": null,
"id": 110743,
"page": "effort",
"QueryString": "time=1737573418926\u0026id=110743\u0026page=effort\u0026value=1",
"RemoteIpAddress": "10.95.36.87",
"time": 1737573418926,
"value": 1
};
chat.server.notifyAll(notification);
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
}

View File

@ -25,12 +25,12 @@ function compareCostOfDelay(a, b) {
} }
function showOne(rowData) { function showOne(rowData) {
if (rowData == null) if (rowData == undefined)
return; return;
var data = []; 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>' }); 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) { for (const property in rowData) {
if (rowData[property] == null) if (rowData[property] == undefined)
continue; continue;
data.push({ name: property, value: rowData[property].toString() }); data.push({ name: property, value: rowData[property].toString() });
} }
@ -44,7 +44,7 @@ function showOne(rowData) {
function loadOne() { function loadOne() {
var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow(); var selectedRow = $("#HeaderGrid").data("igGridSelection").selectedRow();
if (selectedRow == null) if (selectedRow == undefined)
return; return;
var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index]; var rowData = $("#HeaderGrid").data("igGrid").dataSource.dataView()[selectedRow.index];
showOne(rowData); showOne(rowData);
@ -59,7 +59,7 @@ function detailSelectionChangedRunInfo(evt, ui) {
function getState(state) { function getState(state) {
var result; var result;
if (state == null) if (state == undefined)
result = "9-Null"; result = "9-Null";
else if (state === "New") else if (state === "New")
result = `1-${state}`; result = `1-${state}`;
@ -80,7 +80,7 @@ function getPriority(workItemType, priority) {
var result; var result;
if (workItemType === "Bug") if (workItemType === "Bug")
result = "0-Bug"; result = "0-Bug";
else if (priority == null || priority === 0) else if (priority == undefined || priority === 0)
result = "9-Null"; result = "9-Null";
else if (priority === 1) else if (priority === 1)
result = `${priority}-High`; result = `${priority}-High`;
@ -96,14 +96,14 @@ function getPriority(workItemType, priority) {
} }
function updateRecordCoD(workItem) { function updateRecordCoD(workItem) {
if (workItem !== null) { if (workItem != undefined) {
if (workItem["Effort"] === null) if (workItem["Effort"] == undefined)
workItem["Effort"] = 1; workItem["Effort"] = 1;
if (workItem["BusinessValue"] === null) if (workItem["BusinessValue"] == undefined)
workItem["BusinessValue"] = 99999; workItem["BusinessValue"] = 99999;
if (workItem["TimeCriticality"] === null) if (workItem["TimeCriticality"] == undefined)
workItem["TimeCriticality"] = 99999; workItem["TimeCriticality"] = 99999;
if (workItem["RiskReductionMinusOpportunityEnablement"] === null) if (workItem["RiskReductionMinusOpportunityEnablement"] == undefined)
workItem["RiskReductionMinusOpportunityEnablement"] = 99999; workItem["RiskReductionMinusOpportunityEnablement"] = 99999;
} }
} }
@ -218,7 +218,7 @@ function updateRecordOther(workItem) {
} }
function updateRecordParent(parent, workItem) { function updateRecordParent(parent, workItem) {
if (parent === null) { if (parent == undefined) {
workItem["ParentId"] = 9999999; workItem["ParentId"] = 9999999;
workItem["ParentTitle"] = null; workItem["ParentTitle"] = null;
workItem["ParentState"] = null; workItem["ParentState"] = null;
@ -241,7 +241,7 @@ function getRecords(data) {
workItem = data[i].WorkItem; workItem = data[i].WorkItem;
if (workItem.WorkItemType !== 'Feature') if (workItem.WorkItemType !== 'Feature')
continue; continue;
if (workItem.State !== 'New' && workItem.State !== 'Active') if (workItem.State !== 'Active' && workItem.State !== 'New')
continue; continue;
if (workItem.Tags != null && workItem.Tags.includes("Ignore")) if (workItem.Tags != null && workItem.Tags.includes("Ignore"))
continue; continue;
@ -265,7 +265,7 @@ function setRecords(workItems) {
for (var i = 0; i < workItems.length; i++) { for (var i = 0; i < workItems.length; i++) {
record = workItems[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>" + 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>" + 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>" + '<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.Requester +
"</td><td>" + record.Title + "</td><td>" + record.Title +

View File

@ -0,0 +1,37 @@
#HeaderGridDiv,
#DetailsGridDiv {
font-size: 12px;
min-width: 1200px;
max-width: 1200px;
}
#HeaderGrid {
font-family: monospace;
margin-top: 60px;
}
#HeaderGrid tr td {
max-width: 200px;
padding: 5px;
}
#AllGrid {
font-family: monospace;
}
.navbar-brand {
min-width: 1200px;
background-color: whitesmoke;
}
tr:nth-of-type(odd) {
background-color: #eee;
}
#AllTextarea {
font-family: monospace;
}
#th-span {
margin-right: 500px;
}