X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-plugins%2Fgroupware%2Fpersonal%2Fgroupware%2Fclass_filterEditor.inc;h=e561b8d1a0038aaf7fe8f517acb781eb44ebefdd;hb=f5b9f24c1c352f50488ab8ec5a89dff873e75bea;hp=5fc90ef6caf64aef104ab50912c910843deabe54;hpb=d94882b77c3e326fe3fb88431adf4facd352bacd;p=gosa.git diff --git a/gosa-plugins/groupware/personal/groupware/class_filterEditor.inc b/gosa-plugins/groupware/personal/groupware/class_filterEditor.inc index 5fc90ef6c..e561b8d1a 100644 --- a/gosa-plugins/groupware/personal/groupware/class_filterEditor.inc +++ b/gosa-plugins/groupware/personal/groupware/class_filterEditor.inc @@ -7,24 +7,190 @@ class filterEditor extends plugin $this->config = &$config; $this->parent = &$parent; $this->filter = $filter; + + $this->types = array( + 'OR' => _("At least one of the following conditions has to match"), + 'AND' => _("All conditions have to match")); + + $this->actions = array( + "MOVE" => _("move mail to"), + "COPY" => _("copy mail to"), + "FORWARD" => _("forward message to"), + "MARK" => _("mark mail as "), + "DROP" => _("remove mail"), + "REPLY" => _("reply")); + + $this->fields = array( + 'subject' => _("Subject"), + 'from'=> _("From"), + 'body'=> _("Body"), + 'date'=> _("Date"), + 'priority'=> _("Priority"), + 'status'=> _("Status"), + 'to'=> _("To"), + 'cc'=> _("CC"), + 'age'=> _("Age"), + 'size'=> _("Size")); + + $this->comparators = array( + "is" => _("is"), + "is not" => _("is not"), + "equal" => _("is equal"), + "not equal" => _("is not equal"), + "is empty" => _("is empty"), + "is not empty" => _("is not empty"), + "contains" => _("contains"), + "contains not" => _("does not contain"), + "is in addressbook" => _("is in the addressbook"), + "is not in addressbook" => _("is not in the addressbook"), + "greater than" => _("is greater than"), + "less than" => _("smaller than")); } function execute() { $smarty = get_smarty(); - + $smarty->assign('NAME',set_post($this->filter['NAME'])); + $smarty->assign('DESC',set_post($this->filter['DESC'])); $smarty->assign('filterStr', $this->renderFilter()); return($smarty->fetch(get_template_path('filterEditor.tpl',TRUE,dirname(__FILE__)))); } + + + function check() + { + $msgs = array(); + return($msgs); + } + + + function save() + { + // Just return the filter array we've modified + return($this->filter); + } + + function renderFilter() { - $str = ""; + $filter = $this->filter; + + $cnt = count($filter['CONDITIONS']); + $str = "

"._("Filter conditions")."

"; + $str .= _("Condition type")." "; + $str .="\n"; + $str.= ""; + $str .= " "; + + $str .= "
"; + $str .= "

"._("Filter actions")."

"; + $str.= ""; + $str .= " "; return($str); } + + function save_object() + { + // Do nothing if the dialog wasn't submitted yet + if(!isset($_POST['filterEditorPosted'])) return; + + // Get the filter confition type if posted + $this->filter['TYPE'] = (isset($_POST['cType']))? get_post('cType'): $this->filter['TYPE']; + + // Get condition modifications + foreach($this->filter['CONDITIONS'] as $id => $value){ + foreach(array('cField_' => 'FIELD', + 'cComparator_'=>'COMPARATOR', + 'cMatch_'=>'MATCH') as $post => $name){ + if(isset($_POST[$post.$id])){ + $this->filter['CONDITIONS'][$id][$name] = get_post($post.$id); + } + } + if(isset($_POST['removeCondition_'.$id]) && count($this->filter['CONDITIONS']) >= 2){ + unset($this->filter['CONDITIONS'][$id]); + } + } + + // Get Action modifications + foreach($this->filter['ACTION'] as $id => $value){ + foreach(array('cAction_' => 'ACTIOB','cValue_' => 'VALUE') as $post => $name){ + if(isset($_POST[$post.$id])){ + $this->filter['ACTION'][$id][$name] = get_post($post.$id); + } + } + if(isset($_POST['removeAction_'.$id]) && count($this->filter['ACTION']) >= 2){ + unset($this->filter['ACTION'][$id]); + } + } + + // Get NAME and DESC if posted + if(isset($_POST['NAME'])) $this->filter['NAME'] = get_post('NAME'); + if(isset($_POST['DESC'])) $this->filter['DESC'] = get_post('DESC'); + + // Add conditions + if(isset($_POST['addCondition'])){ + $this->filter['CONDITIONS'][] = array('FIELD' => key($this->fields),'COMPARATOR' => key($this->comparators), 'MATCH' => ''); + } + + // Add actions + if(isset($_POST['addAction'])){ + $this->filter['ACTION'][] = array('ACTION' => 'MOVE', 'VALUE' => ''); + } + } } ?>