<?php␍␊ |
class IDF_Form_ProjectRequest extends Pluf_Form␍␊ |
{␍␊ |
public $user = null;␍␊ |
␍␊ |
public function initFields($extra=array())␍␊ |
{␍␊ |
␍␊ |
$choices = array();␍␊ |
$options = array(␍␊ |
'git' => __('git'),␍␊ |
'svn' => __('Subversion'),␍␊ |
'mercurial' => __('mercurial'),␍␊ |
'mtn' => __('monotone'),␍␊ |
);␍␊ |
foreach (Pluf::f('allowed_scm', array()) as $key => $class) {␍␊ |
$choices[$options[$key]] = $key;␍␊ |
}␍␊ |
␍␊ |
$this->fields['shortname'] = new Pluf_Form_Field_Varchar(␍␊ |
array('required' => true,␍␊ |
'label' => __('Name'),␍␊ |
'initial' => '',␍␊ |
'help_text' => __('This will be the name of your repo and of your project - however - you can change the project name later.'),␍␊ |
));␍␊ |
␍␊ |
$this->fields['repotype'] = new Pluf_Form_Field_Varchar(␍␊ |
array('required' => true,␍␊ |
'label' => __('Repository type'),␍␊ |
'initial' => 'git',␍␊ |
'widget_attrs' => array('choices' => $choices),␍␊ |
'widget' => 'Pluf_Form_Widget_SelectInput',␍␊ |
));␍␊ |
␍␊ |
$this->fields['desc'] = new Pluf_Form_Field_Varchar(␍␊ |
array('required' => true,␍␊ |
'label' => __('Short description'),␍␊ |
'help_text' => __('A one line description of the project.'),␍␊ |
'initial' => '',␍␊ |
'widget_attrs' => array('size' => '35'),␍␊ |
));␍␊ |
␍␊ |
$this->user = $extra['user'];␍␊ |
}␍␊ |
␍␊ |
␍␊ |
function save($commit=true)␍␊ |
{␍␊ |
if (!$this->isValid()) {␍␊ |
throw new Exception(__('Cannot save the model from an invalid form.'));␍␊ |
}␍␊ |
␍␊ |
$checksql = new Pluf_SQL(sprintf("shortname='%s'", $this->cleaned_data['shortname']));␍␊ |
$requestcheck = Pluf::factory("IDF_Project")->getCount(array('filter'=>$checksql->gen()));␍␊ |
if ($requestcheck == 1)␍␊ |
return false;␍␊ |
try␍␊ |
{␍␊ |
$request = new IDF_ProjectRequest();␍␊ |
$request->shortname = $this->cleaned_data['shortname'];␍␊ |
$request->repotype = $this->cleaned_data['repotype'];␍␊ |
$request->desc = $this->cleaned_data['desc'];␍␊ |
$request->submitter = $this->user;␍␊ |
$request->create();␍␊ |
return true;␍␊ |
} catch (Exception $e)␍␊ |
{␍␊ |
return false;␍␊ |
}␍␊ |
}␍␊ |
␍␊ |
} |