Changeset 3077


Ignore:
Timestamp:
Jan 22, 2007, 2:15:31 PM (16 years ago)
Author:
Nicklas Nordborg
Message:

Fixes #431: Multiple tables from the Table taglib on the same HTML page interfere with each other

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Table.java

    r2942 r3077  
    403403    if (cd.getFormatter() != null) columnFormatter.put(columnId, cd.getFormatter());
    404404   
    405     script.append("Table.addColumn(new Column('").append(cd.getId()).append("'");
     405    script.append("Table.addColumn('").append(getId()).append("', new Column('").append(cd.getId()).append("'");
    406406    script.append(",'").append(HTML.javaScriptEncode(cd.getTitle())).append("'");
    407407    script.append(cd.getProperty() == null ? ",null" : ",'"+HTML.javaScriptEncode(cd.getProperty())+"'");
  • trunk/www/common/columns/configure.jsp

    r2978 r3077  
    5959  <base:head>
    6060    <script language="JavaScript">
     61    var tableId = '<%=tableId%>';
    6162
    6263    // Initialise the visible and hidden column lists
     
    7475
    7576      // All column definitions
    76       var columnDefs = window.opener.Table.columns;
     77      var columnDefs = window.opener.Table.getColumnDefs(tableId);
    7778
    7879      // Put all column in the hidden or visible list
     
    131132    {
    132133      var moved = 0;
    133       var columnDefs = window.opener.Table.columns;
     134      var columnDefs = window.opener.Table.getColumnDefs(tableId);
    134135      for(i=0; i < list1.options.length; i++) // >
    135136      {
     
    178179      if (columns == '_minimal_')
    179180      {
    180         var columnDefs = window.opener.Table.columns;
     181        var columnDefs = window.opener.Table.getColumnDefs(tableId);
    181182        var temp = new Array();
    182183        for (var i = 0; i < columnDefs.length; i++) // >
  • trunk/www/include/scripts/table.js

    r2754 r3077  
    3030function TableClass()
    3131{
    32   this.columns = new Array();
     32  this.tables = new Array();
    3333
    3434  /**
    3535    Add a column to the table
     36    @param tableId The ID of the table to add the column to
    3637    @param column The Column object to add
    3738  */
    38   this.addColumn = function(column)
    39   {
    40     this.columns[this.columns.length] = column;
    41     this.columns['id'+column.id] = column;
     39  this.addColumn = function(tableId, column)
     40  {
     41    var columns = this.tables[tableId];
     42    if (!columns)
     43    {
     44      columns = new Array();
     45      this.tables[tableId] = columns;
     46    }
     47    columns[columns.length] = column;
     48    columns['id'+column.id] = column;
    4249    if (column.property)
    4350    {
    44       this.columns['prop'+column.property] = column;
    45     }
     51      columns['prop'+column.property] = column;
     52    }
     53  }
     54 
     55  /**
     56    Get all columns defined for the specified table.
     57    @param tableId The ID of the table to get the columns for
     58  */
     59  this.getColumnDefs = function(tableId)
     60  {
     61    var columns = this.tables[tableId];
     62    return this.tables[tableId];
    4663  }
    4764
  • trunk/www/plugins/net/sf/basedb/clients/web/plugins/simple_export.jsp

    r2978 r3077  
    8181      notExported.length = 0;
    8282
    83       var columnDefs = window.opener.Table.columns;
     83      var columnDefs = window.opener.Table.getColumnDefs(tableId);
    8484      // Move all columns into the not exported or exported list
    8585      var list = columns == 'all' ? exported : notExported;
     
    163163    {
    164164      var list = document.forms['export'].exported;
    165       var columnDefs = window.opener.Table.columns;
     165      var columnDefs = window.opener.Table.getColumnDefs(tableId);
    166166      var selected = new Array();
    167167      for (i = 0; i < list.options.length; i++) // >
     
    175175    {
    176176      var list = document.forms['export'].exported;
    177       var columnDefs = window.opener.Table.columns;
     177      var columnDefs = window.opener.Table.getColumnDefs(tableId);
    178178      var selected = new Array();
    179179      for (i = 0; i < list.options.length; i++) // >
Note: See TracChangeset for help on using the changeset viewer.