add search component
This commit is contained in:
+27
-4
@@ -22,15 +22,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
v-bind:href="settings.href"
|
||||
v-bind:label="settings.name"
|
||||
v-bind:avatar="settings.avatar" />
|
||||
|
||||
<AppSearch v-model:search="search" />
|
||||
<OpenerButton />
|
||||
|
||||
<Logo
|
||||
v-if="!avatar && !alwaysDisplayed && logo" v-bind:classes="{'side-menu-logo': true, 'avatardiv': false}"
|
||||
v-bind:image="logo"
|
||||
v-bind:link="logoLink"
|
||||
/>
|
||||
|
||||
<Logo
|
||||
v-if="avatar" v-bind:classes="{'side-menu-logo': true, 'avatardiv': true}"
|
||||
v-bind:image="avatar"
|
||||
@@ -41,7 +39,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
<ul class="side-menu-apps-list" :class="{'side-menu-apps-list--with-settings': !!settings}">
|
||||
<SideMenuApp
|
||||
v-for="(app, key) in apps"
|
||||
v-if="!hiddenApps.includes(app.id)"
|
||||
v-if="!hiddenApps.includes(app.id) && searchMatch(app.name)"
|
||||
v-bind:classes="{'side-menu-app': true, 'active': app.active}"
|
||||
v-bind:key="key"
|
||||
v-bind:icon="app.icon"
|
||||
@@ -58,6 +56,7 @@ import axios from 'axios'
|
||||
import OpenerButton from './OpenerButton'
|
||||
import SettingsButton from './SettingsButton'
|
||||
import SideMenuApp from './SideMenuApp'
|
||||
import AppSearch from './AppSearch'
|
||||
import Logo from './Logo'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
|
||||
@@ -68,6 +67,7 @@ export default {
|
||||
OpenerButton,
|
||||
SideMenuApp,
|
||||
Logo,
|
||||
AppSearch,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -81,6 +81,7 @@ export default {
|
||||
settings: null,
|
||||
openerHover: false,
|
||||
alwaysDisplayed: false,
|
||||
search: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -125,6 +126,28 @@ export default {
|
||||
|
||||
retrieveConfig() {
|
||||
},
|
||||
|
||||
hasSearchMatch(apps) {
|
||||
if (this.search.trim() === '') {
|
||||
return true
|
||||
}
|
||||
|
||||
for (let key in apps) {
|
||||
if (this.searchMatch(apps[key].name)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
},
|
||||
|
||||
searchMatch(name) {
|
||||
if (this.search.trim() === '') {
|
||||
return true
|
||||
}
|
||||
|
||||
return name.toLowerCase().includes(this.search.toLowerCase())
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
axios
|
||||
|
||||
Reference in New Issue
Block a user