Advertisement
Guest User

failedRESTPOST

a guest
Nov 24th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(document).ready(function() {
  2.  
  3.     initialize();
  4.     $('#createPieChart').click(function() {
  5.         formValidation();
  6.     });
  7.     var hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
  8.     var appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
  9.  
  10.  
  11.     function initialize() {
  12.  
  13.         var scriptbase = hostweburl + "/_layouts/15/";
  14.         $.getScript(scriptbase + "SP.RequestExecutor.js", function() {
  15.             var executor;
  16.             var url = appweburl + "/_api/SP.AppContextSite(@target)/web/lists?@target='" + hostweburl + "'";
  17.  
  18.  
  19.             executor = new SP.RequestExecutor(appweburl);
  20.             executor.executeAsync(
  21.             {
  22.                 url: url,
  23.                 method: "GET",
  24.                 headers: { "Accept": "application/json; odata=verbose" },
  25.                 success: onSuccess,
  26.                 error: onFail
  27.  
  28.  
  29.             });
  30.  
  31.             function onSuccess(data) {
  32.  
  33.                 var results;
  34.                 var html = "";
  35.                 var jsonObject = JSON.parse(data.body);
  36.  
  37.                 results = jsonObject.d.results;
  38.                 for (var i = 0; i < results.length; i++) {
  39.  
  40.                     html += '<option value="' + results[i].Title + '"> ' +
  41.                         results[i].Title + '</option>';
  42.  
  43.  
  44.                 }
  45.  
  46.                 $('#searchOptions').append(html);
  47.                 $('#searchOptions').show();
  48.             }
  49.  
  50.  
  51.         });
  52.  
  53.     };
  54.  
  55.     function formValidation() {
  56.        
  57.         var url, targetList, field1, field2;
  58.  
  59.         if ($('#searchOptions').val() && $('#fieldName').val() && $('#fieldNumber').val()) {
  60.             targetList = $('#searchOptions').val();
  61.             field1 = $('#fieldName').val();
  62.             field2 = $('#fieldNumber').val();
  63.             url = getUrl(targetList);
  64.  
  65.         }
  66.  
  67.         function getUrl(target) {
  68.             url = appweburl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('" + target + "')/items?@target='" + hostweburl + "'";
  69.             return url;
  70.         }
  71.        
  72.         if (field1 && field2) {
  73.             createChart(url, field1, field2);
  74.         }
  75.  
  76.     }
  77.  
  78.     function createChart(url, field1, field2) {
  79.         var chart = new PieChart(url, field1, field2);
  80.         var executor;
  81.  
  82.         function PieChart(chartendpoint, fieldName1, fieldName2) {
  83.             this.title = $('#searchOptions').val();
  84.             this.url = chartendpoint;
  85.             this.field1 = fieldName1;
  86.             this.field2 = fieldName2;
  87.             this.pieChartData = [['enhet', 'antal']];
  88.             this.options = {
  89.                 title: this.title,
  90.                 width: 800,
  91.                 height: 800,
  92.                 is3D: true
  93.  
  94.             };
  95.             this.getOptions = function() {
  96.                 return this.options;
  97.             };
  98.             this.dataTable = function() {
  99.  
  100.                 if (this.pieChartData.length > 1) {
  101.                     this.dataTable = google.visualization.arrayToDataTable(this.pieChartData);
  102.                 }
  103.                 return this.dataTable;
  104.             };
  105.             this.saveToList = {
  106.                 "Title": this.title,
  107.                 "endpoint": this.url,
  108.                 "nameOfField1": this.field1,
  109.                 "nameOfField2": this.field2
  110.  
  111.             };
  112.         }
  113.  
  114.         function saveData(data) {
  115.             var results;
  116.             var jsonObject = JSON.parse(data.body);
  117.             results = jsonObject.d.results;
  118.              
  119.             for (var i = 0; i < results.length; i++) {
  120.                 chart.pieChartData.push([results[i][field1], results[i][field2]]);
  121.             }
  122.             renderChart(chart);
  123.         }
  124.  
  125.         alert(chart.title);
  126.         executor = new SP.RequestExecutor(appweburl);
  127.         executor.executeAsync(
  128.         {
  129.             url: chart.url,
  130.             method: "GET",
  131.             headers: { "Accept": "application/json; odata=verbose" },
  132.             success: saveData,
  133.             error: onFail
  134.  
  135.         });
  136.  
  137.  
  138.     }
  139.  
  140.     function renderChart(chart) {
  141.         var options, dataTable, theChart;
  142.  
  143.         dataTable = chart.dataTable();
  144.         chart.options.backgroundColor = "#FFFF75";
  145.         chart.options.height = 700;
  146.         options = chart.getOptions();
  147.         theChart = new google.visualization.PieChart(document.getElementById('pieChart'));
  148.         theChart.draw(dataTable, options);
  149.         $('#pieChart').show();
  150.         $('#saveChart').show();
  151.        
  152.         $('#saveChart').click(function() {
  153.             saveChart();
  154.                 function saveChart() {
  155.                     alert('inside');
  156.                     var item = chart.saveToList;
  157.                     item = JSON.stringify(item);
  158.                     var url = appweburl +
  159.                         "/_api/web/lists/getbytitle('ChartConfig')/items";
  160.  
  161.                     $.ajax({
  162.                         url: url,
  163.                         type: "POST",
  164.                         contentType: "application/json;odata=verbose",
  165.                         data: item,
  166.                         headers: {
  167.                            
  168.                             "Accept": "application/json;odata=verbose",
  169.                             "X-RequestDigest": $("#__REQUESTDIGEST").val()
  170.                         },
  171.                        
  172.                         success: function() {
  173.                             alert("Item created.");
  174.                         },
  175.                         error: function() {
  176.                             alert("Failed to create item.");
  177.                         }
  178.                     });
  179.  
  180.                 }
  181.  
  182.                
  183.             });
  184.        
  185.  
  186.     }
  187.  
  188.    
  189.  
  190.  
  191.     function onFail() {
  192.  
  193.         alert('fail');
  194.     }
  195.  
  196.     function getQueryStringParameter(paramToRetrieve) {
  197.                 var params =
  198.                     document.URL.split("?")[1].split("&");
  199.                 var strParams = "";
  200.                 for (var i = 0; i < params.length; i = i + 1) {
  201.                     var singleParam = params[i].split("=");
  202.                     if (singleParam[0] == paramToRetrieve)
  203.                         return singleParam[1];
  204.                 }
  205.             }
  206.  
  207. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement