"Hack attack" jQuery in a list view

Useful jQuery snippet to add a "View Properties" icon, so the user doesn't have to use context menu or ribbon (apparently they prefer this)


$(".ms-listviewtable > tbody > tr:first").append("<TH class='ms-vh2 ms-vh2-icon' noWrap>View</TH>");

$(".ms-listviewtable > tbody > tr").each(function() {

if ($('td:first', $(this)).hasClass("ms-vb-title"))
    {
     var id = $("td.ms-vb-title > div.ms-vb", $(this)).attr("id");
     var viewLink = $("<td class='ms-vb-icon'><IMG style='CURSOR:hand; BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px' title='View Properties' alt=Search src='/_layouts/images/gosearch15.png' /></td>");
     $(this).append(viewLink);

viewLink.click(function(event){

var options = {
       url: "/MyLibrary/Forms/DispForm.aspx?ID=" + id,
       title: "Document Properties",
       allowMaximize: true,
       showClose: true,
       dialogReturnValueCallback: function(dialogResult, returnValue) { }
      };

SP.UI.ModalDialog.showModalDialog(options);
     });
    }
  });

This just adds an extra column to the end with an icon that opens the 'View Properties' dialog.

You can either use a Content Editor web part to make it view specific or add it to a global script for all views.
It's a little hacky, but does the job.

It relies on the title column being available to extract the id of the item.

You may also like: