From 508e8701e38f21a9c910bb4f6de239ea68c74553 Mon Sep 17 00:00:00 2001
From: Hans-Peter Herzog <hherzog@sipwise.com>
Date: Wed, 31 Jan 2018 15:55:20 +0100
Subject: [PATCH] TT#31652 General: Fix communication button

Change-Id: I8c491c394ef976df77ee93082ba6e2ee303a0923
---
 src/components/layouts/Default.vue | 12 ++++++++----
 src/store/user.js                  | 12 ++++++++----
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/components/layouts/Default.vue b/src/components/layouts/Default.vue
index 3477d49d..4b55f29c 100644
--- a/src/components/layouts/Default.vue
+++ b/src/components/layouts/Default.vue
@@ -86,10 +86,10 @@
         <router-view />
         <q-fixed-position id="global-action-btn" corner="top-right" :offset="fabOffset" class="page-button transition-generic">
             <q-fab v-if="hasCommunicationCapabilities" color="primary" icon="question answer" active-icon="clear" direction="down" flat>
-                <q-fab-action v-if="hasFaxCapability" color="primary" @click="" icon="fa-fax">
+                <q-fab-action v-if="hasFaxCapability && hasSendFaxFeature" color="primary" @click="" icon="fa-fax">
                     <q-tooltip anchor="center right" self="center left" :offset="[15, 0]">{{ $t('sendFax') }}</q-tooltip>
                 </q-fab-action>
-                <q-fab-action v-if="hasSmsCapability" color="primary" @click="" icon="fa-send">
+                <q-fab-action v-if="hasSmsCapability && hasSendSmsFeature" color="primary" @click="" icon="fa-send">
                     <q-tooltip anchor="center right" self="center left" :offset="[15, 0]">{{ $t('sendSms') }}</q-tooltip>
                 </q-fab-action>
                 <q-fab-action v-if="isCallAvailable" color="primary" @click="call()" icon="fa-phone">
@@ -188,7 +188,9 @@
                 'getUsername',
                 'isPbxAdmin',
                 'hasSmsCapability',
-                'hasFaxCapability'
+                'hasFaxCapability',
+                'hasSendSmsFeature',
+                'hasSendFaxFeature'
             ]),
             ...mapState({
                 isCallForward: state => _.startsWith(state.route.path, '/user/call-forward'),
@@ -196,7 +198,9 @@
                 isPbxConfiguration: state => _.startsWith(state.route.path, '/user/pbx-configuration')
             }),
             hasCommunicationCapabilities() {
-                return this.isCallAvailable || this.hasSmsCapability || this.hasFaxCapability;
+                return this.isCallAvailable ||
+                    (this.hasSmsCapability && this.hasSendSmsFeature) ||
+                    (this.hasFaxCapability && this.hasSendFaxFeature);
             },
             callClasses() {
                 let classes = {};
diff --git a/src/store/user.js b/src/store/user.js
index 1fc11cd1..3873df78 100644
--- a/src/store/user.js
+++ b/src/store/user.js
@@ -39,13 +39,17 @@ export default {
         },
         hasSmsCapability(state, getters) {
             return state.capabilities !== null &&
-                state.capabilities.sms  === true &&
-                state.features.sendSms === true;
+                state.capabilities.sms  === true;
+        },
+        hasSendSmsFeature(state) {
+            return state.features.sendSms;
+        },
+        hasSendFaxFeature(state) {
+            return state.features.sendFax;
         },
         hasFaxCapability(state, getters) {
             return state.capabilities !== null &&
-                state.capabilities.faxserver  === true &&
-                state.features.sendFax === true;
+                state.capabilities.faxserver  === true;
         },
         hasRtcEngineCapability(state, getters) {
             return state.capabilities !== null && _.has(state.capabilities, 'rtcengine');