Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var got_it = []
- var fks_model_structure = JSON.parse("{{fks_model_structure|escapejs}}")
- $('.reversefk-body').on('show.bs.collapse', function(){
- var target = this.id.split('-')
- $('#change-icon-'+target[1]).addClass('fa-angle-up').removeClass('fa-angle-down')
- $('#panel-'+target[1]).children('.panel-heading').toggleClass('panel-heading_bordered')
- /*This will not work for more than one table*/
- var $this = $(this)
- var all_bois = Object.entries($this.children('div').children('div').children('table'))
- all_bois.splice(-2, 2)
- for (var [k, v] of all_bois){
- var dtable = $(v)
- var app = dtable.data('app')
- var field_pre = dtable.data('name')
- var field_for_target = field_pre
- var field = ''
- if (field_pre.includes(target[1])){
- field_pre = field_pre.split('_')
- field_pre.shift()
- }
- else if (field_pre.includes('_related_')){
- field_pre = field_pre.split('_related_')
- field_pre.shift()
- }
- if (Array.isArray(field_pre)){
- if (field_pre.length > 1){
- field_pre = field_pre.join("_")
- }
- else{
- field_pre = field_pre.toString()
- }
- }
- field = field_pre
- if (!got_it.includes(target+field)){
- ((target, field, field_for_target)=>{
- console.log('fks field', field, field_for_target, fks_model_structure)
- $.get("/api/"+app+"/"+target[1]+"/?format=json&"+field+"={{id}}", function(data){
- $('#spinner-'+field_for_target).show()
- dataSet=data
- console.log('dataSet', dataSet)
- got_it.push(target+field)
- this_ms = Object.entries(fks_model_structure[target[1]])
- if (dataSet.count > 0) {
- for (var [f, v] of this_ms) if (v.name != field && v.classname != 'SpecialTextField'){
- $('#table-'+field_for_target+' > thead > tr').append(
- "<th>"+toTitleCase(v.name.split('_').join(' '))+"</th>"
- )
- $('#table-'+field_for_target+' > tfoot > tr').append(
- "<th>"+toTitleCase(v.name.split('_').join(' '))+"</th>"
- )
- }
- for (var [key, val] of Object.entries(dataSet.results)){
- var index = key
- $('#table-'+field_for_target+' > tbody').append(
- "<tr id='"+field_for_target+"_"+index+"' data-id='"+dataSet.results[index]['id']+"' data-target='"+target[1]+"' data-app='"+app+"''></tr>"
- )
- for (var [a, b] of this_ms) if (b.name != field){
- if (b.classname != 'SpecialTextField'){
- if (b.rel_many){
- // Prob need to do some iteration, but it might just be fine tbh. I don't need to link each, so...
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name+'_rel']+"</td>"
- )
- }
- else if (b.rel){
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name+'_rel']+"</td>"
- )
- }
- else if (b.date){
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name+'_date_only_ignore']+"</td>"
- )
- }
- else if (b.get_from){
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index]['content_object']+"</td>"
- )
- }
- else if (b.classname == "SpecialFileField"|| b.classname == "SpecialProcessedImageField"){
- if (dataSet.results[index][b.name]){
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name].split('=').pop()+"</td>"
- )
- }
- else{
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name]+"</td>"
- )
- }
- }
- else if (b.choices){
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name+'_choices']+"</td>"
- )
- }
- else {
- $('#table-'+field_for_target+' > tbody > #'+field_for_target+'_'+index).append(
- "<td>"+dataSet.results[index][b.name]+"</td>"
- )
- }
- }
- }
- }
- }
- else{
- $('#table-'+field_for_target).parent().css("display", "None")
- $('#title-'+field_for_target).after(
- "<p>No data.</p>"
- )
- }
- }).done(function(){
- $('#spinner-'+field_for_target).hide()
- var table = $('#spinner-'+field_for_target).siblings('#table-container-'+field_for_target)
- table.addClass('taller')
- }).fail(function(){
- console.log('FAILURE')
- })
- })(target, field, field_for_target)
- }
- else{
- console.log('got it already', dtable)
- }
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement