55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
const SettingsTab = new Vue({
|
|
el: '#settings_tab',
|
|
data: {
|
|
settings: { tags: {} },
|
|
spotifyFeatures: {}
|
|
},
|
|
methods: {
|
|
addListeners() {
|
|
document.getElementById('settings_btn_save').addEventListener('click', saveSettings)
|
|
document.getElementById('settings_btn_copyArl').addEventListener('click', copyARLtoClipboard)
|
|
document.getElementById('settings_btn_logout').addEventListener('click', logout)
|
|
}
|
|
},
|
|
mounted() {
|
|
this.addListeners()
|
|
}
|
|
})
|
|
|
|
socket.on('init_settings', function (settings, credentials) {
|
|
loadSettings(settings, credentials)
|
|
toast('Settings loaded!', 'settings')
|
|
})
|
|
|
|
socket.on('updateSettings', function (settings, credentials) {
|
|
loadSettings(settings, credentials)
|
|
toast('Settings updated!', 'settings')
|
|
})
|
|
|
|
function loadSettings(settings, spotifyCredentials) {
|
|
lastSettings = { ...settings }
|
|
lastCredentials = { ...spotifyCredentials }
|
|
SettingsTab.settings = settings
|
|
SettingsTab.spotifyFeatures = spotifyCredentials
|
|
}
|
|
|
|
function saveSettings() {
|
|
lastSettings = { ...SettingsTab.settings }
|
|
lastCredentials = { ...SettingsTab.spotifyFeatures }
|
|
socket.emit('saveSettings', lastSettings, lastCredentials)
|
|
}
|
|
|
|
function copyARLtoClipboard() {
|
|
$('#login_input_arl').attr('type', 'text')
|
|
let copyText = document.querySelector('#login_input_arl')
|
|
copyText.select()
|
|
copyText.setSelectionRange(0, 99999)
|
|
document.execCommand('copy')
|
|
$('#login_input_arl').attr('type', 'password')
|
|
toast('ARL copied to clipboard', 'assignment')
|
|
}
|
|
|
|
function logout() {
|
|
socket.emit('logout')
|
|
}
|