summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'extensions')
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl9
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/field.html.tmpl12
-rw-r--r--extensions/ComponentWatching/web/js/overlay.js7
-rw-r--r--extensions/OpenGraph/template/en/default/hook/robots-end.txt.tmpl4
-rw-r--r--extensions/PhabBugz/lib/User.pm6
-rw-r--r--extensions/PhabBugz/lib/Util.pm18
-rw-r--r--extensions/REMO/template/en/default/bug/create/comment-remo-it.txt.tmpl67
-rw-r--r--extensions/REMO/template/en/default/bug/create/create-remo-it.html.tmpl263
-rw-r--r--extensions/SiteMapIndex/template/en/default/hook/robots-end.txt.tmpl3
9 files changed, 42 insertions, 347 deletions
diff --git a/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl
index 4e740e35d..5d38d8340 100644
--- a/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl
+++ b/extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl
@@ -463,17 +463,18 @@
container = 1
hide_on_view = bug.priority == "--" && bug.bug_severity == "normal"
help = "https://wiki.mozilla.org/BMO/UserGuide/BugFields#priority"
- label_for = "priority"
%]
[% INCLUDE bug_modal/field.html.tmpl
field = bug_fields.priority
field_type = constants.FIELD_TYPE_SINGLE_SELECT
+ aria_label = bug_fields.priority.description
no_indent = 1
inline = 1
%]
[% INCLUDE bug_modal/field.html.tmpl
field = bug_fields.bug_severity
field_type = constants.FIELD_TYPE_SINGLE_SELECT
+ aria_label = bug_fields.bug_severity.description
inline = 1
%]
[% UNLESS cf_hidden_in_product('cf_rank', bug.product, bug.component, bug) %]
@@ -497,7 +498,6 @@
label = "Status"
hide_on_edit = 1
help = "https://wiki.mozilla.org/BMO/UserGuide/BugStatuses"
- label_for = "bug_status"
%]
[% bug.bug_status FILTER html %]
[%+ bug.resolution FILTER html IF bug.resolution %]
@@ -549,6 +549,7 @@
prefix = prefix
field = bug_fields.bug_status
field_type = constants.FIELD_TYPE_SINGLE_SELECT
+ aria_label = bug_fields.bug_status.description
editable = bug.choices.bug_status.size > 1
values = bug.choices.bug_status
inline = 1
@@ -559,6 +560,7 @@
prefix = prefix
field = bug_fields.resolution
field_type = constants.FIELD_TYPE_SINGLE_SELECT
+ aria_label = bug_fields.resolution.description
editable = bug.choices.resolution.size > (bug.resolution == "" ? 0 : 1)
values = bug.choices.resolution
inline = 1
@@ -838,17 +840,18 @@
hide_on_view = (bug.rep_platform == 'All' && bug.op_sys == 'All')
|| (bug.rep_platform == 'Unspecified' && bug.op_sys == 'Unspecified')
help = "https://wiki.mozilla.org/BMO/UserGuide/BugFields#rep_platform"
- label_for = "rep_platform"
%]
[% INCLUDE bug_modal/field.html.tmpl
field = bug_fields.rep_platform
field_type = constants.FIELD_TYPE_SINGLE_SELECT
+ aria_label = bug_fields.rep_platform.description
inline = 1
no_indent = 1
%]
[% INCLUDE bug_modal/field.html.tmpl
field = bug_fields.op_sys
field_type = constants.FIELD_TYPE_SINGLE_SELECT
+ aria_label = bug_fields.op_sys.description
inline = 1
%]
[% WRAPPER bug_modal/field.html.tmpl
diff --git a/extensions/BugModal/template/en/default/bug_modal/field.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/field.html.tmpl
index 38bde1d01..6726df409 100644
--- a/extensions/BugModal/template/en/default/bug_modal/field.html.tmpl
+++ b/extensions/BugModal/template/en/default/bug_modal/field.html.tmpl
@@ -11,6 +11,7 @@
# field_type: (const) constants.FIELD_TYPE_*
# no_label: (boolean) don't output label
# label: (string) field label text (default: field_descs.${$field.name}
+ # aria_label: (string) invisible aria-label attribute
# view_only: (boolean) don't allow editing (default: determined from bug.check_can_change_field)
# edit_only: (boolean) always render the edit ui
# container: (boolean) output just a label and the content (eg. for multiple fields next to one label)
@@ -34,7 +35,6 @@
# class: (string) optional button class
# caption: (string) button caption
# hidden: (boolean) don't show the button (default: false)
- # label_for: (string) optional label for identifier
#%]
[%
@@ -109,19 +109,17 @@ END;
[% aria_labelledby_id = "${name}-help-link" %]
[% aria_labelledby_html = BLOCK %]aria-labelledby="[% aria_labelledby_id FILTER html %]"[% END %]
[% END %]
- [%~ IF label_for %]
- <label for="[% label_for FILTER html %]">
- [% END %]
[%~ label _ ":" FILTER html IF label %]
- [%~ IF label_for %]
- </label>
- [% END ~%]
[%~ IF help.defined %]
</a>
[% END %]
</div>
[% END %]
+ [% IF aria_label.defined %]
+ [% aria_labelledby_html = BLOCK %]aria-label="[% aria_label FILTER html %]"[% END %]
+ [% END %]
+
[%# read-only html %]
[% UNLESS edit_only %]
<div class="[% "value" IF !container %][% " edit-hide" IF editable %][% " container" IF container %]">
diff --git a/extensions/ComponentWatching/web/js/overlay.js b/extensions/ComponentWatching/web/js/overlay.js
index c0c540257..622749852 100644
--- a/extensions/ComponentWatching/web/js/overlay.js
+++ b/extensions/ComponentWatching/web/js/overlay.js
@@ -22,7 +22,12 @@ Bugzilla.ComponentWatching = class ComponentWatching {
constructor() {
this.buttons = document.querySelectorAll('button.component-watching');
- this.init();
+ // Check if the user is logged in and the API key is available. If not, remove the Watch buttons.
+ if (BUGZILLA.api_token) {
+ this.init();
+ } else {
+ this.buttons.forEach($button => $button.remove());
+ }
}
/**
diff --git a/extensions/OpenGraph/template/en/default/hook/robots-end.txt.tmpl b/extensions/OpenGraph/template/en/default/hook/robots-end.txt.tmpl
new file mode 100644
index 000000000..217924001
--- /dev/null
+++ b/extensions/OpenGraph/template/en/default/hook/robots-end.txt.tmpl
@@ -0,0 +1,4 @@
+[%# comment lines are required to produce line breaks %]
+#
+Allow: /extensions/OpenGraph/web/
+#
diff --git a/extensions/PhabBugz/lib/User.pm b/extensions/PhabBugz/lib/User.pm
index 1bf1a842d..da573be37 100644
--- a/extensions/PhabBugz/lib/User.pm
+++ b/extensions/PhabBugz/lib/User.pm
@@ -135,9 +135,9 @@ sub match {
my $phab_users = [];
my $result;
do {
- $result = request( 'user.search', $data );
- if ( exists $result->{result}{data} && @{ $result->{result}{data} } ) {
- foreach my $user ( @{ $result->{result}{data} } ) {
+ $result = request( 'user.search', $data )->{result};
+ if ( exists $result->{data} && @{ $result->{data} } ) {
+ foreach my $user ( @{ $result->{data} } ) {
push @$phab_users, $class->new($user);
}
}
diff --git a/extensions/PhabBugz/lib/Util.pm b/extensions/PhabBugz/lib/Util.pm
index 091475718..5ad8a5207 100644
--- a/extensions/PhabBugz/lib/Util.pm
+++ b/extensions/PhabBugz/lib/Util.pm
@@ -267,15 +267,27 @@ sub get_needs_review {
},
constraints => {
reviewerPHIDs => [$phab_user->phid],
- statuses => [qw( needs-review )],
+ statuses => ["open()"],
},
- order => 'newest',
+ order => 'newest',
}
);
ThrowCodeError('phabricator_api_error', { reason => 'Malformed Response' })
unless exists $diffs->{result}{data};
- return $diffs->{result}{data};
+ my @revisions;
+ foreach my $revision ( @{ $diffs->{result}{data} } ) {
+ foreach my $reviewer ( @{ $revision->{attachments}->{reviewers}->{reviewers} } ) {
+ if ( $reviewer->{reviewerPHID} eq $phab_user->phid
+ && $reviewer->{status} =~ /^(?:added|blocking)$/ )
+ {
+ push @revisions, $revision;
+ last;
+ }
+ }
+ }
+
+ return \@revisions;
}
1;
diff --git a/extensions/REMO/template/en/default/bug/create/comment-remo-it.txt.tmpl b/extensions/REMO/template/en/default/bug/create/comment-remo-it.txt.tmpl
deleted file mode 100644
index b95e05184..000000000
--- a/extensions/REMO/template/en/default/bug/create/comment-remo-it.txt.tmpl
+++ /dev/null
@@ -1,67 +0,0 @@
-[%# This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
- #
- # This Source Code Form is "Incompatible With Secondary Licenses", as
- # defined by the Mozilla Public License, v. 2.0.
- #%]
-
-[% USE Bugzilla %]
-[% cgi = Bugzilla.cgi %]
-
-Name:
-[%+ cgi.param('name') %]
-
-Mozillians.org Profile:
-[%+ cgi.param('mozillian') %]
-
-Reps Profile:
-[%+ cgi.param('reps') || "-" %]
-
-Community Name:
-[%+ cgi.param('community') %]
-
-[% FOREACH item = cgi.param('items') %]
-[% IF item == "apps_email" || item == "domain" || item == "ssl" %]
-[% IF item == "apps_email" %]
-[% domain_title = domain_title _ ":: Google Apps Emails\n" %]
-[% END %]
-[% IF item == "domain" %]
-[% domain_title = domain_title _ ":: Domain Name\n" %]
-[% END %]
-[% IF item == "ssl" %]
-[% domain_title = domain_title _ ":: SSL\n" %]
-[% END %]
-[% END %]
-[% END %]
-
-[% FOREACH item = cgi.param('items') %]
-[% IF item == "hosting" %]
-:: Hosting
-
-Expected visits per month:
-[%+ cgi.param('hosting_visits') %]
-
-What will run on the hosting:
-[%+ cgi.param('hosting_running') %]
-
-Hosting data:
-[%+ cgi.param('hosting_data') || "-" %]
-
-[% ELSIF (item == "apps_email" || item == "domain" || item == "ssl")
- && domain_title %]
-[% domain_title FILTER html %]
-[% domain_title = "" %]
-Domain Name:
-[%+ cgi.param('domain_name') %]
-
-[% ELSIF item == "other" %]
-:: Other
-
-[%+ cgi.param('other_value') %]
-
-[% END %]
-[% END %]
-
-Comments:
-[%+ cgi.param('comments') || "-" %]
diff --git a/extensions/REMO/template/en/default/bug/create/create-remo-it.html.tmpl b/extensions/REMO/template/en/default/bug/create/create-remo-it.html.tmpl
deleted file mode 100644
index af3db60bc..000000000
--- a/extensions/REMO/template/en/default/bug/create/create-remo-it.html.tmpl
+++ /dev/null
@@ -1,263 +0,0 @@
-[%# This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
- #
- # This Source Code Form is "Incompatible With Secondary Licenses", as
- # defined by the Mozilla Public License, v. 2.0.
- #%]
-
-[% PROCESS global/variables.none.tmpl %]
-
-[% PROCESS global/header.html.tmpl
- onload = "init()"
- title = "Community IT Request"
- style_urls = [ "extensions/REMO/web/styles/moz_reps.css" ]
-%]
-
-[% USE Bugzilla %]
-[% mandatory = '<span class="mandatory" title="Required">*</span>' %]
-
-<script [% script_nonce FILTER none %]>
-var Dom = YAHOO.util.Dom;
-
-function mandatory(elements) {
- result = true;
- for (i in elements) {
- element = elements[i];
-
- if (typeof(element) == "object") {
- missing = true;
- for (j = 0; j < element.length; j++) {
- if (element[j].checked) {
- missing = false;
- break;
- }
- }
-
- if (missing) {
- Dom.addClass(element[0].name, 'missing');
- } else {
- Dom.removeClass(element[0].name, 'missing');
- }
- } else {
- el = Dom.get(element);
- value = el.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
- el.value = value;
-
- if (value == '') {
- Dom.addClass(element, 'missing');
- result = false;
- } else {
- Dom.removeClass(element, 'missing');
- }
- }
- }
- return result;
-}
-
-function submitForm() {
- fields = [ 'name', 'mozillian', 'community', document.forms.f.items ];
- if (Dom.get('item_hosting').checked) {
- fields.push('hosting_visits');
- fields.push('hosting_running');
- }
- if (Dom.get('item_domain').checked
- || Dom.get('item_apps_email').checked
- || Dom.get('item_ssl').checked
- ) {
- fields.push('domain_name');
- }
- if (Dom.get('item_other').checked) {
- fields.push('other_value');
- }
-
- if (!mandatory(fields)) {
- alert('Please enter all the required fields.');
- return false;
- }
-
- Dom.get('short_desc').value =
- "IT Request: " + Dom.get('community').value + ' (' + Dom.get('name').value + ')';
- return true;
-}
-
-function setItemVisibility() {
- if (Dom.get('item_hosting').checked) {
- Dom.removeClass('hosting', 'bz_default_hidden');
- } else {
- Dom.addClass('hosting', 'bz_default_hidden');
- }
- if (Dom.get('item_domain').checked
- || Dom.get('item_apps_email').checked
- || Dom.get('item_ssl').checked
- ) {
- var title = [];
- if (Dom.get('item_apps_email').checked)
- title.push('Google Apps Email');
- if (Dom.get('item_domain').checked)
- title.push('Domain');
- if (Dom.get('item_ssl').checked)
- title.push('SSL');
- Dom.get('domain_title').innerHTML = title.join(', ');
- Dom.removeClass('domain', 'bz_default_hidden');
- } else {
- Dom.addClass('domain', 'bz_default_hidden');
- }
- if (Dom.get('item_other').checked) {
- Dom.removeClass('other', 'bz_default_hidden');
- } else {
- Dom.addClass('other', 'bz_default_hidden');
- }
-}
-
-function init() {
- items = document.forms.f.items;
- for (i = 0; i < items.length; i++) {
- YAHOO.util.Event.on(items[i], 'click', setItemVisibility);
- }
- setItemVisibility();
-}
-
-</script>
-
-<noscript>
-<h1>Javascript is required to use this form.</h1>
-</noscript>
-
-<h1>Community IT Request</h1>
-
-<form method="post" action="post_bug.cgi" id="tmRequestForm" name="f">
-<input type="hidden" name="product" value="Mozilla Reps">
-<input type="hidden" name="component" value="Community IT Requests">
-<input type="hidden" name="bug_severity" value="normal">
-<input type="hidden" name="rep_platform" value="All">
-<input type="hidden" name="priority" value="--">
-<input type="hidden" name="op_sys" value="Other">
-<input type="hidden" name="version" value="unspecified">
-<input type="hidden" name="groups" value="mozilla-reps">
-<input type="hidden" name="format" value="[% format FILTER html %]">
-<input type="hidden" name="comment" id="comment" value="">
-<input type="hidden" name="short_desc" id="short_desc" value="">
-<input type="hidden" name="token" value="[% token FILTER html %]">
-
-<table id="reps-form">
-
-<tr class="odd">
- <th>Your Name:[% mandatory FILTER none %]</th>
- <td><input id="name" name="name" size="40" value="[% user.name FILTER html %]"></td>
-</tr>
-
-<tr class="even">
- <th>Mozillians.org Profile:[% mandatory FILTER none %]</th>
- <td><input id="mozillian" name="mozillian" size="40"></td>
-</tr>
-
-<tr class="odd">
- <th>Reps Profile (if applicable):</th>
- <td><input id="reps" name="reps" size="40"></td>
-</tr>
-
-<tr class="even">
- <th>Your Community's Name:[% mandatory FILTER none %]</th>
- <td><input id="community" name="community" size="40"></td>
-</tr>
-
-<tr class="odd">
- <th>
- Items Requesting:[% mandatory FILTER none %]
- </th>
- <td>
- <div id="items">
- <div>
- <input type="checkbox" name="items" value="hosting" id="item_hosting">
- <label for="item_hosting">Hosting</label>
- </div>
- <div>
- <input type="checkbox" name="items" value="apps_email" id="item_apps_email">
- <label for="item_apps_email">Google Apps Emails</label>
- </div>
- <div>
- <input type="checkbox" name="items" value="domain" id="item_domain">
- <label for="item_domain">Domain</label>
- </div>
- <div>
- <input type="checkbox" name="items" value="ssl" id="item_ssl">
- <label for="item_ssl">SSL</label>
- </div>
- <div>
- <input type="checkbox" name="items" value="other" id="item_other">
- <label for="item_other">Other</label>
- </div>
- </div>
- </td>
-</tr>
-
-<tbody id="hosting">
-<tr class="even">
- <th colspan="2">Hosting</th>
-</tr>
-<tr class="odd">
- <th>Expected visits per month:[% mandatory FILTER none %]</th>
- <td><input id="hosting_visits" name="hosting_visits" size="40"></td>
-</tr>
-<tr class="odd">
- <th>What will run on the hosting?:[% mandatory FILTER none %]</th>
- <td><textarea id="hosting_running" name="hosting_running" class="small"></textarea></td>
-</tr>
-<tr class="odd">
- <th>Data:</td>
- <td>
- Any data we can use to help choose the best solution (traffic graphs etc).<br>
- <textarea id="hosting_data" name="hosting_data" class="small"></textarea>
- </td>
-</tr>
-</tbody>
-
-<tbody id="domain">
-<tr class="even">
- <th colspan="2" id="domain_title">Domain</th>
-</tr>
-<tr class="odd">
- <th>Domain Name:[% mandatory FILTER none %]</th>
- <td><input id="domain_name" name="domain_name" size="40"></td>
-</tr>
-</tbody>
-
-<tbody id="other">
-<tr class="even">
- <th colspan="2">Other Item</th>
-</tr>
-<tr class="odd">
- <th>Other:[% mandatory FILTER none %]</th>
- <td><input id="other_value" name="other_value" size="40"></td>
-</tr>
-</tbody>
-
-<tr class="even">
- <th colspan="2">
- Other Comments
- </th>
-</tr>
-<tr class="even">
- <td colspan="2">
- Please explain why you'd like the hosting, and anything else this form does not include.<br>
- <textarea id="comments" name="comments" rows="4"></textarea>
- </td>
-</tr>
-
-<tr class="even">
- <td colspan="2">
- <input id="submit" type="submit" value="Submit" onclick="return submitForm()">
- </td>
-</tr>
-
-<tr class="even">
- <td width="35%">&nbsp;</td>
- <td width="65%">&nbsp;</td>
-</tr>
-
-</table>
-
-</form>
-
-[% PROCESS global/footer.html.tmpl %]
diff --git a/extensions/SiteMapIndex/template/en/default/hook/robots-end.txt.tmpl b/extensions/SiteMapIndex/template/en/default/hook/robots-end.txt.tmpl
index 818afb151..8805de0aa 100644
--- a/extensions/SiteMapIndex/template/en/default/hook/robots-end.txt.tmpl
+++ b/extensions/SiteMapIndex/template/en/default/hook/robots-end.txt.tmpl
@@ -1,2 +1,5 @@
+[%# comment lines are required to produce line breaks %]
+#
Allow: /data/SiteMapIndex/sitemap*.xml.gz
Sitemap: [% SITEMAP_URL %]
+#