| <?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;␍␊ |
| }␍␊ |
| }␍␊ |
| ␍␊ |
| } |