Have you ever met with a requirement where you had to Rate list of records in salesforce and store the ratings related to Individual user and then do an average rating based on rating for all users for the records ?The records that I refer to may be your custom objects ,or leads or may be your Accounts or opportunities .Providing ability to Rate records is one of the common requirements if you are building a site where you showcase your products .Salesforce knowledge article provides this facility but the solution we will do here will be rating custom object or standard object and we assume you don't use knowledge module for your purpose .
Our approach will be to use a simple plugin that I liked very much and special thanks to the actual author who has developed this plugin Kartik Visweswaran.I salute his work and my work is just integrating his work with salesforce Visualforce Page .
Lets get started with simple demo that he has hosted on his site ,the demo link is as below
http://plugins.krajee.com/star-rating/demo
Lets quickly grab his plugin from the github repo .
Assumptions for this work
I have created a Junction object between user and Account and have named it as Account Rating .The Account Rating object has a custom field created of number type Rating to store the rated no from visualforce interface
Visualforce Code
We will import all the jquery,CSS,bootstrap plugins into the static resource and reference the same in the VF.The entire code is as shown below
The meat of the code above is how we have used script to call javascript remoting function to upsert the junction object
Apex Code
Let me take some time in explaining this on what we have been doing here,
The Input HTML-5 tag has a javascript that detects when the rating changes .Once the rating star is clicked we call js remoting to upsert user rating for the Account.The demo page appears as below link .Note I have kept code very simple .and may be once I have time i will enhance this to make it generalized for any object and fields.
http://webzone-developer-edition.ap1.force.com/webzone/RatingDemo
I have made a small unmanaged package in case you want to pull this and play in your org to see how this goes
Enjoy coding .....
Our approach will be to use a simple plugin that I liked very much and special thanks to the actual author who has developed this plugin Kartik Visweswaran.I salute his work and my work is just integrating his work with salesforce Visualforce Page .
Lets get started with simple demo that he has hosted on his site ,the demo link is as below
http://plugins.krajee.com/star-rating/demo
Lets quickly grab his plugin from the github repo .
Assumptions for this work
I have created a Junction object between user and Account and have named it as Account Rating .The Account Rating object has a custom field created of number type Rating to store the rated no from visualforce interface
Visualforce Code
We will import all the jquery,CSS,bootstrap plugins into the static resource and reference the same in the VF.The entire code is as shown below
The meat of the code above is how we have used script to call javascript remoting function to upsert the junction object
Apex Code
Let me take some time in explaining this on what we have been doing here,
The Input HTML-5 tag has a javascript that detects when the rating changes .Once the rating star is clicked we call js remoting to upsert user rating for the Account.The demo page appears as below link .Note I have kept code very simple .and may be once I have time i will enhance this to make it generalized for any object and fields.
http://webzone-developer-edition.ap1.force.com/webzone/RatingDemo
I have made a small unmanaged package in case you want to pull this and play in your org to see how this goes
Use this URL to install the package into any organization: https://login.salesforce.com/ Note: If you are installing into a sandbox organization you must replace the initial portion of the URL with http://test.salesforce.com Also a small video I have attached to explain the functionality clearly .Also note from karthik demo you can add all style elements .Check his demo page for more styling .The attributes can be configurable as well |
Enjoy coding .....
Great post. Thank you sharing this artical tekclue
ReplyDelete