You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

appNavigation.vue 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <!--
  2. - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>
  3. -
  4. - @author John Molakvoæ <skjnldsv@protonmail.com>
  5. -
  6. - @license GNU AGPL version 3 or any later version
  7. -
  8. - This program is free software: you can redistribute it and/or modify
  9. - it under the terms of the GNU Affero General Public License as
  10. - published by the Free Software Foundation, either version 3 of the
  11. - License, or (at your option) any later version.
  12. -
  13. - This program is distributed in the hope that it will be useful,
  14. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. - GNU Affero General Public License for more details.
  17. -
  18. - You should have received a copy of the GNU Affero General Public License
  19. - along with this program. If not, see <http://www.gnu.org/licenses/>.
  20. -
  21. -->
  22. <template>
  23. <div id="app-navigation" :class="{'icon-loading': menu.loading}">
  24. <div class="app-navigation-new" v-if="menu.new">
  25. <button type="button" :id="menu.new.id" :class="menu.new.icon" @click="menu.new.action">{{menu.new.text}}</button>
  26. </div>
  27. <ul :id="menu.id">
  28. <navigation-item v-for="item in menu.items" :item="item" :key="item.key" />
  29. </ul>
  30. <div id="app-settings" v-if="!!$slots['settings-content']">
  31. <div id="app-settings-header">
  32. <button class="settings-button"
  33. data-apps-slide-toggle="#app-settings-content"
  34. >{{t('settings', 'Settings')}}</button>
  35. </div>
  36. <div id="app-settings-content">
  37. <slot name="settings-content"></slot>
  38. </div>
  39. </div>
  40. </div>
  41. </template>
  42. <script>
  43. import navigationItem from './appNavigation/navigationItem';
  44. export default {
  45. name: 'appNavigation',
  46. props: ['menu'],
  47. components: {
  48. navigationItem
  49. }
  50. };
  51. </script>