Bug 134368 - Add new textarea via AJAX + some validation form
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1820 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
f9a7aa1b64
commit
42ce2b8129
|
@ -1055,6 +1055,9 @@ sub update
|
||||||
|
|
||||||
# Save edited comment
|
# Save edited comment
|
||||||
foreach my $edited_comment (@{$self->{edited_comments} || []})
|
foreach my $edited_comment (@{$self->{edited_comments} || []})
|
||||||
|
{
|
||||||
|
my $c_comment = Bugzilla::Comment->new($edited_comment->{comment_id});
|
||||||
|
if (!$c_comment->is_private || ($c_comment->is_private && $user->is_insider))
|
||||||
{
|
{
|
||||||
$dbh->do("UPDATE longdescs SET thetext = ? WHERE comment_id = ?",
|
$dbh->do("UPDATE longdescs SET thetext = ? WHERE comment_id = ?",
|
||||||
undef, $edited_comment->{thetext}, $edited_comment->{comment_id});
|
undef, $edited_comment->{thetext}, $edited_comment->{comment_id});
|
||||||
|
@ -1066,6 +1069,7 @@ sub update
|
||||||
my $qmarks = join(',', ('?') x @values);
|
my $qmarks = join(',', ('?') x @values);
|
||||||
$dbh->do("INSERT INTO longdescs_history ($columns) VALUES ($qmarks)", undef, @values);
|
$dbh->do("INSERT INTO longdescs_history ($columns) VALUES ($qmarks)", undef, @values);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Insert the values into the multiselect value tables
|
# Insert the values into the multiselect value tables
|
||||||
my @multi_selects = grep {$_->type == FIELD_TYPE_MULTI_SELECT}
|
my @multi_selects = grep {$_->type == FIELD_TYPE_MULTI_SELECT}
|
||||||
|
|
37
js/bug.js
37
js/bug.js
|
@ -363,11 +363,38 @@ addListener(window, 'load', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
function showEditComment(comment_id) {
|
function showEditComment(comment_id) {
|
||||||
var el = document.getElementById("edit_comment_" + comment_id);
|
var el_container = document.getElementById("bz_textarea_"+comment_id);
|
||||||
if (el.style.display == 'block') {
|
|
||||||
el.style.display = 'none';
|
var x;
|
||||||
} else {
|
if (window.XMLHttpRequest)
|
||||||
el.style.display = 'block';
|
x = new XMLHttpRequest();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try { x = new ActiveXObject("Msxml2.XMLHTTP"); }
|
||||||
|
catch (e) { x = new ActiveXObject("Microsoft.XMLHTTP"); }
|
||||||
}
|
}
|
||||||
|
x.onreadystatechange = function()
|
||||||
|
{
|
||||||
|
if (x.readyState == 4)
|
||||||
|
{
|
||||||
|
var r = {};
|
||||||
|
try { eval('r = '+x.responseText+';'); } catch (e) { return; }
|
||||||
|
if (r.status == 'ok')
|
||||||
|
{
|
||||||
|
if (r.comments)
|
||||||
|
{
|
||||||
|
for(var key in r.comments)
|
||||||
|
{
|
||||||
|
var comment = r.comments[key];
|
||||||
|
el_container.innerHTML = '<textarea class="bz_textarea" name="edit_comment[' + comment_id + ']"> ' + comment.text + '</textarea>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var u = window.location.href.replace(/[^\/]+$/, '');
|
||||||
|
u += 'xml.cgi?method=Bug.comments&output=json&comment_ids=' + comment_id;
|
||||||
|
x.open('GET', u);
|
||||||
|
x.send(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,3 +24,5 @@
|
||||||
.bz_comment_text.bz_fullscreen_comment { min-width: 50em; width: 100%; word-wrap: break-word; }
|
.bz_comment_text.bz_fullscreen_comment { min-width: 50em; width: 100%; word-wrap: break-word; }
|
||||||
|
|
||||||
#comments > table, .bz_section_additional_comments > table { table-layout: fixed; }
|
#comments > table, .bz_section_additional_comments > table { table-layout: fixed; }
|
||||||
|
|
||||||
|
.bz_textarea { width: 100%; height: 150px; }
|
||||||
|
|
|
@ -120,7 +120,7 @@
|
||||||
[% IF NOT wt_only %]
|
[% IF NOT wt_only %]
|
||||||
<span class="bz_comment_number">
|
<span class="bz_comment_number">
|
||||||
[% IF comment.author.id == user.id %]
|
[% IF comment.author.id == user.id %]
|
||||||
[<a href="#" onclick="showEditComment([% comment.id FILTER html %]); return false;">Edit Comment</a>]
|
[<a href="#" onclick="showEditComment([% comment.id %]); return false;">Edit Comment</a>]
|
||||||
[% END %]
|
[% END %]
|
||||||
<a name="c[% comment.count %]"
|
<a name="c[% comment.count %]"
|
||||||
href="show_bug.cgi?id=[% bug.bug_id %]#c[% comment.count %]">
|
href="show_bug.cgi?id=[% bug.bug_id %]#c[% comment.count %]">
|
||||||
|
@ -168,14 +168,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[% IF comment.author.id == user.id && !wt_only %]
|
[% IF comment.author.id == user.id && !wt_only %]
|
||||||
<style>
|
<div id="bz_textarea_[% comment.id %]"></div>
|
||||||
.bz_textarea {
|
|
||||||
width: 100%; height: 150px; display: none;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<textarea id="edit_comment_[% comment.id FILTER html %]" class="bz_textarea" name="edit_comment[[% comment.id FILTER html %]]">
|
|
||||||
[%+ comment.body -%]
|
|
||||||
</textarea>
|
|
||||||
[% END %]
|
[% END %]
|
||||||
</div>
|
</div>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
Loading…
Reference in New Issue