diff --git a/Adaptation/FileHandlers/json/StaticSite/js/cod-1-123-0.js b/Adaptation/FileHandlers/json/StaticSite/js/cod-1-123-0.js
new file mode 100644
index 0000000..5056461
--- /dev/null
+++ b/Adaptation/FileHandlers/json/StaticSite/js/cod-1-123-0.js
@@ -0,0 +1,607 @@
+var _b = {};
+var _c = {};
+var _e = {};
+var _r = {};
+var _t = {};
+var _w = {};
+var _page = '';
+var _site = '';
+var _apiUrl = '';
+var _toggle = true;
+var _username = '';
+var _machineId = '';
+var _sessionId = '';
+var _windowLocationHRef = '';
+
+function compareFunctionSortOrder(a, b) {
+ return a.SortOrder - b.SortOrder;
+}
+
+function compareFunctionParentId(a, b) {
+ return a.ParentId - b.ParentId || a.Id - b.Id;
+}
+
+function compareFunctionWeightedShortestJobFirst(a, b) {
+ if (b.WeightedShortestJobFirst === ' ') {
+ return -1;
+ }
+ return b.WeightedShortestJobFirst - a.WeightedShortestJobFirst;
+}
+
+function getState(state) {
+ let 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, sortPriorityGroup) {
+ let result;
+ if (workItemType === "Bug")
+ result = "0-Bug {0}";
+ else if (priority == undefined || priority === 0)
+ result = "9-Null {0}";
+ else if (priority === 1)
+ result = `${priority}-High {${sortPriorityGroup}}`;
+ else if (priority === 2)
+ result = `${priority}-Med {${sortPriorityGroup}}`;
+ else if (priority === 3)
+ result = `${priority}-Low {${sortPriorityGroup}}`;
+ else if (priority === 4)
+ result = `${priority}-TBD {4}`;
+ else
+ result = "8-Not {0}";
+ return result;
+}
+
+function getNotifications(x, aggregation) {
+ let result;
+ if (aggregation == undefined || aggregation.Notifications == undefined || aggregation.Notifications.length === 0)
+ result = " ";
+ else {
+ result = '';
+ aggregation.Notifications.forEach(element => {
+ const username = element.username == null ? 'user' : element.username;
+ if (element.value === "1") {
+ result += 'Highest:' + username + ';|';
+ }
+ else if (element.value === "2") {
+ result += 'High:' + username + ';|';
+ }
+ else if (element.value === "3") {
+ result += 'Medium:' + username + ';|';
+ }
+ else if (element.value === "4") {
+ result += 'Low:' + username + ';|';
+ }
+ else if (element.value === "5") {
+ result += 'Lowest:' + username + ';|';
+ }
+ else {
+ result += element.value + ':' + username + ';|';
+ }
+ });
+ result = result.substring(0, result.length - 1);
+ result = result.replaceAll('|', '
');
+ }
+ return result;
+}
+
+function round(value, factor) {
+ return (Math.round((value + Number.EPSILON) * factor) / factor).toFixed(2);
+}
+
+function sum(collection) {
+ let sum = 0;
+ if (collection != undefined) {
+ for (let i = 0; i < collection.length; i++) {
+ sum += collection[i];
+ }
+ }
+ return sum;
+}
+
+function updateRecordCoD(b, r, t, c, e, w, workItem, highestTotalStoryPoints, dataB, totalStoryPoints) {
+ if (workItem != undefined) {
+ let data = dataB == undefined ? undefined : dataB[workItem.Id];
+ if (data == undefined) {
+ workItem.CumulativeStoryPoints = " ";
+ workItem.TotalStoryPoints = " ";
+ workItem.AbsoluteDelta = " ";
+ workItem.Effort = " ";
+ workItem.BusinessValue = " ";
+ workItem.TimeCriticality = " ";
+ workItem.RiskReductionMinusOpportunityEnablement = " ";
+ workItem.CoD = " ";
+ workItem.WeightedShortestJobFirst = " ";
+ workItem.Priority = getPriority(workItem.WorkItemType, 4, 0);
+ workItem.EffortNotifications = " ";
+ workItem.BusinessValueNotifications = " ";
+ workItem.TimeCriticalityNotifications = " ";
+ workItem.RiskReductionMinusOpportunityEnablementNotifications = " ";
+ workItem.SortOrder = 0;
+ }
+ else {
+ workItem.CumulativeStoryPoints = " ";
+ workItem.TotalStoryPoints = totalStoryPoints + ' User Story Point(s)';
+ workItem.AbsoluteDelta = data.Effort == undefined || data.Effort.FibonacciAverage == undefined || totalStoryPoints == undefined || totalStoryPoints === 0 ? " " : round(Math.abs(data.Effort.FibonacciAverage - ((totalStoryPoints / highestTotalStoryPoints) * 5)), 1);
+ workItem.Effort = data.Effort == undefined || data.Effort.FibonacciAverage == undefined ? " " : round(data.Effort.FibonacciAverage, 100);
+ workItem.BusinessValue = data.BusinessValue == undefined || data.BusinessValue.FibonacciAverage == undefined ? " " : round(data.BusinessValue.FibonacciAverage, 100);
+ workItem.TimeCriticality = data.TimeCriticality == undefined || data.TimeCriticality.FibonacciAverage == undefined ? " " : round(data.TimeCriticality.FibonacciAverage, 100);
+ workItem.RiskReductionMinusOpportunityEnablement = data.RiskReductionOpportunityEnablement == undefined || data.RiskReductionOpportunityEnablement.FibonacciAverage == undefined ? " " : round(data.RiskReductionOpportunityEnablement.FibonacciAverage, 100);
+ workItem.CoD = data.CostOfDelay == undefined ? " " : round(data.CostOfDelay, 100);
+ workItem.WeightedShortestJobFirst = data.WeightedShortestJobFirst == undefined ? " " : round(data.WeightedShortestJobFirst, 100);
+ workItem.Priority = data.SortPriority == undefined ? getPriority(workItem.WorkItemType, 4, 0) : getPriority(workItem.WorkItemType, data.SortPriority, data.SortPriorityGroup);
+ workItem.EffortNotifications = data.Effort == undefined ? " " : getNotifications(e, data.Effort);
+ workItem.BusinessValueNotifications = data.BusinessValue == undefined ? " " : getNotifications(b, data.BusinessValue);
+ workItem.TimeCriticalityNotifications = data.TimeCriticality == undefined ? " " : getNotifications(t, data.TimeCriticality);
+ workItem.RiskReductionMinusOpportunityEnablementNotifications = data.RiskReductionOpportunityEnablement == undefined ? " " : getNotifications(r, data.RiskReductionOpportunityEnablement);
+ workItem.SortOrder = data.SortOrder == undefined ? 0 : data.SortOrder;
+ }
+ }
+}
+
+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(b, r, t, c, e, w, data, dataB, workItems) {
+ let parent;
+ let workItem;
+ let storyPoints;
+ let records = [];
+ let totalStoryPoints;
+ let highestTotalStoryPoints = 0;
+ for (let i = 0; i < data.length; i++) {
+ 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;
+ storyPoints = data[i].Tag?.StoryPoints == undefined ? null : JSON.parse(data[i].Tag.StoryPoints);
+ totalStoryPoints = sum(storyPoints);
+ if (totalStoryPoints > highestTotalStoryPoints)
+ highestTotalStoryPoints = totalStoryPoints;
+ }
+ for (let 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;
+ storyPoints = data[i].Tag?.StoryPoints == undefined ? null : JSON.parse(data[i].Tag.StoryPoints);
+ totalStoryPoints = sum(storyPoints);
+ if ((_windowLocationHRef.indexOf('=LEO') > -1 && workItem.AreaPath !== 'ART SPS\\LEO') || (_windowLocationHRef.indexOf('=MES') > -1 && workItem.AreaPath !== 'ART SPS\\MES'))
+ continue;
+ updateRecordParent(parent, workItem);
+ updateRecordCoD(b, r, t, c, e, w, parent, highestTotalStoryPoints, null, null);
+ updateRecordCoD(b, r, t, c, e, w, workItem, highestTotalStoryPoints, dataB, totalStoryPoints);
+ workItem.State = getState(workItem.State);
+ records.push(workItem);
+ }
+ if (_windowLocationHRef.indexOf('=WSJF') > -1) {
+ records.sort(compareFunctionWeightedShortestJobFirst);
+ }
+ else if (_windowLocationHRef.indexOf('=LIVE') > -1) {
+ records.sort(compareFunctionSortOrder);
+ }
+ else {
+ records.sort(compareFunctionParentId);
+ }
+ return records;
+}
+
+function warn(message) {
+ if (typeof acquiredVsCodeApi === 'function')
+ acquiredVsCodeApi.postMessage(message);
+ console.warn(message);
+}
+
+function sendValue(fromHtml, element, page, id) {
+ let notification = {
+ id: id,
+ machineId: _machineId,
+ page: page,
+ sessionId: _sessionId,
+ site: _site,
+ time: new Date().getTime(),
+ username: _username,
+ value: element.value,
+ };
+ if (fromHtml && notification.value !== "9") {
+ $("#AllTextarea").hide();
+ document.getElementById('AllTextarea').value = '';
+ $.post(_apiUrl, notification)
+ .done(function (msg) {
+ console.log("Posted value of " + notification.value + " for " + id + " on page " + page + " " + msg);
+ })
+ .fail(function (_, textStatus, _) {
+ warn(textStatus);
+ });
+ }
+}
+
+function setRecords(fromHtml, b, r, t, c, e, w, records) {
+ let record;
+ let lineA = "";
+ let lineB = "";
+ let lineC = "";
+ let text = 'Id\tRisk Reduction and/or Opportunity Enablement\tTime Criticality\tBusiness Value\tCoD\tEffort\tWSJF\tFeature Total Story Points\tAbsolute Delta\tState\tPriority\tRequester\tAssigned To\tSystem\r\n';
+ let html = '