Changeset 6337


Ignore:
Timestamp:
Oct 28, 2013, 4:29:30 PM (9 years ago)
Author:
Nicklas Nordborg
Message:

References #1729: Move in-page <script> elements to external *.js files

Cleaning out unused functions from table.js.

Location:
trunk/www
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/biomaterials/lists/members/add_members.js

    r6306 r6337  
    4040  }
    4141 
    42   addMembers.addSelected = function()
     42  addMembers.addSelected = function(event)
    4343  {
    44     var selected = top['members'].Table.getSelected(0);
     44    var tableId = Data.get(event.currentTarget, 'table-id');
     45    var selected = top['members'].Table.getSelected(tableId);
    4546    if (selected.length == 0)
    4647    {
  • trunk/www/biomaterials/lists/members/add_members_frameset.jsp

    r6306 r6337  
    4040DbControl dc = sc.newDbControl();
    4141String urlToController = "";
     42String tableId = "";
    4243try
    4344{
     
    4748  {
    4849    urlToController = "biosources";
     50    tableId = "biosources";
    4951  }
    5052  else if (memberType == Item.SAMPLE)
    5153  {
    5254    urlToController = "samples";
     55    tableId = "samples";
    5356  }
    5457  else if (memberType == Item.EXTRACT)
    5558  {
    5659    urlToController = "extracts";
     60    tableId = "extracts";
    5761  }
    5862}
     
    7276     
    7377    <base:buttongroup subclass="dialogbuttons topborder">
    74       <base:button id="btnAddSelected" title="Add selected" />
     78      <base:button id="btnAddSelected" title="Add selected" data-table-id="<%=tableId%>" />
    7579      <base:button id="btnAddPage" title="Add current page" />
    7680      <base:button id="btnAddAll" title="Add all" />
  • trunk/www/include/scripts/table.js

    r6336 r6337  
    641641  }
    642642
     643  /**
     644    Toggle the selected status of a checkbox with
     645    @param tableDiv The ID or main table element
     646   
     647    @returns The toggled  element or null if no element was found
     648  */
     649  table.toggleCheckBox = function(tableDiv, itemId)
     650  {
     651    tableDiv = Doc.element(tableDiv);
     652    var frm = document.forms[tableDiv.id];
     653   
     654    for (var i=0; i < frm.elements.length; i++)
     655    {
     656      var element = frm.elements[i];
     657      if (element.type == 'checkbox' && element.name == itemId)
     658      {
     659        element.checked = !element.checked;
     660        return element;
     661      }
     662    }
     663    return null;
     664  }
     665
     666  /**
     667    Get the ID of all selected items in a table.
     668   
     669    @param tableDiv The ID or main table element
     670    @param regexp An optional regular expression matching the names
     671      of checkboxes that can be selected, if not specified it matches
     672      checkboxes with numeric names (eg. the name is the id of the item
     673      in the table)
     674    @return An array object with the ID:s
     675  */
     676  table.getSelected = function(tableDiv, regexp)
     677  {
     678    tableDiv = Doc.element(tableDiv);
     679    if (!regexp) regexp = /\d+/;
     680
     681    var frm = document.forms[tableDiv.id];
     682    var items = [];
     683    if (frm.item_id)
     684    {
     685      // Radio buttons
     686      var element = Forms.getCheckedRadio(frm.item_id);
     687      if (element != null)
     688      {
     689        items[items.length] = element.value;
     690      }
     691    }
     692    else
     693    {
     694      // Checkboxes
     695      for (var i=0; i < frm.elements.length; i++)
     696      {
     697        var element = frm.elements[i];
     698        if (element.type == 'checkbox' && element.name.match(regexp) && element.checked)
     699        {
     700          items[items.length] = element.value;
     701        }
     702      }
     703    }
     704    return items;
     705  }
     706
    643707 
    644708  /**
     
    646710    method (older way) or an event notification (new way).
    647711   
    648     @param tableId The ID attribute of the table tag
     712    @param tableDiv The ID or main table element
     713    @param regexp An optional regular expression matching the names
     714      of checkboxes that can be selected, if not specified it matches
     715      checkboxes with numeric names (eg. the name is the id of the item
     716      in the table)
    649717
    650718    @return The number of selected items
     
    728796    return numSelected;
    729797  }
    730  
    731   // ------- OLD CODE BELOW ------------------
    732   table.poolItems = function(submitPage, ID, tableId, itemType, cmd, regexp)
    733   {
    734     var frm = document.forms[tableId];
    735     if (Forms.numChecked(frm) < 1)
    736     {
    737       Forms.showNotification('check.uncheck', 'Please select at least one item in the list', null, 'pointer-left');
    738       return;
    739     }
    740     var oldAction = frm.action;
    741     var oldCmd = frm.cmd.value;
    742     frm.action = submitPage;
    743     frm.cmd.value = cmd ? cmd : "NewPooledItem";
    744     frm.target = 'NewPooledItem'+tableId;
    745     Main.openPopup('', 'NewPooledItem'+tableId, 750, 500);
    746     frm.submit();
    747     frm.target = window.name;
    748     frm.action = oldAction;
    749     frm.cmd.value = oldCmd;
    750   }
    751  
    752  
    753   /**
    754     Return the selected items to the parent using a
    755     callback function.
    756     @param tableId The ID attribute of the table tag
    757     @param callback A function object which should take two parameters:
    758       the ID and title of the selected item
    759     @return The number of selected items
    760   */
    761   table.returnSelected = function(tableId, callback)
    762   {
    763     if (!callback) return 0;
    764     var frm = document.forms[tableId];
    765     var numSelected = 0;
    766     if (frm.item_id)
    767     {
    768       var element = Forms.getCheckedRadio(frm.item_id);
    769       if (element != null)
    770       {
    771         callback(element.value, element.title);
    772         numSelected = 1;
    773       }
    774     }
    775     else
    776     {
    777       for (var i=0; i < frm.elements.length; i++) // >
    778       {
    779         var element = frm.elements[i];
    780         if (element.type == 'checkbox' && element.name.match(/\d+/) && element.checked)
    781         {
    782           callback(element.name, element.title);
    783           numSelected++;
    784         }
    785       }
    786     }
    787     return numSelected;
    788   }
    789 
    790  
    791   /**
    792     Get the ID of all selected items.
    793     @param tableId The ID attribute of the table tag
    794     @return An array object with the ID:s
    795   */
    796   table.getSelected = function(tableId)
    797   {
    798     var frm = document.forms[tableId];
    799     var items = new Array();
    800     if (frm.item_id)
    801     {
    802       var element = Forms.getCheckedRadio(frm.item_id);
    803       if (element != null)
    804       {
    805         items[items.length] = element.value;
    806       }
    807     }
    808     else
    809     {
    810       for (var i=0; i < frm.elements.length; i++) // >
    811       {
    812         var element = frm.elements[i];
    813         if (element.type == 'checkbox' && element.name.match(/\d+/) && element.checked)
    814         {
    815           items[items.length] = element.name;
    816         }
    817       }
    818     }
    819     return items;
    820   }
    821  
    822  
    823   table.itemOnClick = function(tableId, evt, itemId, mode, viewFunction, editFunction, returnFunction)
    824   {
    825     var frm = document.forms[tableId];
    826     if (mode == 'selectone')
    827     {
    828       var index = Forms.checkRadio(frm.item_id, itemId);
    829       returnFunction(frm.item_id.length ? frm.item_id[index] : frm.item_id);
    830     }
    831     else if (mode == 'selectmultiple' || mode == 'selectmultiplenobuttons')
    832     {
    833       var checkbox = table.toggleCheckBox(tableId, itemId);
    834       returnFunction(checkbox);
    835     }
    836     else
    837     {
    838       if (evt && (evt.altKey || evt.ctrlKey || evt.shiftKey))
    839       {
    840         editFunction(itemId);
    841       }
    842       else
    843       {
    844         viewFunction(itemId);
    845       }
    846     }
    847   }
    848  
    849   table.toggleCheckBox = function(tableId, itemId)
    850   {
    851     var frm = document.forms[tableId];
    852     for (var i=0; i < frm.elements.length; i++) // >
    853     {
    854       var element = frm.elements[i];
    855       if (element.type == 'checkbox' && element.name == itemId)
    856       {
    857         element.checked = !element.checked;
    858         return element;
    859       }
    860     }
    861     return null;
    862   }
    863  
     798
    864799  return table;
    865800}();
Note: See TracChangeset for help on using the changeset viewer.