A subadmin can use the field alias_select to select any number of alias
numbers, which he is allowed to manage. If he selects one, it moves
to this subscribers alias_numbers. If he unselects one, it moves to his
own alias numbers.
We should now have working baselines for
- collections (SystemContacts)
- items (SystemContactsItem)
with support for
- collections: OPTIONS, HEAD, GET, POST
- items: OPTIONS, HEAD, GET, PUT, PATCH, DELETE
covered by according tests and with a proper API documentation.
Use /api/foo/ for collections and /api/foo/{:id} for items to easily
distinguish between them. Also, we want to use query params for limiting
the collections, e.g. /api/foo/?name={:name}&something={:else}, which in
turn returns a filtered collection again. This makes it difficult then to
fetch items via /api/foo/?id={:id}, so use /api/foo/{:id} instead.
Also move rest of common functions into API Role.
Should be reworked in a next step to use the dynamic configuration
management, but currently you'd need a PBX device for that, so keep
it static for now.
If a new contract sound set is marked as contract_default, use this
for every existing subscriber in contract_sound_set prefs if no
other set is specified yet.
If a new subscriber is created and such a sound set exists, also
use this one.
This prevents having to go over each single subscriber to assign
the contract_sound_set preference.
Only show reseller and peering contracts in the
Contracts controller. Also remove the generic create
in favour of the peering/create and reseller/create.
Customer controller now has its own terminate routine to be really
independent from the Contract controller.
Now we can expose the Contract controller in the menu.
When editing a customer, the helper.name contained a hash symbol (#).
This variable is used to form the id of the html element table, by
stripping spaces from it. Now we also strip the hash, because otherwise
at least jquery will fail to find this id.
Move error_page to notfound_page. error_page is now for internal server errors.
Introduce logging option log_crash_state, enabled by default. Crash states are
written out compressed and encoded log-file-friendly, these are useful for
debugging but take a couple dozen kilobytes of disk space each.
Don't use JE for data validation, as it adds lots of processing overhead.
Properly use Formhandler for data validation.
Catch DB errors properly.
Write basic auth test.
Render api/ content dynamically via api/root/ templates, which allows
for splitting up collection descriptions.
Update jquery-ui to include more components like accordions.
Should be reworked in a next step to use the dynamic configuration
management, but currently you'd need a PBX device for that, so keep
it static for now.
If a new contract sound set is marked as contract_default, use this
for every existing subscriber in contract_sound_set prefs if no
other set is specified yet.
If a new subscriber is created and such a sound set exists, also
use this one.
This prevents having to go over each single subscriber to assign
the contract_sound_set preference.
Only show reseller and peering contracts in the
Contracts controller. Also remove the generic create
in favour of the peering/create and reseller/create.
Customer controller now has its own terminate routine to be really
independent from the Contract controller.
Now we can expose the Contract controller in the menu.
When editing a customer, the helper.name contained a hash symbol (#).
This variable is used to form the id of the html element table, by
stripping spaces from it. Now we also strip the hash, because otherwise
at least jquery will fail to find this id.
Move error_page to notfound_page. error_page is now for internal server errors.
Introduce logging option log_crash_state, enabled by default. Crash states are
written out compressed and encoded log-file-friendly, these are useful for
debugging but take a couple dozen kilobytes of disk space each.
This reverts commit eece093fd0.
Otherwise fails with:
| Starting NGCP-Panel Webapp: ngcp_panel_fastcgi:Can't locate Convert/Ascii85.pm in your Perl library. You may need to install it
| from CPAN or another repository. Your library paths are:
| /etc/perl
| /usr/local/lib/perl/5.14.2
| /usr/local/share/perl/5.14.2
| /usr/lib/perl5
| /usr/share/perl5
| /usr/lib/perl/5.14
| /usr/share/perl/5.14
| /usr/local/lib/site_perl
| .
|
| BEGIN failed--compilation aborted at /usr/share/perl5/NGCP/Panel/Controller/Root.pm line 5.
| Compilation failed in require at /usr/share/perl5/Catalyst/Utils.pm line 308.
| Compilation failed in require at /usr/share/perl5/Module/Runtime.pm line 317.
| at /usr/share/perl5/Catalyst/ScriptRunner.pm line 50
| error ... failed!
because Convert::Ascii85 isn't available yet in our repositories,
therefore revert to fix broken trunk.
Acked-by: Andreas Granig <agranig@sipwise.com>
Git-Dch: Ignore
Move error_page to notfound_page. error_page is now for internal server errors.
Introduce logging option log_crash_state, enabled by default. Crash states are
written out compressed and encoded log-file-friendly, these are useful for
debugging but take a couple dozen kilobytes of disk space each.
This makes it possible to configure multiple lines (private, shared,
blf) and attendant console keys (blf) on a field device and generate the
proper config for it.
It does not yet support editing such a field device.
and provide a Modal showing the Detail of each.
Except the case when thedestination_set.name is called "quickset_*" and
it only has one entry.
In that case show the particular destinations of this destination set,
in order to not confuse a user who just configured a trivial cf via the simple view.
under Subscriber Preferences -> Call Forwards
Mantis: 3803, 3801