Some more files from the initial work

This commit is contained in:
Thomas Keller
2010-04-27 00:02:47 +02:00
parent 9fd4334dec
commit 18ba8d0ac5
6 changed files with 116 additions and 66 deletions

View File

@@ -38,6 +38,7 @@ class IDF_Form_Admin_ProjectCreate extends Pluf_Form
'git' => __('git'),
'svn' => __('Subversion'),
'mercurial' => __('mercurial'),
'mtn' => __('monotone'),
);
foreach (Pluf::f('allowed_scm', array()) as $key => $class) {
$choices[$options[$key]] = $key;
@@ -92,6 +93,14 @@ class IDF_Form_Admin_ProjectCreate extends Pluf_Form
'widget' => 'Pluf_Form_Widget_PasswordInput',
));
$this->fields['mtn_master_branch'] = new Pluf_Form_Field_Varchar(
array('required' => false,
'label' => __('Master branch'),
'initial' => '',
'widget' => 'Pluf_Form_Widget_Input',
'help_text' => __('This should be a world-wide unique identifier for your project. A reverse DNS notation like "com.my-domain.my-project" is a good idea.'),
));
$this->fields['owners'] = new Pluf_Form_Field_Varchar(
array('required' => false,
'label' => __('Project owners'),
@@ -156,6 +165,21 @@ class IDF_Form_Admin_ProjectCreate extends Pluf_Form
return $url;
}
public function clean_mtn_master_branch()
{
$mtn_master_branch = mb_strtolower($this->cleaned_data['mtn_master_branch']);
if (!preg_match('/^([\w\d]+([-][\w\d]+)*)(\.[\w\d]+([-][\w\d]+)*)*$/', $mtn_master_branch)) {
throw new Pluf_Form_Invalid(__('This master branch contains illegal characters, please use only letters, digits, dashs and dots as separators.'));
}
$sql = new Pluf_SQL('vkey=%s AND vdesc=%s', array("mtn_master_branch", $mtn_master_branch));
$l = Pluf::factory('IDF_Conf')->getList(array('filter'=>$sql->gen()));
if ($l->count() > 0) {
throw new Pluf_Form_Invalid(__('This master branch is already used. Please select another one.'));
}
return $mtn_master_branch;
}
public function clean_shortname()
{
$shortname = mb_strtolower($this->cleaned_data['shortname']);
@@ -184,6 +208,11 @@ class IDF_Form_Admin_ProjectCreate extends Pluf_Form
$this->cleaned_data[$key] = '';
}
}
if ($this->cleaned_data['scm'] != 'mtn') {
$this->cleaned_data['mtn_master_branch'] = '';
}
/**
* [signal]
*
@@ -222,15 +251,15 @@ class IDF_Form_Admin_ProjectCreate extends Pluf_Form
$project->create();
$conf = new IDF_Conf();
$conf->setProject($project);
$keys = array('scm', 'svn_remote_url',
'svn_username', 'svn_password');
$keys = array('scm', 'svn_remote_url', 'svn_username',
'svn_password', 'mtn_master_branch');
foreach ($keys as $key) {
$this->cleaned_data[$key] = (!empty($this->cleaned_data[$key])) ?
$this->cleaned_data[$key] = (!empty($this->cleaned_data[$key])) ?
$this->cleaned_data[$key] : '';
$conf->setVal($key, $this->cleaned_data[$key]);
}
$project->created();
IDF_Form_MembersConf::updateMemberships($project,
IDF_Form_MembersConf::updateMemberships($project,
$this->cleaned_data);
$project->membershipsUpdated();
return $project;