diff --git a/controllers/enquiries_controller.php b/controllers/enquiries_controller.php index 2fa2eaf3..37bc219d 100755 --- a/controllers/enquiries_controller.php +++ b/controllers/enquiries_controller.php @@ -22,13 +22,11 @@ class EnquiriesController extends AppController { function index() { $this->Enquiry->recursive = 0; $this->set('enquiries', $this->paginate()); - $statuses = $this->Enquiry->Status->find('all', array('recursive'=>0)); - $status_list = array(); - foreach ($statuses as $status) { - $statusid = $status['Status']['id']; - $status_list[$statusid] = $status['Status']['name']; - } + $status_list = $this->Enquiry->Status->getJSON(); + $this->set('status_list', $status_list); + $classNames = $this->Enquiry->Status->getClassNamesJSON(); + $this->set('class_names', $classNames); //debug($this->paginate()); // $this->set('status_list', $this->Enquiry->Status->find('list')); @@ -444,12 +442,13 @@ class EnquiriesController extends AppController { function update_status() { if($this->data) { - App::import('Core', 'Sanitize'); - $new_status = Sanitize::clean($this->data['Enquiry']['status_id']); - $this->Enquiry->id = $this->data['Enquiry']['id']; - $this->Enquiry->saveField('status_id', $new_status); - $this->set('enquiry', $this->Enquiry->findById($this->data['Enquiry']['id'])); - + + $enquiry = $this->Enquiry->read(null, $this->data['Enquiry']['id']); + $enquiry['Enquiry']['status_id'] = $this->data['Enquiry']['status_id']; + + $this->Enquiry->save($enquiry); + + $this->set('enquiry', $this->Enquiry->read(null,$enquiry['Enquiry']['id'])); } } diff --git a/models/status.php b/models/status.php index 8375431b..b5e1d5f3 100755 --- a/models/status.php +++ b/models/status.php @@ -1,23 +1,36 @@ array('className' => 'Enquiry', + 'foreignKey' => 'status_id', + 'dependent' => false, + 'conditions' => '', + 'fields' => '', + 'order' => '', + 'limit' => '', + 'offset' => '', + 'exclusive' => '', + 'finderQuery' => '', + 'counterQuery' => '' + ) + ); - //The Associations below have been created with all possible keys, those that are not needed can be removed - var $hasMany = array( - 'Enquiry' => array('className' => 'Enquiry', - 'foreignKey' => 'status_id', - 'dependent' => false, - 'conditions' => '', - 'fields' => '', - 'order' => '', - 'limit' => '', - 'offset' => '', - 'exclusive' => '', - 'finderQuery' => '', - 'counterQuery' => '' - ) - ); + function getJSON() { + $statuses = $this->find('list', array('fields'=>array('Status.name'))); + return json_encode($statuses); + } + + function getClassNamesJSON() { + $statuses = $this->find('list', array('fields'=>array('Status.class'))); + return json_encode($statuses); + } + + } + ?> \ No newline at end of file diff --git a/views/elements/enquiry_table.ctp b/views/elements/enquiry_table.ctp index 6fd3c8a6..821d6960 100755 --- a/views/elements/enquiry_table.ctp +++ b/views/elements/enquiry_table.ctp @@ -1,39 +1,38 @@ -link('jquery.jeditable.mini'); ?> - -link('ajax_pagination_enquiry'); ?> +link('jquery.jeditable.mini'); + echo $javascript->link('enquiry_table'); ?> -options(array('url'=>$this->passedArgs)); ?> +options(array('url' => $this->passedArgs)); ?> -counter(array( -'format' => __('Page %page% of %pages%, showing %current% Enquiries out of %count% total, starting on record %start%, ending on %end%', true) + 'format' => __('Page %page% of %pages%, showing %current% Enquiries out of %count% total, starting on record %start%, ending on %end%', true) )); ?>
-prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));?> - | numbers();?> -next(__('next', true).' >>', array(), null, array('class'=>'disabled'));?> + prev('<< ' . __('previous', true), array(), null, array('class' => 'disabled')); ?> + | numbers(); ?> + next(__('next', true) . ' >>', array(), null, array('class' => 'disabled')); ?>
- - + + echo $paginator->sort('Date Submitted', 'submitted'); */ ?> - - - - + + + + - - - + + + counter(array( // $class = ' class="altrow"'; //} /* Set Row colour to Yellow if the Job has been won and turned into an order. - * - * re-do this as a switch statement. -Feb 2011. - * - * */ - if($enquiry['Status']['id'] == 3) { + * + * re-do this as a switch statement. -Feb 2011. + * + * */ + if ($enquiry['Status']['id'] == 3) { $class = ' class="jobwon"'; - } - else if($enquiry['Status']['id'] == 4) { + } else if ($enquiry['Status']['id'] == 4) { $class = ' class="joblost"'; - } - else if($enquiry['Status']['id'] == 8) { + } else if ($enquiry['Status']['id'] == 8) { $class = ' class="joblost"'; - } - else if($enquiry['Status']['id'] == 9) { + } else if ($enquiry['Status']['id'] == 9) { $class = ' class="joblost"'; - } - else if($enquiry['Status']['id'] == 10) { + } else if ($enquiry['Status']['id'] == 10) { $class = ' class="joblost"'; - } - else if($enquiry['Status']['id'] == 6) { + } else if ($enquiry['Status']['id'] == 6) { $class = ' class="information"'; - } - else if($enquiry['Status']['id'] == 11) { + } else if ($enquiry['Status']['id'] == 11) { $class = ' class="informationsent"'; - } - else if($enquiry['Status']['id'] == 5) { + } else if ($enquiry['Status']['id'] == 5) { $class = ' class="quoted"'; - } - else if($enquiry['Status']['id'] == 1) { + } else if ($enquiry['Status']['id'] == 1) { $class = ' class="requestforquote"'; } - - ?> - id="row"> - id="row"> + - + - + echo date('j M Y', $time->toUnix($enquiry['Enquiry']['created'])); + ?> + - - Change the date from MySQL DATETIME to a D M Y format - if($enquiry['Enquiry']['submitted']) { - echo date('j M Y',$time->toUnix($enquiry['Enquiry']['submitted'])); - } - else { - /* Maybe should make this so only the assigned user can mark it as submitted. - - echo $html->link('Not Submitted', array('controller'=>'enquiries', 'action'=>'mark_submitted', $enquiry['Enquiry']['id'])); - } - - - */ + Change the date from MySQL DATETIME to a D M Y format + if($enquiry['Enquiry']['submitted']) { + echo date('j M Y',$time->toUnix($enquiry['Enquiry']['submitted'])); + } + else { + /* Maybe should make this so only the assigned user can mark it as submitted. + echo $html->link('Not Submitted', array('controller'=>'enquiries', 'action'=>'mark_submitted', $enquiry['Enquiry']['id'])); + } + + + */ ?> - - + + - - - - + + + + - + + - - - - - + + + +
sort('user_id');?>sort('Date', 'created');?>sort('user_id'); ?>sort('Date', 'created'); ?> sort('principle_id');?>sort('Enquiry Number', 'title');?>sort('customer_id');?>sort('contact_id');?>sort('principle_id'); ?>sort('Enquiry Number', 'title'); ?>sort('customer_id'); ?>sort('contact_id'); ?> sort('status_id');?>Commentssort('status_id'); ?>Comments
> - - link($firstname[0].$lastname[0], array('controller'=> 'users', 'action'=>'view', $enquiry['User']['id'])); ?> - > + + link($firstname[0] . $lastname[0], array('controller' => 'users', 'action' => 'view', $enquiry['User']['id'])); ?> + + toUnix($enquiry['Enquiry']['created'])); ?> - + link($enquiry['Principle']['short_name'], array('controller'=> 'principles', 'action'=>'view', $enquiry['Principle']['id'])); - } - else { - echo $html->link($enquiry['Principle']['name'], array('controller'=> 'principles', 'action'=>'view', $enquiry['Principle']['id'])); + if ($enquiry['Principle']['short_name']) { + echo $html->link($enquiry['Principle']['short_name'], array('controller' => 'principles', 'action' => 'view', $enquiry['Principle']['id'])); + } else { + echo $html->link($enquiry['Principle']['name'], array('controller' => 'principles', 'action' => 'view', $enquiry['Principle']['id'])); } ?> - - link($enquiry['Enquiry']['title'], array('controller'=>'enquiries', 'action'=>'view', $enquiry['Enquiry']['id'])); ?> - + link($enquiry['Enquiry']['title'], array('controller' => 'enquiries', 'action' => 'view', $enquiry['Enquiry']['id'])); ?> + - link($enquiry['Customer']['name'], array('controller'=> 'customers', 'action'=>'view', $enquiry['Customer']['id'])); ?> - - link($enquiry['Contact']['first_name'].' '.$enquiry['Contact']['last_name'], array('controller'=> 'users', 'action'=>'view', $enquiry['Contact']['id'])); ?> - - - link($enquiry['Contact']['email'], 'mailto:'.$enquiry['Contact']['email'].'?subject='.$enquiry['Enquiry']['title'].'&bcc=carpis@cmctechnologies.com.au'); ?> - + + link($enquiry['Customer']['name'], array('controller' => 'customers', 'action' => 'view', $enquiry['Customer']['id'])); ?> + + link($enquiry['Contact']['first_name'] . ' ' . $enquiry['Contact']['last_name'], array('controller' => 'users', 'action' => 'view', $enquiry['Contact']['id'])); ?> + + + link($enquiry['Contact']['email'], 'mailto:' . $enquiry['Contact']['email'] . '?subject=' . $enquiry['Enquiry']['title'] . '&bcc=carpis@cmctechnologies.com.au'); ?> + -
- +
+ +
+
150) { + echo substr($enquiry['Enquiry']['comments'], 0, 150); + echo $html->link('.....', array('controller' => 'enquiries', 'action' => 'view', $enquiry['Enquiry']['id'])); + } else { + echo $enquiry['Enquiry']['comments']; + } + ; + ?> + link(__('View', true), array('controller' => 'enquiries', 'action' => 'view', $enquiry['Enquiry']['id'])); ?> + link(__('Edit', true), array('controller' => 'enquiries', 'action' => 'edit', $enquiry['Enquiry']['id'])); ?> - $statusList = $status_list; - - $statusList['selected'] = $enquiry['Enquiry']['status_id']; - - $jsonList = json_encode($statusList); - - $jsblock = <<codeBlock($jsblock); - ?> - 150) { - echo substr($enquiry['Enquiry']['comments'], 0, 150); - echo $html->link('.....', array('controller'=>'enquiries','action'=>'view', $enquiry['Enquiry']['id'])); - } - else { - echo $enquiry['Enquiry']['comments']; - } - ;?> - link(__('View', true), array('controller'=>'enquiries','action'=>'view', $enquiry['Enquiry']['id'])); ?> - link(__('Edit', true), array('controller'=>'enquiries','action'=>'edit', $enquiry['Enquiry']['id'])); ?> - -
-prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));?> - | numbers();?> -next(__('next', true).' >>', array(), null, array('class'=>'disabled'));?> + prev('<< ' . __('previous', true), array(), null, array('class' => 'disabled')); ?> + | numbers(); ?> + next(__('next', true) . ' >>', array(), null, array('class' => 'disabled')); ?>
+ + - \ No newline at end of file + \ No newline at end of file diff --git a/views/enquiries/update_status.ctp b/views/enquiries/update_status.ctp index 67474705..064676ed 100755 --- a/views/enquiries/update_status.ctp +++ b/views/enquiries/update_status.ctp @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/webroot/js/enquiry_table.js b/webroot/js/enquiry_table.js index 1c125b11..956c38bd 100755 --- a/webroot/js/enquiry_table.js +++ b/webroot/js/enquiry_table.js @@ -1,71 +1,37 @@ $(function() { + + var statusNamesJSON = $("#statusJSONlist").html(); + + var statusNames = $.parseJSON(statusNamesJSON); + + var classNamesJSON = $("#statusClassNames").html(); + + var classNames = $.parseJSON(classNamesJSON); + - $('#$enqid').editable('/enquiries/update_status', { - id : 'data[Enquiry][id]', - name: 'data[Enquiry][status_id]', + $('.status').editable('/enquiries/update_status', { + id : 'data[Enquiry][id]', + name: 'data[Enquiry][status_id]', - data : '$jsonList', - type : 'select', - indicator : 'Saving...', - submit : 'Update Status', - cssclass: 'MER-inplace-select', - callback : function(value, settings) { + data : $("#statusJSONlist").html(), + type : 'select', + indicator : 'Saving...', + submit : 'Update Status', + cssclass: 'MER-inplace-select', + callback : function(value, settings) { + var thisStatusID = value; + + var newName = statusNames[thisStatusID]; + + var id = $(this).attr('id'); + $(this).html(newName); + + var newClass = classNames[thisStatusID]; + + $("#row"+id).removeClass().addClass(newClass); + + } + }); - var match = /won/i.test(value); - - if(match == true) { - $('#row$enqid').removeClass().addClass('jobwon'); - return; - } - - match = /lost/i.test(value); - - if(match == true) { - $('#row$enqid').removeClass().addClass('joblost'); - return; - } - - match = /cancelled/i.test(value); - - if(match == true) { - $('#row$enqid').removeClass().addClass('joblost'); - return; - } - - match = /information sent/i.test(value); - if(match == true) { - $('#row$enqid').removeClass().addClass('informationsent'); - return; - } - - match = /issued/i.test(value); - if(match == true) { - $('#row$enqid').removeClass().addClass('quoted'); - return; - } - - match = /request for quotation/i.test(value); - if(match == true) { - $('#row$enqid').removeClass().addClass('requestforquote'); - return; - } - - match = /assigned/i.test(value); - if(match == true) { - $('#row$enqid').removeClass(); - return; - } - - } - - }); - - -} - - -function makeEditable(selectedID) { - - -} +});