fix linter issues

This commit is contained in:
Simon Vieille
2025-04-10 20:02:02 +02:00
parent f9c3f96919
commit 8474f0945b
15 changed files with 148 additions and 132 deletions
+2 -2
View File
@@ -17,13 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<template> <template>
<div class="side-menu-search"> <div class="side-menu-search">
<input <input
v-model="model"
type="text" type="text"
:placeholder="t('side_menu', 'Search')" :placeholder="t('side_menu', 'Search')"
v-model="model"
/> />
</div> </div>
</template> </template>
<script setup> <script setup>
const model = defineModel() const model = defineModel({ type: String })
</script> </script>
+7 -7
View File
@@ -2,13 +2,6 @@
<h2>{{ t('side_menu', label) }}</h2> <h2>{{ t('side_menu', label) }}</h2>
</template> </template>
<style scoped>
h2 {
font-size: 1.3em;
margin: 0 0 12px 0;
}
</style>
<script setup> <script setup>
const { label } = defineProps({ const { label } = defineProps({
label: { label: {
@@ -17,3 +10,10 @@ const { label } = defineProps({
}, },
}) })
</script> </script>
<style scoped>
h2 {
font-size: 1.3em;
margin: 0 0 12px 0;
}
</style>
+1 -1
View File
@@ -40,7 +40,7 @@ const { short, label } = defineProps({
help: { help: {
type: [String, null], type: [String, null],
required: false, required: false,
default: false, default: null,
}, },
}) })
</script> </script>
+26 -26
View File
@@ -1,8 +1,8 @@
<template> <template>
<NcButton <NcButton
aria-label="t('side_menu', 'Select apps')" aria-label="t('side_menu', 'Select apps')"
@click="openModal"
variant="primary" variant="primary"
@click="openModal"
> >
{{ t('side_menu', 'Select apps') }} ({{ model.length }}) {{ t('side_menu', 'Select apps') }} ({{ model.length }})
</NcButton> </NcButton>
@@ -14,10 +14,10 @@
<div class="modal__content"> <div class="modal__content">
<NcCheckboxRadioSwitch <NcCheckboxRadioSwitch
v-for="(item, key) in apps" v-for="(item, key) in apps"
:key="key"
v-model="model" v-model="model"
name="value" name="value"
:value="item.id" :value="item.id"
:key="key"
> >
<img <img
:src="item.icon" :src="item.icon"
@@ -28,8 +28,8 @@
<div class="modal__footer"> <div class="modal__footer">
<NcButton <NcButton
@click="closeModal"
variant="primary" variant="primary"
@click="closeModal"
> >
{{ t('side_menu', 'Close') }} {{ t('side_menu', 'Close') }}
</NcButton> </NcButton>
@@ -38,6 +38,29 @@
</NcModal> </NcModal>
</template> </template>
<script setup>
import { NcButton, NcModal, NcCheckboxRadioSwitch } from '@nextcloud/vue'
import { useNavStore } from '../../../store/nav.js'
import { ref, onMounted } from 'vue'
const model = defineModel({ type: Array })
const navStore = useNavStore()
const modal = ref(false)
const apps = ref([])
const openModal = () => {
modal.value = true
}
const closeModal = () => {
modal.value = false
}
onMounted(async () => {
apps.value = await navStore.getApps()
})
</script>
<style scoped> <style scoped>
.modal__content { .modal__content {
padding: 20px; padding: 20px;
@@ -57,26 +80,3 @@ img {
height: 15px; height: 15px;
} }
</style> </style>
<script setup>
import { NcButton, NcModal, NcCheckboxRadioSwitch } from '@nextcloud/vue'
import { useNavStore } from '../../../store/nav.js'
import { ref, onMounted } from 'vue'
const model = defineModel()
const navStore = useNavStore()
const modal = ref(false)
const apps = ref([])
const openModal = () => {
modal.value = true
}
const closeModal = () => {
modal.value = false
}
onMounted(async () => {
apps.value = await navStore.getApps()
})
</script>
@@ -13,5 +13,5 @@
<script setup> <script setup>
import { NcColorPicker } from '@nextcloud/vue' import { NcColorPicker } from '@nextcloud/vue'
const model = defineModel() const model = defineModel({ type: String })
</script> </script>
+1 -1
View File
@@ -8,7 +8,7 @@
<script setup> <script setup>
import FormSelect from './FormSelect' import FormSelect from './FormSelect'
const model = defineModel() const model = defineModel({ type: String })
const options = [ const options = [
{ id: 'side-menu-opener', label: 'Default' }, { id: 'side-menu-opener', label: 'Default' },
{ id: 'side-menu-opener-dark', label: 'Default (dark)' }, { id: 'side-menu-opener-dark', label: 'Default (dark)' },
+18 -18
View File
@@ -3,35 +3,20 @@
<em v-if="prepend">{{ t('side_menu', prepend) }}</em> <em v-if="prepend">{{ t('side_menu', prepend) }}</em>
<input <input
v-model="model"
type="range" type="range"
:min="min" :min="min"
:max="max" :max="max"
v-model="model"
/> />
<em v-if="append">{{ t('side_menu', append) }}</em> <em v-if="append">{{ t('side_menu', append) }}</em>
</div> </div>
</template> </template>
<style scoped>
input {
min-height: auto;
}
div * {
vertical-align: middle;
}
em + input,
input + em {
margin-left: 10px;
}
</style>
<script setup> <script setup>
const model = defineModel() const model = defineModel({ type: Number })
const { prefix, suffix } = defineProps({ defineProps({
prepend: { prepend: {
type: [String, null], type: [String, null],
required: false, required: false,
@@ -54,3 +39,18 @@ const { prefix, suffix } = defineProps({
}, },
}) })
</script> </script>
<style scoped>
input {
min-height: auto;
}
div * {
vertical-align: middle;
}
em + input,
input + em {
margin-left: 10px;
}
</style>
+8 -3
View File
@@ -1,9 +1,14 @@
<template> <template>
<div> <div>
<template v-if="!expanded"> <template v-if="!expanded">
<select v-model="model" v-if="!expanded" :multiple="multiple"> <select
v-if="!expanded"
v-model="model"
:multiple="multiple"
>
<option <option
v-for="option in options" v-for="option in options"
:key="option.id"
:value="option.id" :value="option.id"
> >
{{ t('side_menu', option.label) }} {{ t('side_menu', option.label) }}
@@ -13,9 +18,9 @@
<template v-else> <template v-else>
<NcCheckboxRadioSwitch <NcCheckboxRadioSwitch
v-for="option in options" v-for="option in options"
:key="option.id"
v-model="model" v-model="model"
:value="option.id" :value="option.id"
:key="option.id"
:type="multiple ? 'checkbox' : 'radio'" :type="multiple ? 'checkbox' : 'radio'"
name="value" name="value"
> >
@@ -28,7 +33,7 @@
<script setup> <script setup>
import { NcCheckboxRadioSwitch } from '@nextcloud/vue' import { NcCheckboxRadioSwitch } from '@nextcloud/vue'
const model = defineModel() const model = defineModel({ type: [Number, String, Array] })
const { options, expanded } = defineProps({ const { options, expanded } = defineProps({
options: { options: {
type: Array, type: Array,
+1 -1
View File
@@ -8,7 +8,7 @@
<script setup> <script setup>
import FormSelect from './FormSelect' import FormSelect from './FormSelect'
const model = defineModel() const model = defineModel({ type: String })
const options = [ const options = [
{ id: 'hidden', label: 'Hidden' }, { id: 'hidden', label: 'Hidden' },
{ id: 'small', label: 'Small' }, { id: 'small', label: 'Small' },
+1 -1
View File
@@ -8,5 +8,5 @@
<script setup> <script setup>
import { NcCheckboxRadioSwitch } from '@nextcloud/vue' import { NcCheckboxRadioSwitch } from '@nextcloud/vue'
const model = defineModel() const model = defineModel({ type: Boolean })
</script> </script>
-17
View File
@@ -85,23 +85,6 @@ const createOpener = () => {
} }
} }
const createLoader = () => {
const loader = createElement('div', { id: 'side-menu-loader' })
const bar = createElement('div', { id: 'side-menu-loader-bar' })
loader.appendChild(bar)
document.querySelector('body').appendChild(loader)
let pageLoaderValue = 0
window.addEventListener('beforeunload', () => {
setInterval(() => {
pageLoaderBar.style.width = pageLoaderValue.toString() + '%'
pageLoaderValue = Math.min(pageLoaderValue + 0.2, 100)
}, 25)
})
}
onMounted(async () => { onMounted(async () => {
hasApps.value = (await navStore.getApps()).length > 0 hasApps.value = (await navStore.getApps()).length > 0
+1 -1
View File
@@ -17,9 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<template> <template>
<div <div
id="side-menu" id="side-menu"
ref="menu"
class="side-menu-with-categories" class="side-menu-with-categories"
:class="{ open: open }" :class="{ open: open }"
ref="menu"
> >
<div class="side-menu-header"> <div class="side-menu-header">
<SettingsButton <SettingsButton
+3 -3
View File
@@ -17,12 +17,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<template> <template>
<div <div
id="side-menu" id="side-menu"
:class="{ open: open }"
ref="menu" ref="menu"
:class="{ open: open }"
> >
<div <div
class="side-menu-header"
v-if="settings || displayLogo || open || !openerHover" v-if="settings || displayLogo || open || !openerHover"
class="side-menu-header"
> >
<SettingsButton <SettingsButton
v-if="settings && open" v-if="settings && open"
@@ -31,8 +31,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
:avatar="settings.avatar" :avatar="settings.avatar"
/> />
<AppSearch <AppSearch
v-model="search"
v-if="open" v-if="open"
v-model="search"
/> />
<OpenerButton <OpenerButton
v-if="!openerHover || isTouchDevice" v-if="!openerHover || isTouchDevice"
+1 -1
View File
@@ -17,9 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<template> <template>
<div <div
id="side-menu" id="side-menu"
ref="menu"
class="side-menu-big" class="side-menu-big"
:class="{ open: open }" :class="{ open: open }"
ref="menu"
> >
<div class="side-menu-header"> <div class="side-menu-header">
<CloserButton <CloserButton
+77 -49
View File
@@ -1,14 +1,15 @@
<template> <template>
<NcContent <NcContent
app-name="side_menu"
v-if="config" v-if="config"
app-name="side_menu"
> >
<NcAppContent> <NcAppContent>
<div class="side-menu-setting"> <div class="side-menu-setting">
<NcButton <NcButton
v-for="item in menu" v-for="item in menu"
@click="setSection(item.section)" :key="item.label"
:variant="item.section === section ? 'primary' : 'secondary'" :variant="item.section === section ? 'primary' : 'secondary'"
@click="setSection(item.section)"
>{{ trans(item.label) }}</NcButton >{{ trans(item.label) }}</NcButton
> >
</div> </div>
@@ -107,14 +108,15 @@
:top="true" :top="true"
/> />
<TableValue> <TableValue>
<FormSelect <FormSelect
v-model="config['top-menu-mouse-over-hidden-label']" v-model="config['top-menu-mouse-over-hidden-label']"
:expanded="true" :expanded="true"
:options="[ :options="[
{id: 1, label: 'Yes'}, { id: 1, label: 'Yes' },
{id: 0, label: 'No'}, { id: 0, label: 'No' },
{id: 2, label: 'Except the hovered app'}, { id: 2, label: 'Except the hovered app' },
]" /> ]"
/>
</TableValue> </TableValue>
</TableRow> </TableRow>
</TableContainer> </TableContainer>
@@ -361,21 +363,31 @@
:middle="true" :middle="true"
/> />
<TableValue> <TableValue>
<a target="_blank" href="https://www.buymeacoffee.com/deblan" rel="noopener"> <a
target="_blank"
href="https://www.buymeacoffee.com/deblan"
rel="noopener"
>
<NcButton variant="secondary">{{ trans('Buy me a coffee ☕') }}</NcButton> <NcButton variant="secondary">{{ trans('Buy me a coffee ☕') }}</NcButton>
</a> </a>
</TableValue> </TableValue>
</TableRow> </TableRow>
<TableRow> <TableRow>
<TableLabel <TableLabel label="Need help" />
label="Need help"
/>
<TableValue class="button-inline"> <TableValue class="button-inline">
<a target="_blank" href="https://deblan.gitnet.page/side_menu_doc/" rel="noopener"> <a
target="_blank"
href="https://deblan.gitnet.page/side_menu_doc/"
rel="noopener"
>
<NcButton variant="secondary">{{ trans('Open the documentation') }}</NcButton> <NcButton variant="secondary">{{ trans('Open the documentation') }}</NcButton>
</a> </a>
<a target="_blank" href="https://gitnet.fr/deblan/side_menu/issues/new?template=.gitea%2fissue_template%2fQUESTION_TEMPLATE.yml" rel="noopener"> <a
target="_blank"
href="https://gitnet.fr/deblan/side_menu/issues/new?template=.gitea%2fissue_template%2fQUESTION_TEMPLATE.yml"
rel="noopener"
>
<NcButton variant="secondary">{{ trans('Ask the developer') }}</NcButton> <NcButton variant="secondary">{{ trans('Ask the developer') }}</NcButton>
</a> </a>
</TableValue> </TableValue>
@@ -387,7 +399,11 @@
:middle="true" :middle="true"
/> />
<TableValue> <TableValue>
<a target="_blank" href="https://gitnet.fr/deblan/side_menu/issues/new?template=.gitea%2fissue_template%2fFEATURE_TEMPLATE.yml" rel="noopener"> <a
target="_blank"
href="https://gitnet.fr/deblan/side_menu/issues/new?template=.gitea%2fissue_template%2fFEATURE_TEMPLATE.yml"
rel="noopener"
>
<NcButton variant="secondary">{{ trans('New request') }}</NcButton> <NcButton variant="secondary">{{ trans('New request') }}</NcButton>
</a> </a>
</TableValue> </TableValue>
@@ -399,10 +415,18 @@
:top="true" :top="true"
/> />
<TableValue class="button-inline"> <TableValue class="button-inline">
<a target="_blank" href="https://gitnet.fr/deblan/side_menu/issues/new?template=.gitea%2fissue_template%2fISSUE_TEMPLATE.yml" rel="noopener"> <a
target="_blank"
href="https://gitnet.fr/deblan/side_menu/issues/new?template=.gitea%2fissue_template%2fISSUE_TEMPLATE.yml"
rel="noopener"
>
<NcButton variant="secondary">{{ trans('Report a bug') }}</NcButton> <NcButton variant="secondary">{{ trans('Report a bug') }}</NcButton>
</a> </a>
<NcButton variant="secondary" @click="showConfig = true">{{ trans('Show the configuration') }}</NcButton> <NcButton
variant="secondary"
@click="showConfig = true"
>{{ trans('Show the configuration') }}</NcButton
>
<NcModal <NcModal
v-if="showConfig" v-if="showConfig"
@@ -410,19 +434,23 @@
> >
<div class="modal__content"> <div class="modal__content">
<p style="margin-bottom: 5px">{{ trans('Configuration:') }}</p> <p style="margin-bottom: 5px">{{ trans('Configuration:') }}</p>
<textarea class="config" readonly>{{ filterConfig(config) }}</textarea> <textarea
class="config"
readonly
>{{ filterConfig(config) }}</textarea
>
<div class="modal__footer"> <div class="modal__footer">
<NcButton <NcButton
@click="copyConfig"
variant="secondary" variant="secondary"
@click="copyConfig"
> >
<span v-if="configCopied">{{ trans('Done!') }}</span> <span v-if="configCopied">{{ trans('Done!') }}</span>
<span v-else>{{ trans('Copy') }}</span> <span v-else>{{ trans('Copy') }}</span>
</NcButton> </NcButton>
<NcButton <NcButton
@click="showConfig = false"
variant="primary" variant="primary"
@click="showConfig = false"
> >
{{ t('side_menu', 'Close') }} {{ t('side_menu', 'Close') }}
</NcButton> </NcButton>
@@ -436,36 +464,6 @@
</NcContent> </NcContent>
</template> </template>
<style scoped>
.hidden {
display: none;
}
.button-inline button {
display: inline-block;
margin-right: 5px;
}
.config {
width: 100%;
height: 30vh;
}
.modal__content {
padding: 20px;
}
.modal__footer {
margin-top: 20px;
text-align: right;
}
.modal__footer button {
display: inline-block;
margin-right: 5px;
}
</style>
<script setup> <script setup>
import { NcContent, NcAppContent, NcButton, NcModal } from '@nextcloud/vue' import { NcContent, NcAppContent, NcButton, NcModal } from '@nextcloud/vue'
import { ref, onMounted } from 'vue' import { ref, onMounted } from 'vue'
@@ -541,3 +539,33 @@ onMounted(async () => {
config.value = await configStore.getAppConfig() config.value = await configStore.getAppConfig()
}) })
</script> </script>
<style scoped>
.hidden {
display: none;
}
.button-inline button {
display: inline-block;
margin-right: 5px;
}
.config {
width: 100%;
height: 30vh;
}
.modal__content {
padding: 20px;
}
.modal__footer {
margin-top: 20px;
text-align: right;
}
.modal__footer button {
display: inline-block;
margin-right: 5px;
}
</style>