styling fixes, #16588
authorMark Wells <mark@freeside.biz>
Sat, 1 Dec 2012 00:21:34 +0000 (16:21 -0800)
committerMark Wells <mark@freeside.biz>
Sat, 1 Dec 2012 00:21:34 +0000 (16:21 -0800)
httemplate/edit/elements/part_export/broadband_snmp.html
httemplate/elements/auto-table.html
httemplate/elements/select-mib-popup.html

index 8df0b8e..4c0367c 100644 (file)
@@ -46,7 +46,7 @@ function receive_mib(obj, rownum) {
   //console.log(JSON.stringify(obj));
   // we don't really need the numeric OID or any of the other properties
   document.getElementById('oid'+rownum).value = obj.fullname;
-  document.getElementById('datatype'+rownum).innerHTML = obj.type;
+  document.getElementById('datatype'+rownum).value = obj.type;
 }
 </script>
 
@@ -69,7 +69,7 @@ function receive_mib(obj, rownum) {
     <INPUT NAME="oid" ID="oid" SIZE="60" onclick="open_select_mib(this)">
   </TD>
   <TD>
-    <SPAN ID="datatype"></SPAN>
+    <INPUT TYPE="text" NAME="datatype" ID="datatype" READONLY=1>
   </TD>
   <TD>
     <INPUT NAME="value" ID="value">
@@ -77,10 +77,10 @@ function receive_mib(obj, rownum) {
 </TR>
 <& /elements/auto-table.html,
   template_row  => 'mytemplate',
-  fieldorder    => ['action', 'oid', 'value'],
+  fieldorder    => ['action', 'oid', 'datatype', 'value'],
   data          => \@data,
 &>
-<INPUT TYPE="hidden" NAME="multi_options" VALUE="action,oid,value">
+<INPUT TYPE="hidden" NAME="multi_options" VALUE="action,oid,datatype,value">
 <& foot.html, %opt &>
 <%init>
 my %opt = @_;
@@ -88,11 +88,12 @@ my $part_export = $opt{part_export} || FS::part_export->new;
 
 my @actions = split("\n", $part_export->option('action'));
 my @oids    = split("\n", $part_export->option('oid'));
+my @types   = split("\n", $part_export->option('datatype'));
 my @values  = split("\n", $part_export->option('value'));
 
 my @data;
 while (@actions or @oids or @values) {
-  my @thisrow = (shift(@actions), shift(@oids), shift(@values));
+  my @thisrow = (shift(@actions), shift(@oids), shift(@types), shift(@values));
   push @data, \@thisrow if grep length($_), @thisrow;
 }
 
index ed01109..9aff94e 100644 (file)
@@ -168,7 +168,6 @@ $pre = $opt{'table'} . '_' if $opt{'table'};
 my $template_row = $opt{'template_row'}
   or die "auto-table requires template_row\n"; # a DOM id
 
-my %vars  = $cgi->Vars;
 # rows that we will preload, as hashrefs of name => value
 my @rows = @{ $opt{'data'} || [] };
 foreach (@rows) {
index f8e3ae3..bd485ef 100644 (file)
@@ -1,12 +1,13 @@
 <& /elements/header-popup.html &>
+<DIV STYLE="visibility: hidden; position: absolute" ID="measurebox"></DIV>
 <TABLE WIDTH="100%">
 <TR>
-  <TD ALIGN="right">Module:</TD>
+  <TD WIDTH="30%" ALIGN="right">Module:</TD>
   <TD><SELECT ID="select_module"></SELECT></TD>
 </TR>
 <TR>
   <TD ALIGN="right">Object:</TD>
-  <TD><INPUT TYPE="text" NAME="path" ID="input_path"></TD>
+  <TD><INPUT TYPE="text" NAME="path" ID="input_path" WIDTH="100%"></TD>
 </TR>
 <TR>
   <TD COLSPAN=2>
@@ -14,7 +15,7 @@
   </TD>
 </TR>
 <TR>
-  <TH COLSPAN=2 ID="mib_objectID"></TH>
+  <TH ALIGN="center" COLSPAN=2 ID="mib_objectID"></TH>
 </TR>
 <TR>
   <TD ALIGN="right">Module: </TD><TD ID="mib_moduleID"></TD>
@@ -40,7 +41,7 @@ function show_info(state) {
   document.getElementById('mib_objectID').style.display = 
     document.getElementById('mib_moduleID').style.display = 
     document.getElementById('mib_type').style.display = 
-    state ? 'block' : 'none';
+    state ? '' : 'none';
 }
 
 function clear_list() {
@@ -48,6 +49,7 @@ function clear_list() {
   select_path.options.length = 0;
 }
 
+var measurebox = document.getElementById('measurebox');
 function add_item(value) {
   var select_path = document.getElementById('select_path');
   var input_path = document.getElementById('input_path');
@@ -57,7 +59,21 @@ function add_item(value) {
     opt.className = 'leaf';
     v = v.substring(0, v.length - 1);
   }
-  opt.value = opt.text = v;
+  var optvalue = v; // may not be the name we display
+  // shorten these if they don't fit in the box
+  if ( v.length > 30 ) { // unless they're already really short
+    measurebox.innerHTML = v;
+    while ( measurebox.clientWidth > select_path.clientWidth - 10
+            && v.match(/^\..*\./) ) {
+      v = v.replace(/^\.[^\.]+/, '');
+      measurebox.innerHTML = v;
+    }
+    if ( optvalue != v ) {
+      v = '...' + v;
+    }
+  }
+  opt.value = optvalue;
+  opt.text = v;
   opt.selected = (input_path.value == v);
   select_path.add(opt, null);
 }