old_contents: /* ============================================================
   * Bootstrap: rowlink.js v3.1.3
   * http://jasny.github.io/bootstrap/javascript/#rowlink
   * ============================================================
   * Copyright 2012-2014 Arnold Daniels
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   * ============================================================ */
  
  +function ($) { "use strict";
  
    var Rowlink = function (element, options) {
      this.$element = $(element)
      this.options = $.extend({}, Rowlink.DEFAULTS, options)
      
      this.$element.on('click.bs.rowlink', 'td:not(.rowlink-skip)', $.proxy(this.click, this))
    }
  
    Rowlink.DEFAULTS = {
      target: "a"
    }
  
    Rowlink.prototype.click = function(e) {
      var target = $(e.currentTarget).closest('tr').find(this.options.target)[0]
      if ($(e.target)[0] === target) return
      
      e.preventDefault();
      
      if (target.click) {
        target.click()
      } else if (document.createEvent) {
        var evt = document.createEvent("MouseEvents"); 
        evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
        target.dispatchEvent(evt);
      }
    }
  
    
    // ROWLINK PLUGIN DEFINITION
    // ===========================
  
    var old = $.fn.rowlink
  
    $.fn.rowlink = function (options) {
      return this.each(function () {
        var $this = $(this)
        var data = $this.data('bs.rowlink')
        if (!data) $this.data('bs.rowlink', (data = new Rowlink(this, options)))
      })
    }
  
    $.fn.rowlink.Constructor = Rowlink
  
  
    // ROWLINK NO CONFLICT
    // ====================
  
    $.fn.rowlink.noConflict = function () {
      $.fn.rowlink = old
      return this
    }
  
  
    // ROWLINK DATA-API
    // ==================
  
    $(document).on('click.bs.rowlink.data-api', '[data-link="row"]', function (e) {
      if ($(e.target).closest('.rowlink-skip').length !== 0) return
      
      var $this = $(this)
      if ($this.data('bs.rowlink')) return
      $this.rowlink($this.data())
      $(e.target).trigger('click.bs.rowlink')
    })
    
  }(window.jQuery);
  
new_contents: /* ============================================================
   * Bootstrap: rowlink.js v3.1.3
   * http://jasny.github.io/bootstrap/javascript/#rowlink
   * ============================================================
   * Copyright 2012-2014 Arnold Daniels
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   * ============================================================ */
  
  +function ($) { "use strict";
  
    var Rowlink = function (element, options) {
      this.$element = $(element)
      this.options = $.extend({}, Rowlink.DEFAULTS, options)
  
      this.$element.on('click.bs.rowlink', 'td:not(.rowlink-skip)', $.proxy(this.click, this))
    }
  
    Rowlink.DEFAULTS = {
      target: "a"
    }
  
    Rowlink.prototype.click = function(e) {
      var target = $(e.currentTarget).closest('tr').find(this.options.target)[0]
      if ($(e.target)[0] === target) return
  
      e.preventDefault();
  
      if (target.click) {
        target.click()
      } else if (document.createEvent) {
        var evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        target.dispatchEvent(evt);
      }
    }
  
  
    // ROWLINK PLUGIN DEFINITION
    // ===========================
  
    var old = $.fn.rowlink
  
    $.fn.rowlink = function (options) {
      return this.each(function () {
        var $this = $(this)
        var data = $this.data('bs.rowlink')
        if (!data) $this.data('bs.rowlink', (data = new Rowlink(this, options)))
      })
    }
  
    $.fn.rowlink.Constructor = Rowlink
  
  
    // ROWLINK NO CONFLICT
    // ====================
  
    $.fn.rowlink.noConflict = function () {
      $.fn.rowlink = old
      return this
    }
  
  
    // ROWLINK DATA-API
    // ==================
  
    $(document).on('click.bs.rowlink.data-api', '[data-link="row"]', function (e) {
      if ($(e.target).closest('.rowlink-skip').length !== 0) return
  
      var $this = $(this)
      if ($this.data('bs.rowlink')) return
      $this.rowlink($this.data())
      $(e.target).trigger('click.bs.rowlink')
    })
  
  }(window.jQuery);
  
subject: Delete spaces on EOL