From 2aedcbbc8ac05385e8099cb04cbccc3431c413e6 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Mon, 15 Sep 2008 11:50:02 +0200 Subject: [PATCH] @Girocco::Config::project_fields: Configure which project fields to make editable Suitable for corporate deployments where many of the fields aren't relevant. --- Girocco/CGI.pm | 19 +++++++++++++++++++ Girocco/Config.pm | 4 ++++ Girocco/Project.pm | 6 ++++++ cgi/editproj.cgi | 5 ++--- cgi/regproj.cgi | 10 +++++----- 5 files changed, 36 insertions(+), 8 deletions(-) diff --git a/Girocco/CGI.pm b/Girocco/CGI.pm index c598ffc..d3e5185 100644 --- a/Girocco/CGI.pm +++ b/Girocco/CGI.pm @@ -113,5 +113,24 @@ sub html_esc { $str; } +sub print_form_fields { + my $self = shift; + my ($fieldmap, $valuemap, @fields) = @_; + + foreach my $field (map { $fieldmap->{$_} } @fields) { + print ''.$field->[0].':'; + if ($field->[2] eq 'text') { + print ''; + } else { + print ''; + } + print "\n"; + } +} + 1; diff --git a/Girocco/Config.pm b/Girocco/Config.pm index 549c4e0..ac0ba08 100644 --- a/Girocco/Config.pm +++ b/Girocco/Config.pm @@ -44,6 +44,10 @@ our $project_passwords = 1; # is a local path (and empty string otherwise). our $project_owners = 'email'; +# Which project fields to make editable, out of 'shortdesc', 'homepage', +# 'README': +our @project_fields = qw(homepage shortdesc README); + ## Paths diff --git a/Girocco/Project.pm b/Girocco/Project.pm index b1f1e84..af1b578 100644 --- a/Girocco/Project.pm +++ b/Girocco/Project.pm @@ -12,6 +12,12 @@ BEGIN { use base ('Girocco::ProjPerm::'.$Girocco::Config::permission_control); # mwahaha } +our $metadata_fields = { + homepage => ['Homepage URL', 'hp', 'text'], + shortdesc => ['Short description', 'desc', 'text'], + README => ['README (HTML, lt 8kb)', 'README', 'textarea'], +}; + sub _mkdir_forkees { my $self = shift; my @pelems = split('/', $self->{name}); diff --git a/cgi/editproj.cgi b/cgi/editproj.cgi index f2a157a..0b2510b 100755 --- a/cgi/editproj.cgi +++ b/cgi/editproj.cgi @@ -113,10 +113,9 @@ EOT EOT } +$gcgi->print_form_fields($Girocco::Project::metadata_fields, \%h, @Girocco::Config::project_fields); + print <Homepage URL: -Description: -README (HTML, lt 8kb): diff --git a/cgi/regproj.cgi b/cgi/regproj.cgi index 667a4cb..2d65832 100755 --- a/cgi/regproj.cgi +++ b/cgi/regproj.cgi @@ -247,12 +247,12 @@ if ($Girocco::Config::project_owners eq 'email') { E-mail contact: EOT } +print $modechooser; +print $mirrorentry; + +$gcgi->print_form_fields($Girocco::Project::metadata_fields, undef, @Girocco::Config::project_fields); + print <Homepage URL: -Short description: -README (HTML, lt 8kb): Anti-captcha (leave empty!): -- 2.11.4.GIT