* 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
When creating groups on SmartPBX, the app automatically generates
baseGroup/userGroup callflows depending on which users are part of the
group. On the other end, the Callflows app only creates a group without
any callflow.
Since SmartPBX is listing all groups, an error was raised when trying to
view the details of group created through the Callflows app since an
associated callflow does not exist.
* Allow toggle via config between two caller id selection methods
This only affects caller ID for users. If
monster.config.whitelabel.allowAnyOwnedNumberAsCallerID is falsy, the
old way of assigning caller ID will be activated i.e. users can only
have their caller ID set to numbers assigned to them, otherwise the main
number is used. If monster.config.whitelabel.allowAnyOwnedNumberAsCallerID
is truthy, the user can also have any number owned by the account used as
their caller ID.
* Add automatic eslint fixes
* Eslint fix: make mixed user of && and || tidier