Things are finally working fairly well for the customers grid (although I've not yet taken any speed issues into account). I removed the index.ctp file, since it was largely useless and I figured out how to render directly to the element. I also moved most of the jqGrid XML code into the application controller, since it will be reused by most of our controllers.

git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605/site@108 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
abijah
2009-06-13 20:46:17 +00:00
parent 447c6a8376
commit 95181f4718
4 changed files with 147 additions and 153 deletions

View File

@@ -1,3 +0,0 @@
<div class="customers index">
<?php echo $this->element('customers', array('heading' => '<h2>'.$heading.'</h2>')) ?>
</div>

View File

@@ -1,6 +1,8 @@
<?php /* -*- mode:PHP -*- */
//unset($caption);
if (!isset($caption))
$caption = '<H2>'.$this->pageTitle.'</H2>';
if (!isset($limit))
$limit = 20;
@@ -8,7 +10,7 @@ if (!isset($limitOptions))
$limitOptions = array(10, 20, 50, 200);
if (!isset($height))
$height = '80%';
$height = 'auto';
// Do some prework to bring in the appropriate libraries
$imgpath = '/pmgr/site/css/jqGrid/basic/images';
@@ -26,12 +28,12 @@ if (isset($customers[0]['ContactsCustomer']))
$cols['Name'] = array('index' => 'Customer.name', 'width' => '150', 'align' => 'left');
$cols['Last Name'] = array('index' => 'PrimaryContact.last_name', 'width' => '100', 'align' => 'left');
$cols['First Name'] = array('index' => 'PrimaryContact.first_name', 'width' => '100', 'align' => 'left');
$cols['Unit(s)'] = array('index' => 'Customer.units', 'width' => '80', 'align' => 'center');
$cols['Comment'] = array('index' => 'Customer.comment', 'width' => '300', 'align' => 'center');
$cols['Leases'] = array('index' => 'lease_count', 'width' => '60', 'align' => 'center');
$cols['Comment'] = array('index' => 'Customer.comment', 'width' => '300', 'align' => 'left');
// Some of the columns should not be sortable
foreach (array('Unit(s)') AS $field)
$cols[$field]['sortable'] = false;
foreach (array_intersect_key($cols, array('Comment'=>1)) AS $k => $v)
$cols[$k]['sortable'] = false;
// Create the javascript code for jqGrid to create each table column
$colModels = array();
@@ -79,20 +81,31 @@ jQuery(document).ready(function(){
colNames: [ '<?php echo implode("', '", array_keys($cols)); ?>' ],
colModel: [ <?php echo "\n " . implode(",\n ", $colModels); ?> ],
pager: jQuery('#customer-pager'),
height: '100%',
//height: 'auto',
height: '<?php echo $height; ?>',
rowNum: <?php echo $limit; ?>,
rowList: [<?php echo implode(",",$limitOptions); ?>],
sortname: 'Customer.id',
sortorder: "ASC",
viewrecords: true,
imgpath: '<?php echo $imgpath; ?>',
caption: <?php echo isset($caption) ? "'$caption'" : "null"; ?>,
caption: <?php echo $caption ? "'$caption'" : "null"; ?>,
});
});
--></script>
<div id="everything">
<table id="customer-list" class="scroll"></table>
<div id="customer-pager" class="scroll" style="text-align:center;"></div>
</div>
<?php
/* <div><a href="#" onClick="$('#debug').html(htmlEncode($('#everything').html())); return false;">Get Table Code</a></div> */
/* <div id="debug"></div> */
/* <P> */
/* <input type="text" id="debval" value="1.0em"><BR> */
/* <a href="#" onClick="$('#load_customer-list').css('display', 'inline'); return false;">Show Loading</a><BR> */
/* <a href="#" onClick="$('#load_customer-list').css('margin-top', $('#debval').val()); return false;">Set Top Margin</a><BR> */
/* <a href="#" onClick="$('#load_customer-list').css('margin-left', $('#debval').val()); return false;">Set Left Margin</a><BR> */
?>