TT#83201 As a Customer, I want to see the RTCEngine related features if capability is enabled

Change-Id: Ice15447cf4b80122c0f241a884c7efcc3cc2739e
changes/00/41100/2
Hans-Peter Herzog 5 years ago
parent 3885a6abb5
commit 4f77980f65

@ -39,10 +39,10 @@ export function getUserData(id) {
getCapabilities(id), getCapabilities(id),
getFaxServerSettingsById(id) getFaxServerSettingsById(id)
]).then((results)=>{ ]).then((results)=>{
results[1].faxactive = results[2]
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);
@ -75,6 +75,8 @@ export function getCapabilities() {
capabilities[capability.name] = capability.enabled; capabilities[capability.name] = capability.enabled;
}); });
} }
// Todo: Remove if capability is available in the API
capabilities.csc_rtcengine_ui = true
resolve(capabilities); resolve(capabilities);
}).catch((err)=>{ }).catch((err)=>{
reject(err); reject(err);

@ -191,7 +191,8 @@
enableIncomingCallNotifications enableIncomingCallNotifications
} from '../../helpers/ui' } from '../../helpers/ui'
import { import {
mapGetters mapGetters,
mapActions
} from 'vuex' } from 'vuex'
import CscCall from '../call/CscCall' import CscCall from '../call/CscCall'
import CscSendFax from '../CscSendFax' import CscSendFax from '../CscSendFax'
@ -315,7 +316,8 @@
'userDataSucceeded', 'userDataSucceeded',
'changeSessionLocaleState', 'changeSessionLocaleState',
'locale', 'locale',
'languageLabels' 'languageLabels',
'isRtcEngineUiVisible'
]), ]),
...mapGetters('communication', [ ...mapGetters('communication', [
'createFaxState', 'createFaxState',
@ -374,6 +376,9 @@
} }
}, },
methods: { methods: {
...mapActions('user', [
'forwardHome'
]),
showSendFax() { showSendFax() {
this.$refs.sendFax.showModal(); this.$refs.sendFax.showModal();
}, },
@ -480,15 +485,10 @@
} }
}, },
isCallEnabled(value) { isCallEnabled(value) {
if(value) { if(value && this.isRtcEngineUiVisible) {
showToast(this.$i18n.t('toasts.callAvailable')); showToast(this.$i18n.t('toasts.callAvailable'));
} }
}, },
isConferencingEnabled(value) {
if(value) {
// showToast(this.$i18n.t('toasts.conferencingAvailable'));
}
},
createFaxState(state) { createFaxState(state) {
if (state === 'requesting') { if (state === 'requesting') {
startLoading(); startLoading();
@ -503,7 +503,7 @@
this.hideSendFax(); this.hideSendFax();
} }
}, },
$route () { $route (route) {
if(!this.isHome) { if(!this.isHome) {
this.$store.commit('call/minimize'); this.$store.commit('call/minimize');
} }
@ -513,6 +513,9 @@
}); });
} }
window.scrollTo(0, 0); window.scrollTo(0, 0);
if (route.path === '/user/home') {
this.forwardHome()
}
}, },
changeSessionLocaleState(state) { changeSessionLocaleState(state) {
if (state === 'succeeded') { if (state === 'succeeded') {

@ -6,6 +6,7 @@
inset-delimiter inset-delimiter
> >
<q-side-link <q-side-link
v-if="isRtcEngineUiVisible"
item item
to="/user/home" to="/user/home"
> >
@ -18,6 +19,7 @@
/> />
</q-side-link> </q-side-link>
<q-side-link <q-side-link
v-if="isRtcEngineUiVisible"
item item
to="/conference" to="/conference"
> >
@ -230,6 +232,9 @@
</template> </template>
<script> <script>
import {
mapGetters
} from 'vuex'
import { import {
QList, QList,
QSideLink, QSideLink,
@ -256,7 +261,12 @@
'isCallBlocking', 'isCallBlocking',
'isPbxAdmin', 'isPbxAdmin',
'isPbxConfiguration' 'isPbxConfiguration'
] ],
computed: {
...mapGetters('user', [
'isRtcEngineUiVisible'
])
}
} }
</script> </script>

@ -1,5 +1,6 @@
'use strict'; 'use strict';
import router from '../router'
import Vue from 'vue'; import Vue from 'vue';
import { import {
i18n i18n
@ -88,6 +89,9 @@ export default {
hasRtcEngineCapabilityEnabled(state, getters) { hasRtcEngineCapabilityEnabled(state, getters) {
return getters.hasRtcEngineCapability && state.capabilities.rtcengine === true; return getters.hasRtcEngineCapability && state.capabilities.rtcengine === true;
}, },
isRtcEngineUiVisible(state) {
return (state.capabilities !== null && state.capabilities.csc_rtcengine_ui === true);
},
getSubscriberId(state) { getSubscriberId(state) {
return state.subscriberId; return state.subscriberId;
}, },
@ -253,37 +257,38 @@ export default {
localStorage.removeItem('subscriberId'); localStorage.removeItem('subscriberId');
document.location.href = document.location.pathname; document.location.href = document.location.pathname;
}, },
initUser(context) { async initUser(context) {
if(!context.getters.userDataSucceeded) { if(!context.getters.userDataSucceeded) {
context.commit('userDataRequesting'); try {
getUserData(localStorage.getItem('subscriberId')).then((result) => { context.commit('userDataRequesting');
let capabilities = Object.assign({ const userData = await getUserData(localStorage.getItem('subscriberId'))
faxactive: result.faxactive context.commit('userDataSucceeded', userData);
},
result.capabilities
);
context.commit('userDataSucceeded', {
subscriber: result.subscriber,
capabilities: capabilities
});
if(_.isNumber(context.getters.jwtTTL)) { if(_.isNumber(context.getters.jwtTTL)) {
setTimeout(()=>{ setTimeout(()=>{
context.dispatch('logout'); context.dispatch('logout');
}, context.getters.jwtTTL * 1000); }, context.getters.jwtTTL * 1000);
} }
if(context.getters.hasRtcEngineCapabilityEnabled) { if(context.getters.hasRtcEngineCapabilityEnabled && context.getters.isRtcEngineUiVisible) {
context.commit('rtcEngineInitRequesting'); context.commit('rtcEngineInitRequesting');
Vue.$rtcEngine.setNgcpApiJwt(localStorage.getItem('jwt')); Vue.$rtcEngine.setNgcpApiJwt(localStorage.getItem('jwt'));
Vue.$rtcEngine.initialize().then(()=>{ try {
await Vue.$rtcEngine.initialize()
context.commit('rtcEngineInitSucceeded'); context.commit('rtcEngineInitSucceeded');
}).catch((err)=>{ }
catch (err) {
console.debug(err);
context.commit('rtcEngineInitFailed', err.message); context.commit('rtcEngineInitFailed', err.message);
}); }
} }
}).catch((err)=>{ await context.dispatch('forwardHome')
}
catch(err) {
console.debug(err); console.debug(err);
context.dispatch('logout'); await context.dispatch('logout');
}); }
}
else {
await context.dispatch('forwardHome')
} }
}, },
changeSessionLanguage(context, locale) { changeSessionLanguage(context, locale) {
@ -306,6 +311,11 @@ export default {
}).catch((err)=>{ }).catch((err)=>{
context.commit('userPasswordFailed', err.message); context.commit('userPasswordFailed', err.message);
}); });
},
async forwardHome(context) {
if (context.rootState.route.path === '/user/home' && !context.getters.isRtcEngineUiVisible) {
await router.push({path:'/user/conversations'})
}
} }
} }
}; };

Loading…
Cancel
Save