TT#39810 Disabled send fax if fax is inactive

Change-Id: I30444409530461cbb5f777d4d216efcd32ae8424
changes/26/22426/7
raxelsen 7 years ago
parent 0caebab88f
commit 5a104b445c

@ -32,11 +32,13 @@ export function getUserData(id) {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
return Promise.all([ return Promise.all([
getSubscriberById(id), getSubscriberById(id),
getCapabilities() getCapabilities(),
getFaxServerSettingsById(id)
]).then((results)=>{ ]).then((results)=>{
resolve({ resolve({
subscriber: results[0], subscriber: results[0],
capabilities: results[1] capabilities: results[1],
faxactive: results[2]
}); });
}).catch((err)=>{ }).catch((err)=>{
reject(err); reject(err);
@ -149,3 +151,14 @@ export function getNumbers() {
}); });
}); });
} }
export function getFaxServerSettingsById(id) {
return new Promise((resolve, reject) => {
Vue.http.get('api/faxserversettings/' + id).then((result) => {
var body = JSON.parse(result.body);
resolve(body.active);
}).catch((err) => {
reject(err);
});
});
}

@ -1,116 +1,240 @@
<template> <template>
<q-layout ref="layout" :view="layoutView" :right-breakpoint="1100" <q-layout
@right-breakpoint="rightBreakPoint" :right-class="callClasses"> ref="layout"
:view="layoutView"
:right-breakpoint="1100"
@right-breakpoint="rightBreakPoint"
:right-class="callClasses"
>
<q-toolbar slot="header"> <q-toolbar slot="header">
<q-btn flat @click="$refs.layout.toggleLeft()"> <q-btn
<q-icon name="menu"/> flat
@click="$refs.layout.toggleLeft()"
>
<q-icon name="menu" />
</q-btn> </q-btn>
<q-toolbar-title> <q-toolbar-title>
{{ pageTitle }} {{ pageTitle }}
<span slot="subtitle">{{ pageSubtitle }}</span> <span slot="subtitle">
{{ pageSubtitle }}
</span>
</q-toolbar-title> </q-toolbar-title>
<q-btn flat class="csc-toolbar-btn"> <q-btn
flat
class="csc-toolbar-btn"
v-if="hasCommunicationCapabilities"
>
<q-icon name="question answer" /> <q-icon name="question answer" />
<q-popover ref="communicationPopover"> <q-popover ref="communicationPopover">
<q-list item-separator link class="csc-toolbar-btn-popover"> <q-list
<q-item @click="call();$refs.communicationPopover.close()" v-if="isCallAvailable"> item-separator
<q-item-side icon="fa-phone" color="primary" /> link
class="csc-toolbar-btn-popover"
>
<q-item
@click="call();$refs.communicationPopover.close()"
v-if="isCallAvailable"
>
<q-item-side
icon="fa-phone"
color="primary"
/>
<q-item-main :label="$t('startCall')" /> <q-item-main :label="$t('startCall')" />
</q-item> </q-item>
<q-item @click="showSendFax();$refs.communicationPopover.close()" v-if="hasFaxCapability && hasSendFaxFeature"> <q-item
<q-item-side icon="fa-fax" color="primary"/> @click="showSendFax();$refs.communicationPopover.close()"
v-if="hasFaxCapability && hasSendFaxFeature"
>
<q-item-side
icon="fa-fax"
color="primary"
/>
<q-item-main :label="$t('sendFax')" /> <q-item-main :label="$t('sendFax')" />
</q-item> </q-item>
<q-item @click="$refs.communicationPopover.close()" v-if="hasSmsCapability && hasSendSmsFeature"> <q-item
<q-item-side icon="fa-send" color="primary"/> @click="$refs.communicationPopover.close()"
v-if="hasSmsCapability && hasSendSmsFeature"
>
<q-item-side
icon="fa-send"
color="primary"
/>
<q-item-main :label="$t('sendSms')" /> <q-item-main :label="$t('sendSms')" />
</q-item> </q-item>
</q-list> </q-list>
</q-popover> </q-popover>
</q-btn> </q-btn>
<q-btn flat class="csc-toolbar-btn csc-toolbar-btn-right"> <q-btn
<q-icon name="fa-user-circle" class="csc-toolbar-btn-icon" /> flat
<span id="user-login-as" class="gt-sm">{{ $t('loggedInAs') }}</span> class="csc-toolbar-btn csc-toolbar-btn-right"
<span id="user-name" class="gt-xs">{{ getUsername }}</span> >
<q-icon
name="fa-user-circle"
class="csc-toolbar-btn-icon"
/>
<span
id="user-login-as"
class="gt-sm"
>
{{ $t('loggedInAs') }}
</span>
<span
id="user-name"
class="gt-xs"
>
{{ getUsername }}
</span>
<q-popover ref="popover"> <q-popover ref="popover">
<q-list item-separator link class="csc-toolbar-btn-popover"> <q-list
item-separator
link
class="csc-toolbar-btn-popover"
>
<q-item @click="logout()"> <q-item @click="logout()">
<q-item-side icon="exit to app" color="primary"/> <q-item-side
icon="exit to app"
color="primary"
/>
<q-item-main label="Logout" /> <q-item-main label="Logout" />
</q-item> </q-item>
</q-list> </q-list>
</q-popover> </q-popover>
</q-btn> </q-btn>
</q-toolbar> </q-toolbar>
<q-list id="main-menu" slot="left" no-border link inset-delimiter> <q-list
<q-side-link item to="/user/home"> id="main-menu"
<q-item-side icon="home"></q-item-side> slot="left"
<q-item-main :label="$t('navigation.home.title')" no-border
:sublabel="$t('navigation.home.subTitle')"/> link
inset-delimiter
>
<q-side-link
item
to="/user/home"
>
<q-item-side icon="home" />
<q-item-main
:label="$t('navigation.home.title')"
:sublabel="$t('navigation.home.subTitle')"
/>
</q-side-link> </q-side-link>
<q-side-link item to="/user/conversations"> <q-side-link
<q-item-side icon="question answer"></q-item-side> item
<q-item-main :label="$t('navigation.conversations.title')" to="/user/conversations"
:sublabel="$t('navigation.conversations.subTitle')"/> >
<q-item-side icon="question answer" />
<q-item-main
:label="$t('navigation.conversations.title')"
:sublabel="$t('navigation.conversations.subTitle')"
/>
</q-side-link> </q-side-link>
<q-collapsible :opened="isCallForward" intend icon="phone forwarded" <q-collapsible
:label="$t('navigation.callForward.title')" :opened="isCallForward"
:sublabel="$t('navigation.callForward.subTitle')"> intend
<q-side-link item to="/user/call-forward/always"> icon="phone forwarded"
<q-item-side icon="check circle"/> :label="$t('navigation.callForward.title')"
<q-item-main :label="$t('navigation.callForward.always')"/> :sublabel="$t('navigation.callForward.subTitle')"
>
<q-side-link
item
to="/user/call-forward/always"
>
<q-item-side icon="check circle" />
<q-item-main :label="$t('navigation.callForward.always')" />
</q-side-link> </q-side-link>
<q-side-link item to="/user/call-forward/company-hours"> <q-side-link
<q-item-side icon="schedule"/> item
<q-item-main :label="$t('navigation.callForward.companyHours')"/> to="/user/call-forward/company-hours"
>
<q-item-side icon="schedule" />
<q-item-main :label="$t('navigation.callForward.companyHours')" />
</q-side-link> </q-side-link>
<q-side-link item to="/user/call-forward/after-hours"> <q-side-link
<q-item-side icon="watch later"/> item
<q-item-main :label="$t('navigation.callForward.afterHours')"/> to="/user/call-forward/after-hours"
>
<q-item-side icon="watch later" />
<q-item-main :label="$t('navigation.callForward.afterHours')" />
</q-side-link> </q-side-link>
</q-collapsible> </q-collapsible>
<q-collapsible :opened="isCallBlocking" intend icon="fa-ban" <q-collapsible
:label="$t('navigation.callBlocking.title')" :opened="isCallBlocking"
:sublabel="$t('navigation.callBlocking.subTitle')"> intend icon="fa-ban"
<q-side-link item to="/user/call-blocking/incoming"> :label="$t('navigation.callBlocking.title')"
<q-item-side icon="call received"/> :sublabel="$t('navigation.callBlocking.subTitle')"
<q-item-main :label="$t('navigation.callBlocking.incoming')"/> >
<q-side-link
item
to="/user/call-blocking/incoming"
>
<q-item-side icon="call received" />
<q-item-main :label="$t('navigation.callBlocking.incoming')" />
</q-side-link> </q-side-link>
<q-side-link item to="/user/call-blocking/outgoing"> <q-side-link
<q-item-side icon="call made"/> item
<q-item-main :label="$t('navigation.callBlocking.outgoing')"/> to="/user/call-blocking/outgoing"
>
<q-item-side icon="call made" />
<q-item-main :label="$t('navigation.callBlocking.outgoing')" />
</q-side-link> </q-side-link>
<q-side-link item to="/user/call-blocking/privacy"> <q-side-link
<q-item-side icon="fa-user-secret"/> item
<q-item-main :label="$t('navigation.callBlocking.privacy')"/> to="/user/call-blocking/privacy"
>
<q-item-side icon="fa-user-secret" />
<q-item-main :label="$t('navigation.callBlocking.privacy')" />
</q-side-link> </q-side-link>
</q-collapsible> </q-collapsible>
<q-side-link item to="/user/reminder"> <q-side-link
item
to="/user/reminder"
>
<q-item-side icon="fa-bell"/> <q-item-side icon="fa-bell"/>
<q-item-main <q-item-main
label="Reminder" label="Reminder"
sublabel="Set your personal alarm"/> sublabel="Set your personal alarm"
/>
</q-side-link> </q-side-link>
<q-collapsible v-if="isPbxAdmin" :opened="isPbxConfiguration" intend icon="fa-gear" <q-collapsible
:label="$t('navigation.pbxConfiguration.title')" v-if="isPbxAdmin"
:sublabel="$t('navigation.pbxConfiguration.subTitle')"> :opened="isPbxConfiguration"
<q-side-link item to="/user/pbx-configuration/groups"> intend
icon="fa-gear"
:label="$t('navigation.pbxConfiguration.title')"
:sublabel="$t('navigation.pbxConfiguration.subTitle')"
>
<q-side-link
item
to="/user/pbx-configuration/groups"
>
<q-item-side icon="group"/> <q-item-side icon="group"/>
<q-item-main :label="$t('navigation.pbxConfiguration.groups')"/> <q-item-main :label="$t('navigation.pbxConfiguration.groups')" />
</q-side-link> </q-side-link>
<q-side-link item to="/user/pbx-configuration/seats"> <q-side-link
item
to="/user/pbx-configuration/seats"
>
<q-item-side icon="person"/> <q-item-side icon="person"/>
<q-item-main :label="$t('navigation.pbxConfiguration.seats')"/> <q-item-main :label="$t('navigation.pbxConfiguration.seats')" />
</q-side-link> </q-side-link>
<q-side-link item to="/user/pbx-configuration/devices"> <q-side-link
item
to="/user/pbx-configuration/devices"
>
<q-item-side icon="fa-fax"/> <q-item-side icon="fa-fax"/>
<q-item-main :label="$t('navigation.pbxConfiguration.devices')"/> <q-item-main :label="$t('navigation.pbxConfiguration.devices')" />
</q-side-link> </q-side-link>
</q-collapsible> </q-collapsible>
</q-list> </q-list>
<router-view /> <router-view />
<csc-call ref="cscCall" slot="right" @close="closeCall()" @fullscreen="toggleFullscreen()" <csc-call
:fullscreen="isFullscreenEnabled" region="DE" /> ref="cscCall"
slot="right"
@close="closeCall()"
@fullscreen="toggleFullscreen()"
:fullscreen="isFullscreenEnabled"
region="DE"
/>
<q-window-resize-observable @resize="onWindowResize" /> <q-window-resize-observable @resize="onWindowResize" />
<csc-send-fax ref="sendFax" /> <csc-send-fax ref="sendFax" />
</q-layout> </q-layout>
@ -140,12 +264,7 @@
QItemSide, QItemSide,
QItemMain, QItemMain,
QPopover, QPopover,
QFab,
QFabAction,
QFixedPosition,
QTooltip,
QSideLink, QSideLink,
QTransition,
QCollapsible, QCollapsible,
Platform, Platform,
QWindowResizeObservable QWindowResizeObservable
@ -175,12 +294,7 @@
QItemSide, QItemSide,
QItemMain, QItemMain,
QPopover, QPopover,
QFab,
QFabAction,
QFixedPosition,
QTooltip,
QSideLink, QSideLink,
QTransition,
QCollapsible, QCollapsible,
CscCall, CscCall,
QWindowResizeObservable, QWindowResizeObservable,

@ -57,7 +57,8 @@ export default {
}, },
hasFaxCapability(state) { hasFaxCapability(state) {
return state.capabilities !== null && return state.capabilities !== null &&
state.capabilities.faxserver === true; state.capabilities.faxserver &&
state.capabilities.faxactive;
}, },
hasRtcEngineCapability(state) { hasRtcEngineCapability(state) {
return state.capabilities !== null && _.has(state.capabilities, 'rtcengine'); return state.capabilities !== null && _.has(state.capabilities, 'rtcengine');
@ -149,12 +150,13 @@ export default {
state.userDataRequesting = false; state.userDataRequesting = false;
state.userDataSucceeded = false; state.userDataSucceeded = false;
state.userDataError = null; state.userDataError = null;
} },
}, },
actions: { actions: {
login(context, options) { login(context, options) {
context.commit('loginRequesting'); context.commit('loginRequesting');
login(options.username, options.password).then((result)=>{ login(options.username, options.password).then((result) => {
localStorage.setItem('jwt', result.jwt); localStorage.setItem('jwt', result.jwt);
localStorage.setItem('subscriberId', result.subscriberId); localStorage.setItem('subscriberId', result.subscriberId);
context.commit('loginSucceeded', { context.commit('loginSucceeded', {
@ -172,10 +174,14 @@ export default {
}, },
initUser(context) { initUser(context) {
context.commit('userDataRequesting'); context.commit('userDataRequesting');
getUserData(localStorage.getItem('subscriberId')).then((result)=>{ getUserData(localStorage.getItem('subscriberId')).then((result) => {
let capabilities = Object.assign(
{ faxactive: result.faxactive },
result.capabilities
);
context.commit('userDataSucceeded', { context.commit('userDataSucceeded', {
subscriber: result.subscriber, subscriber: result.subscriber,
capabilities: result.capabilities capabilities: capabilities
}); });
if(_.isNumber(context.getters.jwtTTL)) { if(_.isNumber(context.getters.jwtTTL)) {
setTimeout(()=>{ setTimeout(()=>{

Loading…
Cancel
Save