Bootbox dialog improvements (#1192)

* Translate bootbox dialog buttons

This also isolates the bootbox dependency.

* Migrate delete playlist dialog from window.confirm to bootbox.confirm
This commit is contained in:
Pedro Galhardo 2022-06-23 02:27:58 +01:00 committed by GitHub
parent 0ca0b34ff0
commit 569f6c279a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 80 additions and 55 deletions

View file

@ -24,7 +24,7 @@ const Events = {
// CTRL + R // CTRL + R
if (event.keyCode === 82 && event.ctrlKey) { if (event.keyCode === 82 && event.ctrlKey) {
event.preventDefault() event.preventDefault()
bootbox.confirm(app.getLz('term.reload'), (res)=>{ app.confirm(app.getLz('term.reload'), (res)=>{
if (res) { if (res) {
window.location.reload() window.location.reload()
} }

View file

@ -1173,7 +1173,7 @@ const app = new Vue({
} }
}, },
unauthorize() { unauthorize() {
bootbox.confirm(app.getLz('term.confirmLogout'), function (result) { this.confirm(app.getLz('term.confirmLogout'), function (result) {
if (result) { if (result) {
app.mk.unauthorize() app.mk.unauthorize()
document.location.reload() document.location.reload()
@ -1554,22 +1554,24 @@ const app = new Vue({
}, },
deletePlaylist(id) { deletePlaylist(id) {
let self = this let self = this
if (confirm(app.getLz('term.deletePlaylist'))) { this.confirm(app.getLz('term.deletePlaylist'), (ok) => {
app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, { if (ok) {
fetchOptions: { app.mk.api.v3.music(`/v1/me/library/playlists/${id}`, {}, {
method: "DELETE" fetchOptions: {
} method: "DELETE"
}).then(res => { }
// remove this playlist from playlists.listing if it exists }).then(res => {
let found = self.playlists.listing.find(item => item.id == id) // remove this playlist from playlists.listing if it exists
if (found) { let found = self.playlists.listing.find(item => item.id == id)
self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1) if (found) {
} self.playlists.listing.splice(self.playlists.listing.indexOf(found), 1)
setTimeout(() => { }
app.refreshPlaylists(false, false); setTimeout(() => {
}, 8000); app.refreshPlaylists(false, false);
}) }, 8000);
} })
}
});
}, },
/** /**
* @param {string} url, href for the initial request * @param {string} url, href for the initial request
@ -4624,6 +4626,29 @@ const app = new Vue({
app.mk._services.mediaItemPlayback._currentPlayer._playAssetURL(src, false) app.mk._services.mediaItemPlayback._currentPlayer._playAssetURL(src, false)
} }
} }
},
confirm(message, callback) {
bootbox.confirm(this.getBootboxParams(null, message, callback));
},
prompt(title, callback) {
bootbox.prompt(this.getBootboxParams(title, null, callback));
},
getBootboxParams(title, message, callback) {
return {
title: title,
message: message,
buttons: {
confirm: {
label: app.getLz('dialog.ok'),
},
cancel: {
label: app.getLz('dialog.cancel'),
},
},
callback: function (result) {
if (callback) callback(result);
},
}
} }
} }
}) })

View file

@ -280,7 +280,7 @@
}, },
deletePreset() { deletePreset() {
let presets = this.$root.cfg.audio.equalizer.presets let presets = this.$root.cfg.audio.equalizer.presets
bootbox.confirm(app.getLz('term.deletepreset.warn'), (result) => { app.confirm(app.getLz('term.deletepreset.warn'), (result) => {
if (result) { if (result) {
this.changePreset("default") this.changePreset("default")
// find the preset by id (preset) and remove it // find the preset by id (preset) and remove it
@ -351,7 +351,7 @@
}, },
addPreset() { addPreset() {
let self = this let self = this
bootbox.prompt(app.getLz('term.newpreset.name'), (res) => { app.prompt(app.getLz('term.newpreset.name'), (res) => {
if (res) { if (res) {
let eqSettings = Clone(app.cfg.audio.equalizer) let eqSettings = Clone(app.cfg.audio.equalizer)
let newPreset = new self.eqPreset() let newPreset = new self.eqPreset()
@ -386,7 +386,7 @@
}, },
importPreset() { importPreset() {
let self = this let self = this
bootbox.prompt("Enter preset share code", (res) => { app.prompt("Enter preset share code", (res) => {
if (res) { if (res) {
let preset = JSON.parse(atob(res)) let preset = JSON.parse(atob(res))
if (preset.frequencies && preset.gain && preset.Q && preset.mix && preset.vibrantBass) { if (preset.frequencies && preset.gain && preset.Q && preset.mix && preset.vibrantBass) {

View file

@ -244,7 +244,7 @@
name: app.getLz("settings.option.visual.theme.uninstall"), name: app.getLz("settings.option.visual.theme.uninstall"),
disabled: true, disabled: true,
action: () => { action: () => {
bootbox.confirm(app.stringTemplateParser(app.getLz("settings.prompt.visual.theme.uninstallTheme"), { app.confirm(app.stringTemplateParser(app.getLz("settings.prompt.visual.theme.uninstallTheme"), {
theme: theme.name ?? theme.file theme: theme.name ?? theme.file
}), (res) => { }), (res) => {
if (res) { if (res) {
@ -317,7 +317,7 @@
let msg = app.stringTemplateParser(app.getLz('settings.option.visual.theme.github.install.confirm'), { let msg = app.stringTemplateParser(app.getLz('settings.option.visual.theme.github.install.confirm'), {
repo: repo.full_name repo: repo.full_name
}); });
bootbox.confirm(msg, (res) => { app.confirm(msg, (res) => {
if (res) { if (res) {
ipcRenderer.once("theme-installed", (event, arg) => { ipcRenderer.once("theme-installed", (event, arg) => {
if (arg.success) { if (arg.success) {
@ -334,7 +334,7 @@
}, },
installThemeURL() { installThemeURL() {
let self = this let self = this
bootbox.prompt(app.getLz('settings.prompt.visual.theme.github.URL'), (result) => { app.prompt(app.getLz('settings.prompt.visual.theme.github.URL'), (result) => {
if (result) { if (result) {
ipcRenderer.once("theme-installed", (event, arg) => { ipcRenderer.once("theme-installed", (event, arg) => {
if (arg.success) { if (arg.success) {

View file

@ -265,7 +265,7 @@
document.body.removeChild(blur); document.body.removeChild(blur);
clearTimeout(keyBindTimeout); clearTimeout(keyBindTimeout);
notyf.success(app.getLz('settings.notyf.general.keybindings.update.success')); notyf.success(app.getLz('settings.notyf.general.keybindings.update.success'));
bootbox.confirm(app.getLz("settings.prompt.general.keybindings.update.success"), (ok) => { app.confirm(app.getLz("settings.prompt.general.keybindings.update.success"), (ok) => {
if (ok) ipcRenderer.invoke("relaunchApp") if (ok) ipcRenderer.invoke("relaunchApp")
}) })
} else { } else {
@ -296,7 +296,7 @@
app.cfg.general.keybindings.zoomrst = [app.platform == "darwin" ? "Command" : "Control", "num0"]; app.cfg.general.keybindings.zoomrst = [app.platform == "darwin" ? "Command" : "Control", "num0"];
app.cfg.general.keybindings.openDeveloperTools = [app.platform == "darwin" ? "Command" : "Control", app.platform == "darwin" ? "Option" : "Shift", "I"]; app.cfg.general.keybindings.openDeveloperTools = [app.platform == "darwin" ? "Command" : "Control", app.platform == "darwin" ? "Option" : "Shift", "I"];
notyf.success(app.getLz('settings.notyf.general.keybindings.update.success')); notyf.success(app.getLz('settings.notyf.general.keybindings.update.success'));
bootbox.confirm(app.getLz("settings.prompt.general.keybindings.update.success"), (ok) => { app.confirm(app.getLz("settings.prompt.general.keybindings.update.success"), (ok) => {
if (ok) ipcRenderer.invoke("relaunchApp") if (ok) ipcRenderer.invoke("relaunchApp")
}) })
}, },

View file

@ -125,13 +125,13 @@
let msg = app.stringTemplateParser(app.getLz('settings.option.visual.plugin.github.install.confirm'), { let msg = app.stringTemplateParser(app.getLz('settings.option.visual.plugin.github.install.confirm'), {
repo: repo.full_name repo: repo.full_name
}); });
bootbox.confirm(msg, (res) => { app.confirm(msg, (res) => {
if (res) { if (res) {
ipcRenderer.once("plugin-installed", (event, arg) => { ipcRenderer.once("plugin-installed", (event, arg) => {
if (arg.success) { if (arg.success) {
self.themes = [] self.themes = []
notyf.success(app.getLz('settings.notyf.visual.plugin.install.success')); notyf.success(app.getLz('settings.notyf.visual.plugin.install.success'));
bootbox.confirm(app.getLz("settings.prompt.visual.plugin.github.success"), (ok)=>{ app.confirm(app.getLz("settings.prompt.visual.plugin.github.success"), (ok)=>{
if (ok) { if (ok) {
ipcRenderer.invoke("relaunchApp") ipcRenderer.invoke("relaunchApp")
} else { } else {
@ -148,12 +148,12 @@
}, },
installThemeURL() { installThemeURL() {
let self = this let self = this
bootbox.prompt(app.getLz('settings.prompt.visual.plugin.github.URL'), (result) => { app.prompt(app.getLz('settings.prompt.visual.plugin.github.URL'), (result) => {
if (result) { if (result) {
ipcRenderer.once("plugin-installed", (event, arg) => { ipcRenderer.once("plugin-installed", (event, arg) => {
if (arg.success) { if (arg.success) {
self.themes = ipcRenderer.sendSync("get-themes") self.themes = ipcRenderer.sendSync("get-themes")
bootbox.confirm(app.getLz("settings.prompt.visual.plugin.github.success"), (ok)=>{ app.confirm(app.getLz("settings.prompt.visual.plugin.github.success"), (ok)=>{
if (ok) { if (ok) {
ipcRenderer.invoke("relaunchApp") ipcRenderer.invoke("relaunchApp")
} else { } else {

View file

@ -1407,7 +1407,7 @@
} }
}, },
reinstallWidevineCDM() { reinstallWidevineCDM() {
bootbox.confirm(app.getLz("settings.option.experimental.reinstallwidevine.confirm"), (ok) => { app.confirm(app.getLz("settings.option.experimental.reinstallwidevine.confirm"), (ok) => {
if (ok) { if (ok) {
ipcRenderer.invoke("reinstall-widevine-cdm"); ipcRenderer.invoke("reinstall-widevine-cdm");
} }
@ -1450,7 +1450,7 @@
toggleAudioContext: function () { toggleAudioContext: function () {
if (app.cfg.advanced.AudioContext === true) { if (app.cfg.advanced.AudioContext === true) {
if (navigator.hardwareConcurrency < 6) { if (navigator.hardwareConcurrency < 6) {
bootbox.confirm(app.getLz("settings.warn.audio.enableAdvancedFunctionality.lowcores"), function (result) { app.confirm(app.getLz("settings.warn.audio.enableAdvancedFunctionality.lowcores"), function (result) {
if (result) { if (result) {
CiderAudio.init(); CiderAudio.init();
if (app.cfg.audio.normalization === true) { if (app.cfg.audio.normalization === true) {
@ -1497,7 +1497,7 @@
}, },
promptForRelaunch() { promptForRelaunch() {
bootbox.confirm(app.getLz('action.relaunch.confirm'), function (result) { app.confirm(app.getLz('action.relaunch.confirm'), function (result) {
if (result) { if (result) {
ipcRenderer.send('relaunchApp', ''); ipcRenderer.send('relaunchApp', '');
} }

View file

@ -146,7 +146,7 @@
let msg = app.stringTemplateParser(app.getLz('settings.option.visual.theme.github.install.confirm'), { let msg = app.stringTemplateParser(app.getLz('settings.option.visual.theme.github.install.confirm'), {
repo: repo.full_name repo: repo.full_name
}); });
bootbox.confirm(msg, (res) => { app.confirm(msg, (res) => {
if (res) { if (res) {
ipcRenderer.once("theme-installed", (event, arg) => { ipcRenderer.once("theme-installed", (event, arg) => {
if (arg.success) { if (arg.success) {
@ -163,7 +163,7 @@
}, },
installThemeURL() { installThemeURL() {
let self = this let self = this
bootbox.prompt(app.getLz('settings.prompt.visual.theme.github.URL'), (result) => { app.prompt(app.getLz('settings.prompt.visual.theme.github.URL'), (result) => {
if (result) { if (result) {
ipcRenderer.once("theme-installed", (event, arg) => { ipcRenderer.once("theme-installed", (event, arg) => {
if (arg.success) { if (arg.success) {