diff options
author | Reed Loden <reed@reedloden.com> | 2012-06-26 17:20:26 +0200 |
---|---|---|
committer | Frédéric Buclin <LpSolit@gmail.com> | 2012-06-26 17:20:26 +0200 |
commit | 5b3ea4d476084d47c99e3d2e9d409fea84c16831 (patch) | |
tree | 88588a72c98dfc3cfdc3e4b37b196c3f48d31da6 | |
parent | a4ef21ac8165538bf9cfe7adb7272fda4cece5d6 (diff) | |
download | bugzilla-5b3ea4d476084d47c99e3d2e9d409fea84c16831.tar.gz bugzilla-5b3ea4d476084d47c99e3d2e9d409fea84c16831.tar.xz |
Bug 138546: Add a checkbox to add himself to the CC list when creating or editing an attachment
r/a=LpSolit
-rw-r--r-- | Bugzilla/Bug.pm | 24 | ||||
-rwxr-xr-x | attachment.cgi | 4 | ||||
-rw-r--r-- | template/en/default/attachment/create.html.tmpl | 9 | ||||
-rw-r--r-- | template/en/default/attachment/edit.html.tmpl | 12 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 7 |
5 files changed, 36 insertions, 20 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 1bf5a11cd..3d9689aca 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -3614,23 +3614,23 @@ sub user { return {} if $self->{'error'}; my $user = Bugzilla->user; - my $prod_id = $self->{'product_id'}; - my $unknown_privileges = $user->in_group('editbugs', $prod_id); - my $canedit = $unknown_privileges - || $user->id == $self->{'assigned_to'} - || (Bugzilla->params->{'useqacontact'} - && $self->{'qa_contact'} - && $user->id == $self->{'qa_contact'}); - my $canconfirm = $unknown_privileges - || $user->in_group('canconfirm', $prod_id); - my $isreporter = $user->id - && $user->id == $self->{reporter_id}; + my $editbugs = $user->in_group('editbugs', $prod_id); + my $is_reporter = $user->id == $self->{reporter_id} ? 1 : 0; + my $is_assignee = $user->id == $self->{'assigned_to'} ? 1 : 0; + my $is_qa_contact = Bugzilla->params->{'useqacontact'} + && $self->{'qa_contact'} + && $user->id == $self->{'qa_contact'} ? 1 : 0; + + my $canedit = $editbugs || $is_assignee || $is_qa_contact; + my $canconfirm = $editbugs || $user->in_group('canconfirm', $prod_id); + my $has_any_role = $is_reporter || $is_assignee || $is_qa_contact; $self->{'user'} = {canconfirm => $canconfirm, canedit => $canedit, - isreporter => $isreporter}; + isreporter => $is_reporter, + has_any_role => $has_any_role}; return $self->{'user'}; } diff --git a/attachment.cgi b/attachment.cgi index 92f48d05d..16c964e47 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -574,6 +574,8 @@ sub insert { $owner = $bug->assigned_to->login; $bug->set_assigned_to($user); } + + $bug->add_cc($user) if $cgi->param('addselfcc'); $bug->update($timestamp); $dbh->bz_commit_transaction; @@ -686,6 +688,8 @@ sub update { extra_data => $attachment->id }); } + $bug->add_cc($user) if $cgi->param('addselfcc'); + if ($can_edit) { my ($flags, $new_flags) = Bugzilla::Flag->extract_flags_from_cgi($bug, $attachment, $vars); diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl index 97408deac..8f5477e23 100644 --- a/template/en/default/attachment/create.html.tmpl +++ b/template/en/default/attachment/create.html.tmpl @@ -92,6 +92,15 @@ TUI_hide_default('attachment_text_field'); cols = constants.COMMENT_COLS wrap = 'soft' %] + [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] + <br> + <input type="checkbox" id="addselfcc" name="addselfcc" + [%~ ' checked="checked"' + IF user.settings.state_addselfcc.value == 'always' + || (!bug.user.has_any_role + && user.settings.state_addselfcc.value == 'cc_unless_role') %]> + <label for="addselfcc">Add me to CC list</label> + [% END %] </td> </tr> [% IF user.is_insider %] diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl index c6ee527a5..2062e6d6c 100644 --- a/template/en/default/attachment/edit.html.tmpl +++ b/template/en/default/attachment/edit.html.tmpl @@ -253,10 +253,18 @@ minrows = 10 cols = 80 wrap = 'soft' - classes = classNames + classes = classNames %] + [% IF NOT attachment.bug.cc || NOT attachment.bug.cc.contains(user.login) %] + <input type="checkbox" id="addselfcc" name="addselfcc" + [%~ ' checked="checked"' + IF user.settings.state_addselfcc.value == 'always' + || (!attachment.bug.user.has_any_role + && user.settings.state_addselfcc.value == 'cc_unless_role') %]> + <label for="addselfcc">Add me to CC list</label> + [% END %] </div> - [% END %] + [% END %] <div id="attachment_flags"> [% IF attachment.flag_types.size > 0 %] [% PROCESS "flag/list.html.tmpl" flag_types = attachment.flag_types diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index ba36d0a2f..9295e178c 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -722,15 +722,10 @@ <td> [% IF user.id %] [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] - [% has_role = bug.user.isreporter - || bug.assigned_to.id == user.id - || (Param('useqacontact') - && bug.qa_contact - && bug.qa_contact.id == user.id) %] <input type="checkbox" id="addselfcc" name="addselfcc" [% " checked=\"checked\"" IF user.settings.state_addselfcc.value == 'always' - || (!has_role + || (!bug.user.has_any_role && user.settings.state_addselfcc.value == 'cc_unless_role') %]> <label for="addselfcc">Add me to CC list</label> <br> |