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.
First, properly "use" the Deflate module to import the Encoder stuff.
Second, disable Transport Encoding middleware entirely, as with "chunked"
responses sent by the API an LWP::UserAgent client is unable to properly
decode the response, resulting in broken binary answers.
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.
Don't delete voip_numbers (which was forgotten if the status
got set to terminated anyways), rather than free them by
undef'ing the subscriber_id and reseller_id.
Don't try to insert a number into billing.voip_numbers directly,
rather than using the update_subscriber_numbers helper, which
handles the re-using of free numbers.
If a sound set is contract default and you create another default one,
the old gets non-default.
Properly handle contract default setting also when editing sound sets.
And while at it, set np-display as outbound-from-display-name dom-pref
when creating a PBX domain.
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.
On one hand, dont allow (peering,reseller)-contracts to
be created with a wrong contact (which has a reseller id).
On the other hand, dont preselect wrong contacts in the first
place (from created_objects)
When the reseller has a wrong contract assigned to
him, this contract is not shown because it has already
been filtered out in the Contract controller. In favor
of usability now show it anyway.
Also only present correct contracts on edit/create
resellers in the first place.
See (Mantis:3855#c25797)
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.
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.
Now also handle alias numbers with the outsourced subroutine
update_subscriber_numbers.
Plus remove some leftovers which are already handled by
this sub.
Actually use update_subscriber_numbers when updating a subscriber
and not only when creating one. Also handle all neccessary side effects.
Now we can switch our primary number to a number which has been
inactive (that is: did not belong to a subscriber) without an update error.
Outsource the handling of the primary number from
the subscriber controller to a util sub called
update_subscriber_numbers.
It also takes care to reuse a number that has
subscriber_id set to NULL which caused the original
problem in the ticket.
Postcodes can be alphanumeric in certain countries.
Avoid fault when editing a contact without reseller
(e.g. reseller/peer contact). You still can't save it without
setting a reseller (which might not be what we want).
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.
If a sound set has a contract_id, only show pbx group (consider it
being a customer sound set).
If it only has a reseller_id, show everything else except pbx group
(consider it being a system sound set).
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.
The preferences rewrite_rule_sets, ncos_levels, and sound_sets
on a domain should be restricted to ones, that have the same reseller
as the domain itself.
In addition we have to make sure, the preference view does not die,
if an invalid preference had already been selected, for example when
the respective *set/*level had been deleted or had been one, with a wrong
reseller, because of this bug, we just fixed.
Mantis: 4127
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
Sip diagram no longer have hardcoded parts LB, PROXY, APP, SBC.
The componnets order on diagram exactly the same as
order in call, usually it is "UA1->LB->PROXY->SBC->UA2...->UAx".