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/Model.php';
00026
00027
00028
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
00049
00059
00060 class FF_Model_Filter extends FF_Model {
00061
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
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
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
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
00392
00393 function getName()
00394 {
00395 return $this->name;
00396 }
00397
00398
00399
00400
00401 function setName($in_value)
00402 {
00403 $this->name = $in_value;
00404 }
00405
00406
00407
00408
00409 function getOperator()
00410 {
00411 return $this->operator;
00412 }
00413
00414
00415
00416
00417 function setOperator($in_value)
00418 {
00419 $this->operator = $in_value;
00420 }
00421
00422
00423
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
00435
00436 function getSortField()
00437 {
00438 return empty($this->sortField) ? 'points' : $this->sortField;
00439 }
00440
00441
00442
00443
00444 function setSortField($in_value)
00445 {
00446 $this->sortField = $in_value;
00447 }
00448
00449
00450
00451
00452 function getSortOrder()
00453 {
00454 return $this->sortOrder;
00455 }
00456
00457
00458
00459
00460 function setSortOrder($in_value)
00461 {
00462 $this->sortOrder = $in_value;
00463 }
00464
00465
00466
00467
00468 function getNewComments()
00469 {
00470 return $this->newComments;
00471 }
00472
00473
00474
00475
00476 function setNewComments($in_value)
00477 {
00478 $this->newComments = $in_value;
00479 }
00480
00481
00482
00483
00484 function getDateOperatorOptions()
00485 {
00486 return array(DATE_LESS => _('less than'), DATE_MORE => _('more than'));
00487 }
00488
00489
00490
00491
00492 function getDateTypeOptions()
00493 {
00494 return array(DATE_MINUTES => _('Minutes'), DATE_HOURS => _('Hours'), DATE_DAYS => _('Days'), DATE_MONTHS => _('Months'));
00495 }
00496
00497
00498
00499
00500 function getTextOperatorOptions()
00501 {
00502 return array(0 => _('Does Not'), 1 => _('Does'));
00503 }
00504
00505
00506
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
00517
00518 function getSummaryOperator()
00519 {
00520 return $this->summaryOperator;
00521 }
00522
00523
00524
00525
00526 function setSummaryOperator($in_value)
00527 {
00528 $this->summaryOperator = $in_value;
00529 }
00530
00531
00532
00533
00534 function getSummaryType()
00535 {
00536 return $this->summaryType;
00537 }
00538
00539
00540
00541
00542 function setSummaryType($in_value)
00543 {
00544 $this->summaryType = $in_value;
00545 }
00546
00547
00548
00549
00550 function getSummary()
00551 {
00552 return $this->summary;
00553 }
00554
00555
00556
00557
00558 function setSummary($in_value)
00559 {
00560 $this->summary = $in_value;
00561 }
00562
00563
00564
00565
00566 function getDescriptionOperator()
00567 {
00568 return $this->descriptionOperator;
00569 }
00570
00571
00572
00573
00574 function setDescriptionOperator($in_value)
00575 {
00576 $this->descriptionOperator = $in_value;
00577 }
00578
00579
00580
00581
00582 function getDescriptionType()
00583 {
00584 return $this->descriptionType;
00585 }
00586
00587
00588
00589
00590 function setDescriptionType($in_value)
00591 {
00592 $this->descriptionType = $in_value;
00593 }
00594
00595
00596
00597
00598 function getDescription()
00599 {
00600 return $this->description;
00601 }
00602
00603
00604
00605
00606 function setDescription($in_value)
00607 {
00608 $this->description = $in_value;
00609 }
00610
00611
00612
00613
00614 function getReporterOperator()
00615 {
00616 return $this->reporterOperator;
00617 }
00618
00619
00620
00621
00622 function setReporterOperator($in_value)
00623 {
00624 $this->reporterOperator = $in_value;
00625 }
00626
00627
00628
00629
00630 function getReporterType()
00631 {
00632 return $this->reporterType;
00633 }
00634
00635
00636
00637
00638 function setReporterType($in_value)
00639 {
00640 $this->reporterType = $in_value;
00641 }
00642
00643
00644
00645
00646 function getReporter()
00647 {
00648 return $this->reporter;
00649 }
00650
00651
00652
00653
00654 function setReporter($in_value)
00655 {
00656 $this->reporter = $in_value;
00657 }
00658
00659
00660
00661
00662 function getOwnerId()
00663 {
00664 return is_null($this->ownerId) ? FF_Auth::getCredential('userId') : $this->ownerId;
00665 }
00666
00667
00668
00669
00670 function setOwnerId($in_value)
00671 {
00672 $this->ownerId = $in_value;
00673 }
00674
00675
00676
00677
00678 function getPoints()
00679 {
00680 return $this->points;
00681 }
00682
00683
00684
00685
00686 function setPoints($in_value)
00687 {
00688 $this->points = $in_value;
00689 }
00690
00691
00692
00693
00694 function getLocations()
00695 {
00696 return $this->locations;
00697 }
00698
00699
00700
00701
00702 function setLocations($in_value)
00703 {
00704 $this->locations = $in_value;
00705 }
00706
00707
00708
00709
00710 function getResolutions()
00711 {
00712 return $this->resolutions;
00713 }
00714
00715
00716
00717
00718 function setResolutions($in_value)
00719 {
00720 $this->resolutions = $in_value;
00721 }
00722
00723
00724
00725
00726 function getCategories()
00727 {
00728 return $this->categories;
00729 }
00730
00731
00732
00733
00734 function setCategories($in_value)
00735 {
00736 $this->categories = $in_value;
00737 }
00738
00739
00740
00741
00742 function getHandlers()
00743 {
00744 return $this->handlers;
00745 }
00746
00747
00748
00749
00750 function setHandlers($in_value)
00751 {
00752 $this->handlers = $in_value;
00753 }
00754
00755
00756
00757
00758 function getStatuses()
00759 {
00760 return $this->statuses;
00761 }
00762
00763
00764
00765
00766 function setStatuses($in_value)
00767 {
00768 $this->statuses = $in_value;
00769 }
00770
00771
00772
00773
00774 function getLastUpdatedOperator()
00775 {
00776 return $this->lastUpdatedOperator;
00777 }
00778
00779
00780
00781
00782 function setLastUpdatedOperator($in_value)
00783 {
00784 $this->lastUpdatedOperator = $in_value;
00785 }
00786
00787
00788
00789
00790 function getLastUpdatedNum()
00791 {
00792 return empty($this->lastUpdatedNum) ? '' : $this->lastUpdatedNum;
00793 }
00794
00795
00796
00797
00798 function setLastUpdatedNum($in_value)
00799 {
00800 $this->lastUpdatedNum = $in_value;
00801 }
00802
00803
00804
00805
00806 function getLastUpdatedType()
00807 {
00808 return $this->lastUpdatedType;
00809 }
00810
00811
00812
00813
00814 function setLastUpdatedType($in_value)
00815 {
00816 $this->lastUpdatedType = $in_value;
00817 }
00818
00819
00820
00821
00822 function getCreateDateOperator()
00823 {
00824 return $this->createDateOperator;
00825 }
00826
00827
00828
00829
00830 function setCreateDateOperator($in_value)
00831 {
00832 $this->createDateOperator = $in_value;
00833 }
00834
00835
00836
00837
00838 function getCreateDateNum()
00839 {
00840 return empty($this->createDateNum) ? '' : $this->createDateNum;
00841 }
00842
00843
00844
00845
00846 function setCreateDateNum($in_value)
00847 {
00848 $this->createDateNum = $in_value;
00849 }
00850
00851
00852
00853
00854 function getCreateDateType()
00855 {
00856 return $this->createDateType;
00857 }
00858
00859
00860
00861
00862 function setCreateDateType($in_value)
00863 {
00864 $this->createDateType = $in_value;
00865 }
00866
00867
00868
00869
00870 function getDueDateOperator()
00871 {
00872 return $this->dueDateOperator;
00873 }
00874
00875
00876
00877
00878 function setDueDateOperator($in_value)
00879 {
00880 $this->dueDateOperator = $in_value;
00881 }
00882
00883
00884
00885
00886 function getDueDateNum()
00887 {
00888 return empty($this->dueDateNum) ? '' : $this->dueDateNum;
00889 }
00890
00891
00892
00893
00894 function setDueDateNum($in_value)
00895 {
00896 $this->dueDateNum = $in_value;
00897 }
00898
00899
00900
00901
00902 function getDueDateType()
00903 {
00904 return $this->dueDateType;
00905 }
00906
00907
00908
00909
00910 function setDueDateType($in_value)
00911 {
00912 $this->dueDateType = $in_value;
00913 }
00914
00915
00916
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
00930
00931 function getLastAction()
00932 {
00933 return $this->lastAction;
00934 }
00935
00936
00937
00938
00939 function setLastAction($in_value)
00940 {
00941 $this->lastAction = $in_value;
00942 }
00943
00944
00945
00946
00953 function _initDataAccess()
00954 {
00955 $this->o_dataAccess =& FF_DataAccess::factory('Filter');
00956 }
00957
00958
00959 }
00960 ?>