MT#6827 Deprecate linerange_num field.

In hind-sight, this field appears like an ugly hack to determine
the proper line range in the aaData array fetched via ajax. However,
we already have the correct range_id, and using the index of the aaData
has so many possible side effects to break everything, that I'm wondering
what I was thinking when adding it :p
ipeshinskaya/InvoiceTemplate5
Andreas Granig 12 years ago
parent 60de7de4a7
commit df9d103893

@ -1170,12 +1170,11 @@ sub pbx_device_create :Chained('base') :PathPart('pbx/device/create') :Args(0) {
$err = 1;
last;
}
my ($range_id, $range_num, $key_num) = split /\./, $line->field('line')->value;
my ($range_id, $key_num) = split /\./, $line->field('line')->value;
my $type = $line->field('type')->value;
$fdev->autoprov_field_device_lines->create({
subscriber_id => $prov_subscriber->id,
linerange_id => $range_id,
linerange_num => $range_num,
key_num => $key_num,
line_type => $type,
});
@ -1244,7 +1243,7 @@ sub pbx_device_edit :Chained('pbx_device_base') :PathPart('edit') :Args(0) {
foreach my $line($c->stash->{pbx_device}->autoprov_field_device_lines->all) {
push @lines, {
subscriber_id => $line->subscriber_id,
line => $line->linerange_id . '.' . $line->linerange_num . '.' . $line->key_num,
line => $line->linerange_id . '.' . $line->key_num,
type => $line->line_type,
};
}
@ -1294,12 +1293,11 @@ sub pbx_device_edit :Chained('pbx_device_base') :PathPart('edit') :Args(0) {
$err = 1;
last;
}
my ($range_id, $range_num, $key_num) = split /\./, $line->field('line')->value;
my ($range_id, $key_num) = split /\./, $line->field('line')->value;
my $type = $line->field('type')->value;
$fdev->autoprov_field_device_lines->create({
subscriber_id => $prov_subscriber->id,
linerange_id => $range_id,
linerange_num => $range_num,
key_num => $key_num,
line_type => $type,
});

@ -1034,7 +1034,6 @@ sub dev_field_config :Chained('/') :PathPart('device/autoprov/config') :Args() {
password => $sub->password,
displayname => $display_name,
keynum => $line->key_num,
rangenum => $line->linerange_num,
type => $line->line_type,
};
}

@ -103,7 +103,7 @@ has_field 'line.line' => (
sub validate_line_line {
my ($self, $field) = @_;
$field->clear_errors;
unless($field->value =~ /^\d+\.\d+\.\d+$/) {
unless($field->value =~ /^\d+\.\d+$/) {
my $err_msg = 'Invalid line value';
$field->add_error($err_msg);
}

@ -25,16 +25,14 @@ sub build_lines {
return [] unless $c;
my $fdev = $c->stash->{pbx_device};
my @options = ();
my $i = 0;
foreach my $range($fdev->profile->config->device->autoprov_device_line_ranges->all) {
push @options, { label => '', value => '' };
for(my $j = 0; $j < $range->num_lines; ++$j) {
for(my $i = 0; $i < $range->num_lines; ++$i) {
push @options, {
label => $range->name . ' - Key/Line ' . $j,
value => $range->id . '.' . $i . '.' . $j,
label => $range->name . ' - Key/Line ' . $i,
value => $range->id . '.' . $i,
};
}
$i++;
}
return \@options;
}

@ -56,7 +56,7 @@ sub resource_from_item {
my $p_subs = $line->provisioning_voip_subscriber;
my $b_subs = $p_subs ? $p_subs->voip_subscriber : undef;
my $line_attr = { $line->get_inflated_columns };
foreach my $f(qw/id device_id linerange_id linerange_num/) {
foreach my $f(qw/id device_id linerange_id/) {
delete $line_attr->{$f};
}
foreach my $f(qw/key_num/) {

@ -657,7 +657,7 @@
$('#line\\.' + line_id + '\\.line').append('<option value=""></option>');
for(var j = 0; j < range.num_lines; ++j) {
$('#line\\.' + line_id + '\\.line').append('<option id="line.' + line_id + '.line.' + j + '" value="' + range.id + '.' + i + '.' + j + '">' + range.name + ' - Key/Line ' + j + '</option>');
$('#line\\.' + line_id + '\\.line').append('<option id="line.' + line_id + '.line.' + j + '" value="' + range.id + '.' + j + '">' + range.name + ' - Key/Line ' + j + '</option>');
}
}
$('#line\\.' + line_id + '\\.line').change(function(obj) {
@ -667,7 +667,6 @@
function handle_change_line(obj, active_type) {
var range_id;
var range_num;
var key_num;
var line_id = $(obj.currentTarget).attr("id").replace(/^line\.(\d+)\..+$/, "$1");
@ -675,12 +674,21 @@
$(obj.currentTarget).find('option:selected').each(function() {
console.log("selected line key ", $(this).attr('value'));
range_id = $(this).attr('value').replace(/^(\d+)\.(\d+)\.(\d+)$/, "$1");
range_num = $(this).attr('value').replace(/^(\d+)\.(\d+)\.(\d+)$/, "$2");
key_num = $(this).attr('value').replace(/^(\d+)\.(\d+)\.(\d+)$/, "$3");
range_id = $(this).attr('value').replace(/^(\d+)\.(\d+)$/, "$1");
key_num = $(this).attr('value').replace(/^(\d+)\.(\d+)$/, "$2");
console.log("+++++++ range_id=" + range_id + ", key_num=" + key_num);
});
var range = aaData[range_num];
console.log("setting line_id " + line_id + ", range for range_num " + range_num + " is ", range);
var range;
console.log("+++++++ checking ranges");
for(var i = 0; i < aaData.length; ++i) {
range = aaData[i];
console.log("+++++++ checking range_id " + range_id + " against aaData id " + range.id);
if(range.id == range_id) {
console.log("+++++++ found, range name=" + range.name);
break;
}
}
console.log("setting line_id " + line_id + ", range is ", range);
$('#line\\.' + line_id + '\\.type option').remove();
if(range && +range.can_private) { // cast to int
@ -700,7 +708,7 @@
[% ELSIF edit_flag == 1 -%]
var linekeys = {
[% FOR line IN pbx_device.autoprov_field_device_lines.all -%]
'[% line.linerange_id %].[% line.linerange_num %].[% line.key_num %]':'[% line.line_type %]'[% line == bx_device.autoprov_field_device_lines.all.last ? '' : ',' %]
'[% line.linerange_id %].[% line.key_num %]':'[% line.line_type %]'[% line == pbx_device.autoprov_field_device_lines.all.last ? '' : ',' %]
[% END -%]
};
var prof_id;

Loading…
Cancel
Save