Ticket #349: catwalk-js-multiple-joins-pages.diff

File catwalk-js-multiple-joins-pages.diff, 6.5 kB (added by bbockelm@math.unl.edu, 3 years ago)

Patch to catwalk javascript file

  • turbogears/toolbox/catwalk/static/javascript/catwalk.js

    old new  
    336335               next_page 
    337336              ); 
    338337} 
     338catwalk.paging_join_footer = function(result) 
     339{ 
     340    var total = parseInt(result['total']); 
     341    var start = parseInt(result['start']); 
     342    var size = parseInt(result['page_size']); 
     343    if(total <= size ) return ''; 
     344    var page_number = parseInt( start / size + 1 ); 
     345    var total_pages =  parseInt( total/size +1); 
     346    var previous_page = IMG({'border':'0','style':'margin-right:5px','align':'absbottom', 
     347                                'src':'/tg_static/images/transp.png'} ); 
     348    var next_page = previous_page; 
     349    var next_start = start + size; 
     350    var previous_start = start - size; 
     351    if(page_number > 1) 
     352    { 
     353        previous_page = A({ 
     354                           'href':"javascript:catwalk.retrieveJoins('"+ result['objectName'] +"','" + result['id'] + "','" + result['joinName'] + "','" + result['joinType'] + "','" + result['joinObjectName'] + "','" + previous_start +"')", 
     355                           'title':'Previous page', 
     356                           'class':'discloser' 
     357                           }, 
     358                           IMG({'border':'0','width':'15','style':'margin-right:5px','align':'absbottom', 
     359                                'src':'/tg_static/images/arrow_left.png'} ) 
     360                          ); 
     361    } 
     362    if(page_number < total_pages) 
     363    { 
     364        next_page = A({ 
     365                           'href':"javascript:catwalk.retrieveJoins('"+ result['objectName'] +"','" + result['id'] + "','" + result['joinName'] + "','" + result['joinType'] + "','" + result['joinObjectName'] + "','" + next_start +"')", 
     366                           'title':'Next page', 
     367                           'class':'discloser' 
     368                           }, 
     369                           IMG({'border':'0','style':'margin-right:5px','align':'absbottom', 
     370                                'src':'/tg_static/images/arrow_up.png'} ) 
     371                          ); 
     372    } 
     373    return DIV({'style':'font-size:10px;margin:6px;'}, 
     374               previous_page, 
     375               ' ', 
     376               'Page ', 
     377               catwalk.join_page_selector(page_number,total_pages,size,result['objectName'], result['id'], result['joinName'], result['joinType'], result['joinObjectName']) , 
     378               '  of '+ total_pages, 
     379               ' ', 
     380               next_page 
     381              ); 
     382} 
    339383catwalk.page_size = function(size,object_name) 
    340384{ 
    341385    var page_size =  createDOM('SELECT',{'style':'font-size:10px', 
     
    361405    } 
    362406    return page_selector; 
    363407} 
     408catwalk.join_page_selector = function(page_number,total_pages,size,object_name, id, joinName, joinType, joinObjectName) 
     409{ 
     410    var page_selector =  createDOM('SELECT',{'style':'font-size:10px', 
     411                                             'onchange':'catwalk.update_join_page(this,"'+ object_name + '","' + id + '","' + joinName + '","' + joinType + '","' + joinObjectName+ '")'}); 
     412    for(var i=0;i < total_pages;i++) 
     413    { 
     414        var props ={'value':(i*size)}; 
     415        if((i+1) == page_number) props['selected'] ='selected'; 
     416        page_selector.appendChild(createDOM('OPTION',props,(i+1))); 
     417    } 
     418    return page_selector; 
     419} 
    364420catwalk.update_page_size = function(list,object_name) 
    365421{ 
    366422    return; 
     
    370426    var page = list.options[list.selectedIndex].value; 
    371427    catwalk.retrieveValues(object_name,page); 
    372428} 
    373 catwalk.go_to_page = function(page
     429catwalk.update_join_page = function( list, object_name, id, joinName, joinType, joinObjectName
    374430{ 
    375     alert('og to page '+ page); 
     431    var page = list.options[list.selectedIndex].value; 
     432    catwalk.retrieveJoins(object_name, id, joinName, joinType, joinObjectName, page ) 
    376433} 
    377434catwalk.renderValues = function(result) 
    378435{ 
     
    699756                              ctx['id'], 
    700757                              ctx['joinName'], 
    701758                              ctx['joinType'], 
    702                               ctx['joinObjectName']);  
     759                              ctx['joinObjectName'], 
     760                              0);  
    703761    } 
    704762} 
    705763catwalk.retrieveManageRelatedJoins = function(objectName,id,joinName,relatedObjectName) 
     
    734792  var allJoins = createDOM('SELECT',{'id':'select_add_'+ results['join'],'size':'10','style':'width:225px','multiple':'multiple'}, 
    735793                                map(catwalk.renderOptions, catwalk.optionsForJoins(results['allJoins']['rows']) )  
    736794                           ); 
    737   var params = [results['hostObject'],results['id'],results['join'],results['joinType'],results['joinObjectName']]; 
     795  var params = [results['hostObject'],results['id'],results['join'],results['joinType'],results['joinObjectName'],0]; 
    738796  var joinsTable = TABLE(null, 
    739797                         TBODY(null, 
    740798                               TR(null, 
     
    787845{ 
    788846    catwalk.disclosedRelations[joinName]['visible'] = !catwalk.disclosedRelations[joinName]['visible']; 
    789847} 
    790 catwalk.retrieveJoins= function(objectName,id,joinName,joinType,joinObjectName
     848catwalk.retrieveJoins= function(objectName,id,joinName,joinType,joinObjectName, page
    791849{ 
    792850  var u = 'joins?objectName='+ objectName +'&id='+ id; 
    793851  u+='&join='+ joinName +'&joinType='+ joinType +'&joinObjectName='+ joinObjectName; 
     852  u += '&start=' + page; 
    794853  catwalk.addDisclosedRelation(joinName,{'objectName':objectName, 
    795854                                         'visible':true, 
    796855                                         'id':id, 
     
    846905  else 
    847906  { 
    848907    //grid = DIV(null,grid,catwalk.renderAddMultipleJoinsControl(r['joinObjectName'])); 
    849     grid = DIV(null,grid,catwalk.renderAddMultipleJoinsControl(r['hostObject'],r['id'],r['joinObjectName'])); 
     908    var footer = catwalk.paging_join_footer( results ); 
     909    grid = DIV(null,grid,footer,catwalk.renderAddMultipleJoinsControl(r['hostObject'],r['id'],r['joinObjectName'])); 
    850910  } 
    851911  replaceChildNodes('grid_'+ results['join'],grid); 
    852912 
     
    897957  { 
    898958    var edit = ''; 
    899959    var action = Widget.renderHandler('javascript:catwalk.retrieveJoins', 
    900                                       [column.objectName,column.id,column.columnName,column.type,column.join
     960                                      [column.objectName,column.id,column.columnName,column.type,column.join,0
    901961                                     ); 
    902962    return TR(null, TD({'colspan':'2'}, 
    903963                        SPAN({'id':'disclose_'+ column.columnName},