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

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

Loading…
Cancel
Save