Providing file upload and download capabilities has been native functionality in APEX for a couple major releases now. In 5.0, it's even more streamlined and 100% declarative.
In the interest of saving screen real estate, I wanted to represent the download link in an IR with an icon - specifically fa-download. This is a simple task to achieve - edit the column and set the Download Text to this:
Clearly not optimal, and very uninformative. Let's fix this with a quick Dynamic Action. I placed mine on the global page, as this application has several places where it can download files. You can do the same or simply put on the page that needs it.
The Dynamic Action will fire on Page Load, and has one true action - a small JavaScript snippet:
If you're using a different icon for your download, or want it to say something different, then be sure to alter the code accordingly.
In the interest of saving screen real estate, I wanted to represent the download link in an IR with an icon - specifically fa-download. This is a simple task to achieve - edit the column and set the Download Text to this:
<i class="fa fa-lg fa-download"></i>The fa-lg will make the icon a bit larger, and is not required. Now, instead of a "download" link, you'll see the icon rendered in each row. Clicking on the icon will download the corresponding file. However, when you hover over the icon, instead of getting the standard text, it displays this:
Clearly not optimal, and very uninformative. Let's fix this with a quick Dynamic Action. I placed mine on the global page, as this application has several places where it can download files. You can do the same or simply put on the page that needs it.
The Dynamic Action will fire on Page Load, and has one true action - a small JavaScript snippet:
$(".fa-download").prop('title','Download File');This will find any instance of fa-download and replace the title with the text "Download File":
If you're using a different icon for your download, or want it to say something different, then be sure to alter the code accordingly.
Comments
It is even nicer if you make your tooltip text translatable.
You have to create an APEX text message (don't forget "use in javascript" = Yes) for the languages needed.
Change the dynamic action like this:
var gTitle = apex.lang.getMessage("DOWNLOAD_FILE_TEXT");
$(".fa-download").prop('title',gTitle);
Regards,
Mathieu