Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. var got_it = []
  2. var fks_model_structure = JSON.parse("{{fks_model_structure|escapejs}}")
  3. $('.reversefk-body').on('show.bs.collapse', function(){
  4. var target = this.id.split('-')
  5. $('#change-icon-'+target[1]).addClass('fa-angle-up').removeClass('fa-angle-down')
  6. $('#panel-'+target[1]).children('.panel-heading').toggleClass('panel-heading_bordered')
  7. /*This will not work for more than one table*/
  8. var $this = $(this)
  9. var all_bois = Object.entries($this.children('div').children('div').children('table'))
  10. all_bois.splice(-2, 2)
  11. for (var [k, v] of all_bois){
  12. var dtable = $(v)
  13. var app = dtable.data('app')
  14. var field_pre = dtable.data('name')
  15. var field_for_target = field_pre
  16. var field = ''
  17. if (field_pre.includes(target[1])){
  18. field_pre = field_pre.split('_')
  19. field_pre.shift()
  20. }
  21. else if (field_pre.includes('_related_')){
  22. field_pre = field_pre.split('_related_')
  23. field_pre.shift()
  24. }
  25. if (Array.isArray(field_pre)){
  26. if (field_pre.length > 1){
  27. field_pre = field_pre.join("_")
  28. }
  29. else{
  30. field_pre = field_pre.toString()
  31. }
  32. }
  33. field = field_pre
  34. if (!got_it.includes(target+field)){
  35. ((target, field, field_for_target)=>{
  36. console.log('fks field', field, field_for_target, fks_model_structure)
  37. $.get("/api/"+app+"/"+target[1]+"/?format=json&"+field+"={{id}}", function(data){
  38. $('#spinner-'+field_for_target).show()
  39. dataSet=data
  40. console.log('dataSet', dataSet)
  41. got_it.push(target+field)
  42. this_ms = Object.entries(fks_model_structure[target[1]])
  43. if (dataSet.count > 0) {
  44. for (var [f, v] of this_ms) if (v.name != field && v.classname != 'SpecialTextField'){
  45. $('#table-'+field_for_target+' > thead > tr').append(
  46. "<th>"+toTitleCase(v.name.split('_').join(' '))+"</th>"
  47. )
  48. $('#table-'+field_for_target+' > tfoot > tr').append(
  49. "<th>"+toTitleCase(v.name.split('_').join(' '))+"</th>"
  50. )
  51. }
  52. for (var [key, val] of Object.entries(dataSet.results)){
  53. var index = key
  54. $('#table-'+field_for_target+' > tbody').append(
  55. "<tr id='"+field_for_target+"_"+index+"' data-id='"+dataSet.results[index]['id']+"' data-target='"+target[1]+"' data-app='"+app+"''></tr>"
  56. )
  57. for (var [a, b] of this_ms) if (b.name != field){
  58. if (b.classname != 'SpecialTextField'){
  59. if (b.rel_many){
  60. // Prob need to do some iteration, but it might just be fine tbh. I don't need to link each, so...
  61. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  62. "<td>"+dataSet.results[index][b.name+'_rel']+"</td>"
  63. )
  64. }
  65. else if (b.rel){
  66. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  67. "<td>"+dataSet.results[index][b.name+'_rel']+"</td>"
  68. )
  69. }
  70. else if (b.date){
  71. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  72. "<td>"+dataSet.results[index][b.name+'_date_only_ignore']+"</td>"
  73. )
  74. }
  75. else if (b.get_from){
  76. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  77. "<td>"+dataSet.results[index]['content_object']+"</td>"
  78. )
  79. }
  80. else if (b.classname == "SpecialFileField"|| b.classname == "SpecialProcessedImageField"){
  81. if (dataSet.results[index][b.name]){
  82. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  83. "<td>"+dataSet.results[index][b.name].split('=').pop()+"</td>"
  84. )
  85. }
  86. else{
  87. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  88. "<td>"+dataSet.results[index][b.name]+"</td>"
  89. )
  90. }
  91.  
  92. }
  93. else if (b.choices){
  94. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  95. "<td>"+dataSet.results[index][b.name+'_choices']+"</td>"
  96. )
  97. }
  98. else {
  99. $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
  100. "<td>"+dataSet.results[index][b.name]+"</td>"
  101. )
  102. }
  103. }
  104. }
  105. }
  106. }
  107. else{
  108. $('#table-'+field_for_target).parent().css("display", "None")
  109. $('#title-'+field_for_target).after(
  110. "<p>No data.</p>"
  111. )
  112. }
  113. }).done(function(){
  114. $('#spinner-'+field_for_target).hide()
  115. var table = $('#spinner-'+field_for_target).siblings('#table-container-'+field_for_target)
  116. table.addClass('taller')
  117. }).fail(function(){
  118. console.log('FAILURE')
  119. })
  120. })(target, field, field_for_target)
  121. }
  122. else{
  123. console.log('got it already', dtable)
  124. }
  125. }
  126. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement