Changeset 8026


Ignore:
Timestamp:
Dec 15, 2021, 8:39:09 AM (8 months ago)
Author:
Nicklas Nordborg
Message:

Merge BASE 3.19.1 to the trunk

Location:
trunk
Files:
26 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/credits.txt

    r8013 r8026  
    11$Id$
    22
    3 The current BASE team is (at BASE 3.19 release)
     3The current BASE team is (at BASE 3.19.1 release)
    44{{{
    55Jari Häkkinen
  • trunk/src/core/net/sf/basedb/core/File.java

    r7889 r8026  
    5555import java.io.PipedInputStream;
    5656import java.io.PipedOutputStream;
     57import java.net.SocketTimeoutException;
    5758import java.net.URI;
    5859import java.net.URISyntaxException;
     
    10641065        if (cause instanceof InterruptedException || cause instanceof InterruptedIOException)
    10651066        {
    1066           Thread.currentThread().interrupt();
     1067          // Ignore timeouts
     1068          if (!(cause instanceof SocketTimeoutException))
     1069          {
     1070            Thread.currentThread().interrupt();
     1071          }
    10671072          break;
    10681073        }
    10691074        cause = cause.getCause();
    10701075      }
    1071       throw new BaseException("Could not load metadata for URL:" + data.getUrl(), ex);
     1076      throw new BaseException("Could not load metadata for URL: " + data.getUrl(), ex);
    10721077    }
    10731078  }
  • trunk/src/core/net/sf/basedb/core/Project.java

    r7605 r8026  
    124124    return p;
    125125  }
     126 
     127  /**
     128    Get the currently active project if any. Return null
     129    if no project is active.
     130    @since 3.19.1
     131  */
     132  public static Project getActive(DbControl dc)
     133  {
     134    int id = dc.getSessionControl().getActiveProjectId();
     135    return id == 0 ? null : getById(dc, id);
     136  }
    126137
    127138  /**
  • trunk/src/core/net/sf/basedb/core/Update.java

    r7947 r8026  
    23602360      org.hibernate.query.Query<Long> countQuery = HibernateUtil.createQuery(session, countSql, Long.class);
    23612361      long numItems = HibernateUtil.loadData(countQuery);
    2362       int delta = (int)numItems / 50;
     2362      int delta = Math.max(50, (int)numItems / 50);
    23632363
    23642364      // Load all ChangeHistory entries
     
    24002400
    24012401        count++;
    2402         if (progress != null && count % delta == 0) progress.append(".");
     2402        if (progress != null && delta > 0 && count % delta == 0) progress.append(".");
    24032403      }
    24042404
  • trunk/src/core/net/sf/basedb/util/excel/XlsxToCsvUtil.java

    r7995 r8026  
    531531      else if (cellType == CellType.ERROR)
    532532      {
    533         value = "#ERR#";
     533        value = FormulaError.forInt(cell.getErrorCellValue()).getString()+"#";
    534534      }
    535535      if (value == null)
     
    602602      {
    603603        ct.cellType = formulaEval.evaluateFormulaCell(cell);
     604        if (ct.cellType == CellType.ERROR) ct.info = cell.getCellFormula();
    604605      }
    605606      catch (NotImplementedException ex)
     
    607608        cell.setCellErrorValue(FormulaError.NAME.getCode());
    608609        ct.cellType = CellType.ERROR;
     610        ct.info = ex.getMessage();
    609611        if (ex.getCause() instanceof NotImplementedFunctionException)
    610612        {
  • trunk/src/plugins/core/net/sf/basedb/plugins/batchimport/ExtractImporter.java

    r7667 r8026  
    2626import java.util.Set;
    2727
    28 import net.sf.basedb.core.BioMaterial;
    2928import net.sf.basedb.core.BioMaterialEvent;
    3029import net.sf.basedb.core.BioMaterialEventSource;
     
    3736import net.sf.basedb.core.ItemSubtype;
    3837import net.sf.basedb.core.Kit;
     38import net.sf.basedb.core.MeasuredBioMaterial;
    3939import net.sf.basedb.core.PluginParameter;
    4040import net.sf.basedb.core.Protocol;
     
    102102  private Mapper parentTypeMapper;
    103103  private Mapper parentMapper;
    104   private Mapper usedQuantityMapper;
     104  private UsedQuantityMapper usedQuantityMapper;
    105105  private Mapper bioPlateMapper;
    106106  private Mapper bioWellRowMapper;
     
    195195    parentTypeMapper = getMapper(ffp, (String)job.getValue("parentTypeColumnMapping"), null, null);
    196196    parentMapper = getMapper(ffp, (String)job.getValue("parentColumnMapping"), null, null);
    197     usedQuantityMapper = getMapper(ffp, (String)job.getValue("usedQuantityColumnMapping"), null, null);
     197    usedQuantityMapper = UsedQuantityMapper.create(getMapper(ffp, (String)job.getValue("usedQuantityColumnMapping"), null, null));
    198198    bioPlateMapper = getMapper(ffp, (String)job.getValue("bioPlateColumnMapping"), null, null);
    199199    bioWellRowMapper = getMapper(ffp, (String)job.getValue("bioWellRowColumnMapping"), null, null);
     
    287287      // Try to find either a sample or a biosource
    288288      String nameOrId = parentMapper.getString(data);
    289       BioMaterial parent = null;
     289      MeasuredBioMaterial parent = null;
    290290      if (parentType == Item.EXTRACT)
    291291      {
     
    301301        if (evtSrc != null)
    302302        {
    303           Float usedQuantity = usedQuantityMapper == null ? null : usedQuantityMapper.getFloat(data);
     303          Float usedQuantity = usedQuantityMapper == null ? null : usedQuantityMapper.getUsedQuantity(data, evtSrc);
    304304          evtSrc.setUsedQuantity(usedQuantity);
    305305        }
     
    322322      if (parent != null)
    323323      {
     324        BioMaterialEventSource evtSrc = extract.getCreationEvent().addSource(parent);
    324325        Float usedQuantity = usedQuantityMapper == null ?
    325             null : usedQuantityMapper.getFloat(data);
    326         extract.getCreationEvent().addSource(parent).setUsedQuantity(usedQuantity);
     326            null : usedQuantityMapper.getUsedQuantity(data, evtSrc);
     327        evtSrc.setUsedQuantity(usedQuantity);
    327328        // Use same tag as parent if not yet set and not mapped in the file
    328329        if (tagMapper == null && parent.getTag() != null && extract.getTag() == null)
  • trunk/src/plugins/core/net/sf/basedb/plugins/batchimport/FileImporter.java

    r7849 r8026  
    268268    if (mimeTypeMapper != null) file.setMimeType(mimeTypeMapper.getString(data));
    269269    if (file.getMimeType() == null) file.setMimeTypeAuto(null, null);
    270     if (characterSetMapper != null) file.setMimeType(characterSetMapper.getString(data));
     270    if (characterSetMapper != null) file.setCharacterSet(characterSetMapper.getString(data));
    271271    if (descriptionMapper != null) file.setDescription(descriptionMapper.getString(data));
    272272    updateItemSubtype(dc, file, data);
  • trunk/src/plugins/core/net/sf/basedb/plugins/batchimport/PhysicalBioAssayImporter.java

    r7667 r8026  
    148148  private Mapper kitMapper;
    149149  private Mapper parentMapper;
    150   private Mapper usedQuantityMapper;
     150  private UsedQuantityMapper usedQuantityMapper;
    151151  private Mapper extractPositionMapper;
    152152  private Mapper arraySlideMapper;
     
    241241    hardwareMapper = getMapper(ffp, (String)job.getValue("hardwareColumnMapping"), null, null, defaultHardwareFunction);
    242242    parentMapper = getMapper(ffp, (String)job.getValue("parentColumnMapping"), null, null);
    243     usedQuantityMapper = getMapper(ffp, (String)job.getValue("usedQuantityColumnMapping"), null, null);
     243    usedQuantityMapper = UsedQuantityMapper.create(getMapper(ffp, (String)job.getValue("usedQuantityColumnMapping"), null, null));
    244244    extractPositionMapper = getMapper(ffp, (String)job.getValue("extractPositionColumnMapping"), null, null);
    245245    arraySlideMapper = getMapper(ffp, (String)job.getValue("arraySlideColumnMapping"), null, null);
     
    349349        if (usedQuantityMapper != null)
    350350        {
    351           eventSource.setUsedQuantity(usedQuantityMapper.getFloat(data));
     351          eventSource.setUsedQuantity(usedQuantityMapper.getUsedQuantity(data, eventSource));
    352352        }
    353353        if (extractPositionMapper != null)
  • trunk/src/plugins/core/net/sf/basedb/plugins/batchimport/SampleImporter.java

    r7667 r8026  
    3636import net.sf.basedb.core.ItemSubtype;
    3737import net.sf.basedb.core.Kit;
     38import net.sf.basedb.core.MeasuredBioMaterial;
    3839import net.sf.basedb.core.PluginParameter;
    3940import net.sf.basedb.core.Protocol;
     
    120121        "Used quantity from parent",
    121122        "Mapping that picks the used quantity (µg) of the parent item in the data columns. The " +
    122         "values must be in the numeric format specified by the 'Number format' parameter." +
     123        "values must be in the numeric format specified by the 'Number format' parameter or 'ALL' to "+
     124        "as a special case to use all remaining quantity from the parent." +
    123125        "Example: \\Used quantity\\",
    124126        optionalColumnMapping
     
    201203  private Mapper parentTypeMapper;
    202204  private Mapper parentMapper;
    203   private Mapper usedQuantityMapper;
     205  private UsedQuantityMapper usedQuantityMapper;
    204206  private Mapper bioPlateMapper;
    205207  private Mapper bioWellRowMapper;
     
    292294    parentTypeMapper = getMapper(ffp, (String)job.getValue("parentTypeColumnMapping"), null, null);
    293295    parentMapper = getMapper(ffp, (String)job.getValue("parentColumnMapping"), null, null);
    294     usedQuantityMapper = getMapper(ffp, (String)job.getValue("usedQuantityColumnMapping"), null, null);
     296    usedQuantityMapper = UsedQuantityMapper.create(getMapper(ffp, (String)job.getValue("usedQuantityColumnMapping"), null, null));
    295297    bioPlateMapper = getMapper(ffp, (String)job.getValue("bioPlateColumnMapping"), null, null);
    296298    bioWellRowMapper = getMapper(ffp, (String)job.getValue("bioWellRowColumnMapping"), null, null);
     
    386388      {
    387389        BioMaterialEventSource evtSrc = sample.getCreationEvent().setSource(parent);
    388         if (evtSrc != null)
     390        if (evtSrc != null && parent instanceof MeasuredBioMaterial)
    389391        {
    390           Float usedQuantity = usedQuantityMapper == null ? null : usedQuantityMapper.getFloat(data);
     392          Float usedQuantity = usedQuantityMapper == null ? null : usedQuantityMapper.getUsedQuantity(data, evtSrc);
    391393          evtSrc.setUsedQuantity(usedQuantity);
    392394        }
     
    410412      if (parent != null)
    411413      {
     414        BioMaterialEventSource evtSrc = sample.getCreationEvent().addSource(parent);
    412415        Float usedQuantity = usedQuantityMapper == null ?
    413             null : usedQuantityMapper.getFloat(data);
    414         sample.getCreationEvent().addSource(parent).setUsedQuantity(usedQuantity);
     416            null : usedQuantityMapper.getUsedQuantity(data, evtSrc);
     417        evtSrc.setUsedQuantity(usedQuantity);
    415418      }
    416419    }
  • trunk/www/admin/hardware/list_hardware.jsp

    r7982 r8026  
    2929  import="net.sf.basedb.core.Item"
    3030  import="net.sf.basedb.core.Hardware"
     31  import="net.sf.basedb.core.Project"
    3132  import="net.sf.basedb.core.ItemSubtype"
    3233  import="net.sf.basedb.core.Annotation"
     
    116117    cc.setMessage(t.getMessage());
    117118  }
     119  Project activeProject = Project.getActive(dc);
    118120  int numListed = 0;
    119121  ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
     
    450452                    </div>
    451453                    <div class="icons">
     454                      <base:icon
     455                        image="star.png"
     456                        tooltip="This is a default item for the current project"
     457                        visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>"
     458                      />
    452459                      <base:icon
    453460                        image="deleted.png"
  • trunk/www/admin/hardware/view_hardware.jsp

    r7954 r8026  
    8383  String title = null;
    8484  Hardware hardware = Hardware.getById(dc, itemId);
     85  Project activeProject = Project.getActive(dc);
    8586 
    8687  final boolean writePermission = hardware.hasPermission(Permission.WRITE);
     
    116117      <tr>
    117118        <th class="itemstatus">
     119          <base:icon
     120            image="star.png"
     121            tooltip="This is a default item for the current project"
     122            visible="<%=activeProject != null && activeProject.isDefaultItem(hardware)%>"
     123          />
    118124          <base:icon
    119125            image="shared.png"
  • trunk/www/admin/platforms/list_platforms.jsp

    r7982 r8026  
    2929  import="net.sf.basedb.core.Platform"
    3030  import="net.sf.basedb.core.PlatformVariant"
     31  import="net.sf.basedb.core.Project"
    3132  import="net.sf.basedb.core.RawDataType"
    3233  import="net.sf.basedb.core.ItemQuery"
     
    104105    cc.setMessage(t.getMessage());
    105106  }
     107  Project activeProject = Project.getActive(dc);
    106108  int numListed = 0;
    107109  ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
     
    384386                    </div>
    385387                    <div class="icons">
     388                      <base:icon
     389                        image="star.png"
     390                        tooltip="This is a default item for the current project"
     391                        visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>"
     392                      />
    386393                      <base:icon
    387394                        image="deleted.png"
  • trunk/www/admin/platforms/variants/list_variants.jsp

    r7982 r8026  
    3131  import="net.sf.basedb.core.Platform"
    3232  import="net.sf.basedb.core.PlatformVariant"
     33  import="net.sf.basedb.core.Project"
    3334  import="net.sf.basedb.core.RawDataType"
    3435  import="net.sf.basedb.core.ItemQuery"
     
    9798    cc.setMessage(t.getMessage());
    9899  }
     100  Project activeProject = Project.getActive(dc);
    99101  int numListed = 0;
    100102  ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
     
    407409                    </div>
    408410                    <div class="icons">
     411                      <base:icon
     412                        image="star.png"
     413                        tooltip="This is a default item for the current project"
     414                        visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>"
     415                      />
    409416                      <base:icon
    410417                        image="deleted.png"
  • trunk/www/admin/platforms/variants/view_variant.jsp

    r7954 r8026  
    3535  import="net.sf.basedb.core.PlatformFileType"
    3636  import="net.sf.basedb.core.DataFileType"
     37  import="net.sf.basedb.core.Project"
    3738  import="net.sf.basedb.core.RawDataType"
    3839  import="net.sf.basedb.core.PermissionDeniedException"
     
    8283  final PlatformVariant variant = PlatformVariant.getById(dc, itemId);
    8384  final Platform platform = variant.getPlatform();
     85  Project activeProject = Project.getActive(dc);
    8486  final int platformId = platform.getId();
    8587
     
    116118      <tr>
    117119        <th class="itemstatus">
     120          <base:icon
     121            image="star.png"
     122            tooltip="This is a default item for the current project"
     123            visible="<%=activeProject != null && activeProject.isDefaultItem(variant)%>"
     124          />
    118125          <base:icon
    119126            id="btnDeletePermanently"
  • trunk/www/admin/platforms/view_platform.jsp

    r7954 r8026  
    3636  import="net.sf.basedb.core.DataFileType"
    3737  import="net.sf.basedb.core.RawDataType"
     38  import="net.sf.basedb.core.Project"
    3839  import="net.sf.basedb.core.ItemQuery"
    3940  import="net.sf.basedb.core.ItemResultList"
     
    8283  String title = null;
    8384  Platform platform = Platform.getById(dc, itemId);
     85  Project activeProject = Project.getActive(dc);
    8486 
    8587  final boolean writePermission = platform.hasPermission(Permission.WRITE);
     
    112114      <tr>
    113115        <th class="itemstatus">
     116          <base:icon
     117            image="star.png"
     118            tooltip="This is a default item for the current project"
     119            visible="<%=activeProject != null && activeProject.isDefaultItem(platform)%>"
     120          />
    114121          <base:icon
    115122            id="btnDeletePermanently"
  • trunk/www/admin/protocols/list_protocol.jsp

    r7982 r8026  
    3030  import="net.sf.basedb.core.Protocol"
    3131  import="net.sf.basedb.core.ItemSubtype"
     32  import="net.sf.basedb.core.Project"
    3233  import="net.sf.basedb.core.Annotation"
    3334  import="net.sf.basedb.core.AnnotationType"
     
    116117    cc.setMessage(t.getMessage());
    117118  }
     119  Project activeProject = Project.getActive(dc);
    118120  int numListed = 0;
    119121  ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
     
    459461                    </div>
    460462                    <div class="icons">
     463                      <base:icon
     464                        image="star.png"
     465                        tooltip="This is a default item for the current project"
     466                        visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>"
     467                      />
    461468                      <base:icon
    462469                        image="deleted.png"
  • trunk/www/admin/protocols/view_protocol.jsp

    r7954 r8026  
    8989  String title = null;
    9090  Protocol protocol = Protocol.getById(dc, itemId);
     91  Project activeProject = Project.getActive(dc);
    9192 
    9293  final boolean writePermission = protocol.hasPermission(Permission.WRITE);
     
    122123      <tr>
    123124        <th class="itemstatus">
     125          <base:icon
     126            image="star.png"
     127            tooltip="This is a default item for the current project"
     128            visible="<%=activeProject != null && activeProject.isDefaultItem(protocol)%>"
     129          />
    124130          <base:icon
    125131            image="shared.png"
  • trunk/www/admin/software/list_software.jsp

    r7982 r8026  
    2929  import="net.sf.basedb.core.Item"
    3030  import="net.sf.basedb.core.Software"
     31  import="net.sf.basedb.core.Project"
    3132  import="net.sf.basedb.core.ItemSubtype"
    3233  import="net.sf.basedb.core.Annotation"
     
    116117    cc.setMessage(t.getMessage());
    117118  }
     119  Project activeProject = Project.getActive(dc);
    118120  int numListed = 0;
    119121  ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
     
    450452                    </div>
    451453                    <div class="icons">
     454                      <base:icon
     455                        image="star.png"
     456                        tooltip="This is a default item for the current project"
     457                        visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>"
     458                      />
    452459                      <base:icon
    453460                        image="deleted.png"
  • trunk/www/admin/software/view_software.jsp

    r7954 r8026  
    8383  String title = null;
    8484  Software software = Software.getById(dc, itemId);
     85  Project activeProject = Project.getActive(dc);
    8586 
    8687  final boolean writePermission = software.hasPermission(Permission.WRITE);
     
    117118      <tr>
    118119        <th class="itemstatus">
     120          <base:icon
     121            image="star.png"
     122            tooltip="This is a default item for the current project"
     123            visible="<%=activeProject != null && activeProject.isDefaultItem(software)%>"
     124          />
    119125          <base:icon
    120126            image="shared.png"
  • trunk/www/include/styles/table.css

    r7955 r8026  
    275275{
    276276  display: inline-block;
    277   max-width: calc(100% - 12px);
     277  max-width: calc(100% - 16px);
    278278  overflow: hidden;
    279279}
     
    287287  color: #666666;
    288288}
     289
     290/* This will make room for the '›' without causing the header to wrap */
     291.itemlist div.data th.linkeditemcol > span
     292{
     293  display: inline-block;
     294  max-width: calc(100% - 16px);
     295  overflow: hidden;
     296}
     297
    289298
    290299/* Place property filters */
  • trunk/www/lims/arraydesigns/list_designs.jsp

    r7982 r8026  
    3333  import="net.sf.basedb.core.PlatformVariant"
    3434  import="net.sf.basedb.core.File"
     35  import="net.sf.basedb.core.Project"
    3536  import="net.sf.basedb.core.AnnotationType"
    3637  import="net.sf.basedb.core.AnnotationSet"
     
    163164    t.printStackTrace();
    164165  }
     166  Project activeProject = Project.getActive(dc);
    165167  int numListed = 0;
    166168  Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
     
    618620                    </div>
    619621                    <div class="icons">
     622                      <base:icon
     623                        image="star.png"
     624                        tooltip="This is a default item for the current project"
     625                        visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>"
     626                      />
    620627                      <base:icon
    621628                        image="deleted.png"
  • trunk/www/lims/arraydesigns/view_design.jsp

    r7954 r8026  
    100100  String title = null;
    101101  ArrayDesign design = ArrayDesign.getById(dc, itemId);
     102  Project activeProject = Project.getActive(dc);
    102103  Job job = null;
    103104  boolean readJob = true;
     
    146147      <tr>
    147148        <th class="itemstatus">
     149          <base:icon
     150            image="star.png"
     151            tooltip="This is a default item for the current project"
     152            visible="<%=activeProject != null && activeProject.isDefaultItem(design)%>"
     153          />
    148154          <base:icon
    149155            image="shared.png"
  • trunk/www/plugins/net/sf/basedb/clients/web/plugins/simple_export.jsp

    r7645 r8026  
    138138      <tr class="big">
    139139        <th>
    140           Which columns?<br>
     140          Which columns?
     141        </th>
     142        <td>
     143          <table style="width: 100%;">
     144          <tr>
     145          <td></td>
     146          <td colspan="3">
    141147          <select name="presets" id="presets">
    142             <option>
     148            <option value="">-presets-
    143149            <option value="all" title="Export all columns">All
    144150            <option value="_current_" title="Export the currently visible columns" selected>Current
     
    164170            %>
    165171          </select>
    166         </th>
    167         <td>
    168           <table style="width: 100%;">
     172          </td>
     173          </tr>
    169174          <tr>
    170             <td>
     175            <td style="padding: 2px;">
    171176            <base:buttongroup vertical="true">
    172177              <base:button
     
    184189            </base:buttongroup>
    185190            </td>
    186             <td style="width: 50%;">
     191            <td style="width: 45%;">
    187192              <b>Exported columns</b><br>
    188               <select name="exported" id="exported" multiple size=10 style="width: 100%;"
     193              <select name="exported" id="exported" multiple size=10 style="width: calc(100% - 10px);"
    189194                data-to="not_exported"
    190195              </select>
    191196            </td>
    192             <td style="padding-left: 2px;">
     197            <td style="padding: 2px;">
    193198            <base:buttongroup vertical="true">
    194199              <base:button
     
    208213            </base:buttongroup>
    209214            </td>
    210             <td style="width: 50%; padding-right: 0.5em;">
     215            <td style="width: 45%; padding-right: 4px;">
    211216              <b>Not exported</b><br>
    212               <select name="not_exported" id="not_exported" multiple size=10 style="width: 100%;"
     217              <select name="not_exported" id="not_exported" multiple size=10 style="width: calc(100% - 10px);"
    213218                data-to="exported"
    214219              </select>
  • trunk/www/views/derivedbioassays/view_bioassay.jsp

    r7954 r8026  
    285285      </tr>
    286286    </table>
    287     <table style="width: 100%; height: 16em;" class="bottomborder">
     287    <table style="width: 100%; height: 20em;" class="bottomborder">
    288288    <tr>
    289289      <td style="width: 50%; height: 100%;">
     290        <div style="height: 20em; overflow: auto;">
    290291        <table class="fullform" >
    291292        <tr>
     
    330331        </tr>
    331332        </table>
     333        </div>
    332334      </td>
    333335      <td style="width: 50%; height: 100%;" class="leftborder">
     336        <div style="height: 20em; overflow: auto;">
    334337        <table class="fullform">
    335338        <tr>
     
    454457        </tr>
    455458        </table>
    456 
     459        </div>
    457460      </td>
    458461      </tr>
  • trunk/www/views/rawbioassays/view_rawbioassay.jsp

    r7954 r8026  
    285285    <tr>
    286286      <td style="width: 50%; height: 100%;">
     287        <div style="height: 20em; overflow: auto;">
    287288        <table class="fullform" >
    288289        <tr>
     
    340341        </tr>
    341342        </table>
     343        </div>
    342344      </td>
    343345      <td style="width: 50%; height: 100%;" class="leftborder">
     346        <div style="height: 20em; overflow: auto;">
    344347        <table class="fullform">
    345348        <tr>
     
    464467        </tr>
    465468        </table>
     469        </div>
    466470      </td>
    467471      </tr>
Note: See TracChangeset for help on using the changeset viewer.