ActionButtons.vue 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <script setup>
  2. import { UseColorMode } from '@vueuse/components'
  3. import { useUserStore } from '@/stores/user'
  4. const router = useRouter()
  5. const user = useUserStore()
  6. const props = defineProps({
  7. inManagementMode: Boolean,
  8. areDisabled: Boolean
  9. })
  10. const emit = defineEmits(['update:inManagementMode', 'move-button-clicked', 'delete-button-clicked', 'export-button-clicked'])
  11. /**
  12. * Routes user to the appropriate submitting view
  13. */
  14. function goAddNewAccount() {
  15. if( user.preferences.useDirectCapture && user.preferences.defaultCaptureMode === 'advancedForm' ) {
  16. router.push({ name: 'createAccount' })
  17. }
  18. else if( user.preferences.useDirectCapture && user.preferences.defaultCaptureMode === 'livescan' ) {
  19. router.push({ name: 'capture' })
  20. }
  21. else {
  22. router.push({ name: 'start' })
  23. }
  24. }
  25. </script>
  26. <template>
  27. <UseColorMode v-slot="{ mode }">
  28. <!-- New item buttons -->
  29. <p class="control" v-if="!inManagementMode">
  30. <button class="button is-link is-rounded is-focus" @click="goAddNewAccount">
  31. <span>{{ $t('commons.new') }}</span>
  32. <span class="icon is-small">
  33. <FontAwesomeIcon :icon="['fas', 'qrcode']" />
  34. </span>
  35. </button>
  36. </p>
  37. <!-- Manage button -->
  38. <p class="control" v-if="!inManagementMode">
  39. <button id="btnManage" class="button is-rounded" :class="{'is-dark' : mode == 'dark'}" @click="$emit('update:inManagementMode', true)">{{ $t('commons.manage') }}</button>
  40. </p>
  41. <!-- move button -->
  42. <p class="control" v-if="inManagementMode">
  43. <button
  44. id="btnMove"
  45. :disabled='areDisabled' class="button is-rounded"
  46. :class="[{ 'is-outlined': mode == 'dark' || areDisabled }, areDisabled ? 'is-dark': 'is-link']"
  47. @click="$emit('move-button-clicked')"
  48. :title="$t('groups.move_selected_to_group')" >
  49. {{ $t('commons.move') }}
  50. </button>
  51. </p>
  52. <!-- delete button -->
  53. <p class="control" v-if="inManagementMode">
  54. <button
  55. id="btnDelete"
  56. :disabled='areDisabled' class="button is-rounded"
  57. :class="[{ 'is-outlined': mode == 'dark' || areDisabled }, areDisabled ? 'is-dark': 'is-link']"
  58. @click="$emit('delete-button-clicked')" >
  59. {{ $t('commons.delete') }}
  60. </button>
  61. </p>
  62. <!-- export button -->
  63. <p class="control" v-if="inManagementMode">
  64. <button
  65. id="btnExport"
  66. :disabled='areDisabled' class="button is-rounded"
  67. :class="[{ 'is-outlined': mode == 'dark' || areDisabled }, areDisabled ? 'is-dark': 'is-link']"
  68. @click="$emit('export-button-clicked')"
  69. :title="$t('twofaccounts.export_selected_accounts')" >
  70. {{ $t('commons.export') }}
  71. </button>
  72. </p>
  73. </UseColorMode>
  74. </template>