- <script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.js"></script>
- <script type="text/javascript" src="//code.highcharts.com/highcharts.src.js"></script>
- <script type="text/javascript">
- var maternityLeaveDays = 0;
- var paternityLeaveDays = 0;
- var ComOffLeaveDays = 0;
- var sickLeaveDays = 0;
- var casualLeaveDays = 0;
- var userExist = false;
- var compOffLeaveFromEmployeeLeaveList = 0;
- var sickLeaveFromEmployeeLeaveList = 0;
- var casualLeaveFromEmployeeLeaveList = 0;
- var MLOffLeaveFromEmployeeLeaveList = 0;
- var PLLeaveFromEmployeeLeaveList = 0;
- var URLString = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('EmployeeLeave')/Items?$select=Totalleavedays,LeaveType/LeaveType&$filter=(EmpName eq'" + _spPageContextInfo.userDisplayName + "') and (Employee0 eq'16')&$expand=LeaveType";
- $.ajax({
- url: URLString,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethod,
- error: callFailureMethod
- });
- function callSuccessMethod(data, request) {
- if (data.d.results.length >= 1) {
- userExist = true;
- $.each(data.d.results, function(key, val) {
- if (val.LeaveType.LeaveType === 'Compoff') {
- compOffLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'SickLeave') {
- sickLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'CasualLeave') {
- casualLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'MaternityLeave') {
- MLOffLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'PaternityLeave') {
- PLLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- }
- });
- var endPointURLString = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Leavetype')/Items?$select=LeaveType,Total,isActive&$filter=isActive eq '1' ";
- $.ajax({
- url: endPointURLString,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethodForLeaveType,
- error: callFailureMethodLeaveType
- });
- } else {
- userExist = false;
- var endPointURLString = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Leavetype')/Items";
- $.ajax({
- url: endPointURLString,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethodForLeaveType,
- error: callFailureMethodLeaveType
- });
- }
- }
- function callFailureMethod(data, errCode, errMessage) {
- alert("Error: " + errMessage);
- }
- function callSuccessMethodForLeaveType(data, request) {
- $.each(data.d.results, function(key, val) {
- if (val.LeaveType === 'Casual Leave') {
- casualLeaveDays = val.Total;
- } else if (val.LeaveType === 'Marriage Leave') {
- marriageLeaveDays = val.Total;
- } else if (val.LeaveType === 'Maternity Leave') {
- maternityLeaveDays = val.Total;
- } else if (val.LeaveType === 'Paternity Leave') {
- paternityLeaveDays = val.Total;
- } else if (val.LeaveType === 'Compensatory Leave') {
- ComOffLeaveDays = val.Total;
- } else if (val.LeaveType === 'Sick Leave') {
- sickLeaveDays = val.Total;
- }
- });
- }
- if (userExist) {
- ComOffLeaveDays = (parseInt(ComOffLeaveDays) - parseInt(compOffLeaveFromEmployeeLeaveList));
- sickLeaveDays = (parseInt(sickLeaveDays) - parseInt(sickLeaveFromEmployeeLeaveList));
- casualLeaveDays = (parseInt(casualLeaveDays) - parseInt(casualLeaveFromEmployeeLeaveList));
- maternityLeaveDays = (parseInt(maternityLeaveDays) - parseInt(MLOffLeaveFromEmployeeLeaveList));
- paternityLeaveDays = (parseInt(paternityLeaveDays) - parseInt(PLLeaveFromEmployeeLeaveList));
- DrawChart();
- }
- if (!userExist) {
- DrawChart();
- }
- }
- function callFailureMethodLeaveType(data, errCode, errMessage) {
- alert("Error: " + errMessage);
- }
- function DrawChart() {
- PieChart = new Highcharts.Chart({
- chart: {
- renderTo: 'chart-container',
- plotBackgroundColor: null,
- plotBorderWidth: null,
- plotShadow: false,
- type: 'pie'
- },
- title: {
- text: 'Balance Leave Availble'
- },
- tooltip: {
- pointFormat: '{series.name}: <b>{point.y}</b>'
- },
- plotOptions: {
- pie: {
- allowPointSelect: true,
- cursor: 'pointer',
- dataLabels: {
- enabled: true,
- format: '<b>{point.name}</b>: {point.y}',
- style: {
- color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
- }
- }
- }
- },
- series: [{
- name: 'Leave Balance',
- colorByPoint: true,
- data: [
- ['TotalCasualLeave', casualLeaveDays],
- ['CompOff', ComOffLeaveDays],
- ['MaternityLeave', maternityLeaveDays],
- ['PaternityLeave', paternityLeaveDays],
- ['SicKLeave', sickLeaveDays]
- ]
- }]
- });
- }
- </script>
Pie Chart For SharePoint
Pie chart binds the list data, based on the list item comparisons from three different lists.
Join the conversation! Your thoughts help the community grow.
Sign in to leave a comment
It is the same account you read, post and publish with — and you will come straight back to this page.

Md Tahmidul AbedinPosted Oct 14, 2019, 8:48 AM
Nice one .Thanks for sharing. (Y)
Vinodh NarayananPosted Jun 28, 2017, 3:28 AM
Good one thanks for sharing please share the final result if possible