summaryrefslogtreecommitdiff
path: root/httemplate/elements/tr-select-sip_server.html
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-12-28 23:27:48 -0800
committerMark Wells <mark@freeside.biz>2014-12-28 23:27:48 -0800
commite3503e19a5a6c876f410903a3946dd9f1597aa46 (patch)
tree6d361bb09fd1aa0f1d9b9578198a913a0950e955 /httemplate/elements/tr-select-sip_server.html
parentaf96802d080094c381dd06b74488adfb20396574 (diff)
voip.ms export, #31834
Diffstat (limited to 'httemplate/elements/tr-select-sip_server.html')
-rw-r--r--httemplate/elements/tr-select-sip_server.html48
1 files changed, 48 insertions, 0 deletions
diff --git a/httemplate/elements/tr-select-sip_server.html b/httemplate/elements/tr-select-sip_server.html
new file mode 100644
index 000000000..8df1b6288
--- /dev/null
+++ b/httemplate/elements/tr-select-sip_server.html
@@ -0,0 +1,48 @@
+% if ( $columnflag eq 'F' ) {
+<& fixed.html, %opt &>
+% } elsif ( $use_selector ) {
+% my $servers = $exports[0]->get_sip_servers;
+% # pretty simple selector, they're all just hostnames/IP addresses
+<& tr-select.html,
+ %opt,
+ options => $servers,
+&>
+% } else {
+<& tr-input-text.html, %opt &>
+% }
+</TR>
+
+<%init>
+
+my %opt = @_;
+my $cell_style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : '';
+
+$opt{'field'} ||= 'sip_server';
+
+#false laziness w/select-did.html
+#XXX make sure this comes through on errors too
+my $svcpart = $opt{'svcpart'}
+ || $opt{'object'}->svcpart
+ || $opt{'object'}->cust_svc->svcpart;
+
+my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } );
+die "unknown svcpart $svcpart" unless $part_svc;
+
+my $columnflag;
+my $psc = $part_svc->part_svc_column($opt{'field'});
+if ( $psc ) {
+ $columnflag = $psc->columnflag;
+}
+
+my @exports = $part_svc->part_export_did;
+if ( scalar(@exports) > 1 ) {
+ die "more than one DID-providing export attached to svcpart $svcpart";
+}
+
+my $use_selector = 0;
+
+if ( $exports[0] and $exports[0]->can('get_sip_servers') ) {
+ $use_selector = 1;
+}
+
+</%init>