- 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
√ Can select "Name" (display_name) as criteria in the criteria selection widget (QSelect)
√ Can input the search string in an input field (QInput)
√ Can trigger the search by clicking a Search-Button (QBtn) or pressing return
√ Can see the input becoming a QChip containing the search criteria and the search string (appears bellow the search widget)
√ Can see an empty input field after triggering the search
√ Can remove a QChip
√ Can change/overwrite the search string of a chip
Change-Id: I0f155549f25b342e3661d70dd1a8d272bf02e039
√ Can see a "PBXSettings" item in menu if user is allowed to
√ Can go to separate page "PBXSettings"
√ Can toggle the setting "clir_intrapbx" by a Quasar toggle button
√ Can see a success toast for both cases (on/off)
√ Can see a spinner until the settings are loaded
Change-Id: I98a4328dbf5a23ae159009d22e3bc172306d5f62
√ Can toggle the setting "clir_intrapbx" by a Quasar toggle button
√ Can see a success toast for both cases (on/off)
Change-Id: I4c29d2cc59dade6b925403d9454bf589ef5ac674
AC:
√ Can set start date
√ Can set end date
√ Can unset start date
√ Can unset end date
√ Can see default loading indicator during filtering
Change-Id: I8588280db954d129066f9d92455fadd0b0c4689e
AC:
√ Can choose "weekdays are ..." from condition menu in each forwarding group (online, offline, busy)
√ Can click "weekdays are ..." to choose the weekdays initially
√ Can see a date weekday widget according to the screens
√ Can choose weekdays
√ Can save the chosen weekdays
√ Can cancel the process
√ Can see the changed title "... and weekdays are Monday, Friday" after saving
√ Can click the changed title to change weekdays again
√ Can remove the condition
Extra:
√ Fix conditions menu UX bugs
√ Fix conditions popover position
Change-Id: I8a5a465765b5ce204fd47c1880164f91c03b4622
√ Can choose "date range are ..." from condition menu in each forwarding group (online, offline, busy)
√ Can click "date range are ..." to choose the range initially
√ Can see a date range widget according to the screens
√ Can choose range
√ Can save the chosen range
√ Can cancel the process
√ Can see the changed title "... and date range are ..." after saving
√ Can click the changed title to change date range again
√ Can remove the condition
Change-Id: I432fa3b99f0be0abd7d16d7be48d2c2d96811f97
√ 1 - mapping, destinationset, sourceset and timeset GET endopints should be called in parallel (instead of synchronously) when possible
√ 2 - mapping, destinationset, sourceset and timeset PATCH and PUT endpoints should be called with header "return=representation" instead of "return=minimal" to allow consistency between local and persisted data without having to refetch the data every time a change is made
Change-Id: Idec6281c8fd560383e983107e78b48f5094f4dcc
√ Can choose "date is" from condition menu in each forwarding group (online, offline, busy)
√ Can click "date is ..." to set the date initially
√ Can see a date widget according to the screens
√ Can choose a date
√ Can set the date
√ Can see the changed title "... and date is Thu, Apr 13 2017"
√ Can click the changed title to set a new date again
√ Can remove the condition
Change-Id: Ia2aec66d7c8d89f2be8b471348a98db96219d204
The list looks like:
| English
| français
| Italiano
| Español
| Deutsch
Use uppercase `Français` to be consistent.
Change-Id: Ia3f1087c10d2d816c43835993e536d797d088f5c
The filter functionality for PBX Devices allows now partial matching station name and mac address.
Change-Id: I94f8d4ab8c445bb650f70d7c2db58b3acc55bea4
EXTRA:
- Main title
-- √ change wording online -> available
-- √ Add number placeholder after Primary number
-- √ if no groups exist label should be “All calls group to the primary number”
- √ When adding a sourceset to an unpersisted group, all the popovers should be in the same context,
- √ and the alert message should be within the popover (instead of yellow toast)
- √ Change buttons in the sourceset edit popover
ADD button for adding sources under the input field
CLOSE and DELETE (red + trash icon) buttons for the whole list on the same line at the bottom of the popover
- √ Prevent creation of more than one unpersisted group by alerting the user “You have to create a destination on the unsaved group”
- √ Gray out “All calls go to the primary number” on available groups when group is disabled
Cosmetic
- √ Remove bold from main title
- √ Adjust paddings for buttons in the popover
- √ Line heights within each group should be consistent
- √ Timeout popover > more width + dots
Change-Id: I1adab34f5bd921779027adacf7ff50f235ff2510
AC:
If forwarding group is not persisted yet:
√ Can click "and condition" and sees the possible conditions like "call from ..."
√ Can click a condition
√ Can see a number input to save the initial destination
√ Can see information why all this is happening
√ Can see the origin condition popup (source list, time widget) again after saving the number
Change-Id: I78c44fe000f980335b4c49480cb43c6250fbe1ce
ACs:
√ Can click a new type of forwarding group under "Add forwarding"
√ Can create a new group "If online and call from ..."
√ Can delete an existing group
√ Can add destinations as in other groups
√ Can delete destinations
√ Can edit destinations
√ Can define a list of sources by clicking the highlighted part in the title "call from ..."
√ Can see a popup after clicking "call from ..."
√ Can input a name to identify the source list, add a first number and save it
√ Can see the title "If online and call from nameOfTheSourceList" after saving the new source list initially
√ Can see the popup with the source list after clicking the title again
√ Can add numbers to that source list by clicking an add button in the popup
√ Can delete numbers from the source list by clicking a delete button
extra:
√ Adding a sourceset to an unpersisted destinationset is prevented:
√ Changed condition menu label
Change-Id: Ifaa7b9cf5e8e5785bbfe2efd9ab7acaa0497cef5
What is missing:
- loader during requests
- message on destination saved
- timeout requests on filed blur (current on value change => multiple requests)
- the form to add destinations currently shows up a the bottom of the destinationset instead as popover
- (cosmetic) + icon instead of char before ADD FORWARD label
Change-Id: I61986bcdc9f157787c1cd9d690c752b9fd44fe24
- can mute all participants at the same time by clicking a single button (#71350)
- can unmute all participants at the same time by clicking a single button (#71352)
Change-Id: Iaf40499acc23baaef797db61b714932fb561e7a0
To only test the conference store, change
describe('ConferenceModule', function(){
into
describe.only('ConferenceModule', function(){
on line 7 of t/store/conference.js
Change-Id: Iec745f5ff4512f337d9bddb2009ae55554bb8e32
- Must see a more menu at the top of the ParticipantItem (#70952)
- Must be able to mute/unmute the remote audio by opening the more menu and clicking the mute/unmute list item (#70955)
- Must see an icon that refelcts the current state in the ParticipantItem (whether muted or unmuted) (#70956)
Change-Id: Ibab4bdd9887c1a8ce4e3760c154cefae6b6caab7
- Must see a auto generated url after entering the JoinScreen (#70205)
- Must get forwarded to a auto generated conference URL, consequently the JoinScreen (#70204)
Change-Id: I3738461401b7d49ae0e0738a7e79b00eb96e9c42
- Can see the most recent joined participant as selected user (#70201)
Logic:
1. if no participant has been manually selected during the conference, the last who joins becomes selected
2. if a participant is manually selected during the conference, the logic on point 1. is bypassed (ux)
3. if the current selected participant leaves the conference, the logic on point 1. is restored
Change-Id: I5741d19d45aaa2cfb465d3545824c44ee6c67261
- selected ParticipantItem's video in fullscreen (#67702)
- placeholder icon for none existing video of the current selected participant (#67706)
- current selected ParticipantItem's name as title (#67703)
- local participant selected by default (#67704)
Change-Id: I6e2e47609adc407363be0c1636ff0ae8bd30ad38
- list of participants as column (subtask #67600)
- participant displayName added (subtask #67605)
- participants list scrollable (subtask #67601)
- self participant item on top of the list (subtask #67602)
- self participant fixed position on top of the list (subtask #67603)
- placeholder icon if video not shared by participant (subtask #67309)
- show/hear participants (subtask #67604)
Change-Id: I44836b67767d243554e674e76486681865931f84
- Navigate to a separate page to manage manager secretary configurations
- Create new configuration
- Update existing configuration by adding and removing numbers
- Remove existing configuration
Change-Id: I61a7c6ea384cd58854f96fbe2c20f26a09feef6d