Indefero

Indefero Commit Details


Date:2010-11-16 17:47:55 (14 years 1 month ago)
Author:Thomas Keller
Branch:develop, feature-issue_links, feature.better-home, feature.content-md5, feature.diff-whitespace, feature.download-md5, feature.issue-links, feature.issue-of-others, feature.issue-summary, feature.search-filter, feature.webrepos, feature.wiki-default-page, master, release-1.1, release-1.2, release-1.3
Commit:b4bc6abaceea8c97bfb19bba424902caa5f8145c
Parents: e6f255bc56808c8a4e8926124a37c211822181f6
Message:Make the monotone master branch editable on forge level at least to make it possible to switch the default project branch (partially fixes issue 560)

Changes:

File differences

src/IDF/Form/Admin/ProjectUpdate.php
3737
3838
3939
40
41
4042
4143
4244
......
4547
4648
4749
48
50
4951
5052
5153
5254
5355
56
57
58
59
60
61
62
63
64
65
5466
5567
5668
......
6981
7082
7183
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
72108
73109
74110
......
84120
85121
86122
87
123
88124
89125
90126
91127
92128
129
130
131
132
133
134
135
93136
94137
95138
{
$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]);
}
}
}
}
src/IDF/Views/Project.php
128128
129129
130130
131
131
132132
133133
134134
......
156156
157157
158158
159
159
160160
161161
162162
......
198198
199199
200200
201
201
202202
203203
204204
public function timeline($request, $match)
{
$prj = $request->project;
$model_filter = @$match[2];
$all_model_filters = self::getAvailableModelFilters();
if (!array_key_exists($model_filter, $all_model_filters)) {
$pag->items_per_page = 20;
$pag->no_results_text = __('No changes were found.');
$pag->setFromRequest($request);
if (!$request->user->isAnonymous() and $prj->isRestricted()) {
$feedurl = Pluf_HTTP_URL_urlForView('idf_project_timeline_feed_auth',
array($prj->shortname,
$model_filter = 'all';
}
$title = $all_model_filters[$model_filter];
$classes = self::determineModelClasses($request, $model_filter);
$sqls = sprintf('model_class IN (%s)', implode(', ', $classes));
$sql = new Pluf_SQL('project=%s AND '.$sqls, array($prj->id));
src/IDF/templates/idf/gadmin/projects/update.html
2525
2626
2727
28
29
30
31
32
33
34
35
36
2837
2938
3039
......
4453
4554
4655
47
56
4857
4958
5059
<span class="helptext">{$form.f.shortdesc.help_text}</span>
</td>
</tr>
{if $project.getConf().getVal('scm') == 'mtn'}
<tr class="mtn-form">
<th><strong>{$form.f.mtn_master_branch.labelTag}:</strong></th>
<td>{if $form.f.mtn_master_branch.errors}{$form.f.mtn_master_branch.fieldErrors}{/if}
{$form.f.mtn_master_branch|unsafe}<br />
<span class="helptext">{$form.f.mtn_master_branch.help_text}</span>
</td>
</tr>
{/if}
<tr>
<th><strong>{$form.f.owners.labelTag}:</strong></th>
<td>
<td>&nbsp;</td>
<td> {aurl 'url', 'IDF_Views_Admin::projectDelete', array($project.id)}
{* float left is a fix for Firefox < 3.5 *}
<span style="float: left;"><input type="submit" value="{trans 'Update Project'}" name="submit" />
<span style="float: left;"><input type="submit" value="{trans 'Update Project'}" name="submit" />
| <a href="{url 'IDF_Views_Admin::projects'}">{trans 'Cancel'}</a></span> {if $isAdmin}
<span class="dellink"><a href="{$url}" title="{trans 'Delete this project'}"><img src="{media '/idf/img/trash.png'}" style="vertical-align: text-bottom;" alt="{trans 'Trash'}" /></a> <a href="{$url}" title="{trans 'Delete this project'}">{trans 'Delete this project'}</a><br /><span class="note helptext">{trans 'You will be asked to confirm.'}</span></span>{/if}
</td>

Archive Download the corresponding diff file

Page rendered in 0.08703s using 14 queries.