Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. <script>
  2.  
  3. var xml;
  4. var opts = {
  5. date: ''
  6. };
  7.  
  8. var qmap = {[Element context="current" type="content" key="qmap" htmlencode="false"]}
  9.  
  10. var SLUM = (function(){
  11.  
  12. var slmbConfig = {
  13. };
  14.  
  15. return {
  16.  
  17. init : function(Args) {
  18. slmbConfig = Args;
  19. },
  20.  
  21. setHandlers: function() {
  22.  
  23. $('.slubm-date select').change(function() {
  24. var s = $(this);
  25. opts.date = s[0].value;
  26. SLUM.reRender(opts);
  27. });
  28.  
  29. },
  30.  
  31. filterXml: function(data, opts) {
  32.  
  33. var modifyXml = data;
  34.  
  35. if (opts && opts.date) {
  36. if (opts.date != 'all') {
  37. $(modifyXml).find('entry>updated').each(function(){
  38. var s = $(this);
  39. if (opts.date != SLUM.convertDate(new Date(s[0].textContent))) {
  40. $(this).parent().remove();
  41. }
  42. });
  43. }
  44. }
  45.  
  46. return modifyXml;
  47. },
  48.  
  49. reRender: function(opts) {
  50. var data = SLUM.filterXml(jQuery.clone(xml), opts);
  51. SLUM.clearResultTable();
  52. for (var x in qmap) {
  53. SLUM.showQuestions(data, x);
  54. }
  55.  
  56. if (opts && opts.date !== 'all')
  57. for (var x in qmap) {
  58. SLUM.showQuestionsFulltime(xml, x);
  59. }
  60.  
  61. },
  62.  
  63. render : function (appId, formId, febhost) {
  64. SLUM.setHandlers();
  65. SLUM.getResults(appId, formId, febhost);
  66. },
  67.  
  68. getResults: function (appId, formId, febhost) {
  69.  
  70. console.log(appId, formId, febhost);
  71. var url = window.location.href;
  72. var arr = url.split("/");
  73. var protocol = arr[0];
  74. console.log(protocol);
  75.  
  76. $(document).ready(function(){
  77. $.ajax({
  78. type: "GET" ,
  79. url: "[Component id="d9c5e250-f69e-401e-a0a2-8e7fcde14c4e:NC92b3RlIHdlYiBjb250ZW50L3Rlc3QtZGF0YS1zdXJ2ZXkueG1s" name="vote web content/test-data-survey.xml" format="url"]" ,
  80. //url: protocol + '//' + febhost + '/forms-basic/secure/org/data/' + appId + '/' + formId + '/' ,
  81. dataType: "xml" ,
  82. success: function(resp) {
  83. xml = resp;
  84.  
  85. SLUM.showDates(xml);
  86. for (var x in qmap) {
  87. SLUM.showQuestions(xml, x);
  88. }
  89. }
  90. });
  91. });
  92.  
  93. },
  94.  
  95. showDates: function(xml) {
  96.  
  97. var dates = [];
  98.  
  99. $(xml).find('entry>updated').each(function(){
  100. var s = $(this);
  101.  
  102. if ($.inArray(SLUM.convertDate(new Date(s[0].textContent)), dates) == -1) {
  103. dates.push(SLUM.convertDate(new Date(s[0].textContent)));
  104. }
  105.  
  106. });
  107.  
  108. var options = $(".slubm-date select");
  109. dates.forEach(function(value){
  110. options.append('<option>' + value + '</option>');
  111. });
  112.  
  113. },
  114.  
  115. showQuestions: function(xml, questionId) {
  116.  
  117. var qty = 0;
  118. var summ = 0;
  119.  
  120. var qtyAns1 = 0;
  121. var qtyAns2 = 0;
  122. var qtyAns3 = 0;
  123. var qtyAns4 = 0;
  124. var qtyAns5 = 0;
  125.  
  126. $(xml).find('entry>content>F_VoiceOfTheEmployee>' + questionId).each(function(){
  127. var s = $(this);
  128. qty = qty + 1;
  129. summ = summ + parseInt(s[0].textContent);
  130.  
  131. if (s[0].textContent === '1') {
  132. qtyAns1 = qtyAns1 + 1;
  133. }
  134.  
  135. if (s[0].textContent === '2') {
  136. qtyAns2 = qtyAns2 + 1;
  137. }
  138.  
  139. if (s[0].textContent === '3') {
  140. qtyAns3 = qtyAns3 + 1;
  141. }
  142.  
  143. if (s[0].textContent === '4') {
  144. qtyAns4 = qtyAns4 + 1;
  145. }
  146.  
  147. if (s[0].textContent === '5') {
  148. qtyAns5 = qtyAns5 + 1;
  149. }
  150.  
  151. });
  152.  
  153.  
  154. var averagePercent = ((summ/qty)*100)/Object.keys(qmap).length;
  155.  
  156. $('#slumb-table tbody').append(
  157. '<tr id="' + questionId + '">' +
  158. '<td class="q-name">' + qmap[questionId] + '</td>' +
  159. '<td class="q-quantity">' + qty + '</td>' +
  160. '<td class="q-percent1">' + Math.round((qtyAns1/qty) * 100) + '</td>' +
  161. '<td class="q-percent2">' + Math.round((qtyAns2/qty) * 100) + '</td>' +
  162. '<td class="q-percent3">' + Math.round((qtyAns3/qty) * 100) + '</td>' +
  163. '<td class="q-percent4">' + Math.round((qtyAns4/qty) * 100) + '</td>' +
  164. '<td class="q-percent5">' + Math.round((qtyAns5/qty) * 100) + '</td>' +
  165. //'<td>' + '<div id="myProgress"><div id="myBar"></div></div>' + (summ/qty).toFixed(2) + '</td>' +
  166. '<td class="q-average">' + '<div class="slumb-progress"><div class="slumb-bar" style="width:'+averagePercent+'%">' + (summ/qty).toFixed(2) + '</div></div>' + '</td>' +
  167. '</tr>'
  168. );
  169. },
  170.  
  171.  
  172.  
  173.  
  174.  
  175. showQuestionsFulltime: function(xml, questionId) {
  176.  
  177. var qty = 0;
  178. var summ = 0;
  179.  
  180. var qtyAns1 = 0;
  181. var qtyAns2 = 0;
  182. var qtyAns3 = 0;
  183. var qtyAns4 = 0;
  184. var qtyAns5 = 0;
  185.  
  186. $(xml).find('entry>content>F_VoiceOfTheEmployee>' + questionId).each(function(){
  187. var s = $(this);
  188. qty = qty + 1;
  189. summ = summ + parseInt(s[0].textContent);
  190.  
  191. if (s[0].textContent === '1') {
  192. qtyAns1 = qtyAns1 + 1;
  193. }
  194.  
  195. if (s[0].textContent === '2') {
  196. qtyAns2 = qtyAns2 + 1;
  197. }
  198.  
  199. if (s[0].textContent === '3') {
  200. qtyAns3 = qtyAns3 + 1;
  201. }
  202.  
  203. if (s[0].textContent === '4') {
  204. qtyAns4 = qtyAns4 + 1;
  205. }
  206.  
  207. if (s[0].textContent === '5') {
  208. qtyAns5 = qtyAns5 + 1;
  209. }
  210.  
  211. });
  212.  
  213.  
  214. var averagePercent = ((summ/qty)*100)/Object.keys(qmap).length;
  215.  
  216. $('#' + questionId + ' .q-quantity').append('<br/>' + qty);
  217. $('#' + questionId + ' .q-percent1').append('<br/>' + Math.round((qtyAns1/qty) * 100));
  218. $('#' + questionId + ' .q-percent2').append('<br/>' + Math.round((qtyAns2/qty) * 100));
  219. $('#' + questionId + ' .q-percent3').append('<br/>' + Math.round((qtyAns3/qty) * 100));
  220. $('#' + questionId + ' .q-percent4').append('<br/>' + Math.round((qtyAns4/qty) * 100));
  221. $('#' + questionId + ' .q-percent5').append('<br/>' + Math.round((qtyAns5/qty) * 100));
  222. $('#' + questionId + ' .q-average').append('<div style="height:1px;"></div><div class="slumb-progress"><div class="slumb-bar" style="width:'+averagePercent+'%">' + (summ/qty).toFixed(2) + '</div></div>');
  223.  
  224. },
  225.  
  226.  
  227. clearResultTable: function() {
  228. $("#slumb-table tbody").html('');
  229. },
  230.  
  231. convertDate: function(date) {
  232. return (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
  233. }
  234. };
  235. }());
  236.  
  237. $( document ).ready(function() {
  238. SLUM.render('[Element context="current" type="content" key="appid"]', '[Element context="current" type="content" key="formid"]', '[Element context="current" type="content" key="febhost"]');
  239. });
  240.  
  241. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement