* 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
* Conditionally show the buy numbers action for groups
* Conditionally show the buy numbers action for users
* Conditionally show the buy numbers action for strategy
* 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.