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
|
||||
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 = ?",
|
||||
undef, $edited_comment->{thetext}, $edited_comment->{comment_id});
|
||||
|
@ -1066,6 +1069,7 @@ sub update
|
|||
my $qmarks = join(',', ('?') x @values);
|
||||
$dbh->do("INSERT INTO longdescs_history ($columns) VALUES ($qmarks)", undef, @values);
|
||||
}
|
||||
}
|
||||
|
||||
# Insert the values into the multiselect value tables
|
||||
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) {
|
||||
var el = document.getElementById("edit_comment_" + comment_id);
|
||||
if (el.style.display == 'block') {
|
||||
el.style.display = 'none';
|
||||
} else {
|
||||
el.style.display = 'block';
|
||||
var el_container = document.getElementById("bz_textarea_"+comment_id);
|
||||
|
||||
var x;
|
||||
if (window.XMLHttpRequest)
|
||||
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; }
|
||||
|
||||
#comments > table, .bz_section_additional_comments > table { table-layout: fixed; }
|
||||
|
||||
.bz_textarea { width: 100%; height: 150px; }
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
[% IF NOT wt_only %]
|
||||
<span class="bz_comment_number">
|
||||
[% 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 %]
|
||||
<a name="c[% comment.count %]"
|
||||
href="show_bug.cgi?id=[% bug.bug_id %]#c[% comment.count %]">
|
||||
|
@ -168,14 +168,7 @@
|
|||
</div>
|
||||
|
||||
[% IF comment.author.id == user.id && !wt_only %]
|
||||
<style>
|
||||
.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>
|
||||
<div id="bz_textarea_[% comment.id %]"></div>
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
|
|
Loading…
Reference in New Issue