* Flatten and use declarative style to refactor feature code creation
* Fix incorrect path to get/set feature code
* Remove unnecessary feature code defaults and callback
* feature codes configured as patterns instead of single numbers
* Update feature codes patterns
* Code style
* Verify if needed pattern is given by feature codes
* Fix wrong pattern
* Remove this
* Update add user modal to show labels instead of icons
* Fill brand field on add device section
* add device form
* Save user device
* Binding form events from single function
* Add extra button Create User and Add Device
* Code style
* Create user and device form based on mockup
* Handling form validation
* Create User and Add another button
* Revert "Remove this"
This reverts commit 7102cf9b4a.
* Styled notification email
* Use single chosen field to select device model
* improvements
* Improve form validation message
* Delete unused template
* Code style improvements
* Fix typo on lodash flatMap statement
Device family as argument
* code style improvements
* Create function to render add user modal
* Handle error on user creation to prevent form buttons state
* Render users list without auto scroll when save and new btn is clicked
* Fix device data validation
* Rename view for vm_to_email feature
* Modify feature dialog to display vmbox and vm-to-email functionalities
* Refactor save function for user's vmbox feature
* Change voicemail feature headline and title
* Create function to add main VMBox to user + other helpers
* Improve functions related to get formatted user numbers data
* Complete function to add vmbox to user
* Add function to delete user VMBox
* Remove old usersRenderVMBox code
* Extract form validation from `monster.waterfall`
* Use vmbox data from feature load function
* Get user's VMBox on feature save
* Handle VMBox feature
* Add missing self variable
* Get main user vmbox, match user list with vmboxes, and code refactor
* Code and logic fixes
* Set vm-to-email disabled if vmbox is not created for new user
* Add delete_after_notify to new voicemail box, and related TO-DOs
* Update ID and class related to vm_to_email_enabled option in vmbox view
* Reorganized new functions
* Get full main vmbox for user on feature load, and patch vmbox function
* Add parameters to JSDoc comments for patch functions
* Reduce API requests when adding vmbox to user
* Remove double check at usersGetMainCallflow
* Code fixes
* Remove translations that are no longer needed
* Use object instead of parameter list for function usersDeleteDialog
* Refactor user deletion methods, and subscribe to new user deletion event
* Remove user deletion and related unused functions
* Use common event to delete user
* Remove user deleteDialog and related data
* Rename deleteSmartUser dialog event
* revert this
* Revert "revert this"
This reverts commit b30c9c9c8d.
* Update base and ring group on group update
* Update ring and base group only if the group title was changed
* Add translations keys
Use string template instead of simple strings
Add new function for patch update
* Refactor patch update
* Improve group update
* Add reset button for incoming call handling strategy
* Delete menus and callflows for call strategy
* Fix code mistakes
* Re-create default call strategy after delete
* Add missing self variable on delete functions
* Small fixes
* Refactor code at strategyGetMainCallflows
* Refactor to use existing callflow functions
* Extract create menu API call to separate function
* Get hangup cause label from active lang
use capitalize instead of lowercase on css
* CR: remove unused statement and text display improvements
* Styling hangup cause only
* CSS indentation
* prevent cell content overflow
* Add checkbox to create vmbox on user creation form
* Use waterfall flow for user creation
* Extract user create api call to new function
* Create vmbox only if requested
* Rename view data property to create vmbox
* Fix waterfall callbacks for user creation flow
* Add translations
* Refactor code and remove vmbox from callflow
* Do not show VMBox row field if there is none for user
* Do not create VMBox at usersSmartUpdateVMBox, if user has none
* Add gittatributes to use default line ending behavior
* Apply suggestions according to code review
* Code refactor according to review
* Restructure feature popup header to handle string of different lengths
* Apply new feature popup header structure to call recording
* Apply new feature popup header structure to caller ID
* Apply new feature popup header structure to conferencing
* Apply new feature popup header structure to do not disturbe
* Apply new feature popup header structure to faxbox
* Apply new feature popup header structure to Find Me Follow Me
* Apply new feature popup header structure to Hotdesking
* Apply new feature popup header structure to Music On Hold
* Apply new feature popup header structure to Voicemail to Email
* Clean up remaining feature popup specific styling
* Apply new feature popup header structure to groups features
* Add assign to template
* Get users for the template
* Add translations
* Load in assignTo template
* Handle no owner case
* Fix translation reference
* Adhere to linter
* Clean up code
* Fix code style
* Update translation to be in devices.popupSettings
* Get user list in devicesGetEditData
* Fix templating
* Add default value to dropdown
* Remove error from listUsers call
* Rename usersData to users
* Ensure deviceData.users is not save to device
* Move users field to extra
* Move delete statements
* Move translations to popupsettings
* Conditionally show the buy numbers action for groups
* Conditionally show the buy numbers action for users
* Conditionally show the buy numbers action for strategy
* Only allow user type update if different from original
* Clean up user type assignment on user update
* Clean-up user type assignment on user creation
* Fix linting error + use lodash#oderBy to sort descendingly
* Check if service plan exists before user count increment
* See if user types are available when sorting users
* Move sub-module templates in their own `views` folder
By using `getTemplate()` we can specify which sub-module a template is
related to, enabling this behavior.
The templates names were shortened by stripping the name of their
sub-module from it since they are stored under their sub-module folder.
String templates are created using `getTemplate()` instead of
`monster.template()` that we are trying to depreciate.
* Only use `getTemplate()` for both regular and string templates