Model/Filter.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/Model.php';
00026 
00027 // }}}
00028 // {{{ constants
00029 
00030 define('TEXT_EQUALS', 1);
00031 define('TEXT_BEGINS_WITH', 2);
00032 define('TEXT_ENDS_WITH', 3);
00033 define('TEXT_CONTAINS', 4);
00034 define('TEXT_MATCHES', 5);
00035 define('DATE_MINUTES', 1);
00036 define('DATE_HOURS', 2);
00037 define('DATE_DAYS', 3);
00038 define('DATE_MONTHS', 4);
00039 define('DATE_LESS', 1);
00040 define('DATE_MORE', 2);
00041 define('FILTER_AND', 0);
00042 define('FILTER_OR', 1);
00043 define('COMMENTS_BOTH', 0);
00044 define('COMMENTS_NEW', 1);
00045 define('COMMENTS_NOT_NEW', 2);
00046 
00047 // }}}
00048 // {{{ class FF_Model_Filter
00049 
00059 // }}}
00060 class FF_Model_Filter extends FF_Model {
00061     // {{{ properties
00062 
00067     var $name = '';
00068 
00073     var $operator = 0;
00074 
00079     var $sortField = 'last_updated';
00080 
00085     var $sortOrder = 0;
00086 
00091     var $newComments = 0;
00092 
00097     var $summaryOperator = 0;
00098     
00103     var $summaryType = 0;
00104 
00109     var $summary = '';
00110 
00115     var $descriptionOperator = 0;
00116     
00121     var $descriptionType = 0;
00122 
00127     var $description = '';
00128 
00133     var $reporterOperator = 0;
00134     
00139     var $reporterType = 0;
00140 
00145     var $reporter = '';
00146 
00151     var $points = array();
00152 
00157     var $locations = array();
00158 
00163     var $resolutions = array();
00164 
00169     var $categories = array();
00170 
00175     var $handlers = array();
00176 
00181     var $statuses = array();
00182 
00187     var $ownerId;
00188 
00193     var $lastUpdatedOperator = 0;
00194 
00199     var $lastUpdatedNum = 0;
00200 
00205     var $lastUpdatedType = 0;
00206 
00211     var $createDateOperator = 0;
00212 
00217     var $createDateNum = 0;
00218 
00223     var $createDateType = 0;
00224 
00229     var $dueDateOperator = 0;
00230 
00235     var $dueDateNum = 0;
00236 
00241     var $dueDateType = 0;
00242 
00247     var $lastAction = array();
00248 
00249     // }}}
00250     // {{{ reset()
00251 
00252 
00259     function reset()
00260     {
00261         $this->id = null;
00262         $this->name = '';
00263         $this->operator = 0;
00264         $this->sortField = '';
00265         $this->sortOrder = 1;
00266         $this->newComments = 0;
00267         $this->summaryType = 0;
00268         $this->summary = '';
00269         $this->descriptionOperator = 0;
00270         $this->descriptionType = 0;
00271         $this->description = '';
00272         $this->reporterOperator = 0;
00273         $this->reporterType = 0;
00274         $this->reporter = '';
00275         $this->points = array();
00276         $this->locations = array();
00277         $this->resolutions = array();
00278         $this->categories = array();
00279         $this->handlers = array();
00280         $this->statuses = array();
00281         $this->ownerId = null;
00282         $this->lastUpdatedOperator = 0;
00283         $this->lastUpdatedNum = 0;
00284         $this->lastUpdatedType = 0;
00285         $this->createDateOperator = 0;
00286         $this->createDateNum = 0;
00287         $this->createDateType = 0;
00288         $this->dueDateOperator = 0;
00289         $this->dueDateNum = 0;
00290         $this->dueDateType = 0;
00291         $this->lastAction = array();
00292     }
00293 
00294     // }}}
00295     // {{{ importFromArray()
00296 
00305     function importFromArray($in_data)
00306     {
00307         $this->setId($in_data['id']);
00308         $this->setName($in_data['name']);
00309         $this->setOperator($in_data['operator']);
00310         $this->setSortField($in_data['sort_field']);
00311         $this->setSortOrder($in_data['sort_order']);
00312         $this->setNewComments($in_data['new_comments']);
00313         $this->setSummaryOperator($in_data['summary_operator']);
00314         $this->setSummaryType($in_data['summary_type']);
00315         $this->setSummary($in_data['summary']);
00316         $this->setDescriptionOperator($in_data['description_operator']);
00317         $this->setDescriptionType($in_data['description_type']);
00318         $this->setDescription($in_data['description']);
00319         $this->setReporterOperator($in_data['reporter_operator']);
00320         $this->setReporterType($in_data['reporter_type']);
00321         $this->setReporter($in_data['reporter']);
00322         $this->setOwnerId($in_data['owner_id']);
00323         $this->setPoints(unserialize($in_data['points']));
00324         $this->setLocations(unserialize($in_data['locations']));
00325         $this->setResolutions(unserialize($in_data['resolutions']));
00326         $this->setCategories(unserialize($in_data['categories']));
00327         $this->setHandlers(unserialize($in_data['handlers']));
00328         $this->setStatuses(unserialize($in_data['statuses']));
00329         $this->setLastAction(unserialize($in_data['last_action']));
00330         $this->setLastUpdatedOperator($in_data['last_updated_operator']);
00331         $this->setLastUpdatedNum($in_data['last_updated_num']);
00332         $this->setLastUpdatedType($in_data['last_updated_type']);
00333         $this->setCreateDateOperator($in_data['create_date_operator']);
00334         $this->setCreateDateNum($in_data['create_date_num']);
00335         $this->setCreateDateType($in_data['create_date_type']);
00336         $this->setDueDateOperator($in_data['due_date_operator']);
00337         $this->setDueDateNum($in_data['due_date_num']);
00338         $this->setDueDateType($in_data['due_date_type']);
00339     }
00340 
00341     // }}}
00342     // {{{ exportToArray()
00343 
00352     function exportToArray()
00353     {
00354         $a_data = array();
00355         $a_data['id'] = $this->getId();
00356         $a_data['name'] = $this->getName();
00357         $a_data['operator'] = $this->getOperator();
00358         $a_data['sort_field'] = $this->getSortField();
00359         $a_data['sort_order'] = $this->getSortOrder();
00360         $a_data['new_comments'] = $this->getNewComments();
00361         $a_data['summary_operator'] = $this->getSummaryOperator();
00362         $a_data['summary_type'] = $this->getSummaryType();
00363         $a_data['summary'] = $this->getSummary();
00364         $a_data['description_operator'] = $this->getDescriptionOperator();
00365         $a_data['description_type'] = $this->getDescriptionType();
00366         $a_data['description'] = $this->getDescription();
00367         $a_data['reporter_operator'] = $this->getReporterOperator();
00368         $a_data['reporter_type'] = $this->getReporterType();
00369         $a_data['reporter'] = $this->getReporter();
00370         $a_data['owner_id'] = $this->getOwnerId();
00371         $a_data['points'] = serialize($this->getPoints());
00372         $a_data['locations'] = serialize($this->getLocations());
00373         $a_data['resolutions'] = serialize($this->getResolutions());
00374         $a_data['categories'] = serialize($this->getCategories());
00375         $a_data['handlers'] = serialize($this->getHandlers());
00376         $a_data['statuses'] = serialize($this->getStatuses());
00377         $a_data['last_action'] = serialize($this->getLastAction());
00378         $a_data['last_updated_operator'] = $this->getLastUpdatedOperator();
00379         $a_data['last_updated_num'] = $this->getLastUpdatedNum();
00380         $a_data['last_updated_type'] = $this->getLastUpdatedType();
00381         $a_data['create_date_operator'] = $this->getCreateDateOperator();
00382         $a_data['create_date_num'] = $this->getCreateDateNum();
00383         $a_data['create_date_type'] = $this->getCreateDateType();
00384         $a_data['due_date_operator'] = $this->getDueDateOperator();
00385         $a_data['due_date_num'] = $this->getDueDateNum();
00386         $a_data['due_date_type'] = $this->getDueDateType();
00387         return $a_data;
00388     }
00389 
00390     // }}}
00391     // {{{ getName()
00392 
00393     function getName()
00394     {
00395         return $this->name;
00396     }
00397 
00398     // }}}
00399     // {{{ setName()
00400 
00401     function setName($in_value)
00402     {
00403         $this->name = $in_value;
00404     }
00405 
00406     // }}}
00407     // {{{ getOperator()
00408 
00409     function getOperator()
00410     {
00411         return $this->operator;
00412     }
00413 
00414     // }}}
00415     // {{{ setOperator()
00416 
00417     function setOperator($in_value)
00418     {
00419         $this->operator = $in_value;
00420     }
00421 
00422     // }}}
00423     // {{{ getSortFieldOptions()
00424 
00425     function getSortFieldOptions()
00426     {
00427         return array('points' => _('Priority'), 'ticket_updated' => _('Has New Comments'), 
00428                 'create_date' => _('Submitted'), 'last_updated' => _('Last Updated'),
00429                 'due_date' => _('Due Date'), 'progress' => _('Progress'),
00430                 'status_name' => _('Status'));
00431     }
00432 
00433     // }}}
00434     // {{{ getSortField()
00435 
00436     function getSortField()
00437     {
00438         return empty($this->sortField) ? 'points' : $this->sortField;
00439     }
00440 
00441     // }}}
00442     // {{{ setSortField()
00443 
00444     function setSortField($in_value)
00445     {
00446         $this->sortField = $in_value;
00447     }
00448 
00449     // }}}
00450     // {{{ getSortOrder()
00451 
00452     function getSortOrder()
00453     {
00454         return $this->sortOrder;
00455     }
00456 
00457     // }}}
00458     // {{{ setSortOrder()
00459 
00460     function setSortOrder($in_value)
00461     {
00462         $this->sortOrder = $in_value;
00463     }
00464 
00465     // }}}
00466     // {{{ getNewComments()
00467 
00468     function getNewComments()
00469     {
00470         return $this->newComments;
00471     }
00472 
00473     // }}}
00474     // {{{ setNewComments()
00475 
00476     function setNewComments($in_value)
00477     {
00478         $this->newComments = $in_value;
00479     }
00480 
00481     // }}}
00482     // {{{ getDateOperatorOptions()
00483 
00484     function getDateOperatorOptions()
00485     {
00486         return array(DATE_LESS => _('less than'), DATE_MORE => _('more than'));
00487     }
00488 
00489     // }}}
00490     // {{{ getDateTypeOptions()
00491 
00492     function getDateTypeOptions()
00493     {
00494         return array(DATE_MINUTES => _('Minutes'), DATE_HOURS => _('Hours'), DATE_DAYS => _('Days'), DATE_MONTHS => _('Months'));
00495     }
00496 
00497     // }}}
00498     // {{{ getTextOperatorOptions()
00499 
00500     function getTextOperatorOptions()
00501     {
00502         return array(0 => _('Does Not'), 1 => _('Does'));
00503     }
00504 
00505     // }}}
00506     // {{{ getTextTypeOptions()
00507 
00508     function getTextTypeOptions()
00509     {
00510         return array(TEXT_EQUALS => _('Equal'), TEXT_BEGINS_WITH => _('Begin with'),
00511                 TEXT_ENDS_WITH => _('End with'), TEXT_CONTAINS => _('Contain'),
00512                 TEXT_MATCHES => _('Match (regexp)'));
00513     }
00514 
00515     // }}}
00516     // {{{ getSummaryOperator()
00517 
00518     function getSummaryOperator()
00519     {
00520         return $this->summaryOperator;
00521     }
00522 
00523     // }}}
00524     // {{{ setSummaryOperator()
00525 
00526     function setSummaryOperator($in_value)
00527     {
00528         $this->summaryOperator = $in_value;
00529     }
00530 
00531     // }}}
00532     // {{{ getSummaryType()
00533 
00534     function getSummaryType()
00535     {
00536         return $this->summaryType;
00537     }
00538 
00539     // }}}
00540     // {{{ setSummaryType()
00541 
00542     function setSummaryType($in_value)
00543     {
00544         $this->summaryType = $in_value;
00545     }
00546 
00547     // }}}
00548     // {{{ getSummary()
00549 
00550     function getSummary()
00551     {
00552         return $this->summary;
00553     }
00554 
00555     // }}}
00556     // {{{ setSummary()
00557 
00558     function setSummary($in_value)
00559     {
00560         $this->summary = $in_value;
00561     }
00562 
00563     // }}}
00564     // {{{ getDescriptionOperator()
00565 
00566     function getDescriptionOperator()
00567     {
00568         return $this->descriptionOperator;
00569     }
00570 
00571     // }}}
00572     // {{{ setDescriptionOperator()
00573 
00574     function setDescriptionOperator($in_value)
00575     {
00576         $this->descriptionOperator = $in_value;
00577     }
00578 
00579     // }}}
00580     // {{{ getDescriptionType()
00581 
00582     function getDescriptionType()
00583     {
00584         return $this->descriptionType;
00585     }
00586 
00587     // }}}
00588     // {{{ setDescriptionType()
00589 
00590     function setDescriptionType($in_value)
00591     {
00592         $this->descriptionType = $in_value;
00593     }
00594 
00595     // }}}
00596     // {{{ getDescription()
00597 
00598     function getDescription()
00599     {
00600         return $this->description;
00601     }
00602 
00603     // }}}
00604     // {{{ setDescription()
00605 
00606     function setDescription($in_value)
00607     {
00608         $this->description = $in_value;
00609     }
00610 
00611     // }}}
00612     // {{{ getReporterOperator()
00613 
00614     function getReporterOperator()
00615     {
00616         return $this->reporterOperator;
00617     }
00618 
00619     // }}}
00620     // {{{ setReporterOperator()
00621 
00622     function setReporterOperator($in_value)
00623     {
00624         $this->reporterOperator = $in_value;
00625     }
00626 
00627     // }}}
00628     // {{{ getReporterType()
00629 
00630     function getReporterType()
00631     {
00632         return $this->reporterType;
00633     }
00634 
00635     // }}}
00636     // {{{ setReporterType()
00637 
00638     function setReporterType($in_value)
00639     {
00640         $this->reporterType = $in_value;
00641     }
00642 
00643     // }}}
00644     // {{{ getReporter()
00645 
00646     function getReporter()
00647     {
00648         return $this->reporter;
00649     }
00650 
00651     // }}}
00652     // {{{ setReporter()
00653 
00654     function setReporter($in_value)
00655     {
00656         $this->reporter = $in_value;
00657     }
00658 
00659     // }}}
00660     // {{{ getOwnerId()
00661 
00662     function getOwnerId()
00663     {
00664         return is_null($this->ownerId) ? FF_Auth::getCredential('userId') : $this->ownerId;
00665     }
00666 
00667     // }}}
00668     // {{{ setOwnerId()
00669 
00670     function setOwnerId($in_value)
00671     {
00672         $this->ownerId = $in_value;
00673     }
00674 
00675     // }}}
00676     // {{{ getPoints()
00677 
00678     function getPoints()
00679     {
00680         return $this->points;
00681     }
00682 
00683     // }}}
00684     // {{{ setPoints()
00685 
00686     function setPoints($in_value)
00687     {
00688         $this->points = $in_value;
00689     }
00690 
00691     // }}}
00692     // {{{ getLocations()
00693 
00694     function getLocations()
00695     {
00696         return $this->locations;
00697     }
00698 
00699     // }}}
00700     // {{{ setLocations()
00701 
00702     function setLocations($in_value)
00703     {
00704         $this->locations = $in_value;
00705     }
00706 
00707     // }}}
00708     // {{{ getResolutions()
00709 
00710     function getResolutions()
00711     {
00712         return $this->resolutions;
00713     }
00714 
00715     // }}}
00716     // {{{ setResolutions()
00717 
00718     function setResolutions($in_value)
00719     {
00720         $this->resolutions = $in_value;
00721     }
00722 
00723     // }}}
00724     // {{{ getCategories()
00725 
00726     function getCategories()
00727     {
00728         return $this->categories;
00729     }
00730 
00731     // }}}
00732     // {{{ setCategories()
00733 
00734     function setCategories($in_value)
00735     {
00736         $this->categories = $in_value;
00737     }
00738 
00739     // }}}
00740     // {{{ getHandlers()
00741 
00742     function getHandlers()
00743     {
00744         return $this->handlers;
00745     }
00746 
00747     // }}}
00748     // {{{ setHandlers()
00749 
00750     function setHandlers($in_value)
00751     {
00752         $this->handlers = $in_value;
00753     }
00754 
00755     // }}}
00756     // {{{ getStatuses()
00757 
00758     function getStatuses()
00759     {
00760         return $this->statuses;
00761     }
00762 
00763     // }}}
00764     // {{{ setStatuses()
00765 
00766     function setStatuses($in_value)
00767     {
00768         $this->statuses = $in_value;
00769     }
00770 
00771     // }}}
00772     // {{{ getLastUpdatedOperator()
00773 
00774     function getLastUpdatedOperator()
00775     {
00776         return $this->lastUpdatedOperator;
00777     }
00778 
00779     // }}}
00780     // {{{ setLastUpdatedOperator()
00781 
00782     function setLastUpdatedOperator($in_value)
00783     {
00784         $this->lastUpdatedOperator = $in_value;
00785     }
00786 
00787     // }}}
00788     // {{{ getLastUpdatedNum()
00789 
00790     function getLastUpdatedNum()
00791     {
00792         return empty($this->lastUpdatedNum) ? '' : $this->lastUpdatedNum;
00793     }
00794 
00795     // }}}
00796     // {{{ setLastUpdatedNum()
00797 
00798     function setLastUpdatedNum($in_value)
00799     {
00800         $this->lastUpdatedNum = $in_value;
00801     }
00802 
00803     // }}}
00804     // {{{ getLastUpdatedType()
00805 
00806     function getLastUpdatedType()
00807     {
00808         return $this->lastUpdatedType;
00809     }
00810 
00811     // }}}
00812     // {{{ setLastUpdatedType()
00813 
00814     function setLastUpdatedType($in_value)
00815     {
00816         $this->lastUpdatedType = $in_value;
00817     }
00818 
00819     // }}}
00820     // {{{ getCreateDateOperator()
00821 
00822     function getCreateDateOperator()
00823     {
00824         return $this->createDateOperator;
00825     }
00826 
00827     // }}}
00828     // {{{ setCreateDateOperator()
00829 
00830     function setCreateDateOperator($in_value)
00831     {
00832         $this->createDateOperator = $in_value;
00833     }
00834 
00835     // }}}
00836     // {{{ getCreateDateNum()
00837 
00838     function getCreateDateNum()
00839     {
00840         return empty($this->createDateNum) ? '' : $this->createDateNum;
00841     }
00842 
00843     // }}}
00844     // {{{ setCreateDateNum()
00845 
00846     function setCreateDateNum($in_value)
00847     {
00848         $this->createDateNum = $in_value;
00849     }
00850 
00851     // }}}
00852     // {{{ getCreateDateType()
00853 
00854     function getCreateDateType()
00855     {
00856         return $this->createDateType;
00857     }
00858 
00859     // }}}
00860     // {{{ setCreateDateType()
00861 
00862     function setCreateDateType($in_value)
00863     {
00864         $this->createDateType = $in_value;
00865     }
00866 
00867     // }}}
00868     // {{{ getDueDateOperator()
00869 
00870     function getDueDateOperator()
00871     {
00872         return $this->dueDateOperator;
00873     }
00874 
00875     // }}}
00876     // {{{ setDueDateOperator()
00877 
00878     function setDueDateOperator($in_value)
00879     {
00880         $this->dueDateOperator = $in_value;
00881     }
00882 
00883     // }}}
00884     // {{{ getDueDateNum()
00885 
00886     function getDueDateNum()
00887     {
00888         return empty($this->dueDateNum) ? '' : $this->dueDateNum;
00889     }
00890 
00891     // }}}
00892     // {{{ setDueDateNum()
00893 
00894     function setDueDateNum($in_value)
00895     {
00896         $this->dueDateNum = $in_value;
00897     }
00898 
00899     // }}}
00900     // {{{ getDueDateType()
00901 
00902     function getDueDateType()
00903     {
00904         return $this->dueDateType;
00905     }
00906 
00907     // }}}
00908     // {{{ setDueDateType()
00909 
00910     function setDueDateType($in_value)
00911     {
00912         $this->dueDateType = $in_value;
00913     }
00914 
00915     // }}}
00916     // {{{ getLastActionOptions()
00917 
00918     function getLastActionOptions()
00919     {
00920         return array(ACTION_ADD_SUBMIT => _('Mayday Created'), 
00921                      'email_add' => _('Mayday Created via Email'),
00922                      ACTION_EDIT_SUBMIT => _('Mayday Updated'),
00923                      ACTION_RESOLVE_SUBMIT => _('Mayday Resolved'),
00924                      'new_public_comment' => _('Public Comment Added'),
00925                      'new_private_comment' => _('Private Comment Added'));
00926     }
00927 
00928     // }}}
00929     // {{{ getLastAction()
00930 
00931     function getLastAction()
00932     {
00933         return $this->lastAction;
00934     }
00935 
00936     // }}}
00937     // {{{ setLastAction()
00938 
00939     function setLastAction($in_value)
00940     {
00941         $this->lastAction = $in_value;
00942     }
00943 
00944     // }}}
00945     // {{{ _initDataAccess()
00946 
00953     function _initDataAccess()
00954     {
00955         $this->o_dataAccess =& FF_DataAccess::factory('Filter');
00956     }
00957 
00958     // }}}
00959 }
00960 ?>

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