finished revision log message editing
This commit is contained in:
parent
bcbe7a8f02
commit
61be4c7695
@ -246,6 +246,7 @@ class Code extends Controller
|
||||
{
|
||||
$this->load->model ('ProjectModel', 'projects');
|
||||
$this->load->model ('SubversionModel', 'subversion');
|
||||
|
||||
|
||||
$login = $this->login->getUser ();
|
||||
if (CODEPOT_SIGNIN_COMPULSORY && $login['id'] == '')
|
||||
@ -277,6 +278,40 @@ class Code extends Controller
|
||||
redirect ("main/signin/" . $this->converter->AsciiTohex(current_url()));
|
||||
}
|
||||
|
||||
$data['edit_error_message'] = '';
|
||||
if ($login['id'] != '' &&
|
||||
$login['id'] == $this->subversion->getRevProp($projectid, $rev, 'svn:author'))
|
||||
{
|
||||
// the current user must be the author of the revision to be able to
|
||||
// change the log message.
|
||||
$this->load->helper ('form');
|
||||
$this->load->library ('form_validation');
|
||||
|
||||
$this->form_validation->set_rules ('edit_log_message', 'Message', 'required|min_length[2]');
|
||||
$this->form_validation->set_error_delimiters('<span class="form_field_error">','</span>');
|
||||
|
||||
if ($this->input->post('edit_log_message'))
|
||||
{
|
||||
$logmsg = $this->input->post('edit_log_message');
|
||||
if ($this->form_validation->run())
|
||||
{
|
||||
if ($logmsg != $this->subversion->getRevProp ($projectid, $rev, 'svn:log'))
|
||||
{
|
||||
$actual_rev = $this->subversion->setRevProp (
|
||||
$projectid, $rev, 'svn:log', $logmsg, $login['id']);
|
||||
if ($actual_rev === FALSE)
|
||||
{
|
||||
$data['edit_error_message'] = 'Cannot change revision log message';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['edit_error_message'] = 'Invalid revision log message';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$file = $this->subversion->getRevHistory ($projectid, $path, $rev);
|
||||
if ($file === FALSE)
|
||||
{
|
||||
|
@ -768,6 +768,24 @@ class SubversionModel extends Model
|
||||
return $log[0]['rev'];
|
||||
}
|
||||
|
||||
function getRevProp ($projectid, $rev, $prop)
|
||||
{
|
||||
$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}");
|
||||
return @svn_revprop_get ($url, $rev, $prop);
|
||||
}
|
||||
|
||||
function setRevProp ($projectid, $rev, $prop, $propval, $user)
|
||||
{
|
||||
$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}");
|
||||
|
||||
$orguser = @svn_auth_get_parameter (SVN_AUTH_PARAM_DEFAULT_USERNAME);
|
||||
@svn_auth_set_parameter (SVN_AUTH_PARAM_DEFAULT_USERNAME, $user);
|
||||
|
||||
$result = @svn_revprop_set ($url, $rev, $prop, $propval);
|
||||
|
||||
@svn_auth_set_parameter (SVN_AUTH_PARAM_DEFAULT_USERNAME, $orguser);
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -12,6 +12,9 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
<?php $can_edit = ($login['id'] == $file['history']['author']); ?>
|
||||
|
||||
<?php if ($can_edit): ?>
|
||||
$(function() {
|
||||
$("#code_revision_edit_div").dialog (
|
||||
{
|
||||
@ -40,7 +43,25 @@ $(function() {
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
<?php if (strlen($edit_error_message) > 0): ?>
|
||||
$("#code_revision_edit_error_div").dialog( {
|
||||
title: '<?=$this->lang->line('Error')?>',
|
||||
width: 'auto',
|
||||
height: 'auto',
|
||||
modal: true,
|
||||
autoOpen: true,
|
||||
buttons: {
|
||||
"<?=$this->lang->line('OK')?>": function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
<?php endif; ?>
|
||||
|
||||
});
|
||||
<?php endif; ?>
|
||||
|
||||
</script>
|
||||
|
||||
<title><?=htmlspecialchars($project->name)?></title>
|
||||
@ -155,13 +176,14 @@ $history = $file['history'];
|
||||
|
||||
<div id="code_revision_mainarea_result">
|
||||
|
||||
<div class="title"><?=$this->lang->line('Message')?>
|
||||
|
||||
<div class="title"><?=$this->lang->line('Message')?>
|
||||
<?php if ($can_edit): ?>
|
||||
<span class='anchor'>
|
||||
<?=anchor ("#", $this->lang->line('Edit'),
|
||||
array ('id' => 'code_revision_edit_logmsg_button'));
|
||||
?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<pre id="code_revision_mainarea_result_msg">
|
||||
@ -215,17 +237,27 @@ $history = $file['history'];
|
||||
|
||||
</div> <!-- code_revision_content -->
|
||||
|
||||
<?php if ($can_edit): ?>
|
||||
<div id="code_revision_edit_div">
|
||||
<?=form_open("code/revision/{$project->id}${revreqroot}", 'id="code_revision_edit_logmsg_form"')?>
|
||||
<?=
|
||||
|
||||
form_textarea (
|
||||
array ('name' => 'code_revision_edit_logmsg',
|
||||
'value' => $history['msg'], 'rows'=> 10, 'cols' => 70)
|
||||
);
|
||||
array ('name' => 'edit_log_message',
|
||||
'value' => $history['msg'], 'rows'=> 10, 'cols' => 70,
|
||||
'id' => 'code_revision_edit_log_message')
|
||||
)
|
||||
?>
|
||||
<?=form_close()?>
|
||||
</div>
|
||||
|
||||
<?php if (strlen($edit_error_message) > 0): ?>
|
||||
<div id="code_revision_edit_error_div">
|
||||
<?=$edit_error_message?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?> <!-- $can_edit -->
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -185,7 +185,7 @@
|
||||
}
|
||||
|
||||
#code_revision_mainarea_result .title .anchor {
|
||||
font-size: 9pt;
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
#code_revision_mainarea_result_msg {
|
||||
|
14
codepot/src/css/jquery-ui.css
vendored
14
codepot/src/css/jquery-ui.css
vendored
@ -349,12 +349,15 @@ button.ui-button-icons-only { width: 3.7em; }
|
||||
|
||||
/*button text element */
|
||||
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
||||
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
||||
//.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
||||
.ui-button-text-only .ui-button-text { padding: .2em .5em; }
|
||||
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
||||
.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
||||
//.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
||||
.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .2em 1em .2em 2.1em; }
|
||||
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
||||
/* no icon support for input elements, provide padding by default */
|
||||
input.ui-button { padding: .4em 1em; }
|
||||
//input.ui-button { padding: .4em 1em; }
|
||||
input.ui-button { padding: .2em .5em; }
|
||||
|
||||
/*button icon element(s) */
|
||||
.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
||||
@ -383,7 +386,10 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
||||
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
||||
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .1em 1em .3em .4em; }
|
||||
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
|
||||
|
||||
//.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
|
||||
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .5em .2em .5em; line-height: 1.4em; width:auto; overflow:visible; }
|
||||
|
||||
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||
/* Slider
|
||||
|
Loading…
Reference in New Issue
Block a user