| {␊ |
| $this->project = $extra['project'];␊ |
| $members = $this->project->getMembershipData('string');␊ |
| $conf = $this->project->getConf();␊ |
| ␊ |
| $this->fields['name'] = new Pluf_Form_Field_Varchar(␊ |
| array('required' => true,␊ |
| 'label' => __('Name'),␊ |
|
| ␊ |
| $this->fields['shortdesc'] = new Pluf_Form_Field_Varchar(␊ |
| array('required' => true,␊ |
| 'label' => __('short description'),␊ |
| 'label' => __('Short description'),␊ |
| 'help_text' => __('A one line description of the project.'),␊ |
| 'initial' => $this->project->shortdesc,␊ |
| 'widget_attrs' => array('size' => '35'),␊ |
| ));␊ |
| ␊ |
| if ($this->project->getConf()->getVal('scm') == 'mtn') {␊ |
| $this->fields['mtn_master_branch'] = new Pluf_Form_Field_Varchar(␊ |
| array('required' => false,␊ |
| 'label' => __('Master branch'),␊ |
| 'initial' => $conf->getVal('mtn_master_branch'),␊ |
| 'widget_attrs' => array('size' => '35'),␊ |
| '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'),␊ |
|
| ));␊ |
| }␊ |
| ␊ |
| 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(__(␊ |
| 'The master branch is empty or contains illegal characters, '.␊ |
| 'please use only letters, digits, dashs and dots as separators.'␊ |
| ));␊ |
| }␊ |
| ␊ |
| $sql = new Pluf_SQL('vkey=%s AND vdesc=%s AND project!=%s',␊ |
| array('mtn_master_branch', $mtn_master_branch,␊ |
| (string)$this->project->id));␊ |
| $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_owners()␊ |
| {␊ |
| return IDF_Form_MembersConf::checkBadLogins($this->cleaned_data['owners']);␊ |
|
| if (!$this->isValid()) {␊ |
| throw new Exception(__('Cannot save the model from an invalid form.'));␊ |
| }␊ |
| IDF_Form_MembersConf::updateMemberships($this->project, ␊ |
| IDF_Form_MembersConf::updateMemberships($this->project,␊ |
| $this->cleaned_data);␊ |
| $this->project->membershipsUpdated();␊ |
| $this->project->name = $this->cleaned_data['name'];␊ |
| $this->project->shortdesc = $this->cleaned_data['shortdesc'];␊ |
| $this->project->update();␊ |
| ␊ |
| $keys = array('mtn_master_branch');␊ |
| foreach ($keys as $key) {␊ |
| if (!empty($this->cleaned_data[$key])) {␊ |
| $this->project->getConf()->setVal($key, $this->cleaned_data[$key]);␊ |
| }␊ |
| }␊ |
| }␊ |
| }␊ |
| ␊ |