anchor.diff:    jQuery('#compounds_attributes tbody').on( 'click', 'tr', function () {
       jQuery(this).toggleClass('selected');
     });
  - 
  +  jQuery("td a.context_menu_link")
  +      .on("context_menu", function(evt, menu_content){
  +        //why we need this offset here and not in the parallel function in spreadsheet_explorer.js.erb. perhaps too many "parents" here for "relative" to work.
  +        var offset =  jQuery('td a.context_menu_link').parent().parent().parent().parent().parent().parent().outerHeight(true);
  +        jQuery('#cell_menu').css('top',  offset + jQuery(this).position().top + jQuery(this).height() );
  +        jQuery('#cell_menu').css('left',jQuery(this).position().left);
  +        jQuery('#cell_menu').html(menu_content);
  +        if( jQuery('#cell_menu').css("display") === "none"){
  +          jQuery('#cell_menu').show();
  +        }
  +      })
  +  ;
     table.buttons().container().insertBefore( '#compounds_attributes_filter' );
   });
   </script>
  
positive.code:   var table = jQuery('#compounds_attributes').DataTable({
      // responsive: true,
      "scrollX": true,
      "lengthMenu": [[5,20,-1],[5,20,"All"]],
      buttons: [
        {
          extend: 'collection',
  
negative.code:     </tfoot>
    </table>
  </div>
  <ul id="cell_menu" class='dynamic_menu with_smaller_shadow' style="display:none;margin-top: 0.5em; width:auto;">
  
  <div class="warning">
    Please note: If an attribute is found in multiple data_files, only the value from the first is shown in this table. </div>
  <script type="text/javascript">
  
  jQuery(document).ready(function(){
  