use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn);
use Loader qw(line_in valid_queue set_queue_flags edit_queue_areas
	set_queue_bearbeiter set_queue_mail set_queue_name set_queue_due
	set_queue_prio log_view list_queue
	delete_queue strip_kn warn_arbeit);
use Fehler qw(report_fehler);

sub edit_queue($;$) {
	my($id,$kn) = @_;
	return unless valid_queue($id);
	my $okn = strip_kn($kn);
	my $qname = DoFn("select name from queue where id = $id");

	$kn = $okn."Queue_$id:$qname";
	my $work = warn_arbeit("queue",$id,"*",$kn);

	while(1) {
		my $act = line_in "$kn >",4; last if $act eq "";
		if($act eq '?') {
			print <<'END';
l   auflisten                m   Mailalias setzen
f   Flags ändern             n   umbenennen
del Queue löschen
a   Arealiste ändern

Default für neue Tickets:
b   Bearbeiter setzen
p   Priorität ändern
d   due-Datum ändern

END
			next;
		}
		if($act eq "del") { return undef if delete_queue($id); next; }
		if($act eq "H") { log_view($kn,"queue","id",$id); next; }
		if($act eq "l") { list_queue($id,$kn); next; }
		if($act eq "a") { edit_queue_areas($id,$kn); next; }
		if($act eq "f") { set_queue_flags($id,$kn); next; }
		if($act eq "b") { set_queue_bearbeiter($id,$kn); next; }
		if($act eq "m") { set_queue_mail($id,$kn); next; }
		if($act eq "n") { set_queue_name($id,$kn);
			$qname = DoFn("select name from queue where id = $id");
			$kn = $okn."Queue_$id:$qname";
			next;
		}
		if($act eq "d") { set_queue_due($id,$kn); next; }
		if($act eq "p") { set_queue_prio($id,$kn); next; }
		print "Aktion '$act' kenne ich nicht. Liste mit '?'.\n";
		next; fehler: report_fehler(4);
	}
	$id;
}
1;
