Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).ready(function() {
- initialize();
- $('#createPieChart').click(function() {
- formValidation();
- });
- var hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
- var appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
- function initialize() {
- var scriptbase = hostweburl + "/_layouts/15/";
- $.getScript(scriptbase + "SP.RequestExecutor.js", function() {
- var executor;
- var url = appweburl + "/_api/SP.AppContextSite(@target)/web/lists?@target='" + hostweburl + "'";
- executor = new SP.RequestExecutor(appweburl);
- executor.executeAsync(
- {
- url: url,
- method: "GET",
- headers: { "Accept": "application/json; odata=verbose" },
- success: onSuccess,
- error: onFail
- });
- function onSuccess(data) {
- var results;
- var html = "";
- var jsonObject = JSON.parse(data.body);
- results = jsonObject.d.results;
- for (var i = 0; i < results.length; i++) {
- html += '<option value="' + results[i].Title + '"> ' +
- results[i].Title + '</option>';
- }
- $('#searchOptions').append(html);
- $('#searchOptions').show();
- }
- });
- };
- function formValidation() {
- var url, targetList, field1, field2;
- if ($('#searchOptions').val() && $('#fieldName').val() && $('#fieldNumber').val()) {
- targetList = $('#searchOptions').val();
- field1 = $('#fieldName').val();
- field2 = $('#fieldNumber').val();
- url = getUrl(targetList);
- }
- function getUrl(target) {
- url = appweburl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('" + target + "')/items?@target='" + hostweburl + "'";
- return url;
- }
- if (field1 && field2) {
- createChart(url, field1, field2);
- }
- }
- function createChart(url, field1, field2) {
- var chart = new PieChart(url, field1, field2);
- var executor;
- function PieChart(chartendpoint, fieldName1, fieldName2) {
- this.title = $('#searchOptions').val();
- this.url = chartendpoint;
- this.field1 = fieldName1;
- this.field2 = fieldName2;
- this.pieChartData = [['enhet', 'antal']];
- this.options = {
- title: this.title,
- width: 800,
- height: 800,
- is3D: true
- };
- this.getOptions = function() {
- return this.options;
- };
- this.dataTable = function() {
- if (this.pieChartData.length > 1) {
- this.dataTable = google.visualization.arrayToDataTable(this.pieChartData);
- }
- return this.dataTable;
- };
- this.saveToList = {
- "Title": this.title,
- "endpoint": this.url,
- "nameOfField1": this.field1,
- "nameOfField2": this.field2
- };
- }
- function saveData(data) {
- var results;
- var jsonObject = JSON.parse(data.body);
- results = jsonObject.d.results;
- for (var i = 0; i < results.length; i++) {
- chart.pieChartData.push([results[i][field1], results[i][field2]]);
- }
- renderChart(chart);
- }
- alert(chart.title);
- executor = new SP.RequestExecutor(appweburl);
- executor.executeAsync(
- {
- url: chart.url,
- method: "GET",
- headers: { "Accept": "application/json; odata=verbose" },
- success: saveData,
- error: onFail
- });
- }
- function renderChart(chart) {
- var options, dataTable, theChart;
- dataTable = chart.dataTable();
- chart.options.backgroundColor = "#FFFF75";
- chart.options.height = 700;
- options = chart.getOptions();
- theChart = new google.visualization.PieChart(document.getElementById('pieChart'));
- theChart.draw(dataTable, options);
- $('#pieChart').show();
- $('#saveChart').show();
- $('#saveChart').click(function() {
- saveChart();
- function saveChart() {
- alert('inside');
- var item = chart.saveToList;
- item = JSON.stringify(item);
- var url = appweburl +
- "/_api/web/lists/getbytitle('ChartConfig')/items";
- $.ajax({
- url: url,
- type: "POST",
- contentType: "application/json;odata=verbose",
- data: item,
- headers: {
- "Accept": "application/json;odata=verbose",
- "X-RequestDigest": $("#__REQUESTDIGEST").val()
- },
- success: function() {
- alert("Item created.");
- },
- error: function() {
- alert("Failed to create item.");
- }
- });
- }
- });
- }
- function onFail() {
- alert('fail');
- }
- function getQueryStringParameter(paramToRetrieve) {
- var params =
- document.URL.split("?")[1].split("&");
- var strParams = "";
- for (var i = 0; i < params.length; i = i + 1) {
- var singleParam = params[i].split("=");
- if (singleParam[0] == paramToRetrieve)
- return singleParam[1];
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement