mirror of
https://github.com/yuzu-emu/liftinstall.git
synced 2025-03-25 23:25:09 +00:00
105 lines
2.4 KiB
JavaScript
105 lines
2.4 KiB
JavaScript
|
import Vue from 'vue'
|
||
|
import App from './App.vue'
|
||
|
import router from './router'
|
||
|
import { ajax, stream_ajax } from './helpers'
|
||
|
import 'buefy/dist/buefy.css'
|
||
|
|
||
|
Vue.config.productionTip = false
|
||
|
|
||
|
// Borrowed from http://tobyho.com/2012/07/27/taking-over-console-log/
|
||
|
function intercept (method) {
|
||
|
console[method] = function () {
|
||
|
var message = Array.prototype.slice.apply(arguments).join(' ')
|
||
|
window.external.invoke(
|
||
|
JSON.stringify({
|
||
|
Log: {
|
||
|
kind: method,
|
||
|
msg: message
|
||
|
}
|
||
|
})
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Overwrite loggers with the logging backend
|
||
|
if (window.external !== undefined && window.external.invoke !== undefined) {
|
||
|
window.onerror = function (msg, url, line) {
|
||
|
old_onerror(msg, url, line)
|
||
|
window.external.invoke(
|
||
|
JSON.stringify({
|
||
|
Log: {
|
||
|
kind: 'error',
|
||
|
msg: msg + ' @ ' + url + ':' + line
|
||
|
}
|
||
|
})
|
||
|
)
|
||
|
}
|
||
|
|
||
|
var methods = ['log', 'warn', 'error']
|
||
|
for (var i = 0; i < methods.length; i++) {
|
||
|
intercept(methods[i])
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Disable F5
|
||
|
function disable_shortcuts (e) {
|
||
|
switch (e.keyCode) {
|
||
|
case 116: // F5
|
||
|
e.preventDefault()
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Check to see if we need to enable dark mode
|
||
|
ajax('/api/dark-mode', function (enable) {
|
||
|
if (enable) {
|
||
|
document.body.classList.add('has-background-black-ter')
|
||
|
}
|
||
|
})
|
||
|
|
||
|
window.addEventListener('keydown', disable_shortcuts)
|
||
|
|
||
|
document.getElementById('window-title').innerText =
|
||
|
base_attributes.name + ' Installer'
|
||
|
|
||
|
function selectFileCallback (name) {
|
||
|
app.install_location = name
|
||
|
}
|
||
|
|
||
|
var app = new Vue({
|
||
|
router: router,
|
||
|
data: {
|
||
|
attrs: base_attributes,
|
||
|
config: {},
|
||
|
install_location: '',
|
||
|
// If the option to pick an install location should be provided
|
||
|
show_install_location: true,
|
||
|
metadata: {
|
||
|
database: [],
|
||
|
install_path: '',
|
||
|
preexisting_install: false
|
||
|
}
|
||
|
},
|
||
|
render: function (h) {
|
||
|
return h(App)
|
||
|
},
|
||
|
methods: {
|
||
|
exit: function () {
|
||
|
ajax(
|
||
|
'/api/exit',
|
||
|
function () {},
|
||
|
function (msg) {
|
||
|
alert(
|
||
|
'LiftInstall encountered and error while exiting: ' +
|
||
|
msg +
|
||
|
'\nPlease upload the log file (in the same directory as the installer) to ' +
|
||
|
'the respective maintainers for this application (where you got it from!)'
|
||
|
)
|
||
|
}
|
||
|
)
|
||
|
},
|
||
|
ajax: ajax,
|
||
|
stream_ajax: stream_ajax
|
||
|
}
|
||
|
}).$mount('#app')
|