Merge branch 'ciderapp:develop' into develop

This commit is contained in:
Amaru8 2022-04-19 19:39:54 +02:00 committed by GitHub
commit 95972ecf7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 317 additions and 125 deletions

View file

@ -82,10 +82,10 @@ const app = new Vue({
},
albums: {
sortingOptions: {
"albumName": "0",
"artistName": "0",
"name": "0",
"genre": "0"
"genre": "0",
"releaseDate": "0"
},
viewAs: 'covers',
sorting: ["dateAdded", "name"], // [0] = recentlyadded page, [1] = albums page
@ -349,10 +349,10 @@ const app = new Vue({
}
app.$data.library.albums.sortingOptions = {
"albumName": app.getLz('term.sortBy.album'),
"artistName": app.getLz('term.sortBy.artist'),
"name": app.getLz('term.sortBy.name'),
"genre": app.getLz('term.sortBy.genre')
"genre": app.getLz('term.sortBy.genre'),
"releaseDate": app.getLz('term.sortBy.releaseDate')
}
app.$data.library.artists.sortingOptions = {
@ -1507,10 +1507,9 @@ const app = new Vue({
*/
convertTime(seconds, format = "short") {
if (isNaN(seconds) || seconds == Infinity) {
if (isNaN(seconds) || seconds === Infinity) {
seconds = 0
}
seconds = parseInt(seconds);
const datetime = new Date(seconds * 1000)
@ -1520,12 +1519,11 @@ const app = new Vue({
const m = Math.floor(seconds % 3600 / 60);
const s = Math.floor(seconds % 60);
const dDisplay = d > 0 ? `${d} ${app.getLz("term.time.day", { "count": d })}, ` : "";
const hDisplay = h > 0 ? `${h} ${app.getLz("term.time.hour", { "count": h })}, ` : "";
const mDisplay = m > 0 ? `${m} ${app.getLz("term.time.minute", { "count": m })}, ` : "";
const sDisplay = s > 0 ? `${s} ${app.getLz("term.time.second", { "count": s })}` : "";
const dDisplay = d > 0 ? `${d} ${app.getLz("term.time.day", { "count": d })}` : "";
const hDisplay = h > 0 ? `${h} ${app.getLz("term.time.hour", { "count": h })}` : "";
const mDisplay = m > 0 ? `${m} ${app.getLz("term.time.minute", { "count": m })}` : "";
return dDisplay + hDisplay + mDisplay + sDisplay;
return dDisplay + (dDisplay && hDisplay ? ", " : "") + hDisplay + (hDisplay && mDisplay ? ", " : "") + mDisplay;
}
else {
let returnTime = datetime.toISOString().substring(11, 19);
@ -4258,6 +4256,9 @@ const app = new Vue({
document.getElementById('settings.option.general.updateCider.check').innerHTML = app.getLz('term.check')
})
},
authCC(){
ipcRenderer.send('cc-auth')
}
}
})

View file

@ -11626,7 +11626,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
filter: none !important;
}
.lyricWaiting {
margin-top: 8px;
margin-bottom: 10px;
display: none;
}
.lyric-line.active .lyricWaiting {

View file

@ -1261,7 +1261,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
.marquee {
animation: marquee 15s linear infinite;
animation: marquee 15s linear 2s infinite;
&.song-artist {
overflow: unset;
@ -1630,7 +1630,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
}
.lyricWaiting {
margin-top: 8px;
margin-bottom:10px;
display: none;
}

View file

@ -122,7 +122,7 @@
},
multiple: {
items: [{
"name": app.getLz('action.removeTracks'),
"name": app.getLz('action.removeTracks').replace('${self.selectedItems.length}', self.selectedItems.length.toString()),
"action": function () {
// add property to items to be removed
self.selectedItems.forEach(function (item) {

View file

@ -5,7 +5,7 @@
<div class="settings-option-body">
<div class="md-option-line">
<b-jumbotron :header="$root.getLz('settings.option.audio.audioLab')"
lead="Designed by Cider Acoustic Technologies in California"></b-jumbotron>
lead="$root.getLz('settings.option.audio.audioLab.subheader')"></b-jumbotron>
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === false">
<div class="md-option-segment">
@ -79,9 +79,9 @@
</div>
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext === true">
<div class="md-option-segment">
Cider Atmosphere Realizer™
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer')}}
<br>
<small>Realizes a different musical atmosphere modelled after the state of the art audio setups.</small>
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.maikiwiAudio.atmosphereRealizer"
@ -90,17 +90,17 @@
</div>
<div class="md-option-line" v-show="app.cfg.audio.maikiwiAudio.atmosphereRealizer === true">
<div class="md-option-segment">
Cider Atmosphere Realizer™ Mode
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode')}}
<br>
<small>Changes the mode of operation of the Atmosphere Realizer module.</small>
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<select class="md-select" style="width:180px;"
v-model="app.cfg.audio.maikiwiAudio.atmosphereRealizer_value"
v-on:change="CiderAudio.hierarchical_loading()">
<option value="NATURAL_STANDARD">Natural (Standard)</option>
<option value="NATURAL_HIGH">Natural (High)</option>
<option value="NATURAL_PLUS">Natural (Plus)</option>
<option value="NATURAL_STANDARD">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1')}}</option>
<option value="NATURAL_HIGH">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2')}}</option>
<option value="NATURAL_PLUS">{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3')}}</option>
</select>
</div>
</div>

View file

@ -0,0 +1,21 @@
<script type="text/x-template" id="connected">
<div style="display:flex;width:100%;height:100%;padding-top: var(--navigationBarHeight);position:absolute;top:0;left:0;">
<webview id="foo" src="https://cider.sh" style="display:inline-flex; width:100%;"></webview>
</div>
</script>
<script>
Vue.component('connected', {
template: '#connected',
async mounted() {
ipcRenderer.send('get-connected-url')
ipcRenderer.on('send-connected-url', (event, url) => {
this.url = url
app.webview.src = url
document.getElementById('foo').src = url;
})
},
methods: {
}
});
</script>

View file

@ -204,7 +204,7 @@
<small>{{app.cfg.audio.equalizer.vibrantBass != 0 || app.cfg.audio.maikiwiAudio.spatial === true || app.cfg.audio.maikiwiAudio.ciderPPE === true ? `${$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}\n${$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled')}` : $root.getLz('settings.option.audio.enableAdvancedFunctionality.audioNormalization.description')}}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization"
<input type="checkbox" v-model="app.cfg.audio.normalization" v-on:change="toggleNormalization"
:disabled="app.cfg.audio.spatial === true || app.cfg.audio.maikiwiAudio.spatial === true || app.cfg.audio.maikiwiAudio.ciderPPE === true || app.cfg.audio.maikiwiAudio.atmosphereRealizer === true" switch/>
</div>
</div>
@ -394,7 +394,7 @@
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" switch checked/>
<!-- <input type="checkbox" v-model="app.cfg.lyrics.enable_mxm" switch /> -->
<!-- <input type="checkbox" v-model="app.cfg.lyrics.enable_mxm" switch /> -->
</div>
</div>
</div>
@ -710,36 +710,68 @@
</div>
</div>
<!-- DiscordRPC -->
<div class="md-option-line">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC')}}
</div>
<div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.general.discord_rpc">
<option value="0">{{$root.getLz('term.disabled')}}</option>
<option value="1">{{$root.getLz('settings.header.connectivity.discordRPC.cider')}}</option>
<option value="2">{{$root.getLz('settings.header.connectivity.discordRPC.appleMusic')}}
<input type="checkbox" v-model="app.cfg.general.discord_rpc.enabled" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc.enabled != false">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC.clientName')}}
</div>
<div class="md-option-segment md-option-segment_auto">
<select class="md-select" v-model="app.cfg.general.discord_rpc.client">
<option value="Cider">{{$root.getLz('app.name')}}</option>
<option value="AppleMusic">{{$root.getLz('term.appleMusic')}}
</option>
</select>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc != 0">
<div class="md-option-line" v-show="app.cfg.general.discord_rpc.enabled != false">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC.clearOnPause')}}
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.general.discord_rpc_clear_on_pause" switch/>
<input type="checkbox" v-model="app.cfg.general.discord_rpc.clear_on_pause" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc != 0">
<div class="md-option-line" v-show="app.cfg.general.discord_rpc.enabled != false">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC.hideButtons')}}<br>
<small>({{$root.getLz('settings.option.visual.hardwareAcceleration.description')}})</small>
{{$root.getLz('settings.option.connectivity.discordRPC.hideButtons')}}
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="checkbox" v-model="app.cfg.general.discord_rpc_hide_buttons" switch/>
<input type="checkbox" v-model="app.cfg.general.discord_rpc.hide_buttons" switch/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc.enabled != false">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC.detailsFormat')}}<br/>
<small>{{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, {trackNumber}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="text" v-model="app.cfg.general.discord_rpc.details_format"/>
</div>
</div>
<div class="md-option-line" v-show="app.cfg.general.discord_rpc.enabled != false">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.discordRPC.stateFormat')}}
<small>{{$root.getLz('term.variables')}}: {artist}, {composer}, {title}, {album}, {trackNumber}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<input type="text" v-model="app.cfg.general.discord_rpc.state_format"/>
</div>
</div>
<!-- LastFM -->
<div class="md-option-line">
<div class="md-option-segment">
{{$root.getLz('settings.option.connectivity.lastfmScrobble')}}
@ -944,6 +976,30 @@
</div>
</div>
</b-tab>
<b-tab :title="$root.getLz('settings.header.connect')">
<div class="md-option-container">
<!-- Cider Connect / Linking Settings -->
<div class="md-option-header">
<span>{{$root.getLz('settings.header.connect')}}</span>
</div>
<div class="settings-option-body">
<div class="md-option-line update-check">
<div class="md-option-segment">
{{$root.getLz('settings.option.connect.link_account')}}
<small>{{$root.getLz('settings.option.connect.link_account.description')}}</small>
<br>
<small>Debug Status: {{ app.cfg.connectUser }}</small>
</div>
<div class="md-option-segment md-option-segment_auto">
<button class="md-btn" id='settings.option.general.updateCider.check' @click="authCC()">
{{$root.getLz('term.connect')}}
</button>
</div>
</div>
</div>
</div>
</div>
</b-tab>
</b-tabs>
</div>
</script>
@ -1010,7 +1066,7 @@
},
getThemeName(filename) {
try {
return this.themes.find(theme => theme.file === filename).name;
return this.themes.find(theme => theme.file === filename).name;
}catch(e) {
return filename;
}
@ -1180,7 +1236,10 @@
ipcRenderer.send('relaunchApp', '');
}
});
}
},
authCC() {
ipcRenderer.send('cc-auth')
},
}
})
</script>

View file

@ -1,6 +1,5 @@
<template v-if="page == 'webview'">
<div style="display:flex;width:100%;height:100%">
<<webview id="foo" :src="webview.url" nodeintegration="true" style="display:inline-flex; width:100%;"></webview>
<webview id="foo" :src="webview.url" nodeintegration="true" style="display:inline-flex; width:100%;"></webview>
</div>
</template>