--- loncom/homework/lonhomework.pm 2001/04/26 21:28:33 1.41 +++ loncom/homework/lonhomework.pm 2001/05/04 21:20:31 1.42 @@ -30,11 +30,20 @@ sub get_target { return ('web'); } } else { - return ('grade','web'); - if ( $ENV{'form.submitted'} eq 'edit' ) { - return ('modified','edit'); + if ( $ENV{'form.problemmode'} eq 'View' ) { + if ( defined $ENV{'form.submitted'}) { + return ('grade', 'web'); + } else { + return ('web'); + } + } elsif ( $ENV{'form.problemmode'} eq 'Edit' ) { + if ( $ENV{'form.submitted'} eq 'edit' ) { + return ('modified','edit'); + } else { + return ('edit'); + } } else { - return ('edit'); + return ('web'); } } } @@ -50,7 +59,6 @@ sub setup_vars { sub send_header { my ($request)= @_; $request->print(&Apache::lontexconvert::header()); - $ENV{'request.uri'}=$request->uri; # $request->print('
'); } @@ -156,7 +164,6 @@ sub setupheader { } $request->send_http_header; return OK if $request->header_only; - &Apache::lonhomework::send_header($request); return '' } @@ -226,12 +233,71 @@ sub renderpage { } } +# with no arg it returns a HTML "; + } + } + return $result; +} + +sub newproblem { + my ($request) = @_; + + if ($ENV{'form.template'}) { + use File::Copy; + my $file = &get_template_list($ENV{'form.template'}); + my $dest = &Apache::lonnet::filelocation("",$request->uri); + copy($file,$dest); + &renderpage($request,$file); + } else { + my $templatelist=&get_template_list(); + my $url=$request->uri; + $request->print(< +The request file $url doesn\'t exist. You can create a new problem
+ +
+ + + +ENDNEWPROBLEM + } + + return ''; +} + +sub view_or_edit_menu { + my ($request) = @_; + my $url=$request->uri; + $request->print(< +
+Would you like to or + the problem. +
+ +EDITMENU +} + sub handler { my $request=$_[0]; if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;} if (&setupheader($request)) { return OK; } + $ENV{'request.uri'}=$request->uri; #setup permissions $Apache::lonhomework::browse= &Apache::lonnet::allowed('bre',$ENV{'request.filename'}); @@ -251,9 +317,10 @@ sub handler { if ($ENV{'request.state'} eq "construct") { if ( -e $file ) { - if (!(defined $ENV{'form.showproblem'})) { + if (!(defined $ENV{'form.problemmode'})) { #first visit to problem in construction space &view_or_edit_menu($request); + #&renderpage($request,$file); } else { &renderpage($request,$file); }