use utf8;
use warnings; no warnings "redefine";
use strict;

use Dbase::Globals qw(name_kunde content);
use Fehler qw(report_fehler);
use Loader qw( add_mailrule
	delete_mailrule delete_mailrules
	hinweis_auf_kundebunt
	line_in list_mailrules log_view
	set_mailrule set_mailrule_kunde set_mailrules_kunde
);

sub edit_mailrules($;$) {
	my($kunde_id,$kn) = @_;
	$kn = $kunde_id ? "Kunde $kunde_id:" . name_kunde($kunde_id) : 'alle Kunden'
	  if $kn eq "";

	hinweis_auf_kundebunt(<<_);
MailRegeln können auch bequem über die kundebunt-Web-Schnittstelle auf
<URL> verwaltet werden.
_
	while(1) {
		content ( my $act = line_in("$kn MailRegel >",4) ) or last;
		if($act eq "?") {
			print <<1 . ( $kunde_id ? <<2 : '' );
l ... auflisten. Wird zusätzlich eine SQL-Wildcard angegeben, so werden nur
      solche Regeln angezeigt, wo diese matcht; bei einem vorangestellten "<"
      nur solche, bei denen sie auf die Quellenseite matcht, bei einem
      vorangestellten ">" nur solche, wo sie auf die Ziel-Seite matcht.
      Beispiele: "l %foo%", "l <%foo%", "l >%foo%"
1
a     hinzufügen
c     ändern
d     löschen
k     Regel zu anderem Kunden umbuchen
K     alle Regeln zu anderem Kunden umbuchen
del   alle löschen
2
			next;
		}
		if ( $act =~ /^l(?:\s+(.*))?/ ) { list_mailrules($kunde_id,$1); next; }
		if ( $kunde_id ) {
			if ( $act eq 'a'   ) { add_mailrule($kunde_id); next; }
			if ( $act eq 'c'   ) { set_mailrule($kunde_id,$kn); next; }
			if ( $act eq 'd'   ) { delete_mailrule($kunde_id); next; }
			if ( $act eq 'H'   ) { log_view($kn,mailrules=>kunde=>$kunde_id); next; }
			if ( $act eq 'k'   ) { set_mailrule_kunde($kunde_id); next; }
			if ( $act eq 'K'   ) { set_mailrules_kunde($kunde_id,$kn); next; }
			if ( $act eq 'H'   ) { log_view($kn,"mailrules","kunde",$kunde_id); next; }
			if ( $act eq 'del' ) { delete_mailrules($kunde_id); next; }
		}

		print "Aktion '$act' kenne ich nicht. Liste mit '?'.\n";
		next; fehler: report_fehler(4);
	}
	$kunde_id;
}

1;
