Skip to content

Commit 62bc331

Browse files
committed
feat: add uninstall extension button in deprecated extension dialog
1 parent 111eacc commit 62bc331

File tree

2 files changed

+32
-9
lines changed

2 files changed

+32
-9
lines changed

src/htmlContent/deprecated-extensions-dialog.html

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,23 @@ <h1 class="dialog-title">{{Strings.DEPRECATED_EXTENSIONS_TITLE}}</h1>
77

88
<div class="deprecated-extensions-list" style="margin-top: 16px;">
99
{{#extensions}}
10-
<div class="deprecated-extension-item" style="margin-bottom: 12px; padding: 12px;">
11-
<div class="extension-info" style="margin-bottom: 6px;">
12-
<i class="fa fa-exclamation-triangle" style="color: #f5a623; margin-right: 8px;"></i>
13-
<strong>{{id}}</strong>
10+
<div class="deprecated-extension-item" style="margin-bottom: 12px; padding: 12px; display: flex; justify-content: space-between; align-items: flex-start;">
11+
<div style="flex: 1;">
12+
<div class="extension-info" style="margin-bottom: 6px;">
13+
<i class="fa fa-exclamation-triangle" style="color: #f5a623; margin-right: 8px;"></i>
14+
<strong>{{id}}</strong>
15+
</div>
16+
<div class="extension-alternative" style="margin-left: 24px;">
17+
<a href="{{docUrl}}" target="_blank" rel="noopener">
18+
{{Strings.DEPRECATED_EXTENSIONS_LEARN_MORE}}
19+
<i class="fa fa-external-link" style="margin-left: 4px; font-size: 11px;"></i>
20+
</a>
21+
</div>
1422
</div>
15-
<div class="extension-alternative" style="margin-left: 24px;">
16-
<a href="{{docUrl}}" target="_blank" rel="noopener">
17-
{{Strings.DEPRECATED_EXTENSIONS_LEARN_MORE}}
18-
<i class="fa fa-external-link" style="margin-left: 4px; font-size: 11px;"></i>
19-
</a>
23+
<div style="margin-left: 12px;">
24+
<button class="btn btn-mini uninstall-extension-btn" data-extension-id="{{id}}">
25+
{{Strings.REMOVE}}
26+
</button>
2027
</div>
2128
</div>
2229
{{/extensions}}

src/utils/ExtensionLoader.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,15 @@ define(function (require, exports, module) {
10421042
return takedownExtensionList.has(extensionID);
10431043
}
10441044

1045+
/**
1046+
* Uninstall a deprecated extension
1047+
* @param {string} extensionID - The ID of the extension to uninstall
1048+
*/
1049+
function uninstallExtension(extensionID) {
1050+
// TODO: Implement uninstall logic
1051+
alert(`Uninstall button clicked for extension: ${extensionID}`);
1052+
}
1053+
10451054
/**
10461055
* Check if any deprecated extensions are installed and show a dialog once per extension
10471056
* @private
@@ -1086,6 +1095,12 @@ define(function (require, exports, module) {
10861095
const $template = $(Mustache.render(DeprecatedExtensionsTemplate, templateVars));
10871096
Dialogs.showModalDialogUsingTemplate($template);
10881097

1098+
// Wire up uninstall button click handlers
1099+
$template.on('click', '.uninstall-extension-btn', function() {
1100+
const extensionID = $(this).data('extension-id');
1101+
uninstallExtension(extensionID);
1102+
});
1103+
10891104
// Mark each extension as shown
10901105
for (const ext of deprecatedExtensionsFound) {
10911106
shownDeprecatedExtensions[ext.id] = true;
@@ -1117,6 +1132,7 @@ define(function (require, exports, module) {
11171132
exports.loadAllExtensionsInNativeDirectory = loadAllExtensionsInNativeDirectory;
11181133
exports.loadExtensionFromNativeDirectory = loadExtensionFromNativeDirectory;
11191134
exports.isExtensionTakenDown = isExtensionTakenDown;
1135+
exports.uninstallExtension = uninstallExtension;
11201136
exports.testAllExtensionsInNativeDirectory = testAllExtensionsInNativeDirectory;
11211137
exports.testAllDefaultExtensions = testAllDefaultExtensions;
11221138
exports.EVENT_EXTENSION_LOADED = EVENT_EXTENSION_LOADED;

0 commit comments

Comments
 (0)