use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in list_queues log_view add_queue edit_queue valid_queue);
use Fehler qw(report_fehler);
use Dbase::Help qw(DoFn quote);

# Flag: 1: Return nach Status
#       2: Hauptmenu-Features
#       4: '-' akzeptieren

sub edit_queues (;$$) {
	my ($flag,$kn) = @_;
	while(1) {
		my $act = line_in "$kn Queue >",($flag&1)?0:4; return undef if $act eq "";
		if($act eq "?") {
			print <<'END';
l      auflisten
END
			print <<'END' if $flag & 2;
a      hinzufügen
END
			print <<'END' if $flag & 1;
?NAME  Queue editieren
NAME   Queue aufrufen
END
			print <<'END' unless $flag & 1;
NAME   Queue editieren
END
			print "\n";
			next;
		}
		if($act eq "l") { list_queues($kn); next; }
		if($act eq "H") { log_view($kn,"queue"); next; }
		if($act eq "-") {
			return $act if $flag & 4;
			print "???\n";
			next;
		}
		if($act eq "a" and $flag & 2) { 
			my $ret = add_queue($kn);
			return $ret if $flag & 1 and $ret > 0;
			next;
		}
		my $force = ($act =~s/^\?//);
		if($act =~ /^\S+$/) { 
			my $q;
			if($act =~ /^\d+$/) {
				$q = $act;
			} else {
				$q = DoFn("select id from queue where name = '${\quote $act}'");
			}
			if($q) {
				next unless valid_queue($q,1);
				return $q if $flag & 1 and not $force;
				edit_queue($q,$kn);
				next;
			}
		}
		print "Aktion '$act' kenne ich nicht.\n";
		next; fehler: report_fehler(4);
	}
	undef;
}
1;
