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

use Loader qw(line_in list_deskrips log_view edit_deskrip log_update);
use Fehler qw(report_fehler);
use Dbase::Help qw(DoFn Do qquote);

## 1: Return
sub edit_deskrips(;$$) {
	my($flag,$kn) = @_;
	$flag = 0 unless $flag;

	while(1) {
		my $act = line_in "$kn Deskriptoren >",($flag&1)?0:4; last if $act eq "";
		if($act eq "?") {
			print <<'END';
l     auflisten
END
			if($flag & 1) {
				print <<'END';
NAME  Deskriptor-ID zurückliefern
?NAME Deskriptoren editieren
END
			} else {
				print <<'END';
NAME  Deskriptoren editieren
END
			}
			next;
		}
		if($act eq "l") { list_deskrips($kn); next; }
		if($act eq "H") { log_view($kn,"descr"); next; }

        my $force = ($act =~ s/^\?//);
		my $desc = DoFn "select id from descr_typ where name=${\qquote $act}";
		unless($desc) {
			line_in('Diese Deskriptorenliste gibt es noch nicht. Soll sie angelegt werden? ') =~ /^[jy]/i
			  or next;
			$desc = Do "insert into descr_typ set name=${\qquote $act}";
			log_update("descr_typ","id",$desc,undef,"*");
		}

		return $desc if $flag & 1 and not $force;
		edit_deskrip($desc,2,$kn);
		next; fehler: report_fehler(4);
	}
	undef;
}

1;
