* @copyright 2009 Alexandros Vellis
* @package plugins
* @subpackage avelsieve
*/
/** Includes */
if (file_exists('../../include/init.php')) {
include_once('../../include/init.php');
} else if (file_exists('../../include/validate.php')) {
define('SM_PATH','../../');
include_once(SM_PATH . 'include/validate.php');
include_once(SM_PATH . 'include/load_prefs.php');
}
require(SM_PATH . 'plugins/avelsieve/config/config.php');
$prev = sq_bindtextdomain ('avelsieve', SM_PATH . 'plugins/avelsieve/locale');
textdomain ('avelsieve');
include_once(SM_PATH . 'functions/imap.php');
require_once(SM_PATH . 'plugins/avelsieve/include/constants.inc.php');
include_once(SM_PATH . 'plugins/avelsieve/include/html_rulestable.inc.php');
include_once(SM_PATH . 'plugins/avelsieve/include/html_ruleedit.inc.php');
include_once(SM_PATH . 'plugins/avelsieve/include/sieve_conditions.inc.php');
include_once(SM_PATH . 'plugins/avelsieve/include/sieve_actions.inc.php');
include_once(SM_PATH . 'plugins/avelsieve/include/sieve.inc.php');
include_once(SM_PATH . 'plugins/avelsieve/include/support.inc.php');
sqsession_is_active();
if(!isset($_REQUEST['avaction'])) exit;
$action = $_REQUEST['avaction'];
/* First off, common initialization code for many of the actions */
switch($action) {
case 'edit_condition':
case 'edit_condition_kind':
case 'datetime_get_snippet':
// TODO - perhaps avoid connecting to ManageSieve and use cached capabilities
$backend_class_name = 'DO_Sieve_'.$avelsieve_backend;
$s = new $backend_class_name;
$s->init();
// $edit_class_name = 'avelsieve_html_edit_'. $type_get;
$edit_class_name = 'avelsieve_html_edit';
$ruleobj = new $edit_class_name($s, 'edit');
break;
default:
break;
}
switch($action) {
case 'edit_condition':
$index = ( isset($_GET['index']) && is_numeric($_GET['index']) ) ? $_GET['index'] : 1;
$type = isset($_GET['type']) ? $_GET['type'] : 1;
$temprules = array( 'cond' => array( $index => array('type' => $type ) ) );
$ruleobj->set_rule_data($temprules);
echo ''. $ruleobj->condition($index) .'';
exit;
case 'edit_condition_kind':
/* Return a new condition line - when changing condition_kind.
* Arguments:
* index: numeric index of line
* value: condition_kind to use
*/
$index = ( isset($_GET['index']) && is_numeric($_GET['index']) ) ? $_GET['index'] : 1;
$value = isset($_GET['value']) ? $_GET['value'] : 'message';
$temprules = array( 'cond' => array( $index => array('kind' => $value ) ) );
$ruleobj->set_rule_data($temprules);
echo ''. $ruleobj->condition($index) .'';
exit;
case 'datetime_get_snippet':
$index = ( isset($_POST['index']) && is_numeric($_POST['index']) ) ? $_POST['index'] : 1;
$name = isset($_POST['varname']) ? $_POST['varname'] : '';
$value = isset($_POST['varvalue']) ? $_POST['varvalue'] : '';
if(empty($name) || empty($value)) exit;
$temprules = array( 'cond' => array( $index => array('type' => '1' ) ) );
$ruleobj->process_input($_POST, true);
$cond = array();
if(isset($ruleobj->rule['cond']) && isset($ruleobj->rule['cond'][$index])) {
$cond = $ruleobj->rule['cond'][$index];
}
$myCondition = new avelsieve_condition_datetime($s, $temprules, $index); // XXX
$htmlOut = $myCondition->ui_tree_output($name, $value);
echo json_encode( array('html' => $htmlOut) );
exit;
default:
break;
}