FilterForm.php

Go to the documentation of this file.
00001 <?php
00003 // {{{ license
00004 
00005 // +----------------------------------------------------------------------+
00006 // | FastFrame Application Framework                                      |
00007 // +----------------------------------------------------------------------+
00008 // | Copyright (c) 2002-2006 The Codejanitor Group                        |
00009 // +----------------------------------------------------------------------+
00010 // | This source file is subject to the GNU Lesser Public License (LGPL), |
00011 // | that is bundled with this package in the file LICENSE, and is        |
00012 // | available at through the world-wide-web at                           |
00013 // | http://www.fsf.org/copyleft/lesser.html                              |
00014 // | If you did not receive a copy of the LGPL and are unable to          |
00015 // | obtain it through the world-wide-web, you can get it by writing the  |
00016 // | Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
00017 // | MA 02111-1307, USA.                                                  |
00018 // +----------------------------------------------------------------------+
00019 // | Authors: Jason Rust <jrust@codejanitor.com>                          |
00020 // +----------------------------------------------------------------------+
00021 
00022 // }}}
00023 // {{{ requires
00024 
00025 require_once FASTFRAME_ROOT . 'lib/FastFrame/Action/Form.php';
00026 
00027 // }}}
00028 // {{{ class FF_Action_Form_Filter
00029 
00040 // }}}
00041 class FF_Action_Form_Filter extends FF_Action_Form {
00042     // {{{ renderAdditionalLinks()
00043 
00050     function renderAdditionalLinks()
00051     {
00052         $this->o_output->o_tpl->append('page_explanation', _('A filter is a set of conditions which will limit what maydays are shown when the filter is selected.'));
00053         $this->o_output->o_tpl->append('page_links', $this->o_output->link(
00054                     FastFrame::selfURL(array('actionId' => ACTION_LIST)),
00055                     sprintf(_('Return to %s List'), $this->getSingularText())));
00056     }
00057 
00058     // }}}
00059     // {{{ createFormElements()
00060 
00071     function createFormElements($in_ruleElements = false)
00072     {
00073         require_once dirname(__FILE__) . '/../Model/Ticket.php';
00074         $o_ticketModel =& new FF_Model_Ticket();
00075         if ($in_ruleElements) {
00076             $this->o_form->addElement('select', 'last_action', null, $this->o_model->getLastActionOptions(),
00077                     array('multiple' => true, 'size' => 5));
00078         }
00079         else {
00080             $this->o_form->addElement('hidden', 'actionId');
00081             $this->o_form->addElement('hidden', 'objectId');
00082             $this->o_form->addElement('submit', 'submitbutton');
00083             $this->o_form->addElement('text', 'name', null, array('maxlength' => 100, 'size' => 30));
00084             $this->o_form->addElement('select', 'sort_field', null, $this->o_model->getSortFieldOptions());
00085             $this->o_form->addElement('select', 'sort_order', null, array(0 => _('Descending'), 1 => _('Ascending')));
00086             $this->o_form->addElement('select', 'new_comments', null, array(COMMENTS_BOTH => '&nbsp;', COMMENTS_NEW => _('Has New Comments'), COMMENTS_NOT_NEW => _('Has No New Comments')));
00087             $this->o_form->addRule('name', _('Name cannot be blank.'), 'required', null, 'client');
00088         }
00089 
00090         $this->o_form->addElement('select', 'operator', null, array(FILTER_AND => _('AND'), FILTER_OR => _('OR')));
00091         $this->o_form->addElement('select', 'summary_operator', null, $this->o_model->getTextOperatorOptions());
00092         $this->o_form->addElement('select', 'summary_type', null, $this->o_model->getTextTypeOptions());
00093         $this->o_form->addElement('text', 'summary', null, array('size' => 40));
00094         $this->o_form->addElement('select', 'description_operator', null, $this->o_model->getTextOperatorOptions());
00095         $this->o_form->addElement('select', 'description_type', null, $this->o_model->getTextTypeOptions());
00096         $this->o_form->addElement('text', 'description', null, array('size' => 40));
00097         $this->o_form->addElement('select', 'reporter_operator', null, $this->o_model->getTextOperatorOptions());
00098         $this->o_form->addElement('select', 'reporter_type', null, $this->o_model->getTextTypeOptions());
00099         $this->o_form->addElement('text', 'reporter', null, array('size' => 40));
00100         $this->o_form->addElement('select', 'last_updated_operator', null, $this->o_model->getDateOperatorOptions());
00101         $this->o_form->addElement('select', 'last_updated_type', null, $this->o_model->getDateTypeOptions());
00102         $this->o_form->addElement('text', 'last_updated_num', null, array('size' => 5));
00103         $this->o_form->addRule('last_updated_num', _('Last updated must be a number.'), 'numeric', null, 'client');
00104         $this->o_form->addElement('select', 'create_date_operator', null, $this->o_model->getDateOperatorOptions());
00105         $this->o_form->addElement('select', 'create_date_type', null, $this->o_model->getDateTypeOptions());
00106         $this->o_form->addElement('text', 'create_date_num', null, array('size' => 5));
00107         $this->o_form->addRule('create_date_num', _('Creation date must be a number.'), 'numeric', null, 'client');
00108         $this->o_form->addElement('select', 'due_date_operator', null, $this->o_model->getDateOperatorOptions());
00109         $this->o_form->addElement('select', 'due_date_type', null, $this->o_model->getDateTypeOptions());
00110         $this->o_form->addElement('text', 'due_date_num', null, array('size' => 5));
00111         $this->o_form->addRule('due_date_num', _('Due date must be a number.'), 'numeric', null, 'client');
00112         $this->o_form->addElement('select', 'resolutions', null, $o_ticketModel->getModuleOptions('Resolution'),
00113                 array('multiple' => true, 'size' => 5));
00114         $this->o_form->addElement('select', 'points', null, $o_ticketModel->getModuleOptions('Priority', 
00115                     array('asRange' => true)),
00116                 array('multiple' => true, 'size' => 5));
00117         $this->o_form->addElement('select', 'locations', null, $o_ticketModel->getModuleOptions('Location'),
00118                 array('multiple' => true, 'size' => 5));
00119         $this->o_form->addElement('select', 'categories', null, 
00120                 $o_ticketModel->getModuleOptions('Category', array('all' => true)),
00121                 array('multiple' => true, 'size' => 5));
00122         $this->o_form->addElement('select', 'statuses', null, 
00123                 $o_ticketModel->getModuleOptions('Status', array('addResolution' => true)),
00124                 array('multiple' => true, 'size' => 5));
00125         $this->o_form->addElement('select', 'handlers', null, $o_ticketModel->getHandlerOptions(true, false, '__all'),
00126                 array('multiple' => true, 'size' => 5));
00127     }
00128 
00129     // }}}
00130     // {{{ getSingularText()
00131 
00138     function getSingularText()
00139     {
00140         return _('Filter');
00141     }
00142 
00143     // }}}
00144     // {{{ getPluralText()
00145 
00153     function getPluralText()
00154     {
00155         return _('Filters');
00156     }
00157 
00158     // }}}
00159     // {{{ getTableData()
00160 
00172     function getTableData($in_ruleElements = false)
00173     {
00174         $a_headers = array();
00175         if (!$in_ruleElements) {
00176             $a_headers[] = array(
00177                 'title' => '* ' . _('Name'), 
00178                 'titleStyle' => 'style="font-weight: bold;"',
00179                 'data' => $this->o_renderer->elementToHtml('name'),
00180             );
00181             $a_headers[] = array(
00182                 'title' => '* ' . _('Sort By'), 
00183                 'titleStyle' => 'style="font-weight: bold;"',
00184                 'data' => $this->o_renderer->elementToHtml('sort_field') . ' ' . 
00185                           $this->o_renderer->elementToHtml('sort_order'),
00186             );
00187         }
00188         else {
00189             $a_headers[] = array(
00190                 'title' => _('Apply upon this Action'), 
00191                 'data' => $this->o_renderer->elementToHtml('last_action'), 
00192             );
00193         }
00194 
00195         $a_headers[] = array(
00196             'title' => _('Operator'), 
00197             'data' => $this->o_renderer->elementToHtml('operator'),
00198         );
00199         if (!$in_ruleElements) {
00200             $a_headers[] = array(
00201                 'title' => _('New Comments'), 
00202                 'data' => $this->o_renderer->elementToHtml('new_comments'),
00203             );
00204         }
00205 
00206         $a_headers[] = array(
00207             'title' => _('Summary'), 
00208             'data' => $this->o_renderer->elementToHtml('summary_operator') . ' ' .
00209                       $this->o_renderer->elementToHtml('summary_type') . ' ' . 
00210                       $this->o_renderer->elementToHtml('summary'), 
00211         );
00212         $a_headers[] = array(
00213             'title' => _('Description'), 
00214             'data' => $this->o_renderer->elementToHtml('description_operator') . ' ' .
00215                       $this->o_renderer->elementToHtml('description_type') . ' ' . 
00216                       $this->o_renderer->elementToHtml('description'), 
00217         );
00218         $a_headers[] = array(
00219             'title' => _('Last Updated Date'), 
00220             'data' => _('Occured') . ' ' .
00221                       $this->o_renderer->elementToHtml('last_updated_operator') . ' ' .
00222                       $this->o_renderer->elementToHtml('last_updated_num') . ' ' .
00223                       $this->o_renderer->elementToHtml('last_updated_type') . ' ' . _('ago'),
00224         );
00225         $a_headers[] = array(
00226             'title' => _('Creation Date'), 
00227             'data' => _('Occured') . ' ' .
00228                       $this->o_renderer->elementToHtml('create_date_operator') . ' ' .
00229                       $this->o_renderer->elementToHtml('create_date_num') . ' ' .
00230                       $this->o_renderer->elementToHtml('create_date_type') . ' ' . _('ago'),
00231         );
00232         $a_headers[] = array(
00233             'title' => _('Due Date'), 
00234             'data' => _('Will Occur') . ' ' .
00235                       $this->o_renderer->elementToHtml('due_date_operator') . ' ' .
00236                       $this->o_renderer->elementToHtml('due_date_num') . ' ' .
00237                       $this->o_renderer->elementToHtml('due_date_type') . ' ' . _('from now'),
00238         );
00239         $a_headers[] = array(
00240             'title' => _('Resolutions'), 
00241             'data' => $this->o_renderer->elementToHtml('resolutions'), 
00242         );
00243         $a_headers[] = array(
00244             'title' => _('Statuses'), 
00245             'data' => $this->o_renderer->elementToHtml('statuses'), 
00246         );
00247         $a_headers[] = array(
00248             'title' => _('Priorities'), 
00249             'data' => $this->o_renderer->elementToHtml('points'), 
00250         );
00251         $a_headers[] = array(
00252             'title' => _('Locations'), 
00253             'data' => $this->o_renderer->elementToHtml('locations'), 
00254         );
00255         $a_headers[] = array(
00256             'title' => _('Categories'), 
00257             'data' => $this->o_renderer->elementToHtml('categories'), 
00258         );
00259         $a_headers[] = array(
00260             'title' => _('Reported By (use username)'), 
00261             'data' => $this->o_renderer->elementToHtml('reporter_operator') . ' ' .
00262                       $this->o_renderer->elementToHtml('reporter_type') . ' ' . 
00263                       $this->o_renderer->elementToHtml('reporter'), 
00264         );
00265         $a_headers[] = array(
00266             'title' => _('Owner'), 
00267             'data' => $this->o_renderer->elementToHtml('handlers'), 
00268         );
00269 
00270         return $a_headers;
00271     }
00272 
00273     // }}}
00274     // {{{ getFormDefaults()
00275 
00283     function getFormDefaults()
00284     {
00285         $a_fields = array();
00286         $a_fields['objectId'] = $this->o_model->getId();
00287         $a_fields['name'] = $this->o_model->getName();
00288         $a_fields['operator'] = $this->o_model->getOperator();
00289         $a_fields['sort_field'] = $this->o_model->getSortField();
00290         $a_fields['sort_order'] = $this->o_model->getSortOrder();
00291         $a_fields['new_comments'] = $this->o_model->getNewComments();
00292         $a_fields['summary_operator'] = $this->o_model->getSummaryOperator();
00293         $a_fields['summary_type'] = $this->o_model->getSummaryType();
00294         $a_fields['summary'] = $this->o_model->getSummary();
00295         $a_fields['description_operator'] = $this->o_model->getDescriptionOperator();
00296         $a_fields['description_type'] = $this->o_model->getDescriptionType();
00297         $a_fields['description'] = $this->o_model->getDescription();
00298         $a_fields['reporter_operator'] = $this->o_model->getReporterOperator();
00299         $a_fields['reporter_type'] = $this->o_model->getReporterType();
00300         $a_fields['reporter'] = $this->o_model->getReporter();
00301         $a_fields['points'] = $this->o_model->getPoints();
00302         $a_fields['locations'] = $this->o_model->getLocations();
00303         $a_fields['resolutions'] = $this->o_model->getResolutions();
00304         $a_fields['categories'] = $this->o_model->getCategories();
00305         $a_fields['handlers'] = $this->o_model->getHandlers();
00306         $a_fields['statuses'] = $this->o_model->getStatuses();
00307         $a_fields['last_updated_operator'] = $this->o_model->getLastUpdatedOperator();
00308         $a_fields['last_updated_num'] = $this->o_model->getLastUpdatedNum();
00309         $a_fields['last_updated_type'] = $this->o_model->getLastUpdatedType();
00310         $a_fields['create_date_operator'] = $this->o_model->getCreateDateOperator();
00311         $a_fields['create_date_num'] = $this->o_model->getCreateDateNum();
00312         $a_fields['create_date_type'] = $this->o_model->getCreateDateType();
00313         $a_fields['due_date_operator'] = $this->o_model->getDueDateOperator();
00314         $a_fields['due_date_num'] = $this->o_model->getDueDateNum();
00315         $a_fields['due_date_type'] = $this->o_model->getDueDateType();
00316         $a_fields['last_action'] = $this->o_model->getLastAction();
00317         return $a_fields;
00318     }
00319 
00320     // }}}
00321 }
00322 ?>

Generated on Fri Jun 23 11:38:15 2006 for FastFrame by  doxygen 1.4.4