@@ -3683,6 +3683,20 @@ sub get_page_title {
3683
3683
return $title ;
3684
3684
}
3685
3685
3686
+ sub get_content_type_html {
3687
+ # require explicit support from the UA if we are to send the page as
3688
+ # 'application/xhtml+xml', otherwise send it as plain old 'text/html'.
3689
+ # we have to do this because MSIE sometimes globs '*/*', pretending to
3690
+ # support xhtml+xml but choking when it gets what it asked for.
3691
+ if (defined $cgi -> http(' HTTP_ACCEPT' ) &&
3692
+ $cgi -> http(' HTTP_ACCEPT' ) =~ m / (,|;|\s |^)application\/ xhtml\+ xml(,|;|\s |$ )/ &&
3693
+ $cgi -> Accept(' application/xhtml+xml' ) != 0) {
3694
+ return ' application/xhtml+xml' ;
3695
+ } else {
3696
+ return ' text/html' ;
3697
+ }
3698
+ }
3699
+
3686
3700
sub print_feed_meta {
3687
3701
if (defined $project ) {
3688
3702
my %href_params = get_feed_info();
@@ -3728,24 +3742,90 @@ sub print_feed_meta {
3728
3742
}
3729
3743
}
3730
3744
3745
+ sub print_header_links {
3746
+ my $status = shift ;
3747
+
3748
+ # print out each stylesheet that exist, providing backwards capability
3749
+ # for those people who defined $stylesheet in a config file
3750
+ if (defined $stylesheet ) {
3751
+ print ' <link rel="stylesheet" type="text/css" href="' .esc_url($stylesheet ).' "/>' ." \n " ;
3752
+ } else {
3753
+ foreach my $stylesheet (@stylesheets ) {
3754
+ next unless $stylesheet ;
3755
+ print ' <link rel="stylesheet" type="text/css" href="' .esc_url($stylesheet ).' "/>' ." \n " ;
3756
+ }
3757
+ }
3758
+ print_feed_meta()
3759
+ if ($status eq ' 200 OK' );
3760
+ if (defined $favicon ) {
3761
+ print qq( <link rel="shortcut icon" href=") .esc_url($favicon ).qq( " type="image/png" />\n ) ;
3762
+ }
3763
+ }
3764
+
3765
+ sub print_nav_breadcrumbs {
3766
+ my %opts = @_ ;
3767
+
3768
+ print $cgi -> a({-href => esc_url($home_link )}, $home_link_str ) . " / " ;
3769
+ if (defined $project ) {
3770
+ print $cgi -> a({-href => href(action => " summary" )}, esc_html($project ));
3771
+ if (defined $action ) {
3772
+ my $action_print = $action ;
3773
+ if (defined $opts {-action_extra}) {
3774
+ $action_print = $cgi -> a({-href => href(action => $action )},
3775
+ $action );
3776
+ }
3777
+ print " / $action_print " ;
3778
+ }
3779
+ if (defined $opts {-action_extra}) {
3780
+ print " / $opts {-action_extra}" ;
3781
+ }
3782
+ print " \n " ;
3783
+ }
3784
+ }
3785
+
3786
+ sub print_search_form {
3787
+ if (!defined $searchtext ) {
3788
+ $searchtext = " " ;
3789
+ }
3790
+ my $search_hash ;
3791
+ if (defined $hash_base ) {
3792
+ $search_hash = $hash_base ;
3793
+ } elsif (defined $hash ) {
3794
+ $search_hash = $hash ;
3795
+ } else {
3796
+ $search_hash = " HEAD" ;
3797
+ }
3798
+ my $action = $my_uri ;
3799
+ my $use_pathinfo = gitweb_check_feature(' pathinfo' );
3800
+ if ($use_pathinfo ) {
3801
+ $action .= " /" .esc_url($project );
3802
+ }
3803
+ print $cgi -> startform(-method => " get" , -action => $action ) .
3804
+ " <div class=\" search\" >\n " .
3805
+ (!$use_pathinfo &&
3806
+ $cgi -> input({-name => " p" , -value => $project , -type => " hidden" }) . " \n " ) .
3807
+ $cgi -> input({-name => " a" , -value => " search" , -type => " hidden" }) . " \n " .
3808
+ $cgi -> input({-name => " h" , -value => $search_hash , -type => " hidden" }) . " \n " .
3809
+ $cgi -> popup_menu(-name => ' st' , -default => ' commit' ,
3810
+ -values => [' commit' , ' grep' , ' author' , ' committer' , ' pickaxe' ]) .
3811
+ $cgi -> sup($cgi -> a({-href => href(action => " search_help" )}, " ?" )) .
3812
+ " search:\n " ,
3813
+ $cgi -> textfield(-name => " s" , -value => $searchtext ) . " \n " .
3814
+ " <span title=\" Extended regular expression\" >" .
3815
+ $cgi -> checkbox(-name => ' sr' , -value => 1, -label => ' re' ,
3816
+ -checked => $search_use_regexp ) .
3817
+ " </span>" .
3818
+ " </div>" .
3819
+ $cgi -> end_form() . " \n " ;
3820
+ }
3821
+
3731
3822
sub git_header_html {
3732
3823
my $status = shift || " 200 OK" ;
3733
3824
my $expires = shift ;
3734
3825
my %opts = @_ ;
3735
3826
3736
3827
my $title = get_page_title();
3737
- my $content_type ;
3738
- # require explicit support from the UA if we are to send the page as
3739
- # 'application/xhtml+xml', otherwise send it as plain old 'text/html'.
3740
- # we have to do this because MSIE sometimes globs '*/*', pretending to
3741
- # support xhtml+xml but choking when it gets what it asked for.
3742
- if (defined $cgi -> http(' HTTP_ACCEPT' ) &&
3743
- $cgi -> http(' HTTP_ACCEPT' ) =~ m / (,|;|\s |^)application\/ xhtml\+ xml(,|;|\s |$ )/ &&
3744
- $cgi -> Accept(' application/xhtml+xml' ) != 0) {
3745
- $content_type = ' application/xhtml+xml' ;
3746
- } else {
3747
- $content_type = ' text/html' ;
3748
- }
3828
+ my $content_type = get_content_type_html();
3749
3829
print $cgi -> header(-type => $content_type , -charset => ' utf-8' ,
3750
3830
-status => $status , -expires => $expires )
3751
3831
unless ($opts {' -no_http_header' });
@@ -3767,22 +3847,7 @@ sub git_header_html {
3767
3847
if ($ENV {' PATH_INFO' }) {
3768
3848
print " <base href=\" " .esc_url($base_url )." \" />\n " ;
3769
3849
}
3770
- # print out each stylesheet that exist, providing backwards capability
3771
- # for those people who defined $stylesheet in a config file
3772
- if (defined $stylesheet ) {
3773
- print ' <link rel="stylesheet" type="text/css" href="' .esc_url($stylesheet ).' "/>' ." \n " ;
3774
- } else {
3775
- foreach my $stylesheet (@stylesheets ) {
3776
- next unless $stylesheet ;
3777
- print ' <link rel="stylesheet" type="text/css" href="' .esc_url($stylesheet ).' "/>' ." \n " ;
3778
- }
3779
- }
3780
- print_feed_meta()
3781
- if ($status eq ' 200 OK' );
3782
- if (defined $favicon ) {
3783
- print qq( <link rel="shortcut icon" href=") .esc_url($favicon ).qq( " type="image/png" />\n ) ;
3784
- }
3785
-
3850
+ print_header_links($status );
3786
3851
print " </head>\n " .
3787
3852
" <body>\n " ;
3788
3853
@@ -3799,59 +3864,12 @@ sub git_header_html {
3799
3864
-alt => " git" ,
3800
3865
-class => " logo" }));
3801
3866
}
3802
- print $cgi -> a({-href => esc_url($home_link )}, $home_link_str ) . " / " ;
3803
- if (defined $project ) {
3804
- print $cgi -> a({-href => href(action => " summary" )}, esc_html($project ));
3805
- if (defined $action ) {
3806
- my $action_print = $action ;
3807
- if (defined $opts {-action_extra}) {
3808
- $action_print = $cgi -> a({-href => href(action => $action )},
3809
- $action );
3810
- }
3811
- print " / $action_print " ;
3812
- }
3813
- if (defined $opts {-action_extra}) {
3814
- print " / $opts {-action_extra}" ;
3815
- }
3816
- print " \n " ;
3817
- }
3867
+ print_nav_breadcrumbs(%opts );
3818
3868
print " </div>\n " ;
3819
3869
3820
3870
my $have_search = gitweb_check_feature(' search' );
3821
3871
if (defined $project && $have_search ) {
3822
- if (!defined $searchtext ) {
3823
- $searchtext = " " ;
3824
- }
3825
- my $search_hash ;
3826
- if (defined $hash_base ) {
3827
- $search_hash = $hash_base ;
3828
- } elsif (defined $hash ) {
3829
- $search_hash = $hash ;
3830
- } else {
3831
- $search_hash = " HEAD" ;
3832
- }
3833
- my $action = $my_uri ;
3834
- my $use_pathinfo = gitweb_check_feature(' pathinfo' );
3835
- if ($use_pathinfo ) {
3836
- $action .= " /" .esc_url($project );
3837
- }
3838
- print $cgi -> startform(-method => " get" , -action => $action ) .
3839
- " <div class=\" search\" >\n " .
3840
- (!$use_pathinfo &&
3841
- $cgi -> input({-name => " p" , -value => $project , -type => " hidden" }) . " \n " ) .
3842
- $cgi -> input({-name => " a" , -value => " search" , -type => " hidden" }) . " \n " .
3843
- $cgi -> input({-name => " h" , -value => $search_hash , -type => " hidden" }) . " \n " .
3844
- $cgi -> popup_menu(-name => ' st' , -default => ' commit' ,
3845
- -values => [' commit' , ' grep' , ' author' , ' committer' , ' pickaxe' ]) .
3846
- $cgi -> sup($cgi -> a({-href => href(action => " search_help" )}, " ?" )) .
3847
- " search:\n " ,
3848
- $cgi -> textfield(-name => " s" , -value => $searchtext ) . " \n " .
3849
- " <span title=\" Extended regular expression\" >" .
3850
- $cgi -> checkbox(-name => ' sr' , -value => 1, -label => ' re' ,
3851
- -checked => $search_use_regexp ) .
3852
- " </span>" .
3853
- " </div>" .
3854
- $cgi -> end_form() . " \n " ;
3872
+ print_search_form();
3855
3873
}
3856
3874
}
3857
3875
0 commit comments