From 92d0284b7f26d81ec803d4acb2d1f601c72197d6 Mon Sep 17 00:00:00 2001 From: Karl Cordes Date: Fri, 13 Feb 2009 17:03:54 +1100 Subject: [PATCH] Edit in Place Collection for Enquiry Status Working OK --- controllers/enquiries_controller.php | 22 +++++++++++++++++----- vendors/shells/vault.php | 7 ++++--- views/elements/enquiry_table.ctp | 13 ++++++++----- views/enquiries/index.ctp | 2 +- views/enquiries/update_status.ctp | 1 + 5 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 views/enquiries/update_status.ctp diff --git a/controllers/enquiries_controller.php b/controllers/enquiries_controller.php index a90713e0..2afd9529 100755 --- a/controllers/enquiries_controller.php +++ b/controllers/enquiries_controller.php @@ -5,16 +5,23 @@ class EnquiriesController extends AppController { var $name = 'Enquiries'; var $helpers = array('Html', 'Form', 'Javascript', 'Time', 'Ajax', 'Number', 'Text'); + var $paginate = array( 'limit' => 250, 'order'=>array('Enquiry.id' => 'desc')); - var $components = array('Email'); + var $components = array('RequestHandler', 'Email'); function index() { $this->Enquiry->recursive = 0; $this->set('enquiries', $this->paginate()); + $statuses = $this->Enquiry->Status->find('all'); + $status_list = array(); + foreach ($statuses as $status) { + $status_list[] = array($status['Status']['id'], $status['Status']['name']); + } + $this->set('status_list', $status_list); } function view($id = null) { @@ -258,7 +265,7 @@ class EnquiriesController extends AppController { 'timeout' => '15', 'host' => '192.168.0.6'); $this->Email->delivery = 'smtp'; - $this->Email->charset = 'iso-8859-15'; + $enquiry = $this->Enquiry->read(null, $id); $this->Email->to = $enquiry['Contact']['email']; $this->Email->cc = array($enquiry['User']['email']); @@ -269,7 +276,7 @@ class EnquiriesController extends AppController { $this->Email->from = 'CMC Technologies - Sales '; $this->Email->template = 'enquiry_added'; $this->Email->sendAs = 'both'; - + $this->Email->charset = 'iso-8859-1'; $this->set('enquiry', $enquiry); if($this->Email->send()) { $this->Session->setFlash(__('The Enquiry has been added and the Contact has been emailed', true)); @@ -336,8 +343,13 @@ class EnquiriesController extends AppController { } function update_status($enquiryid) { - if(!empty($this->data)) { - $this->Enquiry->save($this->data); + $newid = $this->params['form']['value']; + if($newid) { + $this->Enquiry->id = $enquiryid; + $this->Enquiry->saveField('status_id', $newid); + $this->set('enquiry', $this->Enquiry->findById($enquiryid)); + $this->layout='ajax'; + $this->render(); } } diff --git a/vendors/shells/vault.php b/vendors/shells/vault.php index 599d7d4a..85660944 100644 --- a/vendors/shells/vault.php +++ b/vendors/shells/vault.php @@ -25,7 +25,7 @@ class VaultShell extends Shell { $number_of_messages = $MC->Nmsgs; /* Loop through the messages and sort them into ones to be processed or discarded */ - for ($i=1; $i <= $number_of_messages; $i++) { + for ($i=1; $i < $number_of_messages; $i++) { $this_header = imap_headerinfo($mbox, $i); $message = $this->getMessage($mbox, $i, $this_header); $enquiry = $this->checkIfValidEnquiry($message['subject'], $testing); @@ -155,7 +155,7 @@ function fetchBodyAttachments($mailbox, $msg_number, $filename, $email_dir) { $name = explode('=', $words[2]); $attachments[$j]['type'] = $type[1]; $attachments[$j]['name'] = $name[1]; - + echo "in message number $msg_number: found attachment ".$attachments[$j]['name'].' '.$attachments[$j]['type']."\n"; } return $attachments; } @@ -251,7 +251,8 @@ function checkIfValidEnquiry($subject, $testing) { return $enquiry; } } - else { + else { + return FALSE; } diff --git a/views/elements/enquiry_table.ctp b/views/elements/enquiry_table.ctp index 0d5e23db..7b3d698b 100644 --- a/views/elements/enquiry_table.ctp +++ b/views/elements/enquiry_table.ctp @@ -24,7 +24,7 @@ - > - + id=""> link($enquiry['Country']['name'], array('controller'=> 'countries', 'action'=>'view', $enquiry['Country']['id'])); ?> - - link($enquiry['Status']['name'], array('controller'=> 'statuses', 'action'=>'view', $enquiry['Status']['id'])); ?> +
+ editor("statusupdate_$i", array('controller'=>'Enquiries', 'action'=>'update_status', $enquiry['Enquiry']['id']), array('update' => "statusupdate_$i", 'collection' => $status_list, 'okText'=>'Change Status', 'savingText' => 'Saving..', 'formId' => 'EnquiryStatusId')); + ?> + @@ -136,3 +138,4 @@ foreach ($enquiries as $enquiry): next(__('next', true).' >>', array(), null, array('class'=>'disabled'));?> + diff --git a/views/enquiries/index.ctp b/views/enquiries/index.ctp index 79198104..eb9c0443 100755 --- a/views/enquiries/index.ctp +++ b/views/enquiries/index.ctp @@ -1,4 +1,4 @@

-element('enquiry_table', $enquiries); ?> +element('enquiry_table', $enquiries, $status_list); ?>
diff --git a/views/enquiries/update_status.ctp b/views/enquiries/update_status.ctp new file mode 100644 index 00000000..3e682c43 --- /dev/null +++ b/views/enquiries/update_status.ctp @@ -0,0 +1 @@ +