mirror of
https://github.com/Mr-In4inci3le/sliver-gui
synced 2026-08-09 12:14:37 +00:00
Fix #3: save prompt after implant build (GenerateResult.File, Regenerate fallback name, auto Save-to-disk)
This commit is contained in:
@@ -1323,8 +1323,12 @@ func (a *App) RegenerateBuild(name string) TransferResult {
|
||||
if resp.File == nil {
|
||||
return TransferResult{Error: "no stored build for " + name}
|
||||
}
|
||||
defaultName := resp.File.Name
|
||||
if defaultName == "" {
|
||||
defaultName = name
|
||||
}
|
||||
savePath, err := a.safeSaveFileDialog(runtime.SaveDialogOptions{
|
||||
DefaultFilename: resp.File.Name,
|
||||
DefaultFilename: defaultName,
|
||||
Title: "Save regenerated implant",
|
||||
})
|
||||
if err != nil || savePath == "" {
|
||||
@@ -2086,7 +2090,7 @@ func (a *App) GenerateImplant(req GenerateRequest) GenerateResult {
|
||||
// calls RegenerateBuild(name) on a user click — a dialog raised by a direct
|
||||
// gesture gets focus, and the spinner is already gone.
|
||||
a.audit.log("generate", genReq.Name, fmt.Sprintf("%s/%s", req.GOOS, req.GOARCH))
|
||||
return GenerateResult{Name: genReq.Name}
|
||||
return GenerateResult{Name: genReq.Name, File: genReq.Name}
|
||||
}
|
||||
|
||||
// randSuffix returns 8 random hex chars, used to make auto-generated implant
|
||||
|
||||
Vendored
+9
-2
@@ -2791,8 +2791,15 @@ function openGeneratePanel() {
|
||||
const r = await App().GenerateImplant(req).catch(e => ({error:String(e)}));
|
||||
document.getElementById('gen-status').style.display = 'none';
|
||||
const res = document.getElementById('gen-result');
|
||||
res.textContent = r.error ? `[ERROR] ${r.error}` : `[OK] ${r.file}`;
|
||||
res.style.color = r.error ? 'var(--accent)' : 'var(--ok)';
|
||||
if (r.error) {
|
||||
res.textContent = `[ERROR] ${r.error}`;
|
||||
res.style.color = 'var(--accent)';
|
||||
} else {
|
||||
res.style.color = 'var(--ok)';
|
||||
res.innerHTML = `<span>[OK] Build created: ${esc(r.name || r.file)}</span> <button class="btn small" style="margin-left:10px" onclick="buildRegen('${esc(r.name || r.file)}')">⬇ Save to disk</button>`;
|
||||
// Auto-trigger the native save dialog immediately
|
||||
buildRegen(r.name || r.file);
|
||||
}
|
||||
});
|
||||
}, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user