Note: to test it you can add some JS code with translations in commented block. That translation should not apper in en.json file if you execute "yarn run i18n:extract" command
Change-Id: I79f6a8358f3a52578b58044eb02169aaccf62123
- If token is valid the related user is logged in automatically
- Existing user (JWT) in the same browser context gets overwritten
- If token is invalid user lands on login page
- Token is removed from URL after it was processed
Change-Id: Ied1266178281bd10420594ceca3cbd4b84e1490d
Steps to reproduce:
* open broser settings and set any language which is not supported by CSC yet. You can chech that it was applied by executing "navigator.language" in the browser console.
* clean session storage for the CSC
* refresh the page.
** result before the fix: language selector are not displayed
** Expected result: language selector is present and language set to Englist (because it is defined as default language in CSC)
Change-Id: I2d53e649e14e3d82e2a5c1be4f99168971cd258c
NOTE
Affected routes/modules:
- /call-blocking/incoming by 'block_in_clir', 'block_in_mode', 'block_in_list'
- /call-blocking/outgoing by 'block_out_mode', 'block_out_list'
- /call-blocking/privacy by 'clir'
- /call-settings by 'music_on_hold', 'language'
- /pbx-settings by 'clir_intrapbx'
When the controlling profile attribute(s) are all unchecked, the module should disappear from CSC main menu and the route should not be reachable.
For AR, in AUI you need to create a Subscriber Profile with at least one Profile, and assign the newly created profile to the subscriber via Details > Master Data.
Change-Id: Idadcc096643fe58419682042814d3508c015b464
AC:
Can see only used translation keys in en.json
Can see unused Vue.js components removed
Note: here you can see bunch of removed files, all of them were part of unsued routes and were belong to deprecated versions of CallForwarding UI implementation. It was a preparation step to re-collect all used translation keys by i18n:extract tool.
Change-Id: I100896ed1791a766aaf1dbd0e95d61e351b65935
TAC:
Parallelise requests in the user load function which do not depend on each other
Note: it can be optimized better if we lazyload RTCengine and initialize it in a lazy way. But it should be implemented as a separate ticket.
Change-Id: I911cd29b880ab8027b341d7953c6c8337390e19b
AC:
Can click on a main menu point to open Subscriber management
Can see a page opening and loading the page from v1 within v2
Note, to test it locally:
1. you need to create the "quasar.conf.dev.js" file with content like
module.exports = {
public: '',
publicPath: '/v2/',
proxyAPI2localhost: true,
proxyAPIFromURL: 'https://dev-web3-trunk.mgm.sipwise.com'
}
2. "src/config.js" should have
baseHttpUrl: '',
3. to login into system you have to use "username@domain" login !!!
Change-Id: I3af7caeb242a52e573d87c50fe05c9462f95bfb3
- TT#128156 Add QR-Code button to the header
- TT#128157 Add QR-Code render library
- TT#128158 Implement QR-Code generation
- TT#129205 Render QR-Code in the popup
- TT#129224 Create store test and api test (including endpoint mockup)
NOTE
You need to enable sip_phone.show_qr_csc in /etc/ngcp-config/config.yml of your environment to be able to see the QR code icon
Change-Id: Ifa065ef057549696387026c5a62cf0f5297ffb05
Historically the i18n label 'English' is not really a languare but
a label to search the localisation name, which should be 'Русский' for Russian.
Change-Id: I404a06a90c582f999d0226e8d6fd6882f741f7b4
Fixed:
* translations for the first item in main menu "Start new call"
* fixed not translated page titles and back button in browser history
* fixed route for 404 page
* fixed intermittent issues with history by switching to Meta plugin instead of direc "document.title" call (bug was next: sometimes you can see current page in the history list as a previous route). It's the same solution that we have in AUI
Change-Id: Iea95e11911a76a5778fefe8320fc39f1934f8a6d
Add new translations to French.
Untranslated strings are skipped now (instead of being kept with empty
values).
Change-Id: If306e414fdf873d494718cb96f22dad5e798e04f
Primary color: Interactive elements (Buttons, MenuItems, Icons, etc. ...)
Secondary color: Background
Important: The color scheme is dark, therefore the primary
colour must be a light color and the secondary must be darker one.
Change-Id: Id499930dd56757416ec027cb36adfe0aeb31e74d
TT#124407 SubscriberProfiles - Show all features if no SubscriberProfile and no SubscriberProfileSet is set
Change-Id: Ibfa3ae28ec40fd1b0a7221ed77e903884d6907cd
NOTE
- You need to install backend PPA if not yet merged ngcp-ppa gerrit_TT122001_review49995
- For AR testing the feature, in adminUI you have to:
1. create a Subscriber profile set
2. add two profiles, one with reminder attribute checked
3. go to Subscriber > Details > Master Data > Edit and select the newly created profileset and the profile with Reminder attribute checked
4. login with the edited subscriber and check that you are able to access Reminder module either from left menu and via url
5. change the created subscriber profile set selecting the second profile (the one without reminder attribute)
6. refresh CSC and check if Reminder is gone in left menu, and if trying to access the route via url you are redirected to /
7. try to unassign the profile set from the subscriber, reload CSC and check that scenario of previous point happens
Change-Id: I6a09e6764a8a1cd9abd31ad7cb3d1df11d1b5953
- TT#123301 If file is loaded once, the file must not be refetched from the server
- TT#123300 Loads the audio file not before the user has clicked the play button
- TT#123302 Make sure not breaking all other player integrations
Change-Id: Ieb37bea2f9ca648e12afffe9f908743319416da4
AC:
Can see a list of SubscriberRegistrations of the logged in Subscriber
Can browse the list by using a pagination
Can sort the columns
Change-Id: Ia9fdfe0712627ba4780fcb46b03708d6444761b5
- TT#118754 Create new menu point under PBXConfiguration + new page + new route
- TT#118755 Render a list of all slots of all Subscribers (Pilot, Seats, Groups)
- TT#118756 Load Subscriber (Pilot, Seats, Groups) name for each slot in the list
- TT#118757 Implement AddForm to be able to add a new AA-Slot
- TT#118758 Implement Deletion for a AA-Slot including a confirmation Dialog
- TT#118765 Implement EditForm to be able to edit the destination of an existing AA-Slot
NOTES
- In order to test the feature you need to create a Customer with Product = Cloud PBX Account, and at least one subscriber which you need to login into CSC.
- There are a couple of components which have been created and not used due tue specs revision, but left in place for future possible utilisation:
- Sorting by subscriber id and name has been removed as it is not supported by the endpoint
src/components/form/CscSelectLazy.vue
src/components/CscDataTableEditSelect.vue
Change-Id: Iec29baecfa75f3c818b9deb945625a1bf977ca88
- TT#120745 Integrate caller and callee input in CallRecording list view
- TT#120743 Adjust data fetching part
- TT#120741 Specify UX flow
Change-Id: I86796b9e116628bef0379a09f51aa190d0fbafd8
- TT#120738 Integrate caller and callee input in CallRecording list view
- TT#120737 Adjust data fetching part
- TT#120736 Specify UX flow
Change-Id: I94e579c5f01c628ea42d9bd99225d02a68b5f234
- Integrate date range input in CallRecording list view
- Adjust data fetching part
- Specify UX flow
Change-Id: I666aaa397a09ec9a5c2c63e76485e7fc4a797a46
- TT#115519 Create separate page and route "Recordings" under "Call Settings"
- TT#115520 Integrate and configure QTable
- TT#115521 Implement vuex actions, mutations and getters
- TT#115522 Implement expanded section to render Streams meta data
NOTE #1: for populating recording table, please follow these instructions https://sipwise.atlassian.net/wiki/spaces/DEV/pages/1105494098/Recorded+calls+on+dev+environment
NOTE #2: /callrecordingstreams endpoint needs to be fixed (TT#118600 ); in the meantime as workaround to be able to fetch streams you need to go to /usr/share/perl5/NGCP/Panel/Controller/API/CallRecordingStreams.pm on your VM and modify line 30, change 'call' to 'me.call', then execute systemctl restart ngcp-panel
Change-Id: Iac102ef7449cf7621166f2492cd8b200005768e1
AC:
Can see the custom primary and secondary color if it is set
Can see the standard colours if not set
Change-Id: Iac09886d1442c145d448e1d0431bf37f1b409f03
AC:
Can see all indentations in SFC, JS, CSS, HTML, JSON-Files as Spaces and not as Tabs
Can see the indentations configured in the corresponding .editorconfig
Can see the .eslintrc adjusted according to the new indentation
Can see 4 Spaces instead of Tabs as indentation
Modify "i18n:extract" tool configuration to use 4 spaces
Change-Id: I53cbda0ed3d9697d15beac7ab7f4ae675b33cba2
AC:
Can see the data converted properly after saving
Can see the data rendered properly after fetching it again
Change-Id: I98259176b0dcbcfd76030305905e4e8c454df004
The separating lines created by q-separator are not visible anymore since the latest Quasar Upgrade.
AC:
Can see the lines again
Change-Id: Iaecb457fb215209f1e727b1877816cf3da4cc8fe
AC:
Can see "Office Hours"-Condition working properly according to the Kamailio time periods
Can save and see the same periods after loaded the data again
In addition:
* added logic to automatic detecion and seting "Same Time..." checkbox state based on the time ranges data in the timeset instead of timeset name
* added time ranges validation
* reproduced notification about invalid timeset which was in the old UI
* fixed popup layout to support long list of time ranges
Change-Id: Ic3a7b75a1d47c576beece660ca3fa56b9cc5b386
AC:
Can transform human readable time periods [Weekday, StartHour, StartMinute, EndHour, EndMinute] to the Perl based ( function toKamailioPeriods(arrOfHumanReadablePeriods))
Can transform Perl based time periods to human readable ones [Weekday, StartHour, StartMinute, EndHour, EndMinute]
Can see the two functions in a new separate file
Change-Id: I6559fcf1639487b00e9e442a7d6e97907f1c9af5
AC:
Can see the keys replaced by the actual english translation in the code
Can see the language files, including the english one, using the english translation as keys
Can see no more nested structure but flat a one only
Change-Id: I3c3fc18ff91d972cb592c8cab43b66da16193a1c
AC:
If not already exists:
Can see a separate main menu item "Fax Settings"
Can click the separate main menu item and land on a page "Fax Settings" (route=/user/fax-settings)
Can see settings if the feature enabled
Can decide either to use SecretKey or ACL to manage authentication
Can set a custom secret key/token
Can set the renew interval (never, daily, weekly, monthly)
Can see/read the "Last Secret Key Modify Time"
Can add email addresses to get notified about expired key (secret_renew_notify)
Can remove email addresses
Can add ACL Rule (email, ip, destination, use-regexp flag)
Can edit ACL Rule (email, ip, destination, use-regexp flag)
Can remove ACL Rule
Change-Id: I6bc25ab2f73d0dfae3fab224b11396ecdd17ab39
AC
Can select a language from a list of given languages
Can persist the preferred language
Can reset the language to "Domain default"
Change-Id: Ic1824a91b5a04e2b7ddb2c2ec4a89712e278ca2f
AC:
Can see the preference Music-on-hold in the new main page "Call Settings"
Can toggle the preference Music-on-hold
Change-Id: Id725dc65fc08b6b865c69ff035bc3e343e4a7651
AC:
Can add forwarding
Can alter forwarding
Can remove forwarding
Can enable forwarding
Can disable forwarding
Can enable that primary number rings
Can disable that primary number rings
Can forward to Number
Can forward to Voicebox
Can forward to Fax2Mail
Can forward to ManagerSecretary
Can forward to Conference
Can create SourceSet
Can assign number to SourceSet
Can remove number from SourceSet
Can change name of the SourceSet
Can search for existing SourceSets
Can assign an existing SourceSet
Can assign TimeSet (Date)
Can delete TimeSet (Date)
Can assign TimeSet (Date range)
Can delete TimeSet (Date range)
Can assign TimeSet (Weekdays)
Can delete TimeSet (Weekdays)
Can assign TimeSet (Office Hours)
Can delete TimeSet (Office Hours)
Change-Id: If5e5267e229a20947e0278212f59349d9e2eb7be
TT#99564 CSC: As a Customer, I want to be the PBXExtension validated according to the defined range
AC:
Can see a short text/hint under the PBXExtension input field, that shows the PBXExtension range in a human readable way
Can see an error if I try to input a PBXExtension that is out of range
Can input any value in case no range is set
Can see a different message wether min or max only are set
* Enable the extension range on AUI
1. install ngcp-ppa -k gerrit_fmates_ext_range on your dev environment
2. in AUI go to Subscriber's customer->customer preferences->cloud pbx
Change-Id: Ia97cd3049bfed68e67317aceaf26f0d304496b5b
AC:
Can see a separate main menu item "Fax Settings"
Can click the separate main menu item and land on a page "Fax Settings" (route=/user/fax-settings)
Can enable/disable the feature
Can change the name in fax header for outgoing fax
Can add a new Destination (email, file type, outgoing, incoming, reports)
Can edit a Destination (email, file type, outgoing, incoming, reports)
Can remove a Destination
Can toggle T38 (Fax over Internet)
Can toggle ECM (Error Correction Mode)
In addition there were changed "CscInputSavable" and "CscListMenuItem" components to provide better "disable state" possibility.
Change-Id: I777dd718a6e676acd72f45c175296ce767449469
AC:
Can select "and Office Hours are" as additional menu item from the Condition Menu of a forwarding group
Can open a popup containing the "Office Hours" controls
Can toggle whether the times for each weekday are the same or not
Can enable/disable specific weekdays, if times are all the same
Can manage times for each day separately, if times are not supposed to be the same
Can add multiple periods for all selected or a specific weekday
Can add a period consisting of start- and end-time
Can remove a period
Can cancel the "Office Hours" popup
Can save the state of the "Office Hours" popup
Can see the "Office Hours" as title of the forwarding group
Can click the "Office Hours" title to open and configure the "Office Hours" again
Change-Id: Id60d2e6f9032102e260570a2f6bb347049acd251
AC:
Can input PBXSeats, PBXGroups or PBXPilots name in the search input
Can see a list of possible PBXSeat, PBXGroup or PBXPilot according to the search input
Can select PBXSeat, PBXGroup or PBXPilot from the list to apply the search
Change-Id: Id97cf90b0a5fb62bc2049f73daf98d811fb4583e
AC:
Can filter by extension
Can filter by Username (Seat assigned as Private Line)
Can select filter criteria from criteria selection
Can see the right input component according to this criteria
Change-Id: I6f35098854a866fe2b7de68d17570582dc693340
AC:
Can manage loading states without implementing boilerplate store code
Can use the Vue.$wait plugin in the context of a vue component
Can start a loading context with $wait.start('loading-context')
Can check the loading state of a context with $wait.is('loading-context')
Can end a loading context with $wait.end('loading-context')
Sources:
https://github.com/f/vue-wait
Change-Id: I4318729e5193bc362b4f13186d3f2f16dac90e8b
AC:
Can filter by display_name
Can filter by extension
Can filter by primary_number
Can filter by alias_number
Can filter the same way as it is possible for PBXSeats
Can navigate through filtered items via pagination
- in addition there were added "data-cy" attributes to simplify selectors for E2E tools like Cypress.
Change-Id: Iba3919a198c2464982502d529b54182bc266bb01
- Can click password recovery button/link
- Can request recovery mail by input mail address and confirm
- Can set new password after forwarded from recovery mail
For AR:
- click on Forgot Password in CSC login screen
- after submitting, login into mysql in your development env and execute
'select * from billing.password_resets;'
- copy the most recent uuid
- go to localhost:8080/#/recoverpassword?token=uuid and
proceed with password reset
Change-Id: Iff10165f98daa65a0ac85ec55c5d62926513fe0d
The intention here is to make it easier to select specific elements in the DOM while creating E2E-Test based on selenium.
Change-Id: I21bb792b580359eb43e0c2b4cd1dc173487ebd91
- Can i select a filter criteria
- Can i input filter according to filter criteria
- Can i see model selection as input if filter criterial is device model
- Can i see text input if filter criteria is not device model
- Can i trigger the search
- Can i see spinner
- Can i see a list reloaded after triggering the filter
In general align the filtering User Experience to PBXSeats. Important is that we have always 3 main elements (Criteria selection, Filter input, Current/Active filters) only.
Change-Id: Ibbe43e543a173b6e8c27bccb5790007d12788d4b