Plug-in entries in sub-menu
This commit is contained in:
parent
cbe76cc19d
commit
fe16fe4098
8 changed files with 54 additions and 4 deletions
|
@ -156,6 +156,8 @@
|
||||||
"term.top": "Top",
|
"term.top": "Top",
|
||||||
"term.version": "Version",
|
"term.version": "Version",
|
||||||
"term.noVideos": "No videos found.",
|
"term.noVideos": "No videos found.",
|
||||||
|
"term.plugin": "Plug-in",
|
||||||
|
"term.pluginMenu": "Plug-in Menu",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
|
|
|
@ -55,6 +55,7 @@ export class BrowserWindow {
|
||||||
"components/sidebar-playlist",
|
"components/sidebar-playlist",
|
||||||
"components/spatial-properties",
|
"components/spatial-properties",
|
||||||
"components/audio-settings",
|
"components/audio-settings",
|
||||||
|
"components/plugin-menu",
|
||||||
"components/audio-controls",
|
"components/audio-controls",
|
||||||
"components/qrcode-modal",
|
"components/qrcode-modal",
|
||||||
"components/equalizer",
|
"components/equalizer",
|
||||||
|
|
|
@ -25,6 +25,7 @@ const CiderFrontAPI = {
|
||||||
},
|
},
|
||||||
AddMenuEntry(entry) {
|
AddMenuEntry(entry) {
|
||||||
app.pluginMenuEntries.push(entry)
|
app.pluginMenuEntries.push(entry)
|
||||||
|
app.pluginInstalled = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,6 +77,7 @@ const app = new Vue({
|
||||||
platform: "",
|
platform: "",
|
||||||
mk: {},
|
mk: {},
|
||||||
quickPlayQuery: "",
|
quickPlayQuery: "",
|
||||||
|
pluginInstalled: false,
|
||||||
pluginMenuEntries: [],
|
pluginMenuEntries: [],
|
||||||
lz: ipcRenderer.sendSync("get-i18n", "en_US"),
|
lz: ipcRenderer.sendSync("get-i18n", "en_US"),
|
||||||
lzListing: ipcRenderer.sendSync("get-i18n-listing"),
|
lzListing: ipcRenderer.sendSync("get-i18n-listing"),
|
||||||
|
@ -247,6 +249,7 @@ const app = new Vue({
|
||||||
qrcode: false,
|
qrcode: false,
|
||||||
equalizer: false,
|
equalizer: false,
|
||||||
audioSettings: false,
|
audioSettings: false,
|
||||||
|
pluginMenu: false,
|
||||||
audioControls: false,
|
audioControls: false,
|
||||||
showPlaylist: false,
|
showPlaylist: false,
|
||||||
},
|
},
|
||||||
|
|
|
@ -226,6 +226,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
@ -22,6 +22,9 @@
|
||||||
<transition name="modal">
|
<transition name="modal">
|
||||||
<audio-settings v-if="modals.audioSettings"></audio-settings>
|
<audio-settings v-if="modals.audioSettings"></audio-settings>
|
||||||
</transition>
|
</transition>
|
||||||
|
<transition name="modal">
|
||||||
|
<plugin-menu v-if="modals.pluginMenu"></plugin-menu>
|
||||||
|
</transition>
|
||||||
<transition name="modal">
|
<transition name="modal">
|
||||||
<eq-view v-if="modals.equalizer"></eq-view>
|
<eq-view v-if="modals.equalizer"></eq-view>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
|
@ -101,6 +101,11 @@
|
||||||
<span class="usermenu-item-icon"><%- include("../svg/headphones.svg") %></span>
|
<span class="usermenu-item-icon"><%- include("../svg/headphones.svg") %></span>
|
||||||
<span class="usermenu-item-name">{{$root.getLz('term.audioSettings')}}</span>
|
<span class="usermenu-item-name">{{$root.getLz('term.audioSettings')}}</span>
|
||||||
</button>
|
</button>
|
||||||
|
<button class="usermenu-item" v-if="pluginInstalled"
|
||||||
|
@click="modals.pluginMenu = true">
|
||||||
|
<span class="usermenu-item-icon"><%- include("../svg/grid.svg") %></span>
|
||||||
|
<span class="usermenu-item-name">{{$root.getLz('term.plugin')}}</span>
|
||||||
|
</button>
|
||||||
<button class="usermenu-item" @click="appRoute('about')">
|
<button class="usermenu-item" @click="appRoute('about')">
|
||||||
<span class="usermenu-item-icon"><%- include("../svg/info.svg") %></span>
|
<span class="usermenu-item-icon"><%- include("../svg/info.svg") %></span>
|
||||||
<span class="usermenu-item-name">{{$root.getLz('term.about')}}</span>
|
<span class="usermenu-item-name">{{$root.getLz('term.about')}}</span>
|
||||||
|
@ -114,9 +119,6 @@
|
||||||
style="right:2.5px;"><%- include("../svg/log-out.svg") %></span>
|
style="right:2.5px;"><%- include("../svg/log-out.svg") %></span>
|
||||||
<span class="usermenu-item-name">{{$root.getLz('term.logout')}}</span>
|
<span class="usermenu-item-name">{{$root.getLz('term.logout')}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="usermenu-item" @click="entry.onClick()" v-for="entry in pluginMenuEntries">
|
|
||||||
{{ entry.name }}
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
37
src/renderer/views/components/plugin-menu.ejs
Normal file
37
src/renderer/views/components/plugin-menu.ejs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<script type="text/x-template" id="plugin-menu">
|
||||||
|
<!--template-->
|
||||||
|
<div class="modal-fullscreen addtoplaylist-panel" @click.self="app.resetState()" @contextmenu.self="app.resetState()">
|
||||||
|
<div class="modal-window">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div class="modal-title">{{$root.getLz('term.pluginMenu')}}</div>
|
||||||
|
<button class="close-btn" @click="app.resetState()"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-content">
|
||||||
|
<button class="playlist-item" @click="entry.onClick(); closeMenu();" v-for="entry in app.pluginMenuEntries">
|
||||||
|
<span class="icon"><%- include("../svg/grid.svg") %></span>
|
||||||
|
<span class="name" style="top: 1px;">{{ entry.name }}</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--template-->
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
Vue.component('plugin-menu', {
|
||||||
|
template: '#plugin-menu',
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
app: this.$root,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
closeMenu() {
|
||||||
|
app.modals.pluginMenu = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
</script>
|
1
src/renderer/views/svg/grid.svg
Normal file
1
src/renderer/views/svg/grid.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-grid"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
|
After Width: | Height: | Size: 404 B |
Loading…
Add table
Add a link
Reference in a new issue