00001 <?php
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 require_once FASTFRAME_ROOT . 'lib/FastFrame/Action/Form.php';
00026
00027
00028
00029
00040
00041 class FF_Action_Form_Filter extends FF_Action_Form {
00042
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
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 => ' ', 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
00131
00138 function getSingularText()
00139 {
00140 return _('Filter');
00141 }
00142
00143
00144
00145
00153 function getPluralText()
00154 {
00155 return _('Filters');
00156 }
00157
00158
00159
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
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 ?>