--- loncom/interface/lonhtmlcommon.pm 2007/01/05 17:55:41 1.156 +++ loncom/interface/lonhtmlcommon.pm 2007/09/05 05:00:24 1.161 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.156 2007/01/05 17:55:41 albertel Exp $ +# $Id: lonhtmlcommon.pm,v 1.161 2007/09/05 05:00:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -140,6 +140,7 @@ sub select_recent { foreach my $value (sort(keys(%recent))) { unless ($value =~/^error\:/) { my $escaped = &Apache::loncommon::escape_url($value); + &Apache::loncommon::inhibit_menu_check(\$escaped); $return.="\n'; @@ -852,7 +853,7 @@ sub Create_PrgWin { popwin=open(\'\',\'popwin\',\'width=400,height=100\');". "popwin.document.writeln(\'".$start_page. "

$heading<\/h4>". - "
". + "". '<\\/form>'.$end_page. "\');". @@ -864,7 +865,7 @@ sub Create_PrgWin { $prog_state{'window'}='window'; if (!$formname) { $prog_state{'formname'}=&get_uniq_name(); - &r_print($r,''); + &r_print($r,''); } else { $prog_state{'formname'}=$formname; } @@ -891,7 +892,7 @@ sub Create_PrgWin { # update progress sub Update_PrgWin { my ($r,$prog_state,$displayString)=@_; - &r_print($r,''); @@ -1002,13 +1003,10 @@ sub crumbs { } } else { $path.='/'; - } - my $linkpath = &Apache::loncommon::escape_single($path); - if ($form) { - $linkpath= - qq{javascript:$form.action='$linkpath';$form.submit();}; - } - $output.=qq{$dir/}; + } + my $href_path = &HTML::Entities::encode($path,'<>&"'); + &Apache::loncommon::inhibit_menu_check(\$href_path); + $output.=qq{$dir/}; } } else { foreach my $dir (split('/',$uri)) { @@ -1331,7 +1329,7 @@ returns: nothing # row2 # row3 ... etc. # &submit_row(0 -# &end_pickbox() +# &end_pick_box() # # where row1, row 2 etc. are chosen from &role_select_row,&course_select_row, # &status_select_row and &email_default_row @@ -1569,7 +1567,6 @@ sub status_select_row { sub email_default_row { my ($authtypes,$title,$descrip,$css_class) = @_; my $output = &row_title($title,$css_class); - my @rowcols = ('#eeeeee','#dddddd'); $output .= $descrip. &Apache::loncommon::start_data_table(). &Apache::loncommon::start_data_table_header_row(). @@ -1840,6 +1837,43 @@ sub set_form_elements { return $output; } +############################################## +############################################## + +# javascript_valid_email +# +# Generates javascript to validate an e-mail address. +# Returns a javascript function which accetps a form field as argumnent, and +# returns false if field.value does not satisfy two regular expression matches +# for a valid e-mail address. Backwards compatible with old browsers without +# support for javascript RegExp (just checks for @ in field.value in this case). + +sub javascript_valid_email { + my $scripttag .= <<'END'; +function validmail(field) { + var str = field.value; + if (window.RegExp) { + var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)"; + var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"; //" + var reg1 = new RegExp(reg1str); + var reg2 = new RegExp(reg2str); + if (!reg1.test(str) && reg2.test(str)) { + return true; + } + return false; + } + else + { + if(str.indexOf("@") >= 0) { + return true; + } + return false; + } +} +END + return $scripttag; +} + 1; __END__