## 1.118.0

This commit is contained in:
Mike Phares 2025-03-06 22:25:34 -07:00
parent d649b52345
commit 14332079cb
4 changed files with 129 additions and 92 deletions

View File

@ -220,3 +220,9 @@ None
----------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------
- Close active after opening Sub-Kanban when directory found - Close active after opening Sub-Kanban when directory found
## 1.118.0 1741303103654 = 638768999036540000 = 2025-0.Winter = Thu Mar 06 2025 16:18:23 GMT-0700 (Mountain Standard Time)
-----------------------------------------------------------------------------------------------------------
- Add search page for Backlog

View File

@ -87,6 +87,11 @@
"command": "kanban.openWithTextEditor", "command": "kanban.openWithTextEditor",
"title": "Open with Text Editor Kanban" "title": "Open with Text Editor Kanban"
}, },
{
"category": "Leominster",
"command": "webview.backlogLeominster",
"title": "Backlog (Bugs & Features with parents)"
},
{ {
"category": "Leominster", "category": "Leominster",
"command": "webview.costOfDelayLeominster", "command": "webview.costOfDelayLeominster",
@ -112,6 +117,11 @@
"command": "markdown.newMarkdownFile", "command": "markdown.newMarkdownFile",
"title": "New Markdown File" "title": "New Markdown File"
}, },
{
"category": "Mesa",
"command": "webview.backlogMesa",
"title": "Backlog (Bugs & Features with parents)"
},
{ {
"category": "Mesa", "category": "Mesa",
"command": "webview.costOfDelayMesa", "command": "webview.costOfDelayMesa",
@ -323,5 +333,5 @@
"watch": "concurrently \"rollup -c -w\" \"webpack --watch --config ./build/node-extension.webpack.config.js\"", "watch": "concurrently \"rollup -c -w\" \"webpack --watch --config ./build/node-extension.webpack.config.js\"",
"webpack": "webpack --config ./build/node-extension.webpack.config.js" "webpack": "webpack --config ./build/node-extension.webpack.config.js"
}, },
"version": "1.117.0" "version": "1.118.0"
} }

View File

@ -10,6 +10,7 @@ export class WebviewPanelCostOfDelay {
*/ */
public static _site: string; public static _site: string;
public static _view: string; public static _view: string;
public static _title: string;
public static currentPanel: WebviewPanelCostOfDelay | undefined; public static currentPanel: WebviewPanelCostOfDelay | undefined;
public static readonly viewType = "web-view-panel"; public static readonly viewType = "web-view-panel";
@ -24,18 +25,20 @@ export class WebviewPanelCostOfDelay {
? vscode.window.activeTextEditor.viewColumn ? vscode.window.activeTextEditor.viewColumn
: undefined; : undefined;
// If we already have a panel, show it.
if (WebviewPanelCostOfDelay.currentPanel) {
WebviewPanelCostOfDelay.currentPanel._panel.reveal(column);
WebviewPanelCostOfDelay.currentPanel._update(site, view);
return;
}
const title = view === '' ? 'Cost of Delay (CoD)' : const title = view === '' ? 'Cost of Delay (CoD)' :
view === 'EFFORT' ? 'Effort' : view === 'EFFORT' ? 'Effort' :
view === 'LIVE' ? 'Cost of Delay (CoD) - Live Update' : view === 'LIVE' ? 'Cost of Delay (CoD) - Live Update' :
view === 'HTML' ? 'Backlog (Bugs & Features with parents)' :
view === 'WSJF' ? 'Weightest Shortest Job First calculation (WSJF)' : view === 'WSJF' ? 'Weightest Shortest Job First calculation (WSJF)' :
'CoD'; 'CoD';
this._title = title;
// If we already have a panel, show it.
if (WebviewPanelCostOfDelay.currentPanel) {
WebviewPanelCostOfDelay.currentPanel._panel.reveal(column);
WebviewPanelCostOfDelay.currentPanel._update(site, title, view);
return;
}
// Otherwise, create a new panel. // Otherwise, create a new panel.
const panel = vscode.window.createWebviewPanel( const panel = vscode.window.createWebviewPanel(
@ -54,7 +57,7 @@ export class WebviewPanelCostOfDelay {
} }
); );
WebviewPanelCostOfDelay.currentPanel = new WebviewPanelCostOfDelay(panel, extensionContext, site, view); WebviewPanelCostOfDelay.currentPanel = new WebviewPanelCostOfDelay(extensionContext, panel, site, title, view);
} }
public static kill() { public static kill() {
@ -63,13 +66,13 @@ export class WebviewPanelCostOfDelay {
} }
public static revive(panel: vscode.WebviewPanel, extensionContext: vscode.ExtensionContext) { public static revive(panel: vscode.WebviewPanel, extensionContext: vscode.ExtensionContext) {
WebviewPanelCostOfDelay.currentPanel = new WebviewPanelCostOfDelay(panel, extensionContext, this._site, this._view); WebviewPanelCostOfDelay.currentPanel = new WebviewPanelCostOfDelay(extensionContext, panel, this._site, this._title, this._view);
} }
private constructor(private readonly _panel: vscode.WebviewPanel, private readonly _extensionContext: vscode.ExtensionContext, site: string, view: string) { private constructor(private readonly _extensionContext: vscode.ExtensionContext, private readonly _panel: vscode.WebviewPanel, site: string, title: string, view: string) {
// Set the webview's initial html content // Set the webview's initial html content
this._update(site, view); this._update(site, title, view);
// Listen for when the panel is disposed // Listen for when the panel is disposed
// This happens when the user closes the panel or when the panel is closed programmatically // This happens when the user closes the panel or when the panel is closed programmatically
@ -103,10 +106,10 @@ export class WebviewPanelCostOfDelay {
} }
} }
private async _update(site: string, view: string) { private async _update(site: string, title: string, view: string) {
const webview = this._panel.webview; const webview = this._panel.webview;
this._panel.webview.html = this._getHtmlForWebview(site, view, webview); this._panel.webview.html = this._getHtmlForWebview(site, title, view, webview);
webview.onDidReceiveMessage(async (postMessage: PostMessage) => { webview.onDidReceiveMessage(async (postMessage: PostMessage) => {
switch (postMessage.type) { switch (postMessage.type) {
case "on-info": case "on-info":
@ -126,9 +129,24 @@ export class WebviewPanelCostOfDelay {
}); });
} }
private _getHtmlForWebview(site: string, view: string, webview: vscode.Webview) { private _getHtmlForWebview(site: string, title: string, view: string, webview: vscode.Webview) {
const baseUri = 'https://eaf-dev.mes.infineon.com'; const baseUri = 'https://eaf-dev.mes.infineon.com';
if (view === 'HTML') {
return `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Infineon - ${title}</title>
</head>
<body>
<iframe width="100%" style="height: 100vh;" src="${baseUri}/html/mes.html?site=${site}" title="${title}">
</iframe>
</body>
</html>`;
}
else {
const styleBootstrapUri = webview.asWebviewUri( const styleBootstrapUri = webview.asWebviewUri(
vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "bootstrap.min.css") vscode.Uri.joinPath(this._extensionContext.extensionUri, "media", "bootstrap.min.css")
); );
@ -149,12 +167,12 @@ export class WebviewPanelCostOfDelay {
const nonce = getNonce(); const nonce = getNonce();
return `<!DOCTYPE html> return `<!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Infineon - Cost of Delay (CoD) (see @SCALE formula)</title> <title>Infineon - ${title}</title>
<link href="${styleBootstrapUri}" rel="stylesheet" /> <link href="${styleBootstrapUri}" rel="stylesheet" />
<link href="${styleCostOfDelayUri}" rel="stylesheet" /> <link href="${styleCostOfDelayUri}" rel="stylesheet" />
<script nonce="${nonce}" src="${scriptJQueryUri}"></script> <script nonce="${nonce}" src="${scriptJQueryUri}"></script>
@ -169,9 +187,9 @@ export class WebviewPanelCostOfDelay {
const _webviewUsername = '${process.env.USERNAME}'; const _webviewUsername = '${process.env.USERNAME}';
const _webviewMachineId = '${vscode.env.machineId}'; const _webviewMachineId = '${vscode.env.machineId}';
</script> </script>
</head> </head>
<body> <body>
<div class="navbar navbar-fixed-top"> <div class="navbar navbar-fixed-top">
<div class="container-fluid"> <div class="container-fluid">
<div class="navbar-header"> <div class="navbar-header">
@ -210,8 +228,9 @@ export class WebviewPanelCostOfDelay {
</div> </div>
<script nonce="${nonce}" src="${scriptCostOfDelayUri}"></script> <script nonce="${nonce}" src="${scriptCostOfDelayUri}"></script>
</body> </body>
</html>`; </html>`;
}
} }
} }

View File

@ -162,10 +162,12 @@ export async function activate(extensionContext: vscode.ExtensionContext) {
vscode.commands.registerCommand('replaceLinesHelper.unwrapSql', replaceLinesHelper.unwrapSql), vscode.commands.registerCommand('replaceLinesHelper.unwrapSql', replaceLinesHelper.unwrapSql),
vscode.commands.registerCommand('replaceLinesHelper.wrapSqlCSharp', replaceLinesHelper.wrapSqlCSharp), vscode.commands.registerCommand('replaceLinesHelper.wrapSqlCSharp', replaceLinesHelper.wrapSqlCSharp),
vscode.commands.registerCommand('replaceLinesHelper.wrapSqlVB', replaceLinesHelper.wrapSqlVB), vscode.commands.registerCommand('replaceLinesHelper.wrapSqlVB', replaceLinesHelper.wrapSqlVB),
vscode.commands.registerCommand("webview.backlogMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'HTML'); }),
vscode.commands.registerCommand("webview.costOfDelayMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', ''); }), vscode.commands.registerCommand("webview.costOfDelayMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', ''); }),
vscode.commands.registerCommand("webview.costOfDelayEffortMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'EFFORT'); }), vscode.commands.registerCommand("webview.costOfDelayEffortMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'EFFORT'); }),
vscode.commands.registerCommand("webview.costOfDelayLiveMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'LIVE'); }), vscode.commands.registerCommand("webview.costOfDelayLiveMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'LIVE'); }),
vscode.commands.registerCommand("webview.costOfDelayWSJFMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'WSJF'); }), vscode.commands.registerCommand("webview.costOfDelayWSJFMesa", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'MES', 'WSJF'); }),
vscode.commands.registerCommand("webview.backlogLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'HTML'); }),
vscode.commands.registerCommand("webview.costOfDelayLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', ''); }), vscode.commands.registerCommand("webview.costOfDelayLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', ''); }),
vscode.commands.registerCommand("webview.costOfDelayEffortLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'EFFORT'); }), vscode.commands.registerCommand("webview.costOfDelayEffortLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'EFFORT'); }),
vscode.commands.registerCommand("webview.costOfDelayLiveLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'LIVE'); }), vscode.commands.registerCommand("webview.costOfDelayLiveLeominster", () => { WebviewPanelCostOfDelay.WebviewPanelCostOfDelay.createOrShow(extensionContext, 'LEO', 'LIVE'); }),