mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-18 14:03:19 +01:00
172 lines
4.7 KiB
PHP
172 lines
4.7 KiB
PHP
|
<?php
|
||
|
/***************************************************************************\
|
||
|
* eGroupWare - FeLaMiMail *
|
||
|
* http://www.linux-at-work.de *
|
||
|
* http://www.phpgw.de *
|
||
|
* http://www.egroupware.org *
|
||
|
* Written by : Lars Kneschke [lkneschke@linux-at-work.de] *
|
||
|
* ------------------------------------------------- *
|
||
|
* This program is free software; you can redistribute it and/or modify it *
|
||
|
* under the terms of the GNU General Public License as published by the *
|
||
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
||
|
* option) any later version. *
|
||
|
\***************************************************************************/
|
||
|
/* $Id$ */
|
||
|
|
||
|
class bofilter
|
||
|
{
|
||
|
var $public_functions = array
|
||
|
(
|
||
|
'getActiveFilter' => True,
|
||
|
'flagMessages' => True
|
||
|
);
|
||
|
|
||
|
function bofilter()
|
||
|
{
|
||
|
$this->accountid = $GLOBALS['egw_info']['user']['account_id'];
|
||
|
|
||
|
$this->bopreferences =& CreateObject('felamimail.bopreferences');
|
||
|
$this->sofelamimail =& CreateObject('felamimail.sofelamimail');
|
||
|
$this->sofilter =& CreateObject('felamimail.sofilter');
|
||
|
|
||
|
$this->mailPreferences = $this->bopreferences->getPreferences();
|
||
|
$this->sessionData['activeFilter'] = "-1";
|
||
|
|
||
|
$this->restoreSessionData();
|
||
|
|
||
|
if(!is_array($this->sessionData['filter'])) {
|
||
|
$this->sessionData['filter'][0]['filterName'] = lang('Quicksearch');
|
||
|
$this->saveSessionData();
|
||
|
}
|
||
|
if(!isset($this->sessionData['activeFilter'])) {
|
||
|
$this->sessionData['activeFilter'] = "-1";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function deleteFilter($_filterID)
|
||
|
{
|
||
|
unset($this->sessionData['filter'][$_filterID]);
|
||
|
$this->saveSessionData();
|
||
|
$this->sofilter->saveFilter($this->sessionData['filter']);
|
||
|
}
|
||
|
|
||
|
function getActiveFilter()
|
||
|
{
|
||
|
return $this->sessionData['activeFilter'];
|
||
|
}
|
||
|
|
||
|
function getFilter($_filterID)
|
||
|
{
|
||
|
return $this->sessionData['filter'][$_filterID];
|
||
|
}
|
||
|
|
||
|
function getFilterList()
|
||
|
{
|
||
|
return $this->sessionData['filter'];
|
||
|
}
|
||
|
|
||
|
function restoreSessionData()
|
||
|
{
|
||
|
$arrayFunctions =& CreateObject('phpgwapi.arrayfunctions');
|
||
|
|
||
|
$this->sessionData = $GLOBALS['egw']->session->appsession('filter_session_data');
|
||
|
|
||
|
// sort the filter list
|
||
|
$unsortedFilter = $this->sofilter->restoreFilter();
|
||
|
|
||
|
// save the quicksearchfilter
|
||
|
// must always have id=0
|
||
|
if(is_array($unsortedFilter[0]))
|
||
|
{
|
||
|
$quickSearchFilter[0] = $unsortedFilter[0];
|
||
|
unset($unsortedFilter[0]);
|
||
|
}
|
||
|
// or create the array
|
||
|
else
|
||
|
{
|
||
|
$quickSearchFilter[0] = array('filterName' => lang('quicksearch'));
|
||
|
}
|
||
|
|
||
|
// _debug_array($this->sessionData['filter']);
|
||
|
// the first one is always the quicksearch filter
|
||
|
if(count($unsortedFilter) > 0)
|
||
|
{
|
||
|
$sortedFilter = $arrayFunctions->arfsort($unsortedFilter, array('filterName'));
|
||
|
$sortedFilter = array_merge($quickSearchFilter, $sortedFilter);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$sortedFilter = $quickSearchFilter;
|
||
|
}
|
||
|
#_debug_array($sortedFilter);
|
||
|
|
||
|
$this->sessionData['filter'] = $sortedFilter;
|
||
|
}
|
||
|
|
||
|
function saveFilter($_formData, $_filterID='')
|
||
|
{
|
||
|
if(!empty($_formData['filterName']))
|
||
|
$data['filterName'] = $_formData['filterName'];
|
||
|
if(!empty($_formData['from']))
|
||
|
$data['from'] = $_formData['from'];
|
||
|
if(!empty($_formData['to']))
|
||
|
$data['to'] = $_formData['to'];
|
||
|
if(!empty($_formData['subject']))
|
||
|
$data['subject']= $_formData['subject'];
|
||
|
|
||
|
if($_filterID === '')
|
||
|
{
|
||
|
$this->sessionData['filter'][] = $data;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$this->sessionData['filter'][$_filterID] = $data;
|
||
|
}
|
||
|
|
||
|
$this->saveSessionData();
|
||
|
|
||
|
$this->sofilter->saveFilter($this->sessionData['filter']);
|
||
|
}
|
||
|
|
||
|
function saveSessionData()
|
||
|
{
|
||
|
$GLOBALS['egw']->session->appsession('filter_session_data','',$this->sessionData);
|
||
|
}
|
||
|
|
||
|
function setActiveFilter($_filter)
|
||
|
{
|
||
|
$this->sessionData['activeFilter'] = "$_filter";
|
||
|
$this->saveSessionData();
|
||
|
}
|
||
|
|
||
|
function updateFilter($_data)
|
||
|
{
|
||
|
$filter = $this->getFilterList();
|
||
|
$activeFilter = $this->getActiveFilter();
|
||
|
|
||
|
// check for new quickfilter
|
||
|
if($activeFilter == $_data['filter'] && isset($_data['quickSearch']))
|
||
|
{
|
||
|
#print " new Quickfilter $_quickSearch<br>";
|
||
|
if($_data['quickSearch'] == '')
|
||
|
{
|
||
|
$this->setActiveFilter("-1");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$this->setActiveFilter("0");
|
||
|
$data['filterName'] = lang('Quicksearch');
|
||
|
$data['subject'] = $_data['quickSearch'];
|
||
|
$data['from'] = $_data['quickSearch'];
|
||
|
$this->saveFilter($data, '0');
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$this->setActiveFilter($_data['filter']);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|