From 80fc05854135e575e7811b55f521e8bb9855a2ee Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Fri, 26 Nov 2010 14:56:29 +0000 Subject: Add custom template with identity support --- .../en/default/account/auth/login-small.html.tmpl | 115 + template/en/default/account/auth/login.html.tmpl | 121 + template/en/default/account/cancel-token.txt.tmpl | 106 + template/en/default/account/create.html.tmpl | 79 + template/en/default/account/created.html.tmpl | 40 + .../en/default/account/email/change-new.txt.tmpl | 41 + .../en/default/account/email/change-old.txt.tmpl | 46 + .../en/default/account/email/confirm-new.html.tmpl | 76 + .../en/default/account/email/confirm.html.tmpl | 47 + .../en/default/account/email/request-new.txt.tmpl | 56 + .../account/password/forgotten-password.txt.tmpl | 40 + .../password/set-forgotten-password.html.tmpl | 55 + .../en/default/account/prefs/account.html.tmpl | 99 + template/en/default/account/prefs/email.html.tmpl | 309 ++ .../en/default/account/prefs/permissions.html.tmpl | 93 + template/en/default/account/prefs/prefs.html.tmpl | 112 + .../default/account/prefs/saved-searches.html.tmpl | 209 ++ .../en/default/account/prefs/settings.html.tmpl | 77 + .../en/default/account/profile-activity.html.tmpl | 86 + template/en/default/admin/admin.html.tmpl | 135 + .../en/default/admin/classifications/add.html.tmpl | 56 + .../en/default/admin/classifications/del.html.tmpl | 63 + .../default/admin/classifications/edit.html.tmpl | 85 + .../default/admin/classifications/footer.html.tmpl | 24 + .../admin/classifications/reclassify.html.tmpl | 90 + .../default/admin/classifications/select.html.tmpl | 66 + .../admin/components/confirm-delete.html.tmpl | 160 + .../en/default/admin/components/create.html.tmpl | 103 + .../en/default/admin/components/edit.html.tmpl | 134 + .../en/default/admin/components/footer.html.tmpl | 54 + .../en/default/admin/components/list.html.tmpl | 128 + .../admin/components/select-product.html.tmpl | 70 + template/en/default/admin/confirm-action.html.tmpl | 98 + .../en/default/admin/custom_fields/cf-js.js.tmpl | 59 + .../admin/custom_fields/confirm-delete.html.tmpl | 66 + .../default/admin/custom_fields/create.html.tmpl | 149 + .../en/default/admin/custom_fields/edit.html.tmpl | 161 + .../en/default/admin/custom_fields/list.html.tmpl | 102 + .../admin/fieldvalues/confirm-delete.html.tmpl | 161 + .../en/default/admin/fieldvalues/create.html.tmpl | 97 + .../en/default/admin/fieldvalues/edit.html.tmpl | 107 + .../en/default/admin/fieldvalues/footer.html.tmpl | 55 + .../en/default/admin/fieldvalues/list.html.tmpl | 99 + .../admin/fieldvalues/select-field.html.tmpl | 47 + .../admin/flag-type/confirm-delete.html.tmpl | 63 + template/en/default/admin/flag-type/edit.html.tmpl | 253 ++ template/en/default/admin/flag-type/list.html.tmpl | 174 ++ .../default/admin/groups/confirm-remove.html.tmpl | 66 + template/en/default/admin/groups/create.html.tmpl | 102 + template/en/default/admin/groups/delete.html.tmpl | 187 ++ template/en/default/admin/groups/edit.html.tmpl | 249 ++ template/en/default/admin/groups/list.html.tmpl | 168 + .../admin/keywords/confirm-delete.html.tmpl | 53 + .../en/default/admin/keywords/create.html.tmpl | 58 + template/en/default/admin/keywords/edit.html.tmpl | 73 + template/en/default/admin/keywords/list.html.tmpl | 70 + .../admin/milestones/confirm-delete.html.tmpl | 98 + .../en/default/admin/milestones/create.html.tmpl | 58 + .../en/default/admin/milestones/edit.html.tmpl | 63 + .../en/default/admin/milestones/footer.html.tmpl | 67 + .../en/default/admin/milestones/list.html.tmpl | 108 + .../admin/milestones/select-product.html.tmpl | 70 + template/en/default/admin/params/admin.html.tmpl | 41 + .../en/default/admin/params/advanced.html.tmpl | 50 + .../en/default/admin/params/attachment.html.tmpl | 76 + template/en/default/admin/params/auth.html.tmpl | 129 + template/en/default/admin/params/authenv.html.tmpl | 29 + .../en/default/admin/params/bugchange.html.tmpl | 51 + .../en/default/admin/params/bugfields.html.tmpl | 66 + template/en/default/admin/params/bugmove.html.tmpl | 49 + template/en/default/admin/params/common.html.tmpl | 150 + template/en/default/admin/params/core.html.tmpl | 48 + .../default/admin/params/dependencygraph.html.tmpl | 49 + .../en/default/admin/params/editparams.html.tmpl | 121 + template/en/default/admin/params/general.html.tmpl | 86 + .../default/admin/params/groupsecurity.html.tmpl | 56 + template/en/default/admin/params/index.html.tmpl | 51 + template/en/default/admin/params/ldap.html.tmpl | 58 + template/en/default/admin/params/mta.html.tmpl | 86 + .../en/default/admin/params/patchviewer.html.tmpl | 64 + template/en/default/admin/params/query.html.tmpl | 58 + template/en/default/admin/params/radius.html.tmpl | 54 + .../en/default/admin/params/shadowdb.html.tmpl | 49 + .../en/default/admin/params/usermatch.html.tmpl | 39 + .../admin/products/confirm-delete.html.tmpl | 266 ++ .../en/default/admin/products/create.html.tmpl | 69 + .../default/admin/products/edit-common.html.tmpl | 112 + template/en/default/admin/products/edit.html.tmpl | 149 + .../en/default/admin/products/footer.html.tmpl | 86 + .../products/groupcontrol/confirm-edit.html.tmpl | 58 + .../admin/products/groupcontrol/edit.html.tmpl | 325 ++ .../admin/products/groupcontrol/updated.html.tmpl | 50 + .../admin/products/list-classifications.html.tmpl | 72 + template/en/default/admin/products/list.html.tmpl | 121 + .../en/default/admin/products/updated.html.tmpl | 185 ++ .../en/default/admin/sanitycheck/list.html.tmpl | 37 + .../default/admin/sanitycheck/messages.html.tmpl | 352 +++ template/en/default/admin/settings/edit.html.tmpl | 101 + template/en/default/admin/sudo.html.tmpl | 105 + template/en/default/admin/table.html.tmpl | 194 ++ .../default/admin/users/confirm-delete.html.tmpl | 486 +++ template/en/default/admin/users/create.html.tmpl | 58 + template/en/default/admin/users/edit.html.tmpl | 168 + template/en/default/admin/users/list.html.tmpl | 115 + .../default/admin/users/listselectvars.html.tmpl | 33 + .../default/admin/users/responsibilities.html.tmpl | 61 + template/en/default/admin/users/search.html.tmpl | 78 + template/en/default/admin/users/userdata.html.tmpl | 98 + .../admin/versions/confirm-delete.html.tmpl | 101 + .../en/default/admin/versions/create.html.tmpl | 52 + template/en/default/admin/versions/edit.html.tmpl | 57 + .../en/default/admin/versions/footer.html.tmpl | 65 + template/en/default/admin/versions/list.html.tmpl | 89 + .../admin/versions/select-product.html.tmpl | 70 + .../en/default/admin/workflow/comment.html.tmpl | 92 + template/en/default/admin/workflow/edit.html.tmpl | 110 + .../attachment/cancel-create-dupe.html.tmpl | 48 + template/en/default/attachment/choose.html.tmpl | 43 + .../en/default/attachment/confirm-delete.html.tmpl | 92 + .../en/default/attachment/content-types.html.tmpl | 27 + template/en/default/attachment/create.html.tmpl | 135 + template/en/default/attachment/created.html.tmpl | 67 + .../attachment/createformcontents.html.tmpl | 106 + .../en/default/attachment/delete_reason.txt.tmpl | 32 + template/en/default/attachment/diff-file.html.tmpl | 177 ++ .../en/default/attachment/diff-footer.html.tmpl | 35 + .../en/default/attachment/diff-header.html.tmpl | 153 + template/en/default/attachment/edit.html.tmpl | 289 ++ template/en/default/attachment/list.html.tmpl | 151 + template/en/default/attachment/midair.html.tmpl | 78 + .../en/default/attachment/show-multiple.html.tmpl | 102 + template/en/default/attachment/updated.html.tmpl | 46 + template/en/default/bug/activity/show.html.tmpl | 49 + template/en/default/bug/activity/table.html.tmpl | 113 + template/en/default/bug/choose.html.tmpl | 35 + template/en/default/bug/comments.html.tmpl | 235 ++ .../en/default/bug/create/comment-guided.txt.tmpl | 54 + template/en/default/bug/create/comment.txt.tmpl | 32 + .../bug/create/confirm-create-dupe.html.tmpl | 57 + .../en/default/bug/create/create-guided.html.tmpl | 523 ++++ template/en/default/bug/create/create.html.tmpl | 705 +++++ template/en/default/bug/create/created.html.tmpl | 61 + .../en/default/bug/create/make-template.html.tmpl | 46 + .../en/default/bug/create/user-message.html.tmpl | 36 + template/en/default/bug/dependency-graph.html.tmpl | 106 + template/en/default/bug/dependency-tree.html.tmpl | 266 ++ template/en/default/bug/edit.html.tmpl | 1161 +++++++ template/en/default/bug/field-events.js.tmpl | 40 + template/en/default/bug/field.html.tmpl | 215 ++ template/en/default/bug/format_comment.txt.tmpl | 68 + template/en/default/bug/knob.html.tmpl | 100 + template/en/default/bug/navigate.html.tmpl | 87 + template/en/default/bug/process/bugmail.html.tmpl | 60 + .../bug/process/confirm-duplicate.html.tmpl | 75 + template/en/default/bug/process/header.html.tmpl | 46 + template/en/default/bug/process/midair.html.tmpl | 109 + template/en/default/bug/process/results.html.tmpl | 58 + .../bug/process/verify-new-product.html.tmpl | 205 ++ template/en/default/bug/show-header.html.tmpl | 50 + template/en/default/bug/show-multiple.html.tmpl | 366 +++ template/en/default/bug/show.html.tmpl | 53 + template/en/default/bug/show.xml.tmpl | 157 + template/en/default/bug/summarize-time.html.tmpl | 335 ++ template/en/default/bug/time.html.tmpl | 47 + template/en/default/bug/votes/delete-all.html.tmpl | 51 + .../en/default/bug/votes/list-for-bug.html.tmpl | 60 + .../en/default/bug/votes/list-for-user.html.tmpl | 185 ++ template/en/default/config.js.tmpl | 142 + template/en/default/config.rdf.tmpl | 262 ++ template/en/default/email/lockout.txt.tmpl | 39 + template/en/default/email/newchangedmail.txt.tmpl | 88 + template/en/default/email/sanitycheck.txt.tmpl | 36 + template/en/default/email/sudo.txt.tmpl | 43 + template/en/default/email/votes-removed.txt.tmpl | 55 + template/en/default/email/whine.txt.tmpl | 65 + template/en/default/extensions/config.pm.tmpl | 41 + template/en/default/extensions/extension.pm.tmpl | 46 + .../en/default/extensions/hook-readme.txt.tmpl | 27 + template/en/default/extensions/license.txt.tmpl | 47 + .../en/default/extensions/name-readme.txt.tmpl | 38 + template/en/default/extensions/util.pm.tmpl | 42 + template/en/default/filterexceptions.pl | 531 ++++ template/en/default/flag/list.html.tmpl | 213 ++ template/en/default/global/banner.html.tmpl | 26 + .../default/global/choose-classification.html.tmpl | 63 + .../en/default/global/choose-product.html.tmpl | 75 + template/en/default/global/code-error.html.tmpl | 574 ++++ template/en/default/global/common-links.html.tmpl | 116 + .../en/default/global/confirm-action.html.tmpl | 63 + .../en/default/global/confirm-user-match.html.tmpl | 202 ++ template/en/default/global/docslinks.html.tmpl | 52 + template/en/default/global/field-descs.none.tmpl | 176 ++ template/en/default/global/footer.html.tmpl | 49 + template/en/default/global/header.html.tmpl | 324 ++ template/en/default/global/help.html.tmpl | 32 + template/en/default/global/hidden-fields.html.tmpl | 58 + template/en/default/global/initialize.none.tmpl | 32 + template/en/default/global/js-products.html.tmpl | 34 + template/en/default/global/message.html.tmpl | 42 + template/en/default/global/message.txt.tmpl | 25 + template/en/default/global/messages.html.tmpl | 858 ++++++ .../en/default/global/per-bug-queries.html.tmpl | 100 + template/en/default/global/select-menu.html.tmpl | 64 + template/en/default/global/setting-descs.none.tmpl | 51 + .../en/default/global/site-navigation.html.tmpl | 101 + template/en/default/global/tabs.html.tmpl | 56 + template/en/default/global/textarea.html.tmpl | 50 + template/en/default/global/useful-links.html.tmpl | 81 + template/en/default/global/user-error.html.tmpl | 1806 +++++++++++ template/en/default/global/user.html.tmpl | 39 + template/en/default/global/userselect.html.tmpl | 83 + template/en/default/global/variables.none.tmpl | 42 + template/en/default/index.html.tmpl | 178 ++ template/en/default/index.html.tmpl~ | 182 ++ template/en/default/list/change-columns.html.tmpl | 127 + template/en/default/list/edit-multiple.html.tmpl | 424 +++ template/en/default/list/list-simple.html.tmpl | 53 + template/en/default/list/list.atom.tmpl | 101 + template/en/default/list/list.csv.tmpl | 46 + template/en/default/list/list.html.tmpl | 291 ++ template/en/default/list/list.ics.tmpl | 103 + template/en/default/list/list.js.tmpl | 37 + template/en/default/list/list.rdf.tmpl | 56 + template/en/default/list/quips.html.tmpl | 168 + template/en/default/list/server-push.html.tmpl | 47 + template/en/default/list/table.html.tmpl | 260 ++ template/en/default/pages/bug-writing.html.tmpl | 181 ++ template/en/default/pages/fields.html.tmpl | 331 ++ template/en/default/pages/linked.html.tmpl | 55 + template/en/default/pages/linkify.html.tmpl | 42 + template/en/default/pages/quicksearch.html.tmpl | 274 ++ template/en/default/pages/release-notes.html.tmpl | 3240 ++++++++++++++++++++ template/en/default/pages/sudo.html.tmpl | 68 + template/en/default/pages/voting.html.tmpl | 69 + template/en/default/reports/chart.csv.tmpl | 44 + template/en/default/reports/chart.html.tmpl | 67 + template/en/default/reports/chart.png.tmpl | 60 + template/en/default/reports/components.html.tmpl | 105 + template/en/default/reports/create-chart.html.tmpl | 271 ++ .../en/default/reports/delete-series.html.tmpl | 59 + .../en/default/reports/duplicates-simple.html.tmpl | 47 + .../en/default/reports/duplicates-table.html.tmpl | 125 + template/en/default/reports/duplicates.html.tmpl | 179 ++ template/en/default/reports/edit-series.html.tmpl | 73 + template/en/default/reports/keywords.html.tmpl | 87 + template/en/default/reports/menu.html.tmpl | 85 + template/en/default/reports/old-charts.html.tmpl | 71 + template/en/default/reports/report-bar.png.tmpl | 64 + template/en/default/reports/report-line.png.tmpl | 67 + template/en/default/reports/report-pie.png.tmpl | 39 + .../en/default/reports/report-simple.html.tmpl | 35 + template/en/default/reports/report-table.csv.tmpl | 77 + template/en/default/reports/report-table.html.tmpl | 164 + template/en/default/reports/report.csv.tmpl | 25 + template/en/default/reports/report.html.tmpl | 180 ++ .../en/default/reports/series-common.html.tmpl | 119 + template/en/default/reports/series.html.tmpl | 97 + template/en/default/request/email.txt.tmpl | 86 + template/en/default/request/queue.html.tmpl | 248 ++ .../en/default/search/boolean-charts.html.tmpl | 136 + template/en/default/search/form.html.tmpl | 643 ++++ template/en/default/search/knob.html.tmpl | 85 + .../en/default/search/search-advanced.html.tmpl | 82 + .../default/search/search-create-series.html.tmpl | 68 + template/en/default/search/search-help.html.tmpl | 107 + template/en/default/search/search-plugin.xml.tmpl | 28 + .../default/search/search-report-graph.html.tmpl | 141 + .../default/search/search-report-select.html.tmpl | 54 + .../default/search/search-report-table.html.tmpl | 94 + .../en/default/search/search-specific.html.tmpl | 129 + template/en/default/search/tabs.html.tmpl | 36 + template/en/default/search/type-select.html.tmpl | 29 + template/en/default/setup/strings.txt.pl | 160 + template/en/default/sidebar.xul.tmpl | 131 + template/en/default/welcome-admin.html.tmpl | 86 + template/en/default/whine/mail.html.tmpl | 92 + template/en/default/whine/mail.txt.tmpl | 65 + template/en/default/whine/multipart-mime.txt.tmpl | 53 + template/en/default/whine/schedule.html.tmpl | 448 +++ 279 files changed, 37521 insertions(+) create mode 100644 template/en/default/account/auth/login-small.html.tmpl create mode 100644 template/en/default/account/auth/login.html.tmpl create mode 100644 template/en/default/account/cancel-token.txt.tmpl create mode 100644 template/en/default/account/create.html.tmpl create mode 100644 template/en/default/account/created.html.tmpl create mode 100644 template/en/default/account/email/change-new.txt.tmpl create mode 100644 template/en/default/account/email/change-old.txt.tmpl create mode 100644 template/en/default/account/email/confirm-new.html.tmpl create mode 100644 template/en/default/account/email/confirm.html.tmpl create mode 100644 template/en/default/account/email/request-new.txt.tmpl create mode 100644 template/en/default/account/password/forgotten-password.txt.tmpl create mode 100644 template/en/default/account/password/set-forgotten-password.html.tmpl create mode 100644 template/en/default/account/prefs/account.html.tmpl create mode 100644 template/en/default/account/prefs/email.html.tmpl create mode 100644 template/en/default/account/prefs/permissions.html.tmpl create mode 100644 template/en/default/account/prefs/prefs.html.tmpl create mode 100644 template/en/default/account/prefs/saved-searches.html.tmpl create mode 100644 template/en/default/account/prefs/settings.html.tmpl create mode 100644 template/en/default/account/profile-activity.html.tmpl create mode 100644 template/en/default/admin/admin.html.tmpl create mode 100644 template/en/default/admin/classifications/add.html.tmpl create mode 100644 template/en/default/admin/classifications/del.html.tmpl create mode 100644 template/en/default/admin/classifications/edit.html.tmpl create mode 100644 template/en/default/admin/classifications/footer.html.tmpl create mode 100644 template/en/default/admin/classifications/reclassify.html.tmpl create mode 100644 template/en/default/admin/classifications/select.html.tmpl create mode 100644 template/en/default/admin/components/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/components/create.html.tmpl create mode 100644 template/en/default/admin/components/edit.html.tmpl create mode 100644 template/en/default/admin/components/footer.html.tmpl create mode 100644 template/en/default/admin/components/list.html.tmpl create mode 100644 template/en/default/admin/components/select-product.html.tmpl create mode 100644 template/en/default/admin/confirm-action.html.tmpl create mode 100644 template/en/default/admin/custom_fields/cf-js.js.tmpl create mode 100644 template/en/default/admin/custom_fields/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/custom_fields/create.html.tmpl create mode 100644 template/en/default/admin/custom_fields/edit.html.tmpl create mode 100644 template/en/default/admin/custom_fields/list.html.tmpl create mode 100644 template/en/default/admin/fieldvalues/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/fieldvalues/create.html.tmpl create mode 100644 template/en/default/admin/fieldvalues/edit.html.tmpl create mode 100644 template/en/default/admin/fieldvalues/footer.html.tmpl create mode 100644 template/en/default/admin/fieldvalues/list.html.tmpl create mode 100644 template/en/default/admin/fieldvalues/select-field.html.tmpl create mode 100644 template/en/default/admin/flag-type/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/flag-type/edit.html.tmpl create mode 100644 template/en/default/admin/flag-type/list.html.tmpl create mode 100644 template/en/default/admin/groups/confirm-remove.html.tmpl create mode 100644 template/en/default/admin/groups/create.html.tmpl create mode 100644 template/en/default/admin/groups/delete.html.tmpl create mode 100644 template/en/default/admin/groups/edit.html.tmpl create mode 100644 template/en/default/admin/groups/list.html.tmpl create mode 100644 template/en/default/admin/keywords/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/keywords/create.html.tmpl create mode 100644 template/en/default/admin/keywords/edit.html.tmpl create mode 100644 template/en/default/admin/keywords/list.html.tmpl create mode 100644 template/en/default/admin/milestones/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/milestones/create.html.tmpl create mode 100644 template/en/default/admin/milestones/edit.html.tmpl create mode 100644 template/en/default/admin/milestones/footer.html.tmpl create mode 100644 template/en/default/admin/milestones/list.html.tmpl create mode 100644 template/en/default/admin/milestones/select-product.html.tmpl create mode 100644 template/en/default/admin/params/admin.html.tmpl create mode 100644 template/en/default/admin/params/advanced.html.tmpl create mode 100644 template/en/default/admin/params/attachment.html.tmpl create mode 100644 template/en/default/admin/params/auth.html.tmpl create mode 100644 template/en/default/admin/params/authenv.html.tmpl create mode 100644 template/en/default/admin/params/bugchange.html.tmpl create mode 100644 template/en/default/admin/params/bugfields.html.tmpl create mode 100644 template/en/default/admin/params/bugmove.html.tmpl create mode 100644 template/en/default/admin/params/common.html.tmpl create mode 100644 template/en/default/admin/params/core.html.tmpl create mode 100644 template/en/default/admin/params/dependencygraph.html.tmpl create mode 100644 template/en/default/admin/params/editparams.html.tmpl create mode 100644 template/en/default/admin/params/general.html.tmpl create mode 100644 template/en/default/admin/params/groupsecurity.html.tmpl create mode 100644 template/en/default/admin/params/index.html.tmpl create mode 100644 template/en/default/admin/params/ldap.html.tmpl create mode 100644 template/en/default/admin/params/mta.html.tmpl create mode 100644 template/en/default/admin/params/patchviewer.html.tmpl create mode 100644 template/en/default/admin/params/query.html.tmpl create mode 100644 template/en/default/admin/params/radius.html.tmpl create mode 100644 template/en/default/admin/params/shadowdb.html.tmpl create mode 100644 template/en/default/admin/params/usermatch.html.tmpl create mode 100644 template/en/default/admin/products/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/products/create.html.tmpl create mode 100644 template/en/default/admin/products/edit-common.html.tmpl create mode 100644 template/en/default/admin/products/edit.html.tmpl create mode 100644 template/en/default/admin/products/footer.html.tmpl create mode 100644 template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl create mode 100644 template/en/default/admin/products/groupcontrol/edit.html.tmpl create mode 100644 template/en/default/admin/products/groupcontrol/updated.html.tmpl create mode 100644 template/en/default/admin/products/list-classifications.html.tmpl create mode 100644 template/en/default/admin/products/list.html.tmpl create mode 100644 template/en/default/admin/products/updated.html.tmpl create mode 100644 template/en/default/admin/sanitycheck/list.html.tmpl create mode 100644 template/en/default/admin/sanitycheck/messages.html.tmpl create mode 100644 template/en/default/admin/settings/edit.html.tmpl create mode 100644 template/en/default/admin/sudo.html.tmpl create mode 100644 template/en/default/admin/table.html.tmpl create mode 100644 template/en/default/admin/users/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/users/create.html.tmpl create mode 100644 template/en/default/admin/users/edit.html.tmpl create mode 100644 template/en/default/admin/users/list.html.tmpl create mode 100644 template/en/default/admin/users/listselectvars.html.tmpl create mode 100644 template/en/default/admin/users/responsibilities.html.tmpl create mode 100644 template/en/default/admin/users/search.html.tmpl create mode 100644 template/en/default/admin/users/userdata.html.tmpl create mode 100644 template/en/default/admin/versions/confirm-delete.html.tmpl create mode 100644 template/en/default/admin/versions/create.html.tmpl create mode 100644 template/en/default/admin/versions/edit.html.tmpl create mode 100644 template/en/default/admin/versions/footer.html.tmpl create mode 100644 template/en/default/admin/versions/list.html.tmpl create mode 100644 template/en/default/admin/versions/select-product.html.tmpl create mode 100644 template/en/default/admin/workflow/comment.html.tmpl create mode 100644 template/en/default/admin/workflow/edit.html.tmpl create mode 100644 template/en/default/attachment/cancel-create-dupe.html.tmpl create mode 100644 template/en/default/attachment/choose.html.tmpl create mode 100644 template/en/default/attachment/confirm-delete.html.tmpl create mode 100644 template/en/default/attachment/content-types.html.tmpl create mode 100644 template/en/default/attachment/create.html.tmpl create mode 100644 template/en/default/attachment/created.html.tmpl create mode 100644 template/en/default/attachment/createformcontents.html.tmpl create mode 100644 template/en/default/attachment/delete_reason.txt.tmpl create mode 100644 template/en/default/attachment/diff-file.html.tmpl create mode 100644 template/en/default/attachment/diff-footer.html.tmpl create mode 100644 template/en/default/attachment/diff-header.html.tmpl create mode 100644 template/en/default/attachment/edit.html.tmpl create mode 100644 template/en/default/attachment/list.html.tmpl create mode 100644 template/en/default/attachment/midair.html.tmpl create mode 100644 template/en/default/attachment/show-multiple.html.tmpl create mode 100644 template/en/default/attachment/updated.html.tmpl create mode 100644 template/en/default/bug/activity/show.html.tmpl create mode 100644 template/en/default/bug/activity/table.html.tmpl create mode 100644 template/en/default/bug/choose.html.tmpl create mode 100644 template/en/default/bug/comments.html.tmpl create mode 100644 template/en/default/bug/create/comment-guided.txt.tmpl create mode 100644 template/en/default/bug/create/comment.txt.tmpl create mode 100644 template/en/default/bug/create/confirm-create-dupe.html.tmpl create mode 100644 template/en/default/bug/create/create-guided.html.tmpl create mode 100644 template/en/default/bug/create/create.html.tmpl create mode 100644 template/en/default/bug/create/created.html.tmpl create mode 100644 template/en/default/bug/create/make-template.html.tmpl create mode 100644 template/en/default/bug/create/user-message.html.tmpl create mode 100644 template/en/default/bug/dependency-graph.html.tmpl create mode 100644 template/en/default/bug/dependency-tree.html.tmpl create mode 100644 template/en/default/bug/edit.html.tmpl create mode 100644 template/en/default/bug/field-events.js.tmpl create mode 100644 template/en/default/bug/field.html.tmpl create mode 100644 template/en/default/bug/format_comment.txt.tmpl create mode 100644 template/en/default/bug/knob.html.tmpl create mode 100644 template/en/default/bug/navigate.html.tmpl create mode 100644 template/en/default/bug/process/bugmail.html.tmpl create mode 100644 template/en/default/bug/process/confirm-duplicate.html.tmpl create mode 100644 template/en/default/bug/process/header.html.tmpl create mode 100644 template/en/default/bug/process/midair.html.tmpl create mode 100644 template/en/default/bug/process/results.html.tmpl create mode 100644 template/en/default/bug/process/verify-new-product.html.tmpl create mode 100644 template/en/default/bug/show-header.html.tmpl create mode 100644 template/en/default/bug/show-multiple.html.tmpl create mode 100644 template/en/default/bug/show.html.tmpl create mode 100644 template/en/default/bug/show.xml.tmpl create mode 100644 template/en/default/bug/summarize-time.html.tmpl create mode 100644 template/en/default/bug/time.html.tmpl create mode 100644 template/en/default/bug/votes/delete-all.html.tmpl create mode 100644 template/en/default/bug/votes/list-for-bug.html.tmpl create mode 100644 template/en/default/bug/votes/list-for-user.html.tmpl create mode 100644 template/en/default/config.js.tmpl create mode 100644 template/en/default/config.rdf.tmpl create mode 100644 template/en/default/email/lockout.txt.tmpl create mode 100644 template/en/default/email/newchangedmail.txt.tmpl create mode 100644 template/en/default/email/sanitycheck.txt.tmpl create mode 100644 template/en/default/email/sudo.txt.tmpl create mode 100644 template/en/default/email/votes-removed.txt.tmpl create mode 100644 template/en/default/email/whine.txt.tmpl create mode 100644 template/en/default/extensions/config.pm.tmpl create mode 100644 template/en/default/extensions/extension.pm.tmpl create mode 100644 template/en/default/extensions/hook-readme.txt.tmpl create mode 100644 template/en/default/extensions/license.txt.tmpl create mode 100644 template/en/default/extensions/name-readme.txt.tmpl create mode 100644 template/en/default/extensions/util.pm.tmpl create mode 100644 template/en/default/filterexceptions.pl create mode 100644 template/en/default/flag/list.html.tmpl create mode 100644 template/en/default/global/banner.html.tmpl create mode 100644 template/en/default/global/choose-classification.html.tmpl create mode 100644 template/en/default/global/choose-product.html.tmpl create mode 100644 template/en/default/global/code-error.html.tmpl create mode 100644 template/en/default/global/common-links.html.tmpl create mode 100644 template/en/default/global/confirm-action.html.tmpl create mode 100644 template/en/default/global/confirm-user-match.html.tmpl create mode 100644 template/en/default/global/docslinks.html.tmpl create mode 100644 template/en/default/global/field-descs.none.tmpl create mode 100644 template/en/default/global/footer.html.tmpl create mode 100644 template/en/default/global/header.html.tmpl create mode 100644 template/en/default/global/help.html.tmpl create mode 100644 template/en/default/global/hidden-fields.html.tmpl create mode 100644 template/en/default/global/initialize.none.tmpl create mode 100644 template/en/default/global/js-products.html.tmpl create mode 100644 template/en/default/global/message.html.tmpl create mode 100644 template/en/default/global/message.txt.tmpl create mode 100644 template/en/default/global/messages.html.tmpl create mode 100644 template/en/default/global/per-bug-queries.html.tmpl create mode 100644 template/en/default/global/select-menu.html.tmpl create mode 100644 template/en/default/global/setting-descs.none.tmpl create mode 100644 template/en/default/global/site-navigation.html.tmpl create mode 100644 template/en/default/global/tabs.html.tmpl create mode 100644 template/en/default/global/textarea.html.tmpl create mode 100644 template/en/default/global/useful-links.html.tmpl create mode 100644 template/en/default/global/user-error.html.tmpl create mode 100644 template/en/default/global/user.html.tmpl create mode 100644 template/en/default/global/userselect.html.tmpl create mode 100644 template/en/default/global/variables.none.tmpl create mode 100644 template/en/default/index.html.tmpl create mode 100644 template/en/default/index.html.tmpl~ create mode 100644 template/en/default/list/change-columns.html.tmpl create mode 100644 template/en/default/list/edit-multiple.html.tmpl create mode 100644 template/en/default/list/list-simple.html.tmpl create mode 100644 template/en/default/list/list.atom.tmpl create mode 100644 template/en/default/list/list.csv.tmpl create mode 100644 template/en/default/list/list.html.tmpl create mode 100644 template/en/default/list/list.ics.tmpl create mode 100644 template/en/default/list/list.js.tmpl create mode 100644 template/en/default/list/list.rdf.tmpl create mode 100644 template/en/default/list/quips.html.tmpl create mode 100644 template/en/default/list/server-push.html.tmpl create mode 100644 template/en/default/list/table.html.tmpl create mode 100644 template/en/default/pages/bug-writing.html.tmpl create mode 100644 template/en/default/pages/fields.html.tmpl create mode 100644 template/en/default/pages/linked.html.tmpl create mode 100644 template/en/default/pages/linkify.html.tmpl create mode 100644 template/en/default/pages/quicksearch.html.tmpl create mode 100644 template/en/default/pages/release-notes.html.tmpl create mode 100644 template/en/default/pages/sudo.html.tmpl create mode 100644 template/en/default/pages/voting.html.tmpl create mode 100644 template/en/default/reports/chart.csv.tmpl create mode 100644 template/en/default/reports/chart.html.tmpl create mode 100644 template/en/default/reports/chart.png.tmpl create mode 100644 template/en/default/reports/components.html.tmpl create mode 100644 template/en/default/reports/create-chart.html.tmpl create mode 100644 template/en/default/reports/delete-series.html.tmpl create mode 100644 template/en/default/reports/duplicates-simple.html.tmpl create mode 100644 template/en/default/reports/duplicates-table.html.tmpl create mode 100644 template/en/default/reports/duplicates.html.tmpl create mode 100644 template/en/default/reports/edit-series.html.tmpl create mode 100644 template/en/default/reports/keywords.html.tmpl create mode 100644 template/en/default/reports/menu.html.tmpl create mode 100644 template/en/default/reports/old-charts.html.tmpl create mode 100644 template/en/default/reports/report-bar.png.tmpl create mode 100644 template/en/default/reports/report-line.png.tmpl create mode 100644 template/en/default/reports/report-pie.png.tmpl create mode 100644 template/en/default/reports/report-simple.html.tmpl create mode 100644 template/en/default/reports/report-table.csv.tmpl create mode 100644 template/en/default/reports/report-table.html.tmpl create mode 100644 template/en/default/reports/report.csv.tmpl create mode 100644 template/en/default/reports/report.html.tmpl create mode 100644 template/en/default/reports/series-common.html.tmpl create mode 100644 template/en/default/reports/series.html.tmpl create mode 100644 template/en/default/request/email.txt.tmpl create mode 100644 template/en/default/request/queue.html.tmpl create mode 100644 template/en/default/search/boolean-charts.html.tmpl create mode 100644 template/en/default/search/form.html.tmpl create mode 100644 template/en/default/search/knob.html.tmpl create mode 100644 template/en/default/search/search-advanced.html.tmpl create mode 100644 template/en/default/search/search-create-series.html.tmpl create mode 100644 template/en/default/search/search-help.html.tmpl create mode 100644 template/en/default/search/search-plugin.xml.tmpl create mode 100644 template/en/default/search/search-report-graph.html.tmpl create mode 100644 template/en/default/search/search-report-select.html.tmpl create mode 100644 template/en/default/search/search-report-table.html.tmpl create mode 100644 template/en/default/search/search-specific.html.tmpl create mode 100644 template/en/default/search/tabs.html.tmpl create mode 100644 template/en/default/search/type-select.html.tmpl create mode 100644 template/en/default/setup/strings.txt.pl create mode 100644 template/en/default/sidebar.xul.tmpl create mode 100644 template/en/default/welcome-admin.html.tmpl create mode 100644 template/en/default/whine/mail.html.tmpl create mode 100644 template/en/default/whine/mail.txt.tmpl create mode 100644 template/en/default/whine/multipart-mime.txt.tmpl create mode 100644 template/en/default/whine/schedule.html.tmpl diff --git a/template/en/default/account/auth/login-small.html.tmpl b/template/en/default/account/auth/login-small.html.tmpl new file mode 100644 index 0000000..34e5ff9 --- /dev/null +++ b/template/en/default/account/auth/login-small.html.tmpl @@ -0,0 +1,115 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Jacob Steenhagen + #%] + +[% PROCESS global/variables.none.tmpl %] + +[%# Use the current script name. If an empty name is returned, + # then we are accessing the home page. %] + +[% login_target = cgi.url("-relative" => 1, "-query" => 1) %] +[% IF !login_target OR login_target.match("^token.cgi") %] + [% login_target = "index.cgi" %] +[% END %] + +[% login_target = urlbase _ login_target %] + +
  • + | + Log In + +
  • +
  • + | + Forgot Password +
    + + + + [x] +
    +
  • diff --git a/template/en/default/account/auth/login.html.tmpl b/template/en/default/account/auth/login.html.tmpl new file mode 100644 index 0000000..9a043e4 --- /dev/null +++ b/template/en/default/account/auth/login.html.tmpl @@ -0,0 +1,121 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Toms Baugis + #%] + +[%# INTERFACE: + # target: string. URL to go to after login. + #%] + +[% IF !target %] + [% target = "index.cgi" %] +[% END %] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Log in to $terms.Bugzilla", + onload = "document.forms['login'].Bugzilla_login.focus()" +%] + +[% USE Bugzilla %] + +

    + I need a legitimate login and password to continue. +

    + +
    + + + + + + + + + + + [% IF Param('rememberlogin') == 'defaulton' || + Param('rememberlogin') == 'defaultoff' %] + + + + + [% END %] + + + + + +
    + + [% Param('emailsuffix') FILTER html %] +
    + +
      + + +
      + + +
    + + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^Bugzilla_(login|password|restrictlogin)$" %] + + + +

    + (Note: you should make sure cookies are enabled for this site. + Otherwise, you will be required to log in frequently.) +

    +
    + +[%# Allow the user to create a new account, or request a token to change + # their password, assuming that our auth method allows that. + #%] + + [% IF Param("createemailregexp") && user.authorizer.user_can_create_account %] +
    + +

    + If you don't have a [% terms.Bugzilla %] account, you can + create a new account. +

    + [% END %] + + [% IF user.authorizer.can_change_password %] +
    + + +
    + + If you have an account, but have forgotten your password, + enter your login name below and submit a request + to change your password.
    + + +
    + [% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/cancel-token.txt.tmpl b/template/en/default/account/cancel-token.txt.tmpl new file mode 100644 index 0000000..6619ded --- /dev/null +++ b/template/en/default/account/cancel-token.txt.tmpl @@ -0,0 +1,106 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Vandenberg + # Tobias Burnus + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% emailaddress %] +Subject: [% PROCESS subject %] +X-Bugzilla-Type: admin + +A request was canceled from [% remoteaddress %]. + +If you did not request this, it could be either an honest +mistake or someone attempting to break into your [% terms.Bugzilla %] account. + +Take a look at the information below and forward this email +to [% Param('maintainer') %] if you suspect foul play. + + Token: [% token %] + Token Type: [% tokentype %] + User: [% emailaddress %] + Issue Date: [% issuedate FILTER time("%Y-%m-%d %H:%M:%S %Z", timezone) %] + Event Data: [% eventdata %] +Canceled Because: [% PROCESS cancelactionmessage %] + +[% BLOCK subject %] + [% IF tokentype == 'new_account' %] + User account creation request canceled + [% ELSIF tokentype == 'password' %] + Password change request canceled + [% ELSIF tokentype == 'emailnew' OR tokentype == 'emailold' %] + Email change request canceled + [% ELSE %] + [% tokentype %] token canceled + [% END %] +[% END %] + +[% BLOCK cancelactionmessage %] + [% IF cancelaction == 'account_exists' %] + Account [% email %] already exists. + + [% ELSIF cancelaction == 'email_change_canceled' %] + The request to change the email address for + the [% old_email %] account to [% new_email %] has + been canceled. + + [% ELSIF cancelaction == 'email_change_canceled_reinstated' %] + The request to change the email address for your account + to [% new_email %] has been canceled. Your old account + settings have been reinstated. + + [% ELSIF cancelaction == 'emailold_change_canceled' %] + The request to change the email address for your account + to [% new_email %] has been canceled. + + [% ELSIF cancelaction == 'password_change_canceled' %] + You have requested cancellation. + + [% ELSIF cancelaction == 'account_creation_canceled' %] + The creation of the user account [% emailaddress %] + has been canceled. + + [% ELSIF cancelaction == 'user_logged_in' %] + You have logged in. + + [% ELSIF cancelaction == 'wrong_token_for_changing_passwd' %] + You have tried to use the token to change the password. + + [% ELSIF cancelaction == 'wrong_token_for_cancelling_email_change' %] + You have tried to use the token to cancel the email address change. + + [% ELSIF cancelaction == 'wrong_token_for_confirming_email_change' %] + You have tried to use the token to confirm the email address change. + + [% ELSIF cancelaction == 'wrong_token_for_creating_account' %] + You have tried to use the token to create a user account. + + [% ELSE %] + [%# Give sensible error if the cancel-token function is used incorrectly. + #%] + You are using [% terms.Bugzilla %]'s cancel-token function incorrectly. You + passed in the string '[% cancelaction %]'. The correct use is to pass + in a tag, and define that tag in the file cancel-token.txt.tmpl. + + If you are a [% terms.Bugzilla %] end-user seeing this message, please forward this + email to [% Param('maintainer') %]. + [% END %] +[% END %] diff --git a/template/en/default/account/create.html.tmpl b/template/en/default/account/create.html.tmpl new file mode 100644 index 0000000..5b82201 --- /dev/null +++ b/template/en/default/account/create.html.tmpl @@ -0,0 +1,79 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE + # none + # + # Param("maintainer") is used to display the maintainer's email. + # Param("emailsuffix") is used to pre-fill the email field. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Create a new [% terms.Bugzilla %] account +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + onload = "document.forms['account_creation_form'].login.focus();" %] + +

    + To create a [% terms.Bugzilla %] account, all you need to do is to enter +[% IF Param('emailsuffix') == '' %] + a legitimate email address. +[% ELSE %] + an account name which when combined with [% Param('emailsuffix') %] + corresponds to an address where you receive email. +[% END %] + You will receive an email at this address to confirm the creation of your + account. You will not be able to log in until you receive the email. + If it doesn't arrive within a reasonable amount of time, you may contact + the maintainer of this [% terms.Bugzilla %] installation + at [% Param("maintainer") %]. +

    + +[% IF Param('createemailregexp') == '.*' && Param('emailsuffix') == '' %] +

    + PRIVACY NOTICE: [% terms.Bugzilla %] is an open [% terms.bug %] + tracking system. Activity on most [% terms.bugs %], including email + addresses, will be visible to the public. We recommend using a + secondary account or free web email service (such as Gmail, Yahoo, + Hotmail, or similar) to avoid receiving spam at your primary email address. +

    +[% END %] + +
    + + + + + +
    + Email address: + + + [% Param('emailsuffix') FILTER html %] +
    +
    + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/created.html.tmpl b/template/en/default/account/created.html.tmpl new file mode 100644 index 0000000..d794198 --- /dev/null +++ b/template/en/default/account/created.html.tmpl @@ -0,0 +1,40 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Frédéric Buclin + #%] + +[%# INTERFACE: + # login: string. The user's Bugzilla login email address. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Request for new user account '[% login FILTER html %]' submitted +[% END %] + +[% PROCESS global/header.html.tmpl title = title %] + +

    + A confirmation email has been sent containing a link to continue + creating an account. The link will expire if an account is not + created within [% constants.MAX_TOKEN_AGE FILTER html %] days. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/email/change-new.txt.tmpl b/template/en/default/account/email/change-new.txt.tmpl new file mode 100644 index 0000000..5803b02 --- /dev/null +++ b/template/en/default/account/email/change-new.txt.tmpl @@ -0,0 +1,41 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Vandenberg + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% emailaddress %] +Subject: [% terms.Bugzilla %] Change Email Address Request +X-Bugzilla-Type: admin + +[%+ terms.Bugzilla %] has received a request to change the email address +for the account [% oldemailaddress %] to your address. + +To confirm the change, visit the following link: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cfmem + +If you are not the person who made this request, or you wish to cancel +this request, visit the following link: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem + +If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days +(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]). diff --git a/template/en/default/account/email/change-old.txt.tmpl b/template/en/default/account/email/change-old.txt.tmpl new file mode 100644 index 0000000..6b77744 --- /dev/null +++ b/template/en/default/account/email/change-old.txt.tmpl @@ -0,0 +1,46 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Vandenberg + #%] +[%# INTERFACE: + # emailaddress: string. The user's old Bugzilla login email address. + # newemailaddress: string. The user's new Bugzilla login email address. + # token: string. The token associated with this change. + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% emailaddress %] +Subject: [% terms.Bugzilla %] Change Email Address Request +Importance: High +X-MSMail-Priority: High +X-Priority: 1 +X-Bugzilla-Type: admin + +[%+ terms.Bugzilla %] has received a request to change the email address +for your account to [%+ newemailaddress %]. + +If you are not the person who made this request, or you wish to cancel +this request, visit the following link: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem + +If you do nothing, and [%+ newemailaddress %] confirms this request, +the change will be made permanent after [% constants.MAX_TOKEN_AGE %] days +(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]). diff --git a/template/en/default/account/email/confirm-new.html.tmpl b/template/en/default/account/email/confirm-new.html.tmpl new file mode 100644 index 0000000..ed0ff34 --- /dev/null +++ b/template/en/default/account/email/confirm-new.html.tmpl @@ -0,0 +1,76 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # token: string. The token to be used in the user account creation. + # email: email address of the user account. + # expiration_ts: expiration date of the token. + #%] + +[% title = BLOCK %]Create a new user account for '[% email FILTER html %]'[% END %] +[% PROCESS "global/header.html.tmpl" + title = title + onload = "document.forms['confirm_account_form'].realname.focus();" %] + +
    + To create your account, you must enter a password in the form below. + Your email address and Real Name (if provided) will be shown with + changes you make. +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Email Address:[% email FILTER html %]
    (OPTIONAL) :
    :
    :
     
    +
    + +

    + This account will not be created if this form is not completed by + [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]. +

    + +

    + If you do not wish to create an account with this email click the + cancel account button below and your details will be forgotten. +

    + +
    + + + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/email/confirm.html.tmpl b/template/en/default/account/email/confirm.html.tmpl new file mode 100644 index 0000000..39add32 --- /dev/null +++ b/template/en/default/account/email/confirm.html.tmpl @@ -0,0 +1,47 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Vandenberg + #%] + +[%# INTERFACE: + # token: string. The token to be used in this address change. + #%] + +[% title = "Confirm Change Email" %] +[% PROCESS global/header.html.tmpl %] + +

    + To change your email address, please enter the old email address: +

    + +
    + + + + + + + + + + + +
    Old Email Address:
     
    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/email/request-new.txt.tmpl b/template/en/default/account/email/request-new.txt.tmpl new file mode 100644 index 0000000..c56054b --- /dev/null +++ b/template/en/default/account/email/request-new.txt.tmpl @@ -0,0 +1,56 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # token: random string used to authenticate the transaction. + # expiration_ts: expiration date of the token. + # email: email address of the new account. + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% email %] +Subject: [% terms.Bugzilla %]: confirm account creation +X-Bugzilla-Type: admin + +[%+ terms.Bugzilla %] has received a request to create a user account +using your email address ([% email %]). + +To continue creating an account using this email address, visit the +following link by [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=request_new_account + +If you did not receive this email before [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %] or +you wish to create an account using a different email address you can begin +again by going to: + +[%+ urlbase %]createaccount.cgi + +[% IF Param('createemailregexp') == '.*' && Param('emailsuffix') == '' %] +PRIVACY NOTICE: [% terms.Bugzilla %] is an open [% terms.bug %] tracking system. Activity on most +[%+ terms.bugs %], including email addresses, will be visible to the public. We recommend +using a secondary account or free web email service (such as Gmail, Yahoo, +Hotmail, or similar) to avoid receiving spam at your primary email address. +[% END %] + +If you do not wish to create an account, or if this request was made in +error you can do nothing or visit the following link: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cancel_new_account + +If the above links do not work, or you have any other issues regarding +your account, please contact administration at [% Param('maintainer') %]. diff --git a/template/en/default/account/password/forgotten-password.txt.tmpl b/template/en/default/account/password/forgotten-password.txt.tmpl new file mode 100644 index 0000000..574975c --- /dev/null +++ b/template/en/default/account/password/forgotten-password.txt.tmpl @@ -0,0 +1,40 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Vandenberg + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% emailaddress %] +Subject: [% terms.Bugzilla %] Change Password Request +X-Bugzilla-Type: admin + +You have (or someone impersonating you has) requested to change your +[%+ terms.Bugzilla %] password. To complete the change, visit the following link: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cfmpw + +If you are not the person who made this request, or you wish to cancel +this request, visit the following link: + +[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlpw + +If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days +(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z", timezone) %]) or when you +log in successfully. diff --git a/template/en/default/account/password/set-forgotten-password.html.tmpl b/template/en/default/account/password/set-forgotten-password.html.tmpl new file mode 100644 index 0000000..ca134a4 --- /dev/null +++ b/template/en/default/account/password/set-forgotten-password.html.tmpl @@ -0,0 +1,55 @@ + [%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% title = "Change Password" %] +[% PROCESS global/header.html.tmpl %] + +

    + To change your password, enter a new password twice: +

    + +
    + + + + + + + + + + + + + + + + + +
    New Password: + +
    New Password Again: + +
      + +
    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/prefs/account.html.tmpl b/template/en/default/account/prefs/account.html.tmpl new file mode 100644 index 0000000..0457ff8 --- /dev/null +++ b/template/en/default/account/prefs/account.html.tmpl @@ -0,0 +1,99 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # realname: string. The user's real name, if any. + # login_change_date: string. The date the email change will be complete. (optional) + # new_login_name: string. The user's new Bugzilla login whilst not confirmed. (optional) + #%] + + + + + + + + + + + + + [% IF user.authorizer.can_change_password %] + + + + + + + + + + [% END %] + + + + + + + [% IF user.authorizer.can_change_email && Param('allowemailchange') %] + [% IF login_change_date %] + [% IF new_login_name %] + + + + + + + + + [% ELSE %] + + + + + + + + + [% END %] + [% ELSE %] + + + + + [% END %] + [% END %] + + [% Hook.process('field') %] + +
    + Please enter your existing password to confirm account changes. +
    Password: + + +

    New password: + +
    Confirm new password: + +
    Your real name (optional, but encouraged): + +
    Pending email address:[% new_login_name FILTER html %]
    Change request expires:[% login_change_date FILTER time %]
    Confirmed email address:[% user.login FILTER html %]
    Completion date:[% login_change_date FILTER time %]
    New email address: + +
    diff --git a/template/en/default/account/prefs/email.html.tmpl b/template/en/default/account/prefs/email.html.tmpl new file mode 100644 index 0000000..a4d22db --- /dev/null +++ b/template/en/default/account/prefs/email.html.tmpl @@ -0,0 +1,309 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Myk Melez + # Shane H. W. Travis + #%] + +[%# INTERFACE: + # watchedusers: string. + # Comma-separated list of email addresses this user watches. + # watchers: array. + # Array of users watching this user's account. + # excludeself: boolean. + # True if user is not receiving self-generated mail. + # : Multiple hashes, one for each rolename (e.g. assignee; see + # below), keyed by reasonname (e.g. comments; again, see + # below). The value is a boolean - true if the user is + # receiving mail for that reason when in that role. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% useqacontact = Param('useqacontact') %] +[% usevotes = Param('usevotes') %] + +

    + If you don't like getting a notification for "trivial" + changes to [% terms.bugs %], you can use the settings below to + filter some or all notifications. +

    + + + +
    + + + + + + + + + + + + + + +[% IF user.is_global_watcher %] + + + + +[% END %] +
    + Global options: +
    + [% prefname = "email-$constants.REL_ANY-$constants.EVT_FLAG_REQUESTED" %] + + +
    +
    + [% prefname = "email-$constants.REL_ANY-$constants.EVT_REQUESTED_FLAG" %] + + +
    +
    + You are watching all [% terms.bugs %]. To be removed from this role, + contact + [% Param("maintainer") %]. +
    + +
    +Field/recipient specific options: +
    +
    + +[% events = [ + { id = constants.EVT_ADDED_REMOVED, + description = "I'm added to or removed from this capacity" }, + { id = constants.EVT_BUG_CREATED, + description = "A new $terms.bug is created" }, + { id = constants.EVT_OPENED_CLOSED, + description = "The $terms.bug is resolved or reopened" }, + { id = constants.EVT_PROJ_MANAGEMENT, + description = "The priority, status, severity, or milestone changes" }, + { id = constants.EVT_COMMENT, + description = "New comments are added" }, + { id = constants.EVT_ATTACHMENT, + description = "New attachments are added" }, + { id = constants.EVT_ATTACHMENT_DATA, + description = "Some attachment data changes" }, + { id = constants.EVT_KEYWORD, + description = "The keywords field changes" }, + { id = constants.EVT_CC, + description = "The CC field changes" }, + { id = constants.EVT_DEPEND_BLOCK, + description = "The dependency tree changes" }, + { id = constants.EVT_OTHER, + description = "Any field not mentioned above changes" }, +] %] + +[% neg_events = [ + { id = constants.EVT_UNCONFIRMED, + description = "The $terms.bug is in the UNCONFIRMED state" }, + { id = constants.EVT_CHANGED_BY_ME, + description = "The change was made by me" }, +] %] + +[% relationships = [ + { id = constants.REL_ASSIGNEE, + description = "Assignee" }, + { id = constants.REL_QA, + description = "QA Contact" }, + { id = constants.REL_REPORTER, + description = "Reporter" }, + { id = constants.REL_CC, + description = "CCed" }, + { id = constants.REL_VOTER, + description = "Voter" }, +] %] + + + + + + + + + [% FOREACH relationship = relationships %] + [% NEXT IF (relationship.id == constants.REL_QA AND NOT useqacontact) OR + (relationship.id == constants.REL_VOTER AND NOT usevotes) %] + + [% END %] + + + [% FOREACH event = events %] + [% count = loop.count() %] + + [% FOREACH relationship = relationships %] + [% NEXT IF (relationship.id == constants.REL_QA AND NOT useqacontact) OR + (relationship.id == constants.REL_VOTER AND NOT usevotes) %] + + [% END %] + + + [% END %] + + + + + + + [% FOREACH event = neg_events %] + [% count = loop.count() %] + + [% FOREACH relationship = relationships %] + [% NEXT IF (relationship.id == constants.REL_QA AND NOT useqacontact) OR + (relationship.id == constants.REL_VOTER AND NOT usevotes) %] + + [% END %] + + + [% END %] + +
    + When my relationship to this [% terms.bug %] is: + + I want to receive mail when: +
    + [% relationship.description FILTER html %] +
    + + + [% event.description FILTER html %] +
    +   + + but not when (overrides above): +
    + + + [% event.description FILTER html %] +
    + +[%# Add hidden form fields for fields not used %] +[% FOREACH event = events %] + [% FOREACH relationship = relationships %] + [% IF (relationship.id == constants.REL_QA AND NOT useqacontact) OR + (relationship.id == constants.REL_VOTER AND NOT usevotes) %] + + [% END %] + [% END %] +[% END %] + +[% FOREACH event = neg_events %] + [% FOREACH relationship = relationships %] + [% IF (relationship.id == constants.REL_QA AND NOT useqacontact) OR + (relationship.id == constants.REL_VOTER AND NOT usevotes) %] + + [% END %] + [% END %] +[% END %] + +
    +User Watching + +

    +If you watch a user, it is as if you are standing in their shoes for the +purposes of getting email. Email is sent or not according to your +preferences for their relationship to the [% terms.bug %] +(e.g. Assignee). +

    + +

    +[% IF watchedusers.size %] +You are watching everyone in the following list: +

    +

    +
    + + +[% ELSE %] +You are currently not watching any users. +[% END %] +

    + +

    Add users to my watch list (comma separated list): + +

    + +

    Users watching you:
    + [% IF watchers.size %] + [% FOREACH watcher = watchers %] + [% watcher FILTER html %]
    + [% END %] + [% ELSE %] + No one + [% END %] +

    + +
    + +
    diff --git a/template/en/default/account/prefs/permissions.html.tmpl b/template/en/default/account/prefs/permissions.html.tmpl new file mode 100644 index 0000000..5e8dc9c --- /dev/null +++ b/template/en/default/account/prefs/permissions.html.tmpl @@ -0,0 +1,93 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # has_bits: array of hashes. May be empty. + # name => Names of the permissions the user has. + # desc => Descriptions of the permissions the user has. + # set_bits: array of hashes. May be empty. + # name => Names of the permissions the user can set for + # other people. + # desc => Descriptions of the permissions the user can set for + # other people. + #%] + +[% PROCESS global/variables.none.tmpl %] + + + + + +
    + [% IF has_bits.size %] + You have the following permission bits set on your account: + + [% FOREACH bit_description = has_bits %] + + + + + [% END %] +
    [% bit_description.name FILTER html %][% bit_description.desc FILTER html_light %]
    + + [% FOREACH privs = ["editcomponents", "canconfirm", "editbugs"] %] + [% SET products = ${"local_$privs"} %] + [% IF products && products.size %] +
    +

    + You also have local '[% privs FILTER html %]' privileges + for the following products: +

    +

    + [% FOREACH product = products %] + [% product.name FILTER html %]
    + [% END %] +

    + [% END %] + [% END %] + + [% ELSE %] + There are no permission bits set on your account. + [% END %] + + [% IF user.in_group('editusers') %] +
    + You have editusers privileges. You can turn on and off + all permissions for all users. + [% ELSIF set_bits.size %] +
    + And you can turn on or off the following bits for + other users: + + [% FOREACH bit_description = set_bits %] + + + + + [% END %] +
    [% bit_description.name FILTER html %][% bit_description.desc FILTER html_light %]
    + [% END %] + + [% IF user.in_group('bz_sudoers') %] +
    + You are a member of the bz_sudoers group, so you can + impersonate someone else. + [% END %] +
    diff --git a/template/en/default/account/prefs/prefs.html.tmpl b/template/en/default/account/prefs/prefs.html.tmpl new file mode 100644 index 0000000..71e411d --- /dev/null +++ b/template/en/default/account/prefs/prefs.html.tmpl @@ -0,0 +1,112 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Frédéric Buclin + #%] + +[%# INTERFACE: + # tabs: List of hashes. May not be empty. Each hash has three members: + # name: string. Name of the tab (used internally.) + # description: string. Description of the tab (used in tab title). + # saveable: boolean. True if tab has a form which can be submitted. + # True if user is not receiving self-generated mail. + # Note: For each tab name, a template "prefs/${tab.name}.tmpl" must exist, + # and its interface must be fulfilled. + # current_tab: A direct reference to one of the hashes in the tabs list. + # This tab will be displayed. + # changes_saved: boolean/string. True if the CGI processed form data before + # displaying anything, and can contain an optional custom + # message if required (which Perl still evaluates as True). + # dont_show_button: boolean. Prevent the display of the "Submit Changes" button. + #%] + +[% filtered_login = user.login FILTER html %] +[% PROCESS global/header.html.tmpl + title = "User Preferences" + subheader = filtered_login + style_urls = ['skins/standard/admin.css'] + javascript_urls = ['js/util.js'] + doc_section = "userpreferences.html" + %] + +[% tabs = [{ name => "settings", label => "General Preferences", + link => "userprefs.cgi?tab=settings", saveable => "1" }, + { name => "email", label => "Email Preferences", + link => "userprefs.cgi?tab=email", saveable => "1" }, + { name => "saved-searches", label => "Saved Searches", + link => "userprefs.cgi?tab=saved-searches", saveable => "1" }, + { name => "account", label => "Name and Password", + link => "userprefs.cgi?tab=account", saveable => "1" }, + { name => "permissions", label => "Permissions", + link => "userprefs.cgi?tab=permissions", saveable => "0" } ] %] + +[% FOREACH tab IN tabs %] + [% IF tab.name == current_tab_name %] + [% current_tab = tab %] + [% LAST %] + [% END %] +[% END %] + +[% WRAPPER global/tabs.html.tmpl + tabs = tabs + current_tab = current_tab +%] + +[% IF changes_saved %] +
    + The changes to your [% current_tab.label FILTER lower %] have been saved. + + [% IF email_changes_saved %] +

    + An email has been sent to both old and new email + addresses to confirm the change of email address. +

    + [% END %] +
    +[% END %] + +

    [% current_tab.label %]

    + +[% IF current_tab.saveable %] +
    + + +[% END %] + +[% PROCESS "account/prefs/${current_tab.name}.html.tmpl" + IF current_tab.name.defined %] + +[% IF current_tab.saveable %] + + + [% UNLESS dont_show_button %] + + + + + +
      + +
    + [% END %] +
    +[% END %] + +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/account/prefs/saved-searches.html.tmpl b/template/en/default/account/prefs/saved-searches.html.tmpl new file mode 100644 index 0000000..f128613 --- /dev/null +++ b/template/en/default/account/prefs/saved-searches.html.tmpl @@ -0,0 +1,209 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # queryshare_groups: list of groups the user may share queries with + # (id, name). + # bless_group_ids: list of group ids the user may bless. + #%] + +[% IF user.can_bless %] + +[% END %] + +

    Your saved searches are as follows:

    + +
    + + + + + + + + [% may_share = user.in_group(Param('querysharegroup')) && queryshare_groups.size %] + [% IF may_share %] + + [% END %] + + + + + + + + [% IF may_share %] + + [% END %] + + [% FOREACH q = user.queries %] + + + + + + + [% IF may_share %] + + [% END %] + + [% END %] +
    + Search + + Run + + Edit + + Forget + + Show in + Footer + + Share With a Group +
    My [% terms.Bugs %] + [% filtered_username = user.login FILTER url_quote %] + Run + +   + +   + + + + — +
    [% q.name FILTER html %] + Run + + Edit + + [% IF q.used_in_whine %] + Remove from whining first + [% ELSE %] + Forget + [% END %] + + + + + [% IF user.can_bless %] + + + [% END %] + [% IF q.shared_with_users %] + (shared with [% q.shared_with_users FILTER html %] + [%+ q.shared_with_users > 1 ? "users" : "user" %]) + [% END %] +
    +[% IF user.can_bless %] +

    Note that for every search that has the "Add to footer" selected, a + link to the shared search is added to the footer of every user that is + a direct member of the group at the time you click Submit Changes.

    +[% END %] +
    + +[% IF user.queries_available.size %] +

    You may use these searches saved and shared by others:

    + + + + + + + + + + + [% FOREACH q = user.queries_available %] + + + + + + + + + [% END %] +
    + Search + + Shared By + + Shared To + + Run + + Edit + + Show in + Footer +
    [% q.name FILTER html %][% q.user.identity FILTER html %][% q.shared_with_group.name FILTER html %] + Run + + Edit + + +
    +[% ELSE %] +

    No searches are shared with you by other users.

    +[% END %] diff --git a/template/en/default/account/prefs/settings.html.tmpl b/template/en/default/account/prefs/settings.html.tmpl new file mode 100644 index 0000000..f8b6ba4 --- /dev/null +++ b/template/en/default/account/prefs/settings.html.tmpl @@ -0,0 +1,77 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Shane H. W. Travis + # Frédéric Buclin + # + #%] + +[%# INTERFACE: + # setting_names: an array of strings + # settings: a hash of hashes, keyed by setting_name. + # Each hash contains: + # is_enabled - boolean + # default_value - string (global default for this setting) + # value - string (user-defined preference) + # is_default - boolean (true if user has no preference) + # has_settings_enabled : boolean; is true if there is at least one user pref + # enabled by the maintainer. + #%] + +[% PROCESS "global/setting-descs.none.tmpl" %] + +[% IF settings.size %] + [% UNLESS has_settings_enabled %] +

    + All user preferences have been disabled by the + maintainer + of this installation, and so you cannot customize any. +

    + [% END %] + + + [% FOREACH name = setting_names %] + [% default_name = name _ '-isdefault' %] + [% default_val = settings.${name}.default_value %] + + + + + [% END %] +
    + [% setting_descs.$name OR name FILTER html %] + + [% IF settings.${name}.is_enabled %] + + [% ELSE %] + + [% END %] +
    +[% END %] +
    diff --git a/template/en/default/account/profile-activity.html.tmpl b/template/en/default/account/profile-activity.html.tmpl new file mode 100644 index 0000000..c6fd45c --- /dev/null +++ b/template/en/default/account/profile-activity.html.tmpl @@ -0,0 +1,86 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Vlad Dascalu + # Gavin Shelley + #%] + +[%# INTERFACE: + # otheruser: Bugzilla User Object; The user whose profile activity + # we are viewing. + # + # listselectionvalues: selection values to recreate the current user list. + # + # profile_changes: An array of hashes containing the following fields: + # + # who: string; login name of who made the change + # activity_when: string; when the change was made + # what: string; the description of the field which was changed + # removed: string; the removed value (maybe empty string) + # added: string; the added value (maybe empty string) + #%] + +[% title = BLOCK %] + Account History for '[% otheruser.login FILTER html %]' +[% END %] + + +[% PROCESS global/header.html.tmpl + title = title +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +[% columns = + [{name => 'who' + heading => 'Who' + } + {name => 'activity_when' + heading => 'When' + } + {name => 'what' + heading => 'What' + content_use_field => 1 + } + {name => 'removed' + heading => 'Removed' + } + {name => 'added' + heading => 'Added' + } + ] +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = profile_changes +%] + +

    Edit this user or + search for other accounts + [% IF listselectionvalues.matchtype != 'exact' %] + or go back + to the user list + [% END %] +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/admin.html.tmpl b/template/en/default/admin/admin.html.tmpl new file mode 100644 index 0000000..145360b --- /dev/null +++ b/template/en/default/admin/admin.html.tmpl @@ -0,0 +1,135 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Administer your installation ([% terms.Bugzilla %] + [%+ constants.BUGZILLA_VERSION FILTER html %]) +[% END %] + +[% PROCESS global/header.html.tmpl title = title + style_urls = ['skins/standard/admin.css'] + doc_section = "administration.html" +%] + +
    + This page is only accessible to empowered users. You can access administrative pages + from here (based on your privileges), letting you configure different aspects of + this installation. Note: some sections may not be accessible to you and are marked + using a lighter color. +
    + + + + + + + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/add.html.tmpl b/template/en/default/admin/classifications/add.html.tmpl new file mode 100644 index 0000000..cd949f2 --- /dev/null +++ b/template/en/default/admin/classifications/add.html.tmpl @@ -0,0 +1,56 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting + #%] + +[% PROCESS global/header.html.tmpl + title = "Add new classification" +%] + +
    + + + + + + + + + + + + + +
    Classification:
    Description: + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + %] +
    +
    + + + +
    + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/del.html.tmpl b/template/en/default/admin/classifications/del.html.tmpl new file mode 100644 index 0000000..5a3800f --- /dev/null +++ b/template/en/default/admin/classifications/del.html.tmpl @@ -0,0 +1,63 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting + #%] + +[% PROCESS global/header.html.tmpl + title = "Delete classification" +%] + + + + + + + + + + + + + + + + + + + +
    PartValue
    Classification:[% classification.name FILTER html %]
    Description: + [% IF classification.description %] + [% classification.description FILTER html_light %] + [% ELSE %] + description missing + [% END %] +
    Sortkey:[% classification.sortkey FILTER html %]
    + +

    Confirmation

    + +

    Do you really want to delete this classification?

    +
    + + + + +
    + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/edit.html.tmpl b/template/en/default/admin/classifications/edit.html.tmpl new file mode 100644 index 0000000..80d7f98 --- /dev/null +++ b/template/en/default/admin/classifications/edit.html.tmpl @@ -0,0 +1,85 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting + #%] + +[% PROCESS global/header.html.tmpl + title = "Edit classification" +%] + +
    + + + + + + + + + + + + + + + + + +
    Classification:
    Description: + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + defaultcontent = classification.description + %] +
    + + Edit Products: + + [% IF classification.products.size > 0 %] + + [% FOREACH product = classification.products %] + + + + + [% END %] +
    [% product.name FILTER html %] + [% IF product.description %] + [% product.description FILTER html_light %] + [% ELSE %] + description missing + [% END %] +
    + [% ELSE %] + none + [% END %] +
    + + + + + +
    + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/footer.html.tmpl b/template/en/default/admin/classifications/footer.html.tmpl new file mode 100644 index 0000000..db983aa --- /dev/null +++ b/template/en/default/admin/classifications/footer.html.tmpl @@ -0,0 +1,24 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Nitish Bezzala + #%] + +[% PROCESS global/variables.none.tmpl %] + +

    Back to the main [% terms.bugs %] page +or edit more classifications.

    diff --git a/template/en/default/admin/classifications/reclassify.html.tmpl b/template/en/default/admin/classifications/reclassify.html.tmpl new file mode 100644 index 0000000..146a1ac --- /dev/null +++ b/template/en/default/admin/classifications/reclassify.html.tmpl @@ -0,0 +1,90 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting + #%] + +[% PROCESS global/header.html.tmpl + title = "Reclassify products" +%] + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Classification:[% classification.name FILTER html %]
    Description: + [% IF classification.description %] + [% classification.description FILTER html_light %] + [% ELSE %] + description missing + [% END %] +
    Sortkey:[% classification.sortkey FILTER html %]
    Products:Other ClassificationsThis Classification
    + +

    + +
    +
    + + + + +
    + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/admin/classifications/select.html.tmpl b/template/en/default/admin/classifications/select.html.tmpl new file mode 100644 index 0000000..d6b352d --- /dev/null +++ b/template/en/default/admin/classifications/select.html.tmpl @@ -0,0 +1,66 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting + #%] + +[% PROCESS global/header.html.tmpl + title = "Select classification" +%] + + + + + + + + + + + [% FOREACH cl = classifications %] + + + + + [% IF (cl.id == 1) %] + + [% ELSE %] + + [% END %] + + [%# don't allow user to delete the default id. %] + [% IF (cl.id == 1) %] + + [% ELSE %] + + [% END %] + + [% END %] + + + + + +
    Edit Classification ...DescriptionSortkeyProductsAction
    [% cl.name FILTER html %] + [% IF cl.description %] + [% cl.description FILTER html_light %] + [% ELSE %] + none + [% END %] + [% cl.sortkey FILTER html %][% cl.product_count FILTER html %]reclassify ([% cl.product_count FILTER html %]) delete
    Add a new classificationAdd
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/confirm-delete.html.tmpl b/template/en/default/admin/components/confirm-delete.html.tmpl new file mode 100644 index 0000000..d0a1385 --- /dev/null +++ b/template/en/default/admin/components/confirm-delete.html.tmpl @@ -0,0 +1,160 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # comp: object; Bugzilla::Component object representing the component the + # user wants to delete. + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% title = BLOCK %]Delete component '[% comp.name FILTER html %]' +from '[% product.name FILTER html %]' product + [% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] + + + + + + + + + + + + + + + + + + +[% IF Param('useqacontact') %] + + + + +[% END %] + + + + + + +[% IF product.description %] + + + + +[% END %] + +[% IF Param('usetargetmilestone') %] + + + + +[% END %] + + + + + + + + + + +
    FieldValue
    Component:[% comp.name FILTER html %]
    Component Description:[% comp.description FILTER html_light %]
    Default assignee:[% comp.default_assignee.login FILTER html %]
    Default QA contact:[% comp.default_qa_contact.login FILTER html %]
    Component of Product:[% product.name FILTER html %]
    Product Description:[% product.description FILTER html_light %]
    Product Milestone URL: + + [% product.milestone_url FILTER html %] + +
    Open for [% terms.bugs %]:[% IF product.is_active %]Yes[% ELSE %]No[% END %]
    [% terms.Bugs %]: +[% IF comp.bug_count %] + [% comp.bug_count %] +[% ELSE %] + None +[% END %] +
    + +

    Confirmation

    + +[% IF comp.bug_count %] + + [% IF !Param("allowbugdeletion") %] +

    + Sorry, there + + [% IF comp.bug_count > 1 %] + are [% comp.bug_count %] [%+ terms.bugs %] + [% ELSE %] + is [% comp.bug_count %] [%+ terms.bug %] + [% END %] + + outstanding for this component. You must reassign + + [% IF comp.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + + to another component before you can delete this one. +

    + [% ELSE %] + +
    + + There [% IF comp.bug_count > 1 %] + are [% comp.bug_count %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + entered for this component! When you delete this + component, ALL stored [% terms.bugs %] and + their history will be deleted too. +
    + + [% END %] + +[% END %] + +[% IF comp.bug_count == 0 || Param('allowbugdeletion') %] + +

    Do you really want to delete this component?

    + +
    + + + + + +
    + +[% END %] + +[% PROCESS admin/components/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/create.html.tmpl b/template/en/default/admin/components/create.html.tmpl new file mode 100644 index 0000000..86411ad --- /dev/null +++ b/template/en/default/admin/components/create.html.tmpl @@ -0,0 +1,103 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Akamai Technologies + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% title = BLOCK %]Add component to the [% product.name FILTER html %] product[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +
    + + + + + + + + + + + + + +[% IF Param('useqacontact') %] + + + + +[% END %] + + + + +
    Component:
    Description: + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + %] +
    + [% INCLUDE global/userselect.html.tmpl + name => "initialowner" + id => "initialowner" + value => "" + size => 64 + %] +
    + + [% INCLUDE global/userselect.html.tmpl + name => "initialqacontact" + id => "initialqacontact" + value => "" + size => 64 + emptyok => 1 + %] +
    + + + [% INCLUDE global/userselect.html.tmpl + name => "initialcc" + id => "initialcc" + value => "" + size => 64 + multiple => 5 + %] +
    + [% IF !Param("usemenuforusers") %] + Enter user names for the CC list as a comma-separated list. + [% END %] +
    +
    + + + + +
    + +[% PROCESS admin/components/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/edit.html.tmpl b/template/en/default/admin/components/edit.html.tmpl new file mode 100644 index 0000000..9ddb8ca --- /dev/null +++ b/template/en/default/admin/components/edit.html.tmpl @@ -0,0 +1,134 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Akamai Technologies + #%] + +[%# INTERFACE: + # comp: object; Bugzilla::Component object representing the component the + # user wants to edit. + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Edit component '[% comp.name FILTER html %]' of product '[% product.name FILTER html %]' +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +
    + + + + + + + + + + + + + + +[% IF Param('useqacontact') %] + + + + +[% END %] + + + + + + + + + + + +
    Component:
    Component Description: + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + defaultcontent = comp.description + %] +
    + [% INCLUDE global/userselect.html.tmpl + name => "initialowner" + id => "initialowner" + value => comp.default_assignee.login + size => 64 + %] +
    + [% INCLUDE global/userselect.html.tmpl + name => "initialqacontact" + id => "initialqacontact" + value => comp.default_qa_contact.login + size => 64 + emptyok => 1 + %] +
    + + + [% INCLUDE global/userselect.html.tmpl + name => "initialcc" + id => "initialcc" + value => initial_cc_names + size => 64 + multiple => 5 + %] +
    + [% IF !Param("usemenuforusers") %] + Enter user names for the CC list as a comma-separated list. + [% END %] +
    [% terms.Bugs %]: +[% IF comp.bug_count > 0 %] + [% comp.bug_count %] +[% ELSE %] + None +[% END %] +
    + + + + + + or Delete this component. + +
    + +[% PROCESS admin/components/footer.html.tmpl + no_edit_component_link = 1 +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/footer.html.tmpl b/template/en/default/admin/components/footer.html.tmpl new file mode 100644 index 0000000..b2e105e --- /dev/null +++ b/template/en/default/admin/components/footer.html.tmpl @@ -0,0 +1,54 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # comp: object; Bugzilla::Component object representing the component + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +
    + +

    +Edit + +[% IF comp && !no_edit_component_link %] + component + '[% comp.name FILTER html %]' + or edit +[% END %] + +[% IF !no_edit_other_components_link %] +other components of product '[% product.name FILTER html %]', + or edit +[% END %] + +product '[% product.name FILTER html %]'. + +

    diff --git a/template/en/default/admin/components/list.html.tmpl b/template/en/default/admin/components/list.html.tmpl new file mode 100644 index 0000000..632d47e --- /dev/null +++ b/template/en/default/admin/components/list.html.tmpl @@ -0,0 +1,128 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + #%] + +[%# INTERFACE: + # showbugcounts: if defined, then bug counts should be included in the table + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select component of product + '[% product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editcomponents.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&component=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editcomponents.cgi?action=del&product= + [%- product.name FILTER url_quote %]&component=%%name%%[% END %] +[% bug_count_contentlink = BLOCK %]buglist.cgi?component=%%name%%&product= + [%- product.name FILTER url_quote %][% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit component..." + contentlink => edit_contentlink + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "initialowner" + heading => "Default Assignee" + }, + ] +%] + +[% IF Param('useqacontact') %] + + [% columns.push({ + name => 'initialqacontact' + heading => 'QA Contact' + }) %] + +[% END %] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => bug_count_contentlink + }) %] + +[% END %] + +[% columns.push({ + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) %] + +[%# Overrides the initialowner and the initialqacontact with right values %] +[% overrides.initialowner = {} %] +[% overrides.initialqacontact = {} %] + +[%# "component" is a reserved word in Template Toolkit. %] +[% FOREACH my_component = product.components %] + [% overrides.initialowner.name.${my_component.name} = { + override_content => 1 + content => my_component.default_assignee.login + } + %] + [% overrides.initialqacontact.name.${my_component.name} = { + override_content => 1 + content => my_component.default_qa_contact.login + } + %] +[% END %] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = product.components + overrides = overrides +%] + +

    Add + a new component to product '[% product.name FILTER html %]'

    + +[% IF ! showbugcounts %] + +

    + Redisplay table with [% terms.bug %] counts (slower)

    + +[% END %] + +[% PROCESS admin/components/footer.html.tmpl + no_edit_other_components_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/select-product.html.tmpl b/template/en/default/admin/components/select-product.html.tmpl new file mode 100644 index 0000000..0910f98 --- /dev/null +++ b/template/en/default/admin/components/select-product.html.tmpl @@ -0,0 +1,70 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + # + #%] + +[%# INTERFACE: + # products: array of product objects + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit components for which product?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit components of..." + contentlink => "editcomponents.cgi?product=%%name%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?product=%%name%%" + }) + %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] +

    + Redisplay table with [% terms.bug %] counts (slower)

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/confirm-action.html.tmpl b/template/en/default/admin/confirm-action.html.tmpl new file mode 100644 index 0000000..521d2d1 --- /dev/null +++ b/template/en/default/admin/confirm-action.html.tmpl @@ -0,0 +1,98 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # abuser: identity of the user who created the (invalid?) token. + # token_action: the action the token was supposed to serve. + # expected_action: the action the user was going to do. + # script_name: the script generating this warning. + # alternate_script: the suggested script to redirect the user to + # if he declines submission. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl title = "Suspicious Action" + style_urls = ['skins/standard/global.css'] %] + +[% IF abuser %] +
    +

    When you view an administrative form in [% terms.Bugzilla %], a token string + is randomly generated and stored both in the database and in the form you loaded, + to make sure that the requested changes are being made as a result of submitting + a form generated by [% terms.Bugzilla %]. Unfortunately, the token used right now + is incorrect, meaning that it looks like you didn't come from the right page. + The following token has been used :

    + + + [% IF token_action != expected_action %] + + + + + + + + + [% END %] + + [% IF abuser != user.identity %] + + + + + + + + + [% END %] +
    Action stored:[% token_action FILTER html %]
      + This action doesn't match the one expected ([% expected_action FILTER html %]). +
    Generated by:[% abuser FILTER html %]
      + This token has not been generated by you. It is possible that someone + tried to trick you! +
    + +

    Please report this problem to [%+ Param("maintainer") FILTER html %].

    +
    +[% ELSE %] +
    + It looks like you didn't come from the right page (you have no valid token for + the [% expected_action FILTER html %] action while processing the + '[% script_name FILTER html%]' script). The reason could be one of:
    +
      +
    • You clicked the "Back" button of your web browser after having successfully + submitted changes, which is generally not a good idea (but harmless).
    • +
    • You entered the URL in the address bar of your web browser directly, + which should be safe.
    • +
    • You clicked on a URL which redirected you here without your consent, + in which case this action is much more critical.
    • +
    + Are you sure you want to commit these changes anyway? This may result in + unexpected and undesired results. +
    + +
    + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^(Bugzilla_login|Bugzilla_password)$" %] + +
    +

    Or throw away these changes and go back to + [%- alternate_script FILTER html %].

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/cf-js.js.tmpl b/template/en/default/admin/custom_fields/cf-js.js.tmpl new file mode 100644 index 0000000..5ece96e --- /dev/null +++ b/template/en/default/admin/custom_fields/cf-js.js.tmpl @@ -0,0 +1,59 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is NASA. + # Portions created by NASA are Copyright (C) 2008 + # San Jose State University Foundation. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander + #%] + +// Disable a checkbox based on the state of another one. +function toggleCheckbox(this_checkbox, other_checkbox_id) { + var other_checkbox = document.getElementById(other_checkbox_id); + other_checkbox.disabled = !this_checkbox.checked; +} + +var select_values = new Array(); +[% USE Bugzilla %] +[% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + select_values[[% sel_field.id FILTER js %]] = [ + [% FOREACH legal_value = sel_field.legal_values %] + [[% legal_value.id FILTER js %], '[% display_value(sel_field.name, legal_value.name) FILTER js %]'][% ',' UNLESS loop.last %] + [% END %] + ]; +[% END %] + +function onChangeType(type_field) { + var value_field = document.getElementById('value_field_id'); + if (type_field.value == [% constants.FIELD_TYPE_SINGLE_SELECT %] + || type_field.value == [% constants.FIELD_TYPE_MULTI_SELECT %]) + { + value_field.disabled = false; + } + else { + value_field.disabled = true; + } +} + +function onChangeVisibilityField() { + var vis_field = document.getElementById('visibility_field_id'); + var vis_value = document.getElementById('visibility_value_id'); + + if (vis_field.value) { + var values = select_values[vis_field.value]; + bz_populateSelectFromArray(vis_value, values); + } + else { + bz_clearOptions(vis_value); + } +} diff --git a/template/en/default/admin/custom_fields/confirm-delete.html.tmpl b/template/en/default/admin/custom_fields/confirm-delete.html.tmpl new file mode 100644 index 0000000..c936836 --- /dev/null +++ b/template/en/default/admin/custom_fields/confirm-delete.html.tmpl @@ -0,0 +1,66 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Alexander Eiser + #%] + +[%# INTERFACE: + # field: object; the field object that you are trying to delete. + # token: string; the delete_field token required to complete deletion. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %] + Delete the Custom Field '[% field.name FILTER html %]' ([% field.description FILTER html %]) +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "custom-fields.html#delete-custom-fields" +%] + + + + + + + + + + + + + + + + + + +
    FieldValue
    Custom Field:[% field.name FILTER html %]
    Description:[% field.description FILTER html %]
    Type:[% field_types.${field.type} FILTER html %]
    + +

    Confirmation

    + +

    + Are you sure you want to remove this field from the database?
    + This action will only be successful if the field is obsolete, + and has never been used in [% terms.abug FILTER html %]. +

    + + + Delete field '[% field.description FILTER html %]' + +

    + Back to the list of existing custom fields +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/create.html.tmpl b/template/en/default/admin/custom_fields/create.html.tmpl new file mode 100644 index 0000000..a2db470 --- /dev/null +++ b/template/en/default/admin/custom_fields/create.html.tmpl @@ -0,0 +1,149 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% javascript = BLOCK %] + [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Add a new Custom Field" + onload = "document.getElementById('new_bugmail').disabled = true;" + javascript_urls = [ 'js/util.js' ] + doc_section = "custom-fields.html#add-custom-fields" +%] + +

    + Adding custom fields can make the interface of [% terms.Bugzilla %] very + complicated. Many admins who are new to [% terms.Bugzilla %] start off + adding many custom fields, and then their users complain that the interface + is "too complex". Please think carefully before adding any custom fields. + It may be the case that [% terms.Bugzilla %] already does what you need, + and you just haven't enabled the correct feature yet. +

    + +
      +
    • Custom field names must begin with "cf_" to distinguish them from + standard fields. If you omit "cf_" from the beginning of the name, it + will be added for you.
    • +
    • Descriptions are a very short string describing the field and will be + used as the label for this field in the user interface.
    • +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + +
    + +
    + + + + + + + +
      + + + +
    +

    + + + +

    +
    + +

    + Back to the list of existing custom fields +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/edit.html.tmpl b/template/en/default/admin/custom_fields/edit.html.tmpl new file mode 100644 index 0000000..c5ac53d --- /dev/null +++ b/template/en/default/admin/custom_fields/edit.html.tmpl @@ -0,0 +1,161 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # field: Bugzila::Field; the current field being edited + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %] + Edit the Custom Field '[% field.name FILTER html %]' ([% field.description FILTER html %]) +[% END %] + +[% javascript = BLOCK %] + [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + onload = "toggleCheckbox(document.getElementById('enter_bug'), 'new_bugmail');" + javascript_urls = [ 'js/util.js' ] + doc_section = "custom-fields.html#edit-custom-fields" +%] + +

    + Descriptions are a very short string describing the field and will be used as + the label for this field in the user interface. +

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF field.is_select %] + + + + + + + + + [% END %] +
    Name:[% field.name FILTER html %] + +
    + +
    Type:[% field_types.${field.type} FILTER html %]
    + + + + + + + +
      + Edit + legal values for this field. + + + + +
    +
    + + + + +
    + +[% IF field.obsolete %] +

    + Remove + this custom field from the database.
    + This action will only be successful if the custom field has never been used + in [% terms.abug %].
    +

    +[% END %] + +

    + Back to the list of existing custom fields +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/list.html.tmpl b/template/en/default/admin/custom_fields/list.html.tmpl new file mode 100644 index 0000000..dd266c7 --- /dev/null +++ b/template/en/default/admin/custom_fields/list.html.tmpl @@ -0,0 +1,102 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # custom_fields: a list of Bugzilla::Field objects, representing custom fields. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "Custom Fields" + doc_section = "custom-fields.html" +%] + +[% delete_contentlink = BLOCK %]editfields.cgi?action=del&name=%%name%%[% END %] + +[% columns = [ + { + name => "name" + heading => "Edit custom field..." + contentlink => "editfields.cgi?action=edit&name=%%name%%" + }, + { + name => "description" + heading => "Description" + }, + { + name => "sortkey" + heading => "Sortkey" + }, + { + name => "type" + heading => "Type" + }, + { + name => "enter_bug" + heading => "Editable on $terms.Bug Creation" + }, + { + name => "mailhead" + heading => "In ${terms.Bug}mail on $terms.Bug Creation" + }, + { + name => "obsolete" + heading => "Is Obsolete" + }, + { + name => "action" + heading => "Action" + content => "" + } + ] +%] + +[% USE Bugzilla %] +[% custom_fields = Bugzilla.get_fields({ custom => 1 }) %] + +[%# We want to display the type name of fields, not their type ID. %] +[% overrides.type = {} %] + +[% FOREACH field_type = field_types.keys %] + [% overrides.type.type.$field_type = { + override_content => 1 + content => field_types.$field_type + } + %] +[% END %] + + +[% overrides.action.obsolete = { + "1" => { + override_content => 1 + content => "Delete" + override_contentlink => 1 + contentlink => delete_contentlink + } + } +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + overrides = overrides + data = custom_fields +%] + +

    + Add a new custom field +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl new file mode 100644 index 0000000..2ea7c2f --- /dev/null +++ b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl @@ -0,0 +1,161 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[%# INTERFACE: + # value: Bugzilla::Field::Choice; The field value being deleted. + # value_count: number; The number of values available for this field. + # field: object; the field the value is being deleted from. + #%] + +[% title = BLOCK %] + Delete Value '[% value.name FILTER html %]' from the + '[% field.description FILTER html %]' ([% field.name FILTER html %]) field +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] +%] + + + + + + + + + + + + + + + + + + +
    FieldValue
    Field Name:[% field.description FILTER html %]
    Field Value:[% value.name FILTER html %]
    [% terms.Bugs %]: +[% IF value.bug_count %] + + [%- value.bug_count FILTER html %] +[% ELSE %] + None +[% END %] +
    + +

    Confirmation

    + +[% IF value.is_default || value.bug_count || (value_count == 1) + || value.controls_visibility_of_fields.size + || value.controlled_values_array.size +%] + +

    Sorry, but the '[% value.name FILTER html %]' value cannot be deleted + from the '[% field.description FILTER html %]' field for the following + reason(s):

    + + + +[% ELSE %] + +

    Do you really want to delete this value?

    + +
    + + + + + +
    + +[% END %] + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_edit_link = 1 + +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/create.html.tmpl b/template/en/default/admin/fieldvalues/create.html.tmpl new file mode 100644 index 0000000..f1eec1a --- /dev/null +++ b/template/en/default/admin/fieldvalues/create.html.tmpl @@ -0,0 +1,97 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Max Kanat-Alexander + # Frédéric Buclin + #%] + +[%# INTERFACE: + # field: object; the field the value is being created for + #%] + +[% title = BLOCK %] + Add Value for the '[% field.description FILTER html %]' ([% field.name FILTER html %]) field +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +

    + This page allows you to add a new value for the + '[% field.description FILTER html %]' field. +

    + +
    + + + + + + + + + + [% IF field.name == "bug_status" %] + + + + + + + + + [% END %] + [% IF field.value_field %] + + + + + [% END %] +
    + +
    + +
    + + +
      + Note: The open/close attribute can only be set now, when you create + the status. It cannot be edited later. +
    + + + + (Leave unset to have this value always appear.) +
    + + + + +
    + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_add_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/edit.html.tmpl b/template/en/default/admin/fieldvalues/edit.html.tmpl new file mode 100644 index 0000000..5650ee8 --- /dev/null +++ b/template/en/default/admin/fieldvalues/edit.html.tmpl @@ -0,0 +1,107 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[%# INTERFACE: + # value: Bugzilla::Field::Choice; The field value we are editing. + # field: Bugzilla::Field; The field this value belongs to. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Edit Value '[% value.name FILTER html %]' for the + '[% field.description FILTER html %]' ([% field.name FILTER html %]) field +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +
    + + + + + + + + + + + [% IF field.name == "bug_status" %] + + + + + [% END %] + [% IF field.value_field %] + + + + + [% END %] + + + + +
    + + + [% IF value.is_static %] + + [%- value.name FILTER html %] + [% ELSE %] + + [% END %] +
    [% IF value.is_open %]Open[% ELSE %]Closed[% END %]
    + + + + (Leave unset to have this value always appear.) +
    + [% IF value.is_default %] + This value is selected as default in the parameters for this field. It cannot be disabled. + [% ELSIF value.is_static %] + This value is non-deletable and cannot be disabled. + [% END %] +
    + + + + + +
    + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_edit_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/footer.html.tmpl b/template/en/default/admin/fieldvalues/footer.html.tmpl new file mode 100644 index 0000000..288612d --- /dev/null +++ b/template/en/default/admin/fieldvalues/footer.html.tmpl @@ -0,0 +1,55 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[%# INTERFACE: + # value: string; the value being inserted/edited. + # field: object; the field which the value belongs/belonged to. + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_link + # no_edit_other_link + # no_add_link + #%] + +
    + +

    + +[% UNLESS no_add_link %] + Add a value. +[% END %] + +[% IF value.defined && !no_edit_link %] + Edit value + '[% value.name FILTER html %]'. +[% END %] + +[% UNLESS no_edit_other_link %] + Edit other values for the '[% field.description FILTER html %]' field. + +[% END %] + +

    diff --git a/template/en/default/admin/fieldvalues/list.html.tmpl b/template/en/default/admin/fieldvalues/list.html.tmpl new file mode 100644 index 0000000..3f750eb --- /dev/null +++ b/template/en/default/admin/fieldvalues/list.html.tmpl @@ -0,0 +1,99 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[%# INTERFACE: + # values: array of hashes having the following properties: + # - name: string; The value. + # - sortkey: number; The sortkey used to order the value when + # displayed to the user in a list. + # + # field: object; the field we are editing values for. + # static: array; list of values which cannot be renamed nor deleted. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select value for the '[% field.description FILTER html %]' + ([% field.name FILTER html %]) field[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editvalues.cgi?action=edit&field= + [%- field.name FILTER url_quote %]&value=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editvalues.cgi?action=del&field= + [%- field.name FILTER url_quote %]&value=%%name%%[% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit field value..." + contentlink => edit_contentlink + }, + { + name => "sortkey" + heading => "Sortkey" + }, + { + name => "isactive" + heading => "Enabled for $terms.bugs" + yesno_field => 1 + }, + { + name => "action" + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + } ] +%] + + +[% SET overrides.action = {} %] +[% FOREACH check_value = values %] + [% IF check_value.is_static %] + [% overrides.action.name.${check_value.name} = { + override_content => 1 + content => "(Non-deletable value)" + override_contentlink => 1 + contentlink => undef + } + %] + [% ELSIF check_value.is_default %] + [% overrides.action.name.${check_value.name} = { + override_content => 1 + content => "(Default value)" + override_contentlink => 1 + contentlink => undef + } + %] + [% END %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = values + overrides = overrides +%] + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_edit_other_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/select-field.html.tmpl b/template/en/default/admin/fieldvalues/select-field.html.tmpl new file mode 100644 index 0000000..3704d42 --- /dev/null +++ b/template/en/default/admin/fieldvalues/select-field.html.tmpl @@ -0,0 +1,47 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Max Kanat-Alexander + # + #%] + +[%# INTERFACE: + # fields: Array of hashes. Each hash contains only one key, "name." + # The names are the same as the keys from field_descs + # (see global/field-descs.html.tmpl). + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit values for which field?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit field values for..." + content_use_field = 1 + contentlink => "editvalues.cgi?field=%%name%%" + } + ] +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = fields +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/flag-type/confirm-delete.html.tmpl b/template/en/default/admin/flag-type/confirm-delete.html.tmpl new file mode 100644 index 0000000..ed90941 --- /dev/null +++ b/template/en/default/admin/flag-type/confirm-delete.html.tmpl @@ -0,0 +1,63 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Confirm Deletion of Flag Type '[% flag_type.name FILTER html %]'[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "flags-overview.html#flags-delete" +%] + +

    + [% IF flag_type.flag_count %] + There are [% flag_type.flag_count %] flags of type [% flag_type.name FILTER html %]. + If you delete this type, those flags will also be deleted. + [% END %] + + Note that instead of deleting the type you can + deactivate it, + in which case the type [% IF flag_type.flag_count %] and its flags [% END %] will remain + in the database but will not appear in the [% terms.Bugzilla %] UI. +

    + + + + + + + + + +
    + Do you really want to delete this type? +
    + Yes, delete + + + + No, don't delete + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/flag-type/edit.html.tmpl b/template/en/default/admin/flag-type/edit.html.tmpl new file mode 100644 index 0000000..ebebf50 --- /dev/null +++ b/template/en/default/admin/flag-type/edit.html.tmpl @@ -0,0 +1,253 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Mark Bickford + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/js-products.html.tmpl" %] + +[% IF type.target_type == "bug" %] + [% title = BLOCK %]Create Flag Type for [% terms.Bugs %][% END %] + [% typeLabelLowerPlural = BLOCK %][% terms.bugs %][% END %] + [% typeLabelLowerSingular = BLOCK %][% terms.bug %][% END %] +[% ELSE %] + [% title = "Create Flag Type for Attachments" %] + [% typeLabelLowerPlural = BLOCK %]attachments[% END %] + [% typeLabelLowerSingular = BLOCK %]attachment[% END %] +[% END %] + +[% doc_section = "flags-overview.html#flags-create" %] +[% IF last_action == "copy" %] + [% title = BLOCK %]Create Flag Type Based on [% type.name FILTER html %][% END %] +[% ELSIF last_action == "edit" %] + [% title = BLOCK %]Edit Flag Type [% type.name FILTER html %][% END %] + [% doc_section = "flags-overview.html#flags-edit" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style = " + table#form th { text-align: right; vertical-align: baseline; white-space: nowrap; } + table#form td { text-align: left; vertical-align: baseline; } + " + onload="var f = document.forms[0]; selectProduct(f.product, f.component, null, null, '__Any__');" + javascript_urls=["js/productform.js"] + doc_section = doc_section +%] + +
    + + + + + [% FOREACH category = type.inclusions %] + + [% END %] + [% FOREACH category = type.exclusions %] + + [% END %] + + [%# Add a hidden button at the top of the form so that the user pressing "return" + # really submit the form, as expected. %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Name: + a short name identifying this type
    + +
    Description: + a comprehensive description of this type
    + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 80 + defaultcontent = type.description + %] +
    Category: + the products/components to which [% typeLabelLowerPlural %] must + (inclusions) or must not (exclusions) belong in order for users + to be able to set flags of this type for them + + + + + + +
    + Product/Component:
    +
    +
    + + +
    + Inclusions:
    + [% PROCESS "global/select-menu.html.tmpl" name="inclusion_to_remove" multiple="1" size="7" options=type.inclusions %]
    + +
    + Exclusions:
    + [% PROCESS "global/select-menu.html.tmpl" name="exclusion_to_remove" multiple="1" size="7" options=type.exclusions %]
    + +
    +
    Sort Key: + a number between 1 and 32767 by which this type will be sorted + when displayed to users in a list; ignore if you don't care + what order the types appear in or if you want them to appear + in alphabetical order
    + +
      + + +
      + + +
    CC List: + if requestable, who should get carbon copied on email notification of requests. + This is a comma-separated list of full e-mail addresses which do not + need to be [% terms.Bugzilla %] logins. + [% IF Param('emailsuffix') %] + Note that the configured emailsuffix + [% Param('emailsuffix') %] will not be appended + to these addresses, so you should add it explicitly if so desired. + [% END %]
    + +
      + + +
      + + +
    Grant Group: + the group allowed to grant/deny flags of this type + (to allow all users to grant/deny these flags, select no group)
    + [% PROCESS select selname = "grant_group" %] +
    Request Group: + if flags of this type are requestable, the group allowed to request them + (to allow all users to request these flags, select no group)
    + Note that the request group alone has no effect if the grant group is not defined!
    + [% PROCESS select selname = "request_group" %] +
    + +
    + +
    + +[% PROCESS global/footer.html.tmpl %] + + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + +[% END %] diff --git a/template/en/default/admin/flag-type/list.html.tmpl b/template/en/default/admin/flag-type/list.html.tmpl new file mode 100644 index 0000000..220db89 --- /dev/null +++ b/template/en/default/admin/flag-type/list.html.tmpl @@ -0,0 +1,174 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/js-products.html.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = 'Administer Flag Types' + style = " + table#flag_types_bugs tr th, + table#flag_types_attachments tr th { text-align: left; } + .inactive { color: #787878; } + .multiplicable { display: block; } + " + onload="var f = document.flagtype_form; selectProduct(f.product, f.component, null, null, '__All__');" + javascript_urls=["js/productform.js"] + doc_section = "flags-overview.html#flag-types" +%] + +

    + Flags are markers that identify whether [% terms.abug %] or attachment has been granted + or denied some status. Flags appear in the UI as a name and a status symbol + ("+" for granted, "-" for denied, and "?" for statuses requested by users). +

    + +

    + For example, you might define a "review" status for users to request review + for their patches. When a patch writer requests review, the string "review?" + will appear in the attachment. When a patch reviewer reviews the patch, + either the string "review+" or the string "review-" will appear in the patch, + depending on whether the patch passed or failed review. +

    + +

    + You can restrict the list of flag types to those available for a given product + and component. If a product is selected with no component, only flag types + which are available to at least one component of the product are shown. +

    + +
    + + + + + + + + + +
    + + + + + + +
    +
    + +

    Flag Types for [% terms.Bugs %]

    + +[% PROCESS display_flag_types types=bug_types types_id='bugs' %] + +

    + Create Flag Type for [% terms.Bugs %] +

    + +

    Flag Types for Attachments

    + +[% PROCESS display_flag_types types=attachment_types types_id='attachments' %] + +

    + Create Flag Type For Attachments +

    + +[% PROCESS global/footer.html.tmpl %] + + +[% BLOCK display_flag_types %] + + + + + + + + + + [% IF show_flag_counts %] + + [%# Note to translators: translate the strings in quotes only. %] + [% state_desc = {granted = 'granted' denied = 'denied' pending = 'pending'} %] + [% END %] + + + + [% FOREACH type = types %] + + + + + + + + + [% IF show_flag_counts %] + + [% END %] + + + + [% END %] + +
    Edit name ...DescriptionSortkeyPropertiesGrant groupRequest groupFlagsActions
    [% type.name FILTER html FILTER no_break %][% type.description FILTER html %][% type.sortkey FILTER html %] + [% IF type.is_requestable %] + requestable + [% END %] + [% IF type.is_requestable && type.is_requesteeble %] + (specifically) + [% END %] + [% IF type.is_multiplicable %] + multiplicable + [% END %] + [% IF type.grant_group %][% type.grant_group.name FILTER html %][% END %][% IF type.request_group %][% type.request_group.name FILTER html %][% END %] + [% FOREACH state = ['granted', 'pending', 'denied'] %] + [% bug_list = bug_lists.${type.id}.$state || [] %] + [% IF bug_list.size %] + + [% bug_list.size FILTER html %] [%+ state_desc.$state FILTER html %] + +
    + [% ELSE %] + 0 [% state_desc.$state FILTER html %]
    + [% END %] + [% END %] +
    + Copy + | Delete +
    +[% END %] diff --git a/template/en/default/admin/groups/confirm-remove.html.tmpl b/template/en/default/admin/groups/confirm-remove.html.tmpl new file mode 100644 index 0000000..cdb070d --- /dev/null +++ b/template/en/default/admin/groups/confirm-remove.html.tmpl @@ -0,0 +1,66 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Joel Peshkin + # Jacob Steenhagen + # Vlad Dascalu + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # group: The Bugzilla::Group being changed. + # regexp: the regexp according to which the update is performed. + #%] + +[% IF regexp %] + [% title = "Confirm: Remove Explicit Members in the Regular Expression?" %] +[% ELSE %] + [% title = "Confirm: Remove All Explicit Members?" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "groups.html" +%] + +[% IF regexp %] +

    This option will remove all users from '[% group.name FILTER html %]' + whose login names match the regular expression: + '[% regexp FILTER html %]'

    +[% ELSE %] +

    This option will remove all explicitly defined users + from '[% group.name FILTER html %].'

    +[% END %] + +

    Generally, you will only need to do this when upgrading groups + created with [% terms.Bugzilla %] versions 2.16 and earlier. Use + this option with extreme care and consult the documentation + for further information. +

    + +
    + + + + + + +

    Or return to the Edit Groups page.

    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/groups/create.html.tmpl b/template/en/default/admin/groups/create.html.tmpl new file mode 100644 index 0000000..b3ac723 --- /dev/null +++ b/template/en/default/admin/groups/create.html.tmpl @@ -0,0 +1,102 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Joel Peshkin + # Jacob Steenhagen + # Vlad Dascalu + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS global/header.html.tmpl + title = "Add group" + subheader = "This page allows you to define a new user group." + doc_section = "groups.html#create-groups" +%] + +
    + + + + + + + + + + + + + + + + [% Hook.process('field') %] +
    New NameNew DescriptionNew User RegExpUse For [% terms.Bugs %]
    Icon URL:
    + +
    + + + +

    + + + +

    + +

    Name is what is used with the Bugzilla->user->in_group() +function in any customized cgi files you write that use a given group. +It can also be used by people submitting [% terms.bugs %] by email to +limit [% terms.abug %] to a certain set of groups.

    + +

    Description is what will be shown in the [% terms.bug %] reports +to members of the group where they can choose whether +the [% terms.bug %] will be restricted to others in the same group.

    + +

    The Use For [% terms.Bugs %] flag determines whether or not the +group is eligible to be used for [% terms.bugs %]. If you clear this, it will +no longer be possible for users to add [% terms.bugs %] to this group, +although [% terms.bugs %] already in the group will remain in the group. +Doing so is a much less drastic way to stop a group from growing +than deleting the group would be. Note: If you are creating +a group, you probably want it to be usable for [% terms.bugs %], in which +case you should leave this checked.

    + +

    User RegExp is optional, and if filled in, will +automatically grant membership to this group to anyone with an +email address that matches this regular expression.

    + +

    + Icon URL is optional, and is the URL pointing to the icon + used to identify the group. It may be either a relative URL to the base URL + of this installation or an absolute URL. This icon will be displayed + in comments in [% terms.bugs %] besides the name of the author of comments. +

    + +

    By default, the new group will be associated with existing +products. Unchecking the "Insert new group into all existing +products" option will prevent this and make the group become +visible only when its controls have been added to a product.

    + +

    Back to the main [% terms.bugs %] page + +or to the group list. + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/groups/delete.html.tmpl b/template/en/default/admin/groups/delete.html.tmpl new file mode 100644 index 0000000..9d32da4 --- /dev/null +++ b/template/en/default/admin/groups/delete.html.tmpl @@ -0,0 +1,187 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Joel Peshkin + # Jacob Steenhagen + # Vlad Dascalu + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # group: A Bugzilla::Group object representing the group that is + # about to be deleted. + # shared_queries: int; The number of queries being shared with this + # group. + #%] + + +[% PROCESS global/header.html.tmpl + title = "Delete group" + doc_section = "groups.html" +%] + + + + + + + + + + + + +
    IdNameDescription
    [% group.id FILTER html %][% group.name FILTER html %][% group.description FILTER html_light %]
    + +

    + [% IF group.members_non_inherited.size %] +

    [% group.members_non_inherited.size FILTER html %] users belong + directly to this group. You cannot delete this group while there are + users in it. + +
    Show + me which users -

    + [% END %] + + [% IF group.granted_by_direct(constants.GROUP_MEMBERSHIP).size %] +

    Members of this group inherit membership in the following groups:

    +
      + [% FOREACH grantor = group.granted_by_direct(constants.GROUP_MEMBERSHIP) %] +
    • [% grantor.name FILTER html %]
    • + [% END %] +
    + [% END %] + + [% IF group.bugs.size %] +

    [% group.bugs.size FILTER html %] [%+ terms.bug %] reports are + visible only to this group. You cannot delete this group while any + [%+ terms.bugs %] are using it. + +
    Show me + which [% terms.bugs %] - +

    + +

    NOTE: It's quite possible to make confidential [% terms.bugs %] + public by checking this box. It is strongly suggested + that you review the [% terms.bugs %] in this group before checking + the box.

    + [% END %] + + [% IF group.products.size %] +

    This group is tied to the following products:

    + [% SET any_hidden = 0 %] +
      + [% FOREACH data = group.products %] + + [% SET active = [] %] + [% FOREACH control = data.controls.keys.sort %] + [% NEXT IF !data.controls.$control %] + [% IF control == 'othercontrol' OR control == 'membercontrol' %] + [% SWITCH data.controls.$control %] + [% CASE constants.CONTROLMAPMANDATORY %] + [% SET type = "Mandatory" %] + [% CASE constants.CONTROLMAPSHOWN %] + [% SET type = "Shown" %] + [% CASE constants.CONTROLMAPDEFAULT %] + [% SET type = "Default" %] + [% END %] + [% active.push("$control: $type") %] + [% ELSE %] + [% active.push(control) %] + [% END %] + [% END %] + + [% SET hidden = 0 %] + [% IF data.controls.othercontrol == constants.CONTROLMAPMANDATORY + AND data.controls.membercontrol == constants.CONTROLMAPMANDATORY + AND data.controls.entry + %] + [% SET hidden = 1 %] + [% END %] + +
    • + [%- data.product.name FILTER html %] + ([% active.join(', ') FILTER html %]) + [% IF hidden %] + WARNING: This product is currently hidden. + Deleting this group will make this product publicly visible. + + [% END %]
    • + [% END %] +
    + +

    + [% END %] + + [% IF group.flag_types.size %] +

    This group restricts who can make changes to flags of certain types. + You cannot delete this group while there are flag types using it. + +
    Show + me which types - +

    + [% END %] + + [% IF shared_queries %] +

    + There + [% IF shared_queries > 1 %] + are [% shared_queries %] saved searches + [% ELSE %] + is a saved search + [% END %] + being shared with this group. + If you delete this group, + [% IF shared_queries > 1 %] + these saved searches + [% ELSE %] + this saved search + [% END %] + will fall back to being private again. +

    + [% END %] + +

    Confirmation

    + +

    Do you really want to delete this group?

    + [% IF group.users.size || group.bugs.size || group.products.size + || group.flags.size + %] +

    You must check all of the above boxes or correct the + indicated problems first before you can proceed.

    + [% END %] + +

    + + + + +

    +
    + +Go back to the group list. + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/groups/edit.html.tmpl b/template/en/default/admin/groups/edit.html.tmpl new file mode 100644 index 0000000..f7fd308 --- /dev/null +++ b/template/en/default/admin/groups/edit.html.tmpl @@ -0,0 +1,249 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Joel Peshkin + # Jacob Steenhagen + # Vlad Dascalu + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # group - A Bugzilla::Group representing the group being edited. + # *_current - Arrays of Bugzilla::Group objects that show the current + # values for this group, as far as grants. + # *_available - Arrays of Bugzilla::Group objects that show the current + # available values for each grant. + #%] + +[% title = BLOCK %]Change Group: [% group.name FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "groups.html#edit-groups" + style = " + .grant_table { border-collapse: collapse; } + .grant_table td, .grant_table th { + padding-left: .5em; + } + .grant_table td.one, .grant_table th.one { + border-right: 1px solid black; + padding-right: .5em; + } + " +%] + +
    + + + + + + + + + + + + + + + + + + + + + + + + + [% IF group.is_bug_group %] + + + + + [% END %] + [% Hook.process('field') %] +
    Group: + [% IF group.is_bug_group %] + + [% ELSE %] + [% group.name FILTER html %] + [% END %] +
    Description: + [% IF group.is_bug_group %] + + [% ELSE %] + [% group.description FILTER html %] + [% END %] +
    User Regexp: + +
    + Icon URL: + [% IF group.icon_url %] + [% group.name FILTER html %] + [% END %] + + +
    Use For [% terms.Bugs %]: + +
    + +

    Group Permissions

    + + + + + + + + + + + +
    Groups That Are a Member of This Group
    + ("Users in X are automatically in + [%+ group.name FILTER html %]")
    Groups That This Group Is a Member Of
    + ("If you are in [% group.name FILTER html %], you are + automatically also in...")
    + [% PROCESS select_pair name = "members" size = 10 + items_available = members_available + items_current = members_current %] + [% PROCESS select_pair name = "member_of" size = 10 + items_available = member_of_available + items_current = member_of_current %]
    + + + + + + + + + + +
    + Groups That Can Grant Membership in This Group
    + ("Users in X can add other users to + [%+ group.name FILTER html %]") + +
    Groups That This Group Can Grant Membership In
    + ("Users in [% group.name FILTER html %] can add users to...") +
    + [% PROCESS select_pair name = "bless_from" size = 10 + items_available = bless_from_available + items_current = bless_from_current %] + [% PROCESS select_pair name = "bless_to" size = 10 + items_available = bless_to_available + items_current = bless_to_current %] +
    + + [% IF Param('usevisibilitygroups') %] + + + + + + + + + +
    + Groups That Can See This Group
    + ("Users in X can see users in + [%+ group.name FILTER html %]") +
    Groups That This Group Can See
    + ("Users in [% group.name FILTER html %] can see users in...") +
    + [% PROCESS select_pair name = "visible_from" size = 10 + items_available = visible_from_available + items_current = visible_from_current %] + [% PROCESS select_pair name = "visible_to_me" size = 10 + items_available = visible_to_me_available + items_current = visible_to_me_current %] +
    + [% END %] + + + +
    + +

    Mass Remove

    + +

    You can use this form to do mass-removal of users from groups. + This is often very useful if you upgraded from [% terms.Bugzilla %] + 2.16.

    + +
    +
    +
    + Remove all explicit memberships from users whose login names + match the following regular expression: + + + +

    If you leave the field blank, all explicit memberships in + this group will be removed.

    + + + +
    +
    +
    + +

    Back to the group list.

    + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK select_pair %] + + + + + + + + + +
    + + + +
    +[% END %] diff --git a/template/en/default/admin/groups/list.html.tmpl b/template/en/default/admin/groups/list.html.tmpl new file mode 100644 index 0000000..1d137dc --- /dev/null +++ b/template/en/default/admin/groups/list.html.tmpl @@ -0,0 +1,168 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Joel Peshkin + # Jacob Steenhagen + # Vlad Dascalu + #%] + +[%# INTERFACE: + # groups: array with group objects having the properties: + # - id: number. The ID of the group. + # - name: string. The name of the group. + # - description: string. The description of the group. + # - userregexp: string. The user regexp for the given group. + # - isactive: boolean int. Specifies if the group is active or not. + # - isbuggroup: boolean int. Specifies if it can be used for bugs. + #%] + +[% PROCESS global/header.html.tmpl + title = "Edit Groups" + subheader = "This lets you edit the groups available to put users in." + doc_section = "groups.html" +%] + +[% edit_contentlink = "editgroups.cgi?action=changeform&group=%%id%%" %] +[% del_contentlink = "editgroups.cgi?action=del&group=%%id%%" %] + +[% columns = + [{name => 'name' + heading => 'Name' + contentlink => edit_contentlink + } + {name => 'description' + heading => 'Description' + allow_html_content => 1 + } + {name => 'userregexp' + heading => 'User RegExp' + } + {name => 'is_active_bug_group' + heading => "Use For $terms.Bugs" + align => 'center' + } + {name => 'type' + heading => 'Type' + align => 'center' + } + {name => 'action' + heading => 'Action' + } + ] +%] + +[% overrides.is_active_bug_group = { + 'is_active_bug_group' => { + "0" => { + override_content => 1 + content => " " + } + "1" => { + override_content => 1 + content => "X" + } + } + } + + overrides.userregexp = { + 'userregexp' => { + "" => { + override_content => 1 + content => " " + } + } + } +%] + +[% FOREACH group IN ["chartgroup", "insidergroup", "timetrackinggroup", "querysharegroup"] %] + [% special_group = Param(group) %] + + [% IF special_group %] + [% overrides.action.name.$special_group = { + override_content => 1 + content => "(used as the '$group')" + } + %] + [% END %] +[% END %] + +[% overrides.action.isbuggroup = { + "1" => { + override_content => 1 + content => "Delete" + override_contentlink => 1 + contentlink => del_contentlink + } + } + + overrides.type.isbuggroup = { + "0" => { + override_content => 1 + content => "system" + } + "1" => { + override_content => 1 + content => "user" + } + } +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = groups + overrides = overrides +%] + +

    Add Group

    + +

    + Name is what is used with the Bugzilla->user->in_group() +function in any customized cgi files you write that use a given group. +It can also be used by people submitting [% terms.bugs %] by email to +limit [% terms.abug %] to a certain set of groups. +

    + +

    + Description is what will be shown in the [% terms.bug %] reports +to members of the group where they can choose whether the [% terms.bug %] +will be restricted to others in the same group. +

    + +

    + User RegExp is optional, and if filled in, will automatically +grant membership to this group to anyone with an email address +that matches this perl regular expression. Do not forget +the trailing '$'. Example '@mycompany\.com$' +

    + +

    + The Use For [% terms.Bugs %] flag determines whether or not +the group is eligible to be used for [% terms.bugs %]. If you remove +this flag, it will no longer be possible for users to add [% terms.bugs %] +to this group, although [% terms.bugs %] already in the group will remain +in the group. Doing so is a much less drastic way to stop a group +from growing than deleting the group as well as a way to maintain +lists of users without cluttering the lists of groups used +for [% terms.bug %] restrictions. +

    + +

    + The Type field identifies system groups. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/confirm-delete.html.tmpl b/template/en/default/admin/keywords/confirm-delete.html.tmpl new file mode 100644 index 0000000..20a6dee --- /dev/null +++ b/template/en/default/admin/keywords/confirm-delete.html.tmpl @@ -0,0 +1,53 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Vlad Dascalu + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # keyword: A Bugzilla::Keyword object. + #%] + +[% PROCESS global/header.html.tmpl + title = "Delete Keyword" +%] + +

    + [% IF keyword.bug_count == 1 %] + There is one [% terms.bug %] with this keyword set. + [% ELSIF keyword.bug_count > 1 %] + There are [% keyword.bug_count FILTER html %] [%+ terms.bugs %] with + this keyword set. + [% END %] + + Are you sure you want to delete + the [% keyword.name FILTER html %] keyword? +

    + +
    + + + + +
    + +

    Edit other keywords.

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/create.html.tmpl b/template/en/default/admin/keywords/create.html.tmpl new file mode 100644 index 0000000..e5d6aa0 --- /dev/null +++ b/template/en/default/admin/keywords/create.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Vlad Dascalu + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS global/header.html.tmpl + title = "Add keyword" + subheader = "This page allows you to add a new keyword." +%] + +
    + + + + + + + + + +
    Name:
    Description: + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + %] +
    +
    + + + + +
    + +

    Edit other keywords.

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/edit.html.tmpl b/template/en/default/admin/keywords/edit.html.tmpl new file mode 100644 index 0000000..c4b9a64 --- /dev/null +++ b/template/en/default/admin/keywords/edit.html.tmpl @@ -0,0 +1,73 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Vlad Dascalu + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # keyword: A Bugzilla::Keyword object. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit keyword" +%] + +
    + + + + + + + + + + + + + +
    Name:
    Description: + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + defaultcontent = keyword.description + %] +
    [% terms.Bugs %]: + [% IF keyword.bug_count > 0 %] + + [% keyword.bug_count FILTER html %] + [% ELSE %] + none + [% END %] +
    + + + + + +
    + +

    Edit other keywords.

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/list.html.tmpl b/template/en/default/admin/keywords/list.html.tmpl new file mode 100644 index 0000000..c400a23 --- /dev/null +++ b/template/en/default/admin/keywords/list.html.tmpl @@ -0,0 +1,70 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Vlad Dascalu + # Jouni Heikniemi + #%] + +[%# INTERFACE: + # keywords: array keyword objects having the properties: + # - id: number. The ID of the keyword. + # - name: string. The name of the keyword. + # - description: string. The description of the keyword. + # - bug_count: number. The number of bugs with the keyword. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Select keyword" +%] + +[% columns = [ + { + name => "name" + heading => "Edit keyword..." + contentlink => "editkeywords.cgi?action=edit&id=%%id%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "bug_count" + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?keywords=%%name%%" + }, + { + heading => "Action" + content => "Delete" + contentlink => "editkeywords.cgi?action=del&id=%%id%%" + } + ] +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = keywords + footer = footer_row +%] + +

    Add a new keyword

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/confirm-delete.html.tmpl b/template/en/default/admin/milestones/confirm-delete.html.tmpl new file mode 100644 index 0000000..ea89b80 --- /dev/null +++ b/template/en/default/admin/milestones/confirm-delete.html.tmpl @@ -0,0 +1,98 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + # milestone: object; Bugzilla::Milestone object representing the + # milestone the user wants to delete. + #%] + +[% title = BLOCK %]Delete Milestone of Product '[% product.name FILTER html %]' + [% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] + + + + + + + + + + + + + + + + + + +
    FieldValue
    Milestone:[% milestone.name FILTER html %]
    Milestone of Product:[% product.name FILTER html %]
    [% terms.Bugs %]: +[% IF milestone.bug_count %] + + [% milestone.bug_count FILTER none %] +[% ELSE %] + None +[% END %] +
    + +

    Confirmation

    + +[% IF milestone.bug_count %] + + + +
    + There + [% IF milestone.bug_count > 1 %] + are [% milestone.bug_count FILTER none %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + entered for this milestone! When you delete this milestone, + ALL of these [% terms.bugs %] will be retargeted + to [% product.default_milestone FILTER html %], the default milestone for + the [% product.name FILTER html %] product. +
    + +[% END %] + +

    Do you really want to delete this milestone?

    + +

    + + + + + +
    + +[% PROCESS admin/milestones/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/create.html.tmpl b/template/en/default/admin/milestones/create.html.tmpl new file mode 100644 index 0000000..d7c2f58 --- /dev/null +++ b/template/en/default/admin/milestones/create.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + #%] + +[% title = BLOCK %]Add Milestone to Product '[% product.name FILTER html %]'[% END %] +[% subheader = BLOCK %]This page allows you to add a new milestone to product + '[% product.name FILTER html %]'.[% END %] +[% PROCESS global/header.html.tmpl + title = title + subheader = subheader + onload = "document.forms['f'].milestone.focus()" +%] + +
    + + + + + + + + + +
    + + + + +
    + +[% PROCESS admin/milestones/footer.html.tmpl + no_add_milestone_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/edit.html.tmpl b/template/en/default/admin/milestones/edit.html.tmpl new file mode 100644 index 0000000..dfe9d1b --- /dev/null +++ b/template/en/default/admin/milestones/edit.html.tmpl @@ -0,0 +1,63 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + # milestone: object; Bugzilla::Milestone object representing the + # milestone the user wants to edit. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Edit Milestone '[% milestone.name FILTER html %]' of product ' + [%- product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title + onload = "document.forms['f'].milestone.select()" +%] + +
    + + + + + + + + + + + +
    + + + + + + +
    + +[% PROCESS admin/milestones/footer.html.tmpl + no_edit_milestone_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/footer.html.tmpl b/template/en/default/admin/milestones/footer.html.tmpl new file mode 100644 index 0000000..e91e5f9 --- /dev/null +++ b/template/en/default/admin/milestones/footer.html.tmpl @@ -0,0 +1,67 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + # + # milestone: object; Bugzilla::Milestone object representing the + # milestone. + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_milestone_link + # no_edit_other_milestones_link + # no_add_milestone_link + #%] + +
    + +

    + +[% UNLESS no_add_milestone_link %] + Add a milestone. +[% END %] + +[% IF milestone.name && !no_edit_milestone_link %] + Edit milestone + '[% milestone.name FILTER html %]'. +[% END %] + +[% UNLESS no_edit_other_milestones_link %] + Edit other milestones of product '[% product.name FILTER html %]'. + +[% END %] + + Edit product '[% product.name FILTER html %]'. + +

    diff --git a/template/en/default/admin/milestones/list.html.tmpl b/template/en/default/admin/milestones/list.html.tmpl new file mode 100644 index 0000000..9422855 --- /dev/null +++ b/template/en/default/admin/milestones/list.html.tmpl @@ -0,0 +1,108 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestones belongs. + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select milestone of product + '[% product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editmilestones.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&milestone=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editmilestones.cgi?action=del&product= + [%- product.name FILTER url_quote %]&milestone=%%name%%[% END %] +[% bug_count_contentlink = BLOCK %]buglist.cgi?target_milestone=%%name%%&product= + [%- product.name FILTER url_quote %][% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit milestone..." + contentlink => edit_contentlink + }, + { + name => "sortkey" + heading => "Sortkey" + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => "bug_count" + heading => "$terms.Bugs" + align => "right" + contentlink => bug_count_contentlink + }) + %] + +[% END %] + +[% columns.push({ + name => "action" + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) +%] + +[%# We want to override the usual 'Delete' link for the default milestone %] +[% overrides.action.name.${product.default_milestone} = { + override_content => 1 + content => "(Default milestone)" + override_contentlink => 1 + contentlink => undef + } +%] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = product.milestones + overrides = overrides +%] + +[% IF ! showbugcounts %] + +

    + Redisplay table with [% terms.bug %] counts (slower)

    + +[% END %] + +[% PROCESS admin/milestones/footer.html.tmpl + no_edit_other_milestones_link = 1 +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/select-product.html.tmpl b/template/en/default/admin/milestones/select-product.html.tmpl new file mode 100644 index 0000000..587db6d --- /dev/null +++ b/template/en/default/admin/milestones/select-product.html.tmpl @@ -0,0 +1,70 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + # + #%] + +[%# INTERFACE: + # products: array of product objects + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit milestones for which product?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit milestones of..." + contentlink => "editmilestones.cgi?product=%%name%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?product=%%name%%" + }) + %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] +

    + Redisplay table with [% terms.bug %] counts (slower)

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/params/admin.html.tmpl b/template/en/default/admin/params/admin.html.tmpl new file mode 100644 index 0000000..dd83ebb --- /dev/null +++ b/template/en/default/admin/params/admin.html.tmpl @@ -0,0 +1,41 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Administrative Policies" + desc = "Set up account policies" +%] + +[% param_descs = { + allowbugdeletion => "The pages to edit products and components can delete all " _ + "associated $terms.bugs when you delete a product (or component). " _ + "Since that is a pretty scary idea, you have to turn on " _ + "this option before any such deletions will ever happen.", + + allowemailchange => "Users can change their own email address through the preferences. " _ + "Note that the change is validated by emailing both addresses, so " _ + "switching this option on will not let users use an invalid address.", + + allowuserdeletion => "The user editing pages are capable of letting you delete user accounts. " _ + "$terms.Bugzilla will issue a warning in case you'd run into inconsistencies " _ + "when you're about to do so, but such deletions remain kinda scary. " _ + "So, you have to turn on this option before any such deletions " _ + "will ever happen." } +%] \ No newline at end of file diff --git a/template/en/default/admin/params/advanced.html.tmpl b/template/en/default/admin/params/advanced.html.tmpl new file mode 100644 index 0000000..4caa2f1 --- /dev/null +++ b/template/en/default/admin/params/advanced.html.tmpl @@ -0,0 +1,50 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] + +[% + title = "Advanced" + desc = "Settings for advanced configurations." +%] + +[% param_descs = { + cookiedomain => + "If your website is at 'www.foo.com', setting this to" + _ " '.foo.com' will also allow 'bar.foo.com' to access" + _ " $terms.Bugzilla cookies. This is useful if you have more than" + _ " one hostname pointing at the same web server, and you" + _ " want them to share the $terms.Bugzilla cookie.", + + inbound_proxies => + "When inbound traffic to $terms.Bugzilla goes through a proxy," + _ " $terms.Bugzilla thinks that the IP address of every single" + _ " user is the IP address of the proxy. If you enter a comma-separated" + _ " list of IPs in this parameter, then $terms.Bugzilla will trust any" + _ " X-Forwarded-For header sent from those IPs," + _ " and use the value of that header as the end user's IP address.", + + proxy_url => + "$terms.Bugzilla may have to access the web to get notifications about" + _ " new releases (see the upgrade_notification parameter)." + _ " If your $terms.Bugzilla server is behind a proxy, it may be" + _ " necessary to enter its URL if the web server cannot access the" + _ " HTTP_PROXY environment variable. If you have to authenticate," + _ " use the http://user:pass@proxy_url/ syntax.", +} %] diff --git a/template/en/default/admin/params/attachment.html.tmpl b/template/en/default/admin/params/attachment.html.tmpl new file mode 100644 index 0000000..7d1e29f --- /dev/null +++ b/template/en/default/admin/params/attachment.html.tmpl @@ -0,0 +1,76 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Attachments" + desc = "Set up attachment options" +%] + +[% param_descs = { + allow_attachment_display => + "If this option is on, users will be able to view attachments from" + _ " their browser, if their browser supports the attachment's MIME type." + _ " If this option is off, users are forced to download attachments," + _ " even if the browser is able to display them." + _ "

    This is a security restriction for installations where untrusted" + _ " users may upload attachments that could be potentially damaging if" + _ " viewed directly in the browser.

    " + _ "

    It is highly recommended that you set the attachment_base" + _ " parameter if you turn this parameter on.", + + attachment_base => + "When the allow_attachment_display parameter is on, it is " + _ " possible for a malicious attachment to steal your cookies or" + _ " perform an attack on $terms.Bugzilla using your credentials." + _ "

    If you would like additional security on attachments to avoid" + _ " this, set this parameter to an alternate URL for your $terms.Bugzilla" + _ " that is not the same as urlbase or sslbase." + _ " That is, a different domain name that resolves to this exact" + _ " same $terms.Bugzilla installation.

    " + _ "

    Note that if you have set the" + _ " cookiedomain" + _" parameter, you should set attachment_base to use a" + _ " domain that would not be matched by" + _ " cookiedomain.

    " + _ "

    For added security, you can insert %bugid% into the URL," + _ " which will be replaced with the ID of the current $terms.bug that" + _ " the attachment is on, when you access an attachment. This will limit" + _ " attachments to accessing only other attachments on the same" + _ " ${terms.bug}. Remember, though, that all those possible domain names " + _ " (such as 1234.your.domain.com) must point to this same" + _ " $terms.Bugzilla instance.", + + allow_attachment_deletion => "If this option is on, administrators will be able to delete " _ + "the content of attachments.", + + allow_attach_url => "If this option is on, it will be possible to " _ + "specify a URL when creating an attachment and " _ + "treat the URL itself as if it were an attachment.", + + maxattachmentsize => "The maximum size (in kilobytes) of attachments. " _ + "$terms.Bugzilla will not accept attachments greater than this number " _ + "of kilobytes in size. Setting this parameter to 0 will prevent " _ + "attaching files to ${terms.bugs}.", + + maxlocalattachment => "The maximum size (in megabytes) of attachments identified by " _ + "the user as 'Big Files' to be stored locally on the webserver. " _ + "If set to zero, attachments will never be kept on the local " _ + "filesystem." } +%] diff --git a/template/en/default/admin/params/auth.html.tmpl b/template/en/default/admin/params/auth.html.tmpl new file mode 100644 index 0000000..d2cb3e5 --- /dev/null +++ b/template/en/default/admin/params/auth.html.tmpl @@ -0,0 +1,129 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + # Marc Schumann + #%] +[% + title = "User Authentication" + desc = "Set up your authentication policies" +%] + +[% param_descs = { + auth_env_id => "Environment variable used by external authentication system " _ + "to store a unique identifier for each user. Leave it blank " _ + "if there isn't one or if this method of authentication " _ + "is not being used.", + + auth_env_email => "Environment variable used by external authentication system " _ + "to store each user's email address. This is a required " _ + "field for environmental authentication. Leave it blank " _ + "if you are not going to use this feature.", + + auth_env_realname => "Environment variable used by external authentication system " _ + "to store the user's real name. Leave it blank if there " _ + "isn't one or if this method of authentication is not being " _ + "used.", + + user_info_class => "Mechanism(s) to be used for gathering a user's login information. + More than one may be selected. If the first one returns nothing, + the second is tried, and so on.
    + The types are: +

    +
    CGI
    +
    + Asks for username and password via CGI form interface. +
    +
    Env
    +
    + Info for a pre-authenticated user is passed in system + environment variables. +
    +
    ", + + user_verify_class => "Mechanism(s) to be used for verifying (authenticating) information + gathered by user_info_class. + More than one may be selected. If the first one cannot find the + user, the second is tried, and so on.
    + The types are: +
    +
    DB
    +
    + ${terms.Bugzilla}'s built-in authentication. This is the most common + choice. +
    +
    RADIUS
    +
    + RADIUS authentication using a RADIUS server. + This method is experimental; please see the + $terms.Bugzilla documentation for more information. + Using this method requires + additional + parameters to be set. +
    +
    LDAP
    +
    + LDAP authentication using an LDAP server. + Please see the $terms.Bugzilla documentation + for more information. Using this method requires + additional + parameters to be set. +
    +
    ", + + rememberlogin => "Controls management of session cookies +
      +
    • + on - Session cookies never expire (the user has to login only + once per browser). +
    • +
    • + off - Session cookies last until the users session ends (the user + will have to login in each new browser session). +
    • +
    • + defaulton/defaultoff - Default behavior as described + above, but user can choose whether $terms.Bugzilla will remember his + login or not. +
    • +
    ", + + requirelogin => "If this option is set, all access to the system beyond the " _ + "front page will require a login. No anonymous users will " _ + "be permitted.", + + emailregexp => "This defines the regexp to use for legal email addresses. The " _ + "default tries to match fully qualified email addresses. Another " _ + "popular value to put here is ^[^@]+$, which means " _ + "'local usernames, no @ allowed.'", + + emailregexpdesc => "This describes in English words what kinds of legal addresses " _ + "are allowed by the emailregexp param.", + + emailsuffix => "This is a string to append to any email addresses when actually " _ + "sending mail to that address. It is useful if you have changed " _ + "the emailregexp param to only allow local usernames, " _ + "but you want the mail to be delivered to username@my.local.hostname.", + + createemailregexp => "This defines the regexp to use for email addresses that are " _ + "permitted to self-register using a 'New Account' feature. The " _ + "default (.*) permits any account matching the emailregexp " _ + "to be created. If this parameter is left blank, no users " _ + "will be permitted to create their own accounts and all accounts " _ + "will have to be created by an administrator." } +%] diff --git a/template/en/default/admin/params/authenv.html.tmpl b/template/en/default/admin/params/authenv.html.tmpl new file mode 100644 index 0000000..b57aae3 --- /dev/null +++ b/template/en/default/admin/params/authenv.html.tmpl @@ -0,0 +1,29 @@ +[%# 1.0@bugzilla.org %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "AuthEnv Extension" + desc = "Set up your Bugzilla::AuthEnv extension" +%] + +[% param_descs = { + allowloginid => "Enable or disable maintenance of the login ID." } +%] diff --git a/template/en/default/admin/params/bugchange.html.tmpl b/template/en/default/admin/params/bugchange.html.tmpl new file mode 100644 index 0000000..9f456ee --- /dev/null +++ b/template/en/default/admin/params/bugchange.html.tmpl @@ -0,0 +1,51 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "$terms.Bug Change Policies" + desc = "Set up $terms.bug change policies" +%] + +[% param_descs = { + duplicate_or_move_bug_status => "When $terms.abug is marked as a duplicate of another one " _ + "or is moved to another installation, use this $terms.bug status." + + letsubmitterchoosepriority => "If this is on, then people submitting $terms.bugs can " _ + "choose an initial priority for that ${terms.bug}. " _ + "If off, then all $terms.bugs initially have the default " _ + "priority selected below.", + + letsubmitterchoosemilestone => "If this is on, then people submitting $terms.bugs can " _ + "choose the Target Milestone for that ${terms.bug}. " _ + "If off, then all $terms.bugs initially have the default " _ + "milestone for the product being filed in.", + + musthavemilestoneonaccept => "If you are using Target Milestone, do you want to require that " _ + "the milestone be set in order for a user to ACCEPT a ${terms.bug}?", + + commentonchange_resolution => "If this option is on, the user needs to enter a short " _ + "comment if the resolution of the $terms.bug changes.", + + commentonduplicate => "If this option is on, the user needs to enter a short comment " _ + "if the $terms.bug is marked as duplicate.", + + noresolveonopenblockers => "Don\'t allow $terms.bugs to be resolved as fixed " _ + "if they have unresolved dependencies." } +%] diff --git a/template/en/default/admin/params/bugfields.html.tmpl b/template/en/default/admin/params/bugfields.html.tmpl new file mode 100644 index 0000000..794f925 --- /dev/null +++ b/template/en/default/admin/params/bugfields.html.tmpl @@ -0,0 +1,66 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "$terms.Bug Fields" + desc = "Choose fields you want to display" +%] + +[% param_descs = { + useclassification => "If this is on, $terms.Bugzilla will associate each product with a " _ + "specific classification. But you must have 'editclassification' " _ + "permissions enabled in order to edit classifications.", + + usetargetmilestone => "Do you wish to use the Target Milestone field?", + + useqacontact => "Do you wish to use the QA Contact field?", + + usestatuswhiteboard => "Do you wish to use the Status Whiteboard field?", + + usevotes => "Do you wish to allow users to vote for ${terms.bugs}? Note that in order " _ + "for this to be effective, you will have to change the maximum " _ + "votes allowed in a product to be non-zero in " _ + "the product edit page.", + + usebugaliases => "Do you wish to use $terms.bug aliases, which allow you to assign " _ + "$terms.bugs an easy-to-remember name by which you can refer to them?", + + use_see_also => + "Do you wish to use the See Also field? It allows you refer to" + _ " $terms.bugs in other installations. Even if you disable this field," + _ " $terms.bug relationships (URLs) already set on $terms.bugs will" + _ " still appear and can be removed.", + + defaultpriority => "This is the priority that newly entered $terms.bugs are set to.", + + defaultseverity => "This is the severity that newly entered $terms.bugs are set to.", + + defaultplatform => "This is the platform that is preselected on the $terms.bug " _ + "entry form.
    " _ + "You can leave this empty: " _ + "$terms.Bugzilla will then use the platform that the browser " _ + "reports to be running on as the default.", + + defaultopsys => "This is the operating system that is preselected on the $terms.bug " _ + "entry form.
    " _ + "You can leave this empty: " _ + "$terms.Bugzilla will then use the operating system that the browser " _ + "reports to be running on as the default." } +%] diff --git a/template/en/default/admin/params/bugmove.html.tmpl b/template/en/default/admin/params/bugmove.html.tmpl new file mode 100644 index 0000000..911bc33 --- /dev/null +++ b/template/en/default/admin/params/bugmove.html.tmpl @@ -0,0 +1,49 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "$terms.Bug Moving" + desc = "Set up parameters to move $terms.bugs to/from another installation" +%] + +[% param_descs = { + "move-enabled" => "If this is on, $terms.Bugzilla will allow certain people " _ + "to move $terms.bugs to the defined database.", + + "move-button-text" => "The text written on the Move button. Explain where the $terms.bug is " _ + "being moved to.", + + "move-to-url" => "The URL of the database we allow some of our $terms.bugs to be moved to.", + + "move-to-address" => "To move ${terms.bugs}, an email is sent to the target database. This is " _ + "the email address that database uses to listen for incoming ${terms.bugs}.", + + "moved-from-address" => "To move ${terms.bugs}, an email is sent to the target database. This is " _ + "the email address from which this mail, and error messages are sent.", + + movers => "A list of people with permission to move $terms.bugs and reopen moved " _ + "${terms.bugs} (in case the move operation fails).", + + "moved-default-product" => "$terms.Bugs moved from other databases to here are assigned " _ + "to this product.", + + "moved-default-component" => "$terms.Bugs moved from other databases to here are assigned " _ + "to this component." } +%] diff --git a/template/en/default/admin/params/common.html.tmpl b/template/en/default/admin/params/common.html.tmpl new file mode 100644 index 0000000..18aa1fb --- /dev/null +++ b/template/en/default/admin/params/common.html.tmpl @@ -0,0 +1,150 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Frédéric Buclin + # Marc Schumann + #%] +[%# INTERFACE: + # panel: hash representing the current panel. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% sortlist_separator = '---' %] + +
    + [% FOREACH param = panel.param_list %] +
    [% param.name FILTER html %]
    +
    [% panel.param_descs.${param.name} FILTER none %] +

    + [% IF param.type == "t" %] + + [% ELSIF param.type == "p" %] + + [% ELSIF param.type == "l" %] + + [% ELSIF param.type == "b" %] + + + + + [% ELSIF param.type == "m" %] + [% boxSize = 5 %] + [% boxSize = param.choices.size IF param.choices.size < 5 %] + + + [% ELSIF param.type == "o" %] + +
    + + [% boxSize = 7 %] + [% boxSize = 3 + param.choices.size IF param.choices.size < 7 %] + [% plist = Param(param.name).split(',') %] + + + [% ELSIF param.type == "s" %] + + [% ELSE %] + + Unknown param type [% param.type FILTER html %]!!! + + [% END %] +

    + [% UNLESS param.no_reset %] +

    + + +

    + [% END %] +
    +
    + [% END %] +
    diff --git a/template/en/default/admin/params/core.html.tmpl b/template/en/default/admin/params/core.html.tmpl new file mode 100644 index 0000000..b1578f4 --- /dev/null +++ b/template/en/default/admin/params/core.html.tmpl @@ -0,0 +1,48 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] + +[% + title = "Required Settings" + desc = "Settings that are required for proper operation of $terms.Bugzilla" +%] + +[% param_descs = { + urlbase => "The URL that is the common initial leading part of all $terms.Bugzilla " _ + "URLs.", + + sslbase => "The URL that is the common initial leading part of all HTTPS " _ + "(SSL) $terms.Bugzilla URLs.", + + ssl_redirect => + "When this is enabled, $terms.Bugzilla will ensure that every page is" + _ " accessed over SSL, by redirecting any plain HTTP requests to HTTPS" + _ " using the sslbase parameter. Also, when this is enabled," + _ " $terms.Bugzilla will send out links using sslbase in emails" + _ " instead of urlbase.", + + cookiepath => "Path, relative to your web document root, to which to restrict " _ + "$terms.Bugzilla cookies. Normally this is the URI portion of your URL " _ + "base. Begin with a / (single slash mark). For instance, if " _ + "$terms.Bugzilla serves from 'http://www.somedomain.com/bugzilla/', set " _ + "this parameter to /bugzilla/. Setting it to / will allow " _ + "all sites served by this web server or virtual host to read " _ + "$terms.Bugzilla cookies.", +} %] diff --git a/template/en/default/admin/params/dependencygraph.html.tmpl b/template/en/default/admin/params/dependencygraph.html.tmpl new file mode 100644 index 0000000..181cced --- /dev/null +++ b/template/en/default/admin/params/dependencygraph.html.tmpl @@ -0,0 +1,49 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Dependency Graphs" + desc = "Optional setup for dependency graphing" +%] + +[% param_descs = { + webdotbase => "It is possible to show graphs of dependent ${terms.bugs}. You may set + this parameter to any of the following: +
      +
    • + A complete file path to 'dot' (part of + GraphViz) will + generate the graphs locally. +
    • +
    • + A URL prefix pointing to an installation of the + webdot + package will generate the graphs remotely. +
    • +
    • + A blank value will disable dependency graphing. +
    • +
    + The default value is a publicly-accessible webdot server. If you change + this value, make certain that the webdot server can read files from your + webdot directory. On Apache you do this by editing the .htaccess file, + for other systems the needed measures may vary. You can run checksetup.pl + to recreate the .htaccess file if it has been lost."} +%] \ No newline at end of file diff --git a/template/en/default/admin/params/editparams.html.tmpl b/template/en/default/admin/params/editparams.html.tmpl new file mode 100644 index 0000000..21fa9fa --- /dev/null +++ b/template/en/default/admin/params/editparams.html.tmpl @@ -0,0 +1,121 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[%# INTERFACE: + # panels: array of hashes representing the panels available. + # param_changed: array of parameters which have been changed. + # shutdown_is_active: boolean; is true when 'shutdownhtml' has been turned on. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% curpanel = -1 %] +[% panels = panels.nsort('sortkey') %] + +[% FOREACH panel = panels %] + [% PROCESS "admin/params/${panel.name}.html.tmpl" + params = panel.param_list %] + [% panel.title = title %] + [% panel.desc = desc %] + [% panel.param_descs = param_descs %] + [% IF panel.current %][% curpanel = loop.index %][% END %] +[% END %] + +[% current_panel = panels.$curpanel %] + +[%# We cannot call header.html.tmpl earlier as we have to know + which panel is active first, in order to get its title %] + +[% title = BLOCK %] + [% IF curpanel == -1 %] + Parameters: Index + [% ELSE %] + Configuration: + [%+ current_panel.title FILTER html %] + [% END %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + message = message + style_urls = ['skins/standard/params.css'] + javascript_urls = ['js/params.js'] + doc_section = "parameters.html" +%] + + + + + + +
    + [%# NAVIGATION BAR %] + + + + + [% FOREACH panel = panels %] + + [% IF panel.current %] + + [% ELSE %] + + [% END %] + + [% END %] + + + [% IF curpanel == -1 %] + [% PROCESS admin/params/index.html.tmpl panels = panels %] + [% ELSE %] + +
    Note: + [%+ terms.Bugzilla %] is developed entirely by volunteers. The + best way to give back to the [% terms.Bugzilla %] project is + to contribute + yourself! You don't have to be a programmer to contribute, there are + lots of things that we need. +
    + +

    + This lets you edit the basic operating parameters of [% terms.Bugzilla %]. + Be careful!
    + Any item you check "Reset" on will get reset to its default value. +

    + + [%# CONTENT PANEL %] +
    + [% PROCESS admin/params/common.html.tmpl panel = current_panel %] + + + + +
    + [% END %] +
    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/admin/params/general.html.tmpl b/template/en/default/admin/params/general.html.tmpl new file mode 100644 index 0000000..b8c0c77 --- /dev/null +++ b/template/en/default/admin/params/general.html.tmpl @@ -0,0 +1,86 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] + +[% + title = "General" + desc = "Miscellaneous general settings that are not required." +%] + +[% param_descs = { + maintainer => + "The email address of the person who maintains this installation " + _ " of ${terms.Bugzilla}.", + + docs_urlbase => + "The URL that is the common initial leading part of all" + _ " $terms.Bugzilla documentation URLs. It may be an absolute URL," + _ " or a URL relative to the urlbase parameter. Leave this" + _ " empty to suppress links to the documentation." + _ "'%lang%' will be replaced by user's preferred language (if" + _ " documentation is available in that language).", + + utf8 => + "Use UTF-8 (Unicode) encoding for all text in ${terms.Bugzilla}. New" + _ " installations should set this to true to avoid character encoding" + _ " problems. Existing databases should set this to true" + _ " only after the data has been converted from existing legacy" + _ " character encodings to UTF-8, using the contrib/recode.pl" + _ " script." + _ "

    Note that if you turn this parameter from "off" to" + _ " "on", you must re-run checksetup.pl immediately" + _ " afterward.

    ", + + shutdownhtml => + "If this field is non-empty, then $terms.Bugzilla will be completely" + _ " disabled and this text will be displayed instead of all the" + _ " $terms.Bugzilla pages.", + + announcehtml => + "If this field is non-empty, then $terms.Bugzilla will" + _ " display whatever is in this field at the top of every" + _ " HTML page. The HTML you put in this field is not wrapped or" + _ " enclosed in anything. You might want to wrap it inside a" + _ "<div>. Give the div id=\"message\" to get" + _ " green text inside a red box, or class=\"bz_private\" for" + _ " dark red on a red background. Anything defined in " + _ " skins/standard/global.css or skins/custom/global.css" + _ " will work. To get centered text, use style=\"text-align: " + _ " center;\".", + + upgrade_notification => + "$terms.Bugzilla can inform you when a new release is available." + _ " The notification will appear on the $terms.Bugzilla homepage," + _ " for administrators only." + _ "
    • 'development_snapshot' notifies you about the development " + _ " snapshot that has been released.
    • " + _ "
    • 'latest_stable_release' notifies you about the most recent" + _ " release available on the most recent stable branch. This branch" + _ " may be different from the branch your installation is based on.
    • " + _ "
    • 'stable_branch_release' notifies you only about new releases" + _ " corresponding to the branch your installation is based on." + _ " If you are running a release candidate, you will get a notification" + _ " for newer release candidates too.
    • " + _ "
    • 'disabled' will never notify you about new releases and no" + _ " connection will be established to a remote server.
    " + _ "

    Note that if your $terms.Bugzilla server requires a proxy to" + _ " access the Internet, you may also need to set the proxy_url" + _ " parameter in the Advanced section.

    ", +} %] diff --git a/template/en/default/admin/params/groupsecurity.html.tmpl b/template/en/default/admin/params/groupsecurity.html.tmpl new file mode 100644 index 0000000..ab39a91 --- /dev/null +++ b/template/en/default/admin/params/groupsecurity.html.tmpl @@ -0,0 +1,56 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Group Security" + desc = "Decide how you will use Security Groups" +%] + +[% param_descs = { + makeproductgroups => "If this is on, $terms.Bugzilla will associate $terms.abug group " _ + "with each product in the database, and use it for querying ${terms.bugs}.", + + chartgroup => "The name of the group of users who can use the 'New Charts' " _ + "feature. Administrators should ensure that the public categories " _ + "and series definitions do not divulge confidential information " _ + "before enabling this for an untrusted population. If left blank, " _ + "no users will be able to use New Charts.", + + insidergroup => "The name of the group of users who can see/change private " _ + "comments and attachments.", + + timetrackinggroup => "The name of the group of users who can see/change time tracking " _ + "information.", + + querysharegroup => "The name of the group of users who can share their " _ + "saved searches with others.", + + usevisibilitygroups => "Do you wish to restrict visibility of users to members of " _ + "specific groups?", + + strict_isolation => "Don't allow users to be assigned to, " _ + "be qa-contacts on, " _ + "be added to CC list, " _ + "or make or remove dependencies " _ + "involving any bug that is in a product on which that " _ + "user is forbidden to edit.", + + } +%] diff --git a/template/en/default/admin/params/index.html.tmpl b/template/en/default/admin/params/index.html.tmpl new file mode 100644 index 0000000..1629c8c --- /dev/null +++ b/template/en/default/admin/params/index.html.tmpl @@ -0,0 +1,51 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Frédéric Buclin + # Nitish Bezzala + #%] + +

    + All parameters are displayed below, per section. + If you cannot find one from here, then the parameter does not exist. +

    + +
    + + + + + + [% FOREACH panel = panels %] + [% FOREACH param = panel.param_list.sort('name') %] + + + + + [% END %] + + + + [% END %] +
    ParameterSection
    + + [% param.name FILTER html %] + + [% panel.title FILTER html %] +
      
    +
    diff --git a/template/en/default/admin/params/ldap.html.tmpl b/template/en/default/admin/params/ldap.html.tmpl new file mode 100644 index 0000000..cdc585d --- /dev/null +++ b/template/en/default/admin/params/ldap.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "LDAP" + desc = "Configure this first before choosing LDAP as an authentication method" +%] + +[% param_descs = { + LDAPserver => "The name (and optionally port) of your LDAP server " _ + "(e.g. ldap.company.com, or ldap.company.com:portnum). " _ + "URI syntax can also be used, such as "_ + "ldaps://ldap.company.com (for a secure connection) or " _ + "ldapi://%2fvar%2flib%2fldap_sock (for a socket-based " _ + "local connection. Multiple hostnames or URIs can be comma " _ + "separated; each will be tried in turn until a connection is " _ + "established.", + + LDAPstarttls => "Whether to require encrypted communication once a normal " _ + "LDAP connection is achieved with the server.", + + LDAPbinddn => "If your LDAP server requires that you use a binddn and password " _ + "instead of binding anonymously, enter it here " _ + "(e.g. cn=default,cn=user:password). " _ + "Leave this empty for the normal case of an anonymous bind.", + + LDAPBaseDN => "The BaseDN for authenticating users against " _ + "(e.g. ou=People,o=Company).", + + LDAPuidattribute => "The name of the attribute containing the user's login name.", + + LDAPmailattribute => "The name of the attribute of a user in your " _ + "directory that contains the email address, to be " _ + "used as $terms.Bugzilla username. If this parameter " _ + "is empty, $terms.Bugzilla will use the LDAP username"_ + " as the $terms.Bugzilla username. You may also want" _ + " to set the \"emailsuffix\" parameter, in this case.", + + LDAPfilter => "LDAP filter to AND with the LDAPuidattribute for " _ + "filtering the list of valid users." } +%] diff --git a/template/en/default/admin/params/mta.html.tmpl b/template/en/default/admin/params/mta.html.tmpl new file mode 100644 index 0000000..8533257 --- /dev/null +++ b/template/en/default/admin/params/mta.html.tmpl @@ -0,0 +1,86 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Email" + desc = "How will outgoing mail be delivered?" +%] + +[% param_descs = { + mail_delivery_method => "Defines how email is sent, or if it is sent at all.
    +
      +
    • + 'Sendmail', 'SMTP' and 'Qmail' are all MTAs. + You need to install a third-party sendmail replacement if + you want to use sendmail on Windows. +
    • +
    • + 'Test' is useful for debugging: all email is stored + in 'data/mailer.testfile' instead of being sent. +
    • +
    • + 'none' will completely disable email. $terms.Bugzilla continues + to act as though it is sending mail, but nothing is sent or + stored. +
    • +
    ", + + mailfrom => "The email address of the $terms.Bugzilla mail daemon. Some email systems " _ + "require this to be a valid email address.", + + use_mailer_queue => "In a large $terms.Bugzilla installation, updating" + _ " $terms.bugs can be very slow, because $terms.Bugzilla sends all" + _ " email at once. If you enable this parameter, $terms.Bugzilla will" + _ " queue all mail and then send it in the background. This requires" + _ " that you have installed certain Perl modules (as listed by" + _ " checksetup.pl for this feature), and that you are" + _ " running the jobqueue.pl daemon (otherwise your mail" + _ " won't get sent). This affects all mail sent by $terms.Bugzilla," + _ " not just $terms.bug updates.", + + sendmailnow => "Sites using anything older than version 8.12 of 'sendmail' " _ + "can achieve a significant performance increase in the " _ + "UI -- at the cost of delaying the sending of mail -- by " _ + "disabling this parameter. Sites using 'sendmail' 8.12 or " _ + "higher should leave this on, as they will see no benefit from " _ + "turning it off. Sites using an MTA other than 'sendmail' " _ + "must leave it on, or no $terms.bug mail will be sent.", + + smtpserver => "The SMTP server address (if using SMTP for mail delivery).", + + smtp_username => "The username to pass to the SMTP server for SMTP authentication. " _ + "Leave this field empty if your SMTP server doesn't require authentication.", + + smtp_password => "The password to pass to the SMTP server for SMTP authentication. " _ + "This field has no effect if the smtp_username parameter is left empty.", + + smtp_debug => "If enabled, this will print detailed information to your" _ + " web server's error log about the communication between" _ + " $terms.Bugzilla and your SMTP server. You can use this to" _ + " troubleshoot email problems.", + + whinedays => "The number of days that we'll let a $terms.bug sit untouched in a NEW " _ + "state before our cronjob will whine at the owner.
    " _ + "Set to 0 to disable whining.", + + globalwatchers => "A comma-separated list of users who should receive a " _ + "copy of every notification mail the system sends." } + +%] diff --git a/template/en/default/admin/params/patchviewer.html.tmpl b/template/en/default/admin/params/patchviewer.html.tmpl new file mode 100644 index 0000000..389acc1 --- /dev/null +++ b/template/en/default/admin/params/patchviewer.html.tmpl @@ -0,0 +1,64 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Patch Viewer" + desc = "Set up third-party applications to run with PatchViewer" +%] + +[% param_descs = { + cvsroot => "The CVS root that most " _ + "users of your system will be using for 'cvs diff'. Used in " _ + "Patch Viewer ('Diff' option on patches) to figure out where " _ + "patches are rooted even if users did the 'cvs diff' from " _ + "different places in the directory structure. (NOTE: if your " _ + "CVS repository is remote and requires a password, you must " _ + "either ensure the $terms.Bugzilla user has done a 'cvs login' or " _ + "specify the password " _ + "as " _ + "part of the CVS root.) Leave this blank if you have no " _ + "CVS repository.", + + cvsroot_get => "The CVS root $terms.Bugzilla will be using to get patches from. " _ + "Some installations may want to mirror their CVS repository on " _ + "the $terms.Bugzilla server or even have it on that same server, and " _ + "thus the repository can be the local file system (and much " _ + "faster). Make this the same as cvsroot if you don't " _ + "understand what this is (if cvsroot is blank, make this blank too).", + + bonsai_url => "The URL to a Bonsai " _ + "server containing information about your CVS repository. " _ + "Patch Viewer will use this information to create links to " _ + "bonsai's blame for each section of a patch (it will append " _ + "'/cvsblame.cgi?...' to this url). Leave this blank if you " _ + "don't understand what this is.", + + lxr_url => "The URL to an LXR server " _ + "that indexes your CVS repository. Patch Viewer will use this " _ + "information to create links to LXR for each file in a patch. " _ + "Leave this blank if you don't understand what this is.", + + lxr_root => "Some LXR installations do not index the CVS repository from the root -- " _ + "Mozilla's, for " _ + "example, starts indexing under mozilla/. This " _ + "means URLs are relative to that extra path under the root. " _ + "Enter this if you have a similar situation. Leave it blank " _ + "if you don't know what this is." } +%] diff --git a/template/en/default/admin/params/query.html.tmpl b/template/en/default/admin/params/query.html.tmpl new file mode 100644 index 0000000..34ea043 --- /dev/null +++ b/template/en/default/admin/params/query.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Query Defaults" + desc = "Default options for query and $terms.bug lists" +%] + +[% param_descs = { + quip_list_entry_control => "Controls how easily users can add entries to the quip list. +
      +
    • + open - Users may freely add to the quip list, and + their entries will immediately be available for viewing. +
    • +
    • + moderated - quips can be entered, but need to be approved + by an admin before they will be shown. +
    • +
    • + closed - no new additions to the quips list are allowed. +
    • +
    ", + + mostfreqthreshold => "The minimum number of duplicates $terms.abug needs to show up on the " _ + "most frequently reported $terms.bugs page. " _ + "If you have a large database and this page takes a long time to " _ + "load, try increasing this number.", + + mybugstemplate => "This is the URL to use to bring up a simple 'all of my $terms.bugs' " _ + "list for a user. %userid% will get replaced with the login name of a user.", + + defaultquery => "This is the default query that initially comes up when you " _ + "access the advanced query page. It's in URL parameter " _ + "format, which makes it hard to read. Sorry!", + + specific_search_allow_empty_words => + "Whether to allow a search on the 'Simple Search' page with an empty" + _ " 'Words' field.", + +} %] diff --git a/template/en/default/admin/params/radius.html.tmpl b/template/en/default/admin/params/radius.html.tmpl new file mode 100644 index 0000000..ef2282d --- /dev/null +++ b/template/en/default/admin/params/radius.html.tmpl @@ -0,0 +1,54 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Marc Schumann. + # Portions created by Marc Schumann are Copyright (c) 2007 Marc Schumann. + # All rights reserved. + # + # Contributor(s): Marc Schumann + #%] +[% + title = "RADIUS" + desc = "Configure this first before choosing RADIUS as an authentication method" +%] + +[% param_descs = { + RADIUS_server => "The name (and optionally port) of your RADIUS server " _ + "(e.g. radius.company.com, or " _ + "radius.company.com:portnum).
    " _ + "Required only if " _ + "the " _ + "user_verify_class parameter contains " _ + "RADIUS.", + + RADIUS_secret => "Your RADIUS server's secret.
    " _ + "Required only if " _ + "the " _ + "user_verify_class parameter contains " _ + "RADIUS.", + + RADIUS_NAS_IP => "The NAS-IP-Address attribute to be used when exchanging " _ + "data with your RADIUS server. " _ + "If unspecified, 127.0.0.1 will be used.
    " _ + "Useful only if " _ + "the " _ + "user_verify_class parameter " _ + "contains RADIUS.", + + RADIUS_email_suffix => "Suffix to append to a RADIUS user name to form an " _ + "e-mail address.
    " _ + "Useful only if " _ + "the " _ + "user_verify_class parameter " _ + "contains RADIUS.", + } +%] diff --git a/template/en/default/admin/params/shadowdb.html.tmpl b/template/en/default/admin/params/shadowdb.html.tmpl new file mode 100644 index 0000000..c812284 --- /dev/null +++ b/template/en/default/admin/params/shadowdb.html.tmpl @@ -0,0 +1,49 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "Shadow Database" + desc = "An optional hack to increase database performance" +%] + +[% param_descs = { + shadowdbhost => "The host the shadow database is on.", + + shadowdbport => "The port the shadow database is on. Ignored if " _ + "shadowdbhost is blank. Note: if the host is the local " _ + "machine, then MySQL will ignore this setting, and you must " _ + "specify a socket below.", + + shadowdbsock => "The socket used to connect to the shadow database, if the host " _ + "is the local machine. This setting is required because MySQL " _ + "ignores the port specified by the client and connects using " _ + "its compiled-in socket path (on unix machines) when connecting " _ + "from a client to a local server. If you leave this blank, and " _ + "have the database on localhost, then the shadowdbport " _ + "will be ignored.", + + shadowdb => "If non-empty, then this is the name of another database in " _ + "which $terms.Bugzilla will use as a read-only copy of everything. " _ + "This is done so that long slow read-only operations can be used " _ + "against this db, and not lock up things for everyone else. This " _ + "database is on the shadowdbhost, and must exist. " _ + "$terms.Bugzilla does not update it, if you use this parameter, then " _ + "you need to set up replication for your database." } +%] diff --git a/template/en/default/admin/params/usermatch.html.tmpl b/template/en/default/admin/params/usermatch.html.tmpl new file mode 100644 index 0000000..54f1509 --- /dev/null +++ b/template/en/default/admin/params/usermatch.html.tmpl @@ -0,0 +1,39 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller + # Frédéric Buclin + #%] +[% + title = "User Matching" + desc = "Set up your user matching policies" +%] + +[% param_descs = { + usemenuforusers => "If this option is set, $terms.Bugzilla will offer you a list " _ + "to select from (instead of a text entry field) where a user " _ + "needs to be selected. This option should not be enabled on " _ + "sites where there are a large number of users.", + + maxusermatches => "Search for no more than this many matches.
    " _ + "If set to '1', no users will be displayed on ambiguous matches. " _ + "This is useful for user privacy purposes.
    " _ + "A value of zero means no limit.", + + confirmuniqueusermatch => "Whether a confirmation screen should be displayed when only " _ + "one user matches a search entry." } +%] diff --git a/template/en/default/admin/products/confirm-delete.html.tmpl b/template/en/default/admin/products/confirm-delete.html.tmpl new file mode 100644 index 0000000..f4a04b8 --- /dev/null +++ b/template/en/default/admin/products/confirm-delete.html.tmpl @@ -0,0 +1,266 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; The product + # + # (classification fields available if Param('useclassification') is enabled:) + # + # classification: Bugzilla::Classification object; The classification + # the product is in + # + #%] + +[% title = BLOCK %]Delete Product '[% product.name FILTER html %]' +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] +%] + + + + + + + + [% IF Param('useclassification') %] + + + + + + + [%# descriptions are intentionally not filtered to allow html content %] + + + [% END %] + + + + + + + + [%# descriptions are intentionally not filtered to allow html content %] + + + + [% IF Param('usetargetmilestone') %] + + + + + [% END %] + + + + + + + + + + + + + + + + + + [% IF Param('usetargetmilestone') %] + + + + + [% END %] + + + + + +
    FieldValue
    Classification:[% classification.name FILTER html %]
    Classification Description: + [% IF classification.description %] + [% classification.description FILTER html_light %] + [% ELSE %] + missing + [% END %] +
    Product: + + [% product.name FILTER html %] + +
    Description: + [% IF product.description %] + [% product.description FILTER html_light %] + [% ELSE %] + missing + [% END %] +
    Milestone URL: + [% IF product.milestone_url %] + + [%- product.milestone_url FILTER html %] + + [% ELSE %] + none + [% END %] +
    Closed for [% terms.bugs %]: + [% IF product.is_active %] + open + [% ELSE %] + closed + [% END %] +
    + [% IF product.components.size > 0 %] + + Components: + + [% ELSE %] + Components: + [% END %] + + [% IF product.components.size > 0 %] + + [% FOREACH c = product.components %] + + + [%# descriptions are intentionally not filtered to allow html content %] + + + [% END %] +
    [% c.name FILTER html %]: + [% IF c.description %] + [% c.description FILTER html_light %] + [% ELSE %] + missing + [% END %] +
    + [% ELSE %] + none + [% END %] +
    + [% IF product.versions.size > 0 %] + + Versions: + + [% ELSE %] + Versions: + [% END %] + + [% IF product.versions.size > 0 %] + [% FOREACH v = product.versions %] + [% v.name FILTER html %]
    + [% END %] + [% ELSE %] + none + [% END %] +
    + [% IF product.milestones.size > 0 %] + + Milestones: + + [% ELSE %] + Milestones: + [% END %] + + [% IF product.milestones.size > 0 %] + [% FOREACH m = product.milestones %] + [% m.name FILTER html %]
    + [% END %] + [% ELSE %] + none + [% END %] +
    [% terms.Bugs %]: + [% IF product.bug_count %] + + [% product.bug_count FILTER html %] + + [% ELSE %] + none + [% END %] +
    + +

    Confirmation

    + +[% IF product.bug_count %] + + [% IF !Param("allowbugdeletion") %] + +

    Sorry, there + + [% IF product.bug_count > 1 %] + are [% product.bug_count FILTER html %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + + outstanding for this product. You must reassign + + [% IF product.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + + to another product before you can delete this one.

    + + [% ELSE %] + + + + + +
    + There + [% IF product.bug_count > 1 %] + are [% product.bug_count FILTER html %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + entered for this product! When you delete this + product, ALL stored [% terms.bugs %] and + their history will be deleted, too. +
    + + [% END %] + +[% END %] + +[% Hook.process("confirmation") %] + +[% IF product.bug_count == 0 || Param('allowbugdeletion') %] + +

    Do you really want to delete this product?

    + +
    + +

    + + + + +

    + +[% END %] + +[% PROCESS admin/products/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/create.html.tmpl b/template/en/default/admin/products/create.html.tmpl new file mode 100644 index 0000000..f4a2161 --- /dev/null +++ b/template/en/default/admin/products/create.html.tmpl @@ -0,0 +1,69 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Gabriel S. Oliveira + #%] + +[%# INTERFACE: + # classification: Bugzilla::Classification object; If classifications + # are enabled, then this is + # the currently selected classification + # + #%] + +[% title = BLOCK %]Add Product[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] + javascript_urls = ['js/util.js'] +%] + +[% DEFAULT + product.votesperuser = "0", + product.maxvotesperbug = "10000", + product.votes_to_confirm = "0", + product.is_active = 1, + version = "unspecified", + product.defaultmilestone = constants.DEFAULT_MILESTONE + product.allows_unconfirmed = 0 +%] + +
    + + + [% PROCESS "admin/products/edit-common.html.tmpl" %] + + + + + + + + + +
    Version: +
    Create chart datasets for this product:
    + + + + + +
    + +[% PROCESS "admin/products/footer.html.tmpl" + no_add_product_link = 1 + no_edit_product_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/edit-common.html.tmpl b/template/en/default/admin/products/edit-common.html.tmpl new file mode 100644 index 0000000..2c94402 --- /dev/null +++ b/template/en/default/admin/products/edit-common.html.tmpl @@ -0,0 +1,112 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Jack Nerad + # Tiago R. Mello + # Gabriel S. Oliveira + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; The product + # + # classification: Bugzilla::Classifiation object; classification product is in. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% IF Param('useclassification') %] + + Classification: + [% classification.name FILTER html %] + +[% END %] + + + Product: + + + + + Description: + + + + +[% IF Param('usetargetmilestone') -%] + + Default milestone: + + [% IF product.milestones.size %] + + [% ELSE %] + + [% END %] + + +[% END %] + + + Open for [% terms.bug %] entry: + + + + + + + + + [% IF Param('usevotes') %] + + ...and automatically confirm [% terms.bugs %] if they get + + votes. (Setting this to 0 disables auto-confirming [% terms.bugs %] + by vote.) + + [% END %] + + + +[% IF Param('usevotes') %] + + Maximum votes per person: + + + + + + Maximum votes a person can put on a single [% terms.bug %]: + + + + +[% END %] diff --git a/template/en/default/admin/products/edit.html.tmpl b/template/en/default/admin/products/edit.html.tmpl new file mode 100644 index 0000000..976739f --- /dev/null +++ b/template/en/default/admin/products/edit.html.tmpl @@ -0,0 +1,149 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Jack Nerad + # Tiago R. Mello + # Gabriel S. Oliveira + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; The product + # + # (classification fields available if Param('useclassification') is enabled:) + # + # classification: Bugzilla::Classification object; The classification + # the product is in + #%] + +[% title = BLOCK %]Edit Product '[% product.name FILTER html %]'[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] + javascript_urls = ['js/util.js'] +%] + +[% group_control = {${constants.CONTROLMAPNA} => 'NA', + ${constants.CONTROLMAPSHOWN} => 'Shown', + ${constants.CONTROLMAPDEFAULT} => 'Default', + ${constants.CONTROLMAPMANDATORY} => 'Mandatory'} + %] + +
    + + + [% PROCESS "admin/products/edit-common.html.tmpl" %] + + + + + + + + + + [% IF Param('usetargetmilestone') %] + + + + + [% END %] + + + + + + + + +
    + + Edit components: + + + [% IF product.components.size -%] + [% FOREACH component = product.components %] + [% component.name FILTER html %]:  + [% IF component.description %] + [% component.description FILTER html_light %] + [% ELSE %] + description missing + [% END %] +
    + [% END %] + [% ELSE %] + missing + [% END %] +
    + Edit +versions: + + [%- IF product.versions.size -%] + [% FOREACH v = product.versions %] + [% v.name FILTER html %] +
    + [% END %] + [% ELSE %] + missing + [% END %] +
    + + Edit milestones: + + [%- IF product.milestones.size -%] + [%- FOREACH m = product.milestones -%] + [% m.name FILTER html %] +
    + [% END %] + [% ELSE %] + missing + [% END %] +
    + + Edit Group Access Controls: + + + [% IF product.group_controls.size %] + [% FOREACH g = product.group_controls.values.sort("name") %] + [% g.group.name FILTER html %]:  + [% IF g.group.isactive %] + [% group_control.${g.membercontrol} FILTER html %]/ + [% group_control.${g.othercontrol} FILTER html %] + [% IF g.entry %], ENTRY[% END %] + [% IF g.canedit %], CANEDIT[% END %] + [% IF g.editcomponents %], editcomponents[% END %] + [% IF g.canconfirm %], canconfirm[% END %] + [% IF g.editbugs %], editbugs[% END %] + [% ELSE %] + DISABLED + [% END %] +
    + [% END %] + [% ELSE %] + no groups + [% END %] +
    [% terms.Bugs %]: + [% product.bug_count FILTER html %]
    + + + + + +
    + +[% PROCESS "admin/products/footer.html.tmpl" + no_add_product_link = 1 + no_edit_product_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/footer.html.tmpl b/template/en/default/admin/products/footer.html.tmpl new file mode 100644 index 0000000..661829b --- /dev/null +++ b/template/en/default/admin/products/footer.html.tmpl @@ -0,0 +1,86 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: Bugzilla::Product Object; the product + # + # classification: Bugzilla::Classification object ; If classifications + # are enabled, then this is the currently + # selected classification + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_product_link + # no_edit_other_products_link + # no_add_product_link + #%] + +[% IF Param('useclassification') && classification %] + [% classification_url_part = BLOCK %]&classification= + [%- classification.name FILTER url_quote %] + [% END %] + [% classification_url_part_start = BLOCK %]classification= + [%- classification.name FILTER url_quote %] + [% END %] + [% classification_text = BLOCK %] + of classification '[% classification.name FILTER html %]' + [% END %] +[% END %] + +
    + +

    +[% UNLESS no_add_product_link || !user.in_group("editcomponents") %] + Add a product[% -%] +[%# Strictly speaking, we should not have to check for a + classification if they are enabled, but I'm just being paranoid %] + [% IF Param('useclassification') && classification %] + (to + classification '[% classification.name FILTER html %]') + [% END %]. +[% END %] + +[% IF product && !no_edit_product_link %] + Edit product + '[% product.name FILTER html %]'. +[% END %] + + +[%# Edit other products (in a classification if specified): %] +[% UNLESS no_edit_other_products_link %] + Edit other products + [% classification_text %]. + +[% END %] + +[% IF Param('useclassification') && classification + && user.in_group('editclassifications') %] + Edit classification ' + [%- classification.name FILTER html %]'. + +[% END %] + +

    diff --git a/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl b/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl new file mode 100644 index 0000000..1fc92c9 --- /dev/null +++ b/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Joel Peshkin + # + #%] + +[% PROCESS global/variables.none.tmpl %] +[% title = BLOCK %] + Confirm Group Control Change for product '[%- product.name FILTER html %]' +[% END %] + +[% PROCESS global/header.html.tmpl title = title %] +[% FOREACH group = mandatory_groups %] +

    +group '[% group.name FILTER html %]' impacts [% group.count %] +[%+ terms.bugs %] for +which the group is newly mandatory and will be added. +[% END %] + +[% FOREACH group = na_groups %] +

    +group '[% group.name FILTER html %]' impacts [% group.count %]  +[% terms.bugs %] for which the group is no longer applicable and will +be removed.[% END %] +

    + + [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + +
    + Click "Continue" to proceed with the change including the changes + indicated above. If you do not want these changes, use "back" to + return to the previous page. +

    + + +

    + +
    + + +[% PROCESS global/footer.html.tmpl %] + + diff --git a/template/en/default/admin/products/groupcontrol/edit.html.tmpl b/template/en/default/admin/products/groupcontrol/edit.html.tmpl new file mode 100644 index 0000000..8c634eb --- /dev/null +++ b/template/en/default/admin/products/groupcontrol/edit.html.tmpl @@ -0,0 +1,325 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Joel Peshkin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Edit Group Controls for [% product.name FILTER html %] +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +
    + + + + + + + + + + + + + + + + + [% FOREACH group = product.group_controls(1).values.sort("name") %] + [% IF !group.group.isactive AND group.bug_count %] + + + + + + [% ELSIF group.group.is_active %] + + + + + + + + + + + + [% END %] + [% END %] + +
    GroupEntryMemberControlOtherControlCanediteditcomponentscanconfirmeditbugs[% terms.Bugs %]
    + [% group.group.name FILTER html %] + + Disabled + + [% group.bug_count FILTER html %] +
    + [% group.group.name FILTER html %] + + + + + + + + + + + + + + + + [% group.bug_count || 0 FILTER html %] +
    +
    + +
    +
    + + +

    +These settings control the relationship of the groups to this +product. +

    +

    +If any group has Entry selected, then this product will +restrict [% terms.bug %] entry to only those users who are members of all the +groups with entry selected. +

    +

    +If any group has Canedit selected, then this product +will be read-only for any users who are not members of all of +the groups with Canedit selected. ONLY users who are members of +all the canedit groups will be able to edit. This is an additional +restriction that further restricts what can be edited by a user. +

    +

    +The following settings control let you choose privileges on a per-product basis. +This is a convenient way to give privileges to some users for some products +only, without having to give them global privileges which would affect all +products: +

    +

    +Any group having editcomponents selected allows users who are +in this group to edit all aspects of this product, including components, +milestones and versions. +

    +

    +Any group having canconfirm selected allows users who are +in this group to confirm [% terms.bugs %] in this product. +

    +

    +Any group having editbugs selected allows users who are +in this group to edit all fields of [% terms.bugs %] in this product. +

    +

    +The MemberControl and OtherControl fields +indicate which [% terms.bugs %] will be placed in +this group according to the following definitions. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + MemberControl + + OtherControl + + Interpretation +
    + NA + + NA + + [% terms.Bugs %] in this product are never associated with this group. +
    + Shown + + NA + + [% terms.Bugs %] in this product are permitted to be restricted to this + group. Users who are members of this group will be able to place [% terms.bugs %] in + this group. +
    + Shown + + Shown + + [% terms.Bugs %] in this product can be placed in this group by anyone + with permission to edit the [% terms.bug %] even if they are not a member + of this group. +
    + Shown + + Default + + [% terms.Bugs %] in this product can be placed in this group by anyone + with permission to edit the [% terms.bug %] even if they are not a member + of this group. Non-members place [% terms.bugs %] in this group by default. +
    + Shown + + Mandatory + + [% terms.Bugs %] in this product are permitted to be restricted to this + group. Users who are members of this group will be able to place [% terms.bugs %] + in this group. Non-members will be forced to restrict [% terms.bugs %] to + this group when they initially enter [% terms.abug %] in this product. +
    + Default + + NA + + [% terms.Bugs %] in this product are permitted to be restricted to this + group and are placed in this group by default. Users who are members of this + group will be able to place [% terms.bugs %] in this group. +
    + Default + + Default + + [% terms.Bugs %] in this product are permitted to be restricted to this + group and are placed in this group by default. Users who are members of this group + will be able to place [% terms.bugs %] in this group. Non-members will be + able to restrict [% terms.bugs %] to this group on entry and will do so by default. +
    + Default + + Mandatory + + [% terms.Bugs %] in this product are permitted to be restricted to this + group and are placed in this group by default. Users who are members of this group + will be able to place [% terms.bugs %] in this group. Non-members will be forced + to place [% terms.bugs %] in this group on entry. +
    + Mandatory + + Mandatory + + [% terms.Bugs %] in this product are required to be restricted to this + group. Users are not given any option. +
    +

    +Please note that the above table delineates the only allowable combinations +for the MemberControl and OtherControl field settings. +Attempting to submit a combination not listed there (e.g. Mandatory/NA, +Default/Shown, etc.) will produce an error message. +

    +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/admin/products/groupcontrol/updated.html.tmpl b/template/en/default/admin/products/groupcontrol/updated.html.tmpl new file mode 100644 index 0000000..2f59cae --- /dev/null +++ b/template/en/default/admin/products/groupcontrol/updated.html.tmpl @@ -0,0 +1,50 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): André Batosti + # + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; the product. + # changes: Hashref with changes made to the product group controls. + #%] + +[% title = BLOCK %] + Update group access controls for [% product.name FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] +

    +[% IF changes.group_controls.now_na.size %] + [% FOREACH g = changes.group_controls.now_na %] + Removing [% terms.bugs %] from group '[% g.name FILTER html %]' which + no longer applies to this product

    + [% g.bug_count FILTER html %] [%+ terms.bugs %] removed

    + [% END %] +[% END %] + +[% IF changes.group_controls.now_mandatory.size %] + [% FOREACH g = changes.group_controls.now_mandatory %] + Adding [% terms.bugs %] to group '[% g.name FILTER html %]' which is + mandatory for this product

    + [% g.bug_count FILTER html %] [%+ terms.bugs %] added

    + [% END %] +[% END %] + +Group control updates done

    + +[% PROCESS admin/products/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/list-classifications.html.tmpl b/template/en/default/admin/products/list-classifications.html.tmpl new file mode 100644 index 0000000..4eddad3 --- /dev/null +++ b/template/en/default/admin/products/list-classifications.html.tmpl @@ -0,0 +1,72 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # classifications: array of hashes having the following properties: + # - name: string; The name of the classification + # - description: string; The classification description (html allowed) + # - product_count: number; The number of products in this classification + # + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Select Classification" +%] + +[% edit_contentlink = BLOCK %] + editproducts.cgi?classification=%%name%% +[% END %] +[% add_contentlink = BLOCK %] + editproducts.cgi?action=add&classification=%%name%% +[% END %] + +[% columns = [ + { + name => "name" + heading => "Edit products of..." + contentlink => edit_contentlink + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "product_count" + align => "right" + heading => "Product Count" + } + ] +%] + +[% IF user.in_group('editcomponents') %] + [% columns.push({ + heading => "Action..." + content => "Add product" + contentlink => add_contentlink }) + %] +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = classifications +%] + +[%# No need for the standard edit products footer, as we have an 'add' + link in the table %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/list.html.tmpl b/template/en/default/admin/products/list.html.tmpl new file mode 100644 index 0000000..57d75d8 --- /dev/null +++ b/template/en/default/admin/products/list.html.tmpl @@ -0,0 +1,121 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # products: array of Bugzilla::Product objects + # + # classification: Bugzilla::Classification object; If classifications + # are enabled, then this is + # the currently selected classification + # showbugcounts: boolean; true if bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% IF classification %] + [% classification_url_part = BLOCK %]&classification= + [%- classification.name FILTER url_quote %] + [%- END %] + [% classification_title = BLOCK %] + in classification '[% classification.name FILTER html %]' + [% END %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Select product $classification_title" +%] + +[% edit_contentlink = BLOCK %] + editproducts.cgi?action=edit&product=%%name%% +[% END %] +[% delete_contentlink = BLOCK %] + editproducts.cgi?action=del&product=%%name%% +[% END %] +[% bug_count_contentlink = BLOCK %] + buglist.cgi?product=%%name%% +[% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit product..." + contentlink => edit_contentlink + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "is_active" + heading => "Open For New $terms.Bugs" + yesno_field => 1 + }, + { + name => "votesperuser" + heading => "Votes Per User" + align => 'right' + }, + { + name => "maxvotesperbug" + heading => "Maximum Votes Per $terms.Bug" + align => 'right' + }, + { + name => "votestoconfirm" + heading => "Votes To Confirm" + align => 'right' + } ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => "bug_count" + heading => "$terms.Bug Count" + align => 'right' + contentlink => bug_count_contentlink + }) + %] + +[% END %] + +[% columns.push({ + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) +%] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] + +

    + Redisplay table with [% terms.bug %] counts (slower)

    + +[% END %] + +[% PROCESS admin/products/footer.html.tmpl + no_edit_other_products_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/updated.html.tmpl b/template/en/default/admin/products/updated.html.tmpl new file mode 100644 index 0000000..c6e8710 --- /dev/null +++ b/template/en/default/admin/products/updated.html.tmpl @@ -0,0 +1,185 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + #%] + +[%# INTERFACE: + # product : Bugzilla::Product Object; new product. + # classification: Bugzilla::Classification Object; The product classification (may be empty or missing) + # changes: hashref with all changes made to the product. Each key is an edited field, + # and its value is an arrayref of the form [old values, new values]. + #%] + +[% IF classification %] + [% classification_text = BLOCK %] + of classification '[% classification.name FILTER html %]' + [% END %] +[% END %] + +[% title = BLOCK %]Updating Product '[% product.name FILTER html %]' + [% classification_text FILTER none %][% END %] +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] +%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% IF changes.name.defined %] +

    + Updated product name from '[% changes.name.0 FILTER html %]' to + '[% product.name FILTER html %]'. +

    +[% END %] + + +[% IF changes.description.defined %] +

    + Updated description to: +

    +

    [% product.description FILTER html_light %]

    +[% END %] + +[% IF changes.isactive.defined %] +

    + Product is now + [% IF product.is_active %] + open for + [% ELSE %] + closed to + [% END %] + new [% terms.bugs %]. +

    +[% END %] + +[% IF changes.defaultmilestone.defined %] +

    + Updated default milestone from '[% changes.defaultmilestone.0 FILTER html %]' to + '[% product.default_milestone FILTER html %]'. +

    +[% END %] + +[% IF changes.votesperuser.defined %] +

    + Updated votes per user from + [%+ changes.votesperuser.0 FILTER html %] to + [%+ product.votes_per_user FILTER html %]. +

    + [% checkvotes = 1 %] +[% END %] + +[% IF changes.maxvotesperbug.defined %] +

    + Updated maximum votes per [% terms.bug %] from + [%+ changes.maxvotesperbug.0 FILTER html %] to + [%+ product.max_votes_per_bug FILTER html %]. +

    + [% checkvotes = 1 %] +[% END %] + +[% IF changes.votestoconfirm.defined %] +

    + Updated number of votes needed to confirm a [% terms.bug %] from + [%+ changes.votestoconfirm.0 FILTER html %] to + [%+ product.votes_to_confirm FILTER html %]. +

    + [% checkvotes = 1 %] +[% END %] + +[% IF changes.allows_unconfirmed.defined %] +

    + [% IF product.allows_unconfirmed %] + The product now allows the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status. + [% ELSE %] + The product no longer allows the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status. + Note that any + + [%- terms.bugs %] that currently have the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status + will remain in that status until they are edited. + [% END %] +

    +[% END %] + +[% IF !changes.keys.size %] +

    Nothing changed for product '[% product.name FILTER html %]'.

    +[% END %] + +[%# Note that this display of changed votes and/or confirmed bugs is + not very scalable. We could have a _lot_, and we just list them all. + One day we should limit this perhaps, or have a more scalable display %] + + +[% IF checkvotes %] +
    + +

    Checking existing votes in this product for anybody who now + has too many votes for [% terms.abug %]...
    + [% IF changes.too_many_votes.size %] + [% FOREACH detail = changes.too_many_votes %] + →removed votes for [% terms.bug %] + [%- detail.id FILTER html %] from [% detail.name FILTER html %]
    + [% END %] + [% ELSE %] + →there were none. + [% END %] +

    + +

    Checking existing votes in this product for anybody + who now has too many total votes...
    + [% IF changes.too_many_total_votes.size %] + [% FOREACH detail = changes.too_many_total_votes %] + →removed votes for [% terms.bug %] + [%- detail.id FILTER html %] from [% detail.name FILTER html %]
    + [% END %] + [% ELSE %] + →there were none. + [% END %] +

    + +

    Checking unconfirmed [% terms.bugs %] in this product for any which now have + sufficient votes...
    + [% IF changes.confirmed_bugs.size %] + [% FOREACH id = changes.confirmed_bugs %] + + [%# This is INCLUDED instead of PROCESSED to avoid variables getting + overwritten, which happens otherwise %] + [% INCLUDE bug/process/results.html.tmpl + type = 'votes' + header_done = 1 + sent_bugmail = changes.confirmed_bugs_sent_bugmail.$id + id = id + %] + [% END %] + [% ELSE %] + →there were none. + [% END %] +

    + +[% END %] + +[% PROCESS admin/products/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/sanitycheck/list.html.tmpl b/template/en/default/admin/sanitycheck/list.html.tmpl new file mode 100644 index 0000000..4642972 --- /dev/null +++ b/template/en/default/admin/sanitycheck/list.html.tmpl @@ -0,0 +1,37 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # + # Contributor(s): Frédéric Buclin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl title = "Sanity Check" + style_urls = ['skins/standard/admin.css'] %] + +
    +

    + [% terms.Bugzilla %] is checking the referential integrity of your database. + This may take several minutes to complete. +

    + +

    + Errors, if any, will be emphasized like this. + Depending on the errors found, some links will be displayed allowing you + to easily fix them. Fixing these errors will automatically run this script + again (so be aware that it may take an even longer time than the first run). +

    +
    + +
    diff --git a/template/en/default/admin/sanitycheck/messages.html.tmpl b/template/en/default/admin/sanitycheck/messages.html.tmpl new file mode 100644 index 0000000..c3d5daa --- /dev/null +++ b/template/en/default/admin/sanitycheck/messages.html.tmpl @@ -0,0 +1,352 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # + # Contributor(s): Frédéric Buclin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% san_message = BLOCK %] + [% IF san_tag == "checks_start" %] + OK, now running sanity checks. + + [% ELSIF san_tag == "checks_completed" %] + Sanity check completed. + + [% ELSIF san_tag == "attachment_reference_deletion_start" %] + OK, now removing all references to deleted attachments. + + [% ELSIF san_tag == "attachment_reference_deletion_end" %] + All references to deleted attachments have been removed. + + [% ELSIF san_tag == "bug_check_alert" %] + [% errortext FILTER html %]: [% INCLUDE bug_list badbugs = badbugs %] + + [% ELSIF san_tag == "bug_check_repair" %] + [% text FILTER html %]. + + [% ELSIF san_tag == "bug_check_creation_date" %] + Checking for [% terms.bugs %] with no creation date (which makes them invisible). + + [% ELSIF san_tag == "bug_check_creation_date_error_text" %] + [% terms.Bugs %] with no creation date + + [% ELSIF san_tag == "bug_check_creation_date_repair_text" %] + Repair missing creation date for these [% terms.bugs %] + + [% ELSIF san_tag == "bug_check_bugs_fulltext" %] + Checking for [% terms.bugs %] with no entry for full text searching. + + [% ELSIF san_tag == "bug_check_bugs_fulltext_error_text" %] + [% terms.Bugs %] with no entry for full text searching + + [% ELSIF san_tag == "bug_check_bugs_fulltext_repair_text" %] + Repair missing full text search entries for these [% terms.bugs %] + + [% ELSIF san_tag == "bug_check_res_dupl" %] + Checking resolution/duplicates + + [% ELSIF san_tag == "bug_check_res_dupl_error_text" %] + [% terms.Bugs %] found on duplicates table that are not marked duplicate + + [% ELSIF san_tag == "bug_check_res_dupl_error_text2" %] + [% terms.Bugs %] found marked resolved duplicate and not on duplicates table + + [% ELSIF san_tag == "bug_check_status_res" %] + Checking statuses/resolutions + + [% ELSIF san_tag == "bug_check_status_res_error_text" %] + [% terms.Bugs %] with open status and a resolution + + [% ELSIF san_tag == "bug_check_status_res_error_text2" %] + [% terms.Bugs %] with non-open status and no resolution + + [% ELSIF san_tag == "bug_check_status_everconfirmed" %] + Checking statuses/everconfirmed + + [% ELSIF san_tag == "bug_check_status_everconfirmed_error_text" %] + [% terms.Bugs %] that are UNCONFIRMED but have everconfirmed set + + [% ELSIF san_tag == "bug_check_status_everconfirmed_error_text2" %] + [% terms.Bugs %] with confirmed status but don't have everconfirmed set + + [% ELSIF san_tag == "bug_check_votes_everconfirmed" %] + Checking votes/everconfirmed + + [% ELSIF san_tag == "bug_check_votes_everconfirmed_error_text" %] + [% terms.Bugs %] that have enough votes to be confirmed but haven't been + + [% ELSIF san_tag == "bug_check_control_values" %] + Checking for bad values in group_control_map + + [% ELSIF san_tag == "bug_check_control_values_alert" %] + Found [% entries FILTER html %] bad group_control_map entries + + [% ELSIF san_tag == "bug_check_control_values_violation" %] + Checking for [% terms.bugs %] with groups violating their product's group controls + + [% ELSIF san_tag == "bug_check_control_values_error_text" %] + Have groups not permitted for their products + + [% ELSIF san_tag == "bug_check_control_values_repair_text" %] + Permit the missing groups for the affected products + (set member control to SHOWN) + + [% ELSIF san_tag == "bug_check_control_values_error_text2" %] + Are missing groups required for their products + + [% ELSIF san_tag == "bug_creation_date_start" %] + OK, now fixing missing [% terms.bug %] creation dates. + + [% ELSIF san_tag == "bug_creation_date_fixed" %] + [% bug_count FILTER html %] [%+ terms.bugs %] have been fixed. + + [% ELSIF san_tag == "bugs_fulltext_start" %] + OK, now fixing [% terms.bug %] entries for full text searching. + + [% ELSIF san_tag == "bugs_fulltext_fixed" %] + [% bug_count FILTER html %] [%+ terms.bugs %] have been fixed. + + [% ELSIF san_tag == "bug_reference_deletion_start" %] + OK, now removing all references to deleted [% terms.bugs %]. + + [% ELSIF san_tag == "bug_reference_deletion_end" %] + All references to deleted [% terms.bugs %] have been removed. + + [% ELSIF san_tag == "cross_check_to" %] + Checking references to [% table FILTER html %].[% field FILTER html %]... + + [% ELSIF san_tag == "cross_check_from" %] + ... from [% table FILTER html %].[% field FILTER html %]. + + [% ELSIF san_tag == "cross_check_alert" %] + Bad value '[% value FILTER html %]' found in + [%+ table FILTER html %].[% field FILTER html %] + [% IF keyname %] + [% IF keyname == "bug_id" %] + ([% PROCESS bug_link bug_id = key %]) + [% ELSE %] + ([% keyname FILTER html %] == '[% key FILTER html %]') + [% END %] + [% END %] + + [% ELSIF san_tag == "cross_check_attachment_has_references" %] + Remove + invalid references to non existent attachments. + + [% ELSIF san_tag == "cross_check_bug_has_references" %] + Remove + invalid references to non existent [% terms.bugs %]. + + [% ELSIF san_tag == "double_cross_check_to" %] + Checking references to [% table FILTER html %].[% field1 FILTER html %] / + [%+ table FILTER html %].[% field2 FILTER html %]... + + [% ELSIF san_tag == "double_cross_check_from" %] + ... from [% table FILTER html %].[% field1 FILTER html %] / + [%+ table FILTER html %].[% field2 FILTER html %]. + + [% ELSIF san_tag == "double_cross_check_alert" %] + Bad values '[% value1 FILTER html %]', '[% value2 FILTER html %]' found + in [% table FILTER html %].[% field1 FILTER html %] / + [%+ table FILTER html %].[% field2 FILTER html %]. + [% IF keyname %] + [% IF keyname == "bug_id" %] + ([% PROCESS bug_link bug_id = key %]) + [% ELSE %] + ([% keyname FILTER html %] == '[% key FILTER html %]') + [% END %] + [% END %] + + [% ELSIF san_tag == "everconfirmed_start" %] + OK, now fixing everconfirmed. + + [% ELSIF san_tag == "everconfirmed_end" %] + everconfirmed fixed. + + [% ELSIF san_tag == "flag_check_start" %] + Checking for flags being in the wrong product/component. + + [% ELSIF san_tag == "flag_deletion_start" %] + OK, now deleting invalid flags. + + [% ELSIF san_tag == "flag_deletion_end" %] + Invalid flags deleted. + + [% ELSIF san_tag == "flag_alert" %] + Invalid flag [% flag_id FILTER html %] for + [% IF attach_id %] + attachment [% attach_id FILTER html %] in + [% END %] + [%+ PROCESS bug_link bug_id = bug_id %]. + + [% ELSIF san_tag == "flag_fix" %] + Click + here to delete invalid flags + + [% ELSIF san_tag == "group_control_map_entries_creation" %] + OK, now creating SHOWN member control entries + for product/group combinations lacking one. + + [% ELSIF san_tag == "group_control_map_entries_update" %] + Updating NA/xxx group control setting + for group [% group_name FILTER html %] to + SHOWN/xxx in product + [% product_name FILTER html %]. + + [% ELSIF san_tag == "group_control_map_entries_generation" %] + Generating SHOWN/NA group control setting + for group [% group_name FILTER html %] in product + [% product_name FILTER html %]. + + [% ELSIF san_tag == "group_control_map_entries_repaired" %] + Repaired [% counter FILTER html %] defective group control settings. + + [% ELSIF san_tag == "keyword_check_start" %] + Checking keywords table. + + [% ELSIF san_tag == "keyword_check_alert" %] + Duplicate entry in keyworddefs for id [% id FILTER html %]. + + [% ELSIF san_tag == "keyword_check_invalid_name" %] + Bogus name in keyworddefs for id [% id FILTER html %]. + + [% ELSIF san_tag == "keyword_check_invalid_id" %] + Bogus keywordids [% id FILTER html %] found in keywords table. + + [% ELSIF san_tag == "keyword_check_duplicated_ids" %] + Duplicate keyword IDs found in [% PROCESS bug_link bug_id = id %]. + + [% ELSIF san_tag == "keyword_cache_start" %] + Checking cached keywords. + + [% ELSIF san_tag == "keyword_cache_alert" %] + [% badbugs.size FILTER none %] [%+ terms.bugs %] found with + incorrect keyword cache: [% INCLUDE bug_list badbugs = badbugs %] + + [% ELSIF san_tag == "keyword_cache_fixing" %] + OK, now fixing keyword cache. + + [% ELSIF san_tag == "keyword_cache_fixed" %] + Keyword cache fixed. + + [% ELSIF san_tag == "keyword_cache_rebuild" %] + Click here to + rebuild the keyword cache. + + [% ELSIF san_tag == "profile_login_start" %] + Checking profile logins. + + [% ELSIF san_tag == "profile_login_alert" %] + Bad profile email address, id=[% id FILTER html %], + <[% email FILTER html %]>. + + [% ELSIF san_tag == "repair_bugs" %] + Repair these [% terms.bugs %]. + + [% ELSIF san_tag == "send_bugmail_start" %] + OK, now attempting to send unsent mail. + + [% ELSIF san_tag == "send_bugmail_status" %] + [% bug_count FILTER html %] [%+ terms.bugs %] found with + possibly unsent mail. + + [% ELSIF san_tag == "send_bugmail_end" %] + Unsent mail has been sent. + + [% ELSIF san_tag == "unsent_bugmail_check" %] + Checking for unsent mail + + [% ELSIF san_tag == "unsent_bugmail_alert" %] + [% terms.Bugs %] that have changes but no mail sent for at least + half an hour: [% INCLUDE bug_list badbugs = badbugs %] + + [% ELSIF san_tag == "unsent_bugmail_fix" %] + Send these mails. + + [% ELSIF san_tag == "vote_cache_rebuild_start" %] + OK, now rebuilding vote cache. + + [% ELSIF san_tag == "vote_cache_rebuild_end" %] + Vote cache has been rebuilt. + + [% ELSIF san_tag == "vote_cache_rebuild_fix" %] + Click here to + rebuild the vote cache + + [% ELSIF san_tag == "vote_cache_alert" %] + Bad vote cache for [% PROCESS bug_link bug_id = id %] + + [% ELSIF san_tag == "vote_count_start" %] + Checking cached vote counts. + + [% ELSIF san_tag == "vote_count_alert" %] + Bad vote sum for [% terms.bug %] [%+ id FILTER html %]. + + [% ELSIF san_tag == "whines_obsolete_target_deletion_start" %] + OK, now removing non-existent users/groups from whines. + + [% ELSIF san_tag == "whines_obsolete_target_deletion_end" %] + Non-existent users/groups have been removed from whines. + + [% ELSIF san_tag == "whines_obsolete_target_start" %] + Checking for whines with non-existent users/groups. + + [% ELSIF san_tag == "whines_obsolete_target_alert" %] + [% FOREACH schedule = schedules %] + Non-existent [% (type == constants.MAILTO_USER) ? "user" : "group" FILTER html %] + [%+ schedule.1 FILTER html %] for whine schedule [% schedule.0 FILTER html %]
    + [% END %] + + [% ELSIF san_tag == "whines_obsolete_target_fix" %] + Click here to + remove old users/groups + + [% ELSE %] + [% message = Hook.process("statuses") %] + + [% IF message %] + [% message FILTER none %] + [% ELSE %] + The status message string [% san_tag FILTER html %] + was not found. Please send email to [% Param("maintainer") %] describing + the steps taken to obtain this message. + [% END %] + + [% END %] +[% END %] + +[% USE Bugzilla %] +[% IF Bugzilla.usage_mode == constants.USAGE_MODE_CMDLINE %] + [% san_message FILTER none %] +[% ELSE %] + [%# Avoid the txt filter in message.txt.tmpl. %] + [% san_message FILTER html %] +[% END %] + +[% BLOCK bug_list %] + [% FOREACH bug_id = badbugs %] + [%# Do not use FILTER bug_link() here, because bug_link() calls get_text() + # which itself calls this template again, generating a recursion error. + # I doubt having a tooltip with the bug status and summary is so + # important here anyway, as you can click the "(as buglist)" link. %] + [% bug_id FILTER html %] + [% ", " IF !loop.last %] + [% END %] + (as [% terms.bug %] list). +[% END %] + +[% BLOCK bug_link %] + [% terms.bug %] [%+ bug_id FILTER html %] +[% END %] diff --git a/template/en/default/admin/settings/edit.html.tmpl b/template/en/default/admin/settings/edit.html.tmpl new file mode 100644 index 0000000..7f95f88 --- /dev/null +++ b/template/en/default/admin/settings/edit.html.tmpl @@ -0,0 +1,101 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Shane H. W. Travis + # + #%] + +[%# INTERFACE: + # settings: a hash of hashes, keyed by setting name. + # Each hash contains: + # is_enabled - boolean + # default_value - string (global default for this setting) + # value - string (user-defined preference) + # is_default - boolean (true if user has no preference) + #%] + +[% PROCESS global/header.html.tmpl + title = "Default Preferences" + %] + +[% PROCESS "global/setting-descs.none.tmpl" %] + +

    +This lets you edit the default preferences values. +

    +

    +The Default Value displayed for each preference will apply to all users who +do not choose their own value, and to anyone who is not logged in. +

    +

    +The 'Enabled' checkbox controls whether or not this preference is available +to users.
    +If it is checked, users will see this preference on their User Preferences page, +and will be allowed to choose their own value if they desire.
    +If it is not checked, this preference will not appear on the User Preference +page, and the Default Value will automatically apply to everyone. +

    +
    + +[% IF settings.size %] +
    + + + + + + + + [% FOREACH name = settings.keys %] + [% checkbox_name = name _ '-enabled' %] + + + + + + [% END %] +
    Preference TextDefault ValueEnabled
    + [% setting_descs.$name OR name FILTER html %] + + + + +
    +
    + + + + + + + + +
    + +
    + +
    +[% ELSE %] + There are no preferences to edit. +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/sudo.html.tmpl b/template/en/default/admin/sudo.html.tmpl new file mode 100644 index 0000000..680bcfb --- /dev/null +++ b/template/en/default/admin/sudo.html.tmpl @@ -0,0 +1,105 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 2005 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): A. Karl Kornel + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Begin sudo session" + style_urls = ['skins/standard/admin.css'] + doc_section = "useradmin.html#impersonatingusers" + %] + +[% DEFAULT target_login = "" %] + +

    + The sudo feature of [% terms.Bugzilla %] allows you to impersonate a + user for a short time While an sudo session is in progress, every action you + perform will be taking place as if you had logged in as the user whom will be + impersonating. +

    + +

    + This is a very powerful feature; you should be very careful while using it. + Your actions may be logged more carefully than normal. +

    + +
    +

    + To begin, + [% IF Param('usemenuforusers') %] + select + [% ELSE %] + enter the login of + [% END %] + : + [% INCLUDE global/userselect.html.tmpl + id => "target_login" + name => "target_login" + value => target_login_default + accesskey => "u" + size => 30 + %] +

    + + [% IF !Param('usemenuforusers') %] +

    + The username must be entered exactly. No matching will be performed. +

    + [% END %] + +

    + Next, please take a moment to explain

    + +

    + The message you enter here will be sent to the impersonated user by email. + You may leave this empty if you wish, but they will still know that you + are impersonating them. +

    + + [% IF user.authorizer.can_login %] +

    + Finally, enter : + + +
    + This is done for two reasons. First of all, it is done to reduce + the chances of someone doing large amounts of damage using your + already-logged-in account. Second, it is there to force you to take the + time to consider if you really need to use this feature. +

    + [% END %] + +

    + Click the button to begin the session: + + + +

    + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/table.html.tmpl b/template/en/default/admin/table.html.tmpl new file mode 100644 index 0000000..ce5e985 --- /dev/null +++ b/template/en/default/admin/table.html.tmpl @@ -0,0 +1,194 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Jouni Heikniemi + # + #%] + +[%# INTERFACE: + # + # columns: + # array of hashes representing the columns in the table. + # Each hash contains data for a single column. Hash keys: + # name: Name of the field in the data param + # heading: The text to print at the header cell + # contentlink: URI to which the content of a data cell shall be linked to. + # Expressions of format %%xxx%% are replaced with value + # with the key xxx in data hash of the current row. + # content: If specified, the content of this variable is used + # instead of the data pulled from the current row. + # NOTE: This value is only partially HTML filtered! + # content_use_field: If defined and true, then each value in the + # column corresponds with a key in the + # field_descs field, and that value from the + # field_descs hash will be used instead of "content." + # See fieldvalues/select-field for an example of use. + # This content WILL be HTML-filtered in this case. + # align: left/center/right. Controls the horizontal alignment of the + # text in the column. + # allow_html_content: if defined, then this column allows some html content + # and so it will be only partially filtered. + # yesno_field: Turn the data from 0/!0 into Yes/No + # + # data: + # array of hashes representing the data for the table. + # Each hash contains data for a single row of data. The + # keys are column names from columns subhashes name field. + # + # overrides: + # Example: + # overrides { # first hash + # column_name_to_be_overwriten => { # second hash + # name_of_row_to_match_against => { # third hash + # value_to_match_against => { # fourth hash + # content => "some contents" + # override_content => 1 + # } + # } + # } + # } + # + # Provides a method for overriding individual table cells. This is a hash + # (1), whose key is the column name, so the column must be named for + # one of it's cells to be overwritten. The hash value is another hash + # (2). The keys of that second hash are the name of the row to match + # against. The second hash then again points to another hash. Within this + # third hash (3), the keys represent values to match against. The item + # contains a fourth hash (4) specifying overridden values. + # + # Each column value mentioned in the 'columns' documentation above + # can be overwritten (apart from name and heading). To override a + # table-cell value 'xxx', specify a new 'xxx' value, and specify a + # 'override_xxx' value as well. See + # admin/milestones/list.html.tmpl for example + # + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[%################### TABLE HEADER ######################%] + + + + [% FOREACH c = columns %] + [%# Default to align left for headers %] + + [% END %] + + + +[%################### TABLE CONTENT ######################%] + +[% FOREACH row = data %] + + + [% FOREACH c = columns %] + + [%# Copy to local variables, as we may update these %] + [% contentlink = c.contentlink + content = c.content + content_use_field = c.content_use_field + align = c.align + class = c.class + allow_html_content = c.allow_html_content + yesno_field = c.yesno_field + %] + + [%# Get any specific "important" overrides for this c.name and row.name ? %] + [% SET important = overrides.${c.name}.name.${row.name} %] + + [% IF important %] + + [% FOREACH key IN important.keys %] + [% SET ${key} = important.${key} %] + [% END %] + + [% ELSE %] + + [%# Are there any specific overrides for this column? %] + [% FOREACH match_field = overrides.${c.name}.keys %] + + [% override = overrides.${c.name}.${match_field}.${row.$match_field} %] + [% NEXT UNLESS override %] + + [% FOREACH key IN override.keys %] + [% SET ${key} = override.${key} %] + [% END %] + + [% LAST %] + + [% END %] + [% END %] + + + [% END %] + +[% END %] + +[% IF data.size == 0 %] + +[% END %] + + +[%################### TABLE FOOTER ######################%] + +
    + [% c.heading FILTER html %] +
    + + [% IF contentlink %] + [% link_uri = contentlink %] + [% WHILE link_uri.search('%%(.+?)%%')%] + [% FOREACH m = link_uri.match('%%(.+?)%%') %] + [% IF row.$m %] + [% replacement_value = FILTER url_quote; row.$m; END %] + [% ELSE %] + [% replacement_value = "" %] + [% END %] + [% link_uri = link_uri.replace("%%$m%%", replacement_value) %] + [% END %] + [% END %] + + [% END %] + + [% IF content_use_field %] + [% colname = row.${c.name} %] + [% field_descs.${colname} FILTER html %] + [% ELSIF content %] + [% content FILTER html_light %] + [% ELSE %] + [% IF yesno_field %] + [% IF row.${c.name} %] + Yes + [% ELSE %] + No + [% END %] + [% ELSE %] + [% IF allow_html_content %] + [% row.${c.name} FILTER html_light %] + [% ELSE %] + [% row.${c.name} FILTER html %] + [% END %] + [% END %] + [% END %] + + [% IF contentlink %] + + [% END %] + +
    <none>
    diff --git a/template/en/default/admin/users/confirm-delete.html.tmpl b/template/en/default/admin/users/confirm-delete.html.tmpl new file mode 100644 index 0000000..b61a995 --- /dev/null +++ b/template/en/default/admin/users/confirm-delete.html.tmpl @@ -0,0 +1,486 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user + # list. + # editusers: is viewing user member of editusers? + # otheruser: Bugzilla::User object of the viewed user. + # reporter: number of bugs reported by the user + # assignee_or_qa: number of bugs the user is either the assignee + # or the QA contact + # bugs_activity: number of bugs the viewed user has activity + # entries on + # cc number of bugs the viewed user is cc list member + # of + # flags.requestee: number of flags the viewed user is being asked for + # flags.setter: number of flags the viewed user has set + # longdescs: number of bug comments the viewed user has written + # namedqueries: number of named queries the user has created + # namedquery_group_map: number of named queries the user has shared + # profiles_activity: number of changes made to other users' profiles + # series: number of series the viewed user has created + # votes: number of bugs the viewed user has voted on + # watch.watched: number of users the viewed user is being watched + # by + # watch.watcher: number of users the viewed user is watching + # whine_events: number of whine events the viewed user has created + # whine_schedules: number of whine schedules the viewed user has + # created + #%] + +[% title = BLOCK %]Confirm deletion of user [% otheruser.login FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css', + 'skins/standard/editusers.css'] + doc_section = "useradmin.html#user-account-deletion" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + + + + + + + + + + + + + + + [% IF otheruser.product_responsibilities.size %] + + + + + [% END %] +
    Login name:[% otheruser.login FILTER html %]
    Real name:[% otheruser.name FILTER html %]
    Group set: + [% IF otheruser.groups.size %] +
      + [% FOREACH group = otheruser.groups %] +
    • [% group.name FILTER html %]
    • + [% END %] +
    + [% ELSE %] + None + [% END %] +
    Product responsibilities: + [% PROCESS admin/users/responsibilities.html.tmpl otheruser = otheruser %] +
    + +[% IF otheruser.product_responsibilities.size %] +

    + You can't delete this user at this time because + [%+ otheruser.login FILTER html %] has got responsibilities for at least + one product. +

    +

    + [% IF user.in_group("editcomponents", component.product_id) %] + Change this by clicking the product editing links above, + [% ELSE %] + For now, you can + [% END %] +[% ELSE %] + [% accept_deletion = 1 %] + + [% IF attachments || reporter || bugs_activity || flags.setter || longdescs || profiles_activity %] +

    +

    The following deletions are unsafe and would generate referential + integrity inconsistencies!

    + +
      + [% IF attachments %] +
    • + [% otheruser.login FILTER html %] + has submitted + [% IF attachments == 1 %] + one attachment + [% ELSE %] + [%+ attachments %] attachments + [% END %]. + If you delete the user account, the database records will be + inconsistent, resulting in + [% IF attachments == 1 %] + this attachment + [% ELSE %] + these attachments + [% END %] + not appearing in [% terms.bugs %] any more. +
    • + [% END %] + [% IF reporter %] +
    • + [% otheruser.login FILTER html %] + has reported + [% IF reporter == 1 %] + one [% terms.bug %] + [% ELSE %] + [%+ reporter %] [%+ terms.bugs %] + [% END %]. + If you delete the user account, the database records will be + inconsistent, resulting in + [% IF reporter == 1 %] + this [% terms.bug %] + [% ELSE %] + these [% terms.bugs %] + [% END %] + not appearing in [% terms.bug %] lists any more. +
    • + [% END %] + [% IF bugs_activity %] +
    • + [% otheruser.login FILTER html %] has made + [% IF bugs_activity == 1 %] + a change on [% terms.abug %] + [% ELSE %] + changes on [% terms.bugs %] + [% END %]. + If you delete the user account, the [% terms.bugs %] activity table in + the database will be inconsistent, resulting in + [% IF bugs_activity == 1 %] + this change + [% ELSE %] + these changes + [% END %] + not showing up in [% terms.bug %] activity logs any more. +
    • + [% END %] + [% IF flags.setter %] +
    • + [% otheruser.login FILTER html %] has + set + or requested + [% IF flags.setter == 1 %] + a flag + [% ELSE %] + [%+ flags.setter %] flags + [% END %]. + If you delete the user account, the flags table in the database + will be inconsistent, resulting in + [% IF flags.setter == 1 %] + this flag + [% ELSE %] + these flags + [% END %] + not displaying correctly any more. +
    • + [% END %] + [% IF longdescs %] +
    • + [% otheruser.login FILTER html %] has + commented + [% IF longdescs == 1 %] + once on [% terms.abug %] + [% ELSE %] + [%+ longdescs %] times on [% terms.bugs %] + [% END %]. + If you delete the user account, the comments table in the database + will be inconsistent, resulting in + [% IF longdescs == 1 %] + this comment + [% ELSE %] + these comments + [% END %] + not being visible any more. +
    • + [% END %] + [% IF profiles_activity %] +
    • + [% otheruser.login FILTER html %] has made + [% IF bugs_activity == 1 %] + a change on a other user's profile + [% ELSE %] + changes on other users' profiles + [% END %]. + If you delete the user account, the user profiles activity table in + the database will be inconsistent. +
    • + [% END %] +
    +
    + [% accept_deletion = 0 %] + [% END %] + + [% IF assignee_or_qa || cc || component_cc || email_setting || flags.requestee || + namedqueries || profile_setting || quips || series || votes || watch.watched || + watch.watcher || whine_events || whine_schedules %] +
    +

    The following deletions are safe and will not generate + referential integrity inconsistencies.

    + +
      + [% IF assignee_or_qa %] +
    • + [% otheruser.login FILTER html %] + is + the assignee or the QA contact of + [% IF assignee_or_qa == 1 %] + one [% terms.bug %] + [% ELSE %] + [%+ assignee_or_qa %] [%+ terms.bugs %] + [% END %]. + If you delete the user account, these roles will fall back to + the default assignee or default QA contact. +
    • + [% END %] + [% IF cc %] +
    • + [% otheruser.login FILTER html %] + is + on the CC list of + [% IF cc == 1 %] + [%+ terms.abug %] + [% ELSE %] + [%+ cc %] [%+ terms.bugs %] + [% END %]. + If you delete the user account, it will be removed from these CC lists. +
    • + [% END %] + [% IF component_cc %] +
    • + [% otheruser.login FILTER html %] is on the default CC list of + [% IF component_cc == 1 %] + one component + [% ELSE %] + [%+ component_cc %] components + [% END %]. + If you delete the user account, it will be removed from these CC lists. +
    • + [% END %] + [% IF email_setting %] +
    • + The user's e-mail settings will be deleted along with the user + account. +
    • + [% END %] + [% IF flags.requestee %] +
    • + [% otheruser.login FILTER html %] has been + asked + to set + [% IF flags.requestee == 1 %] + a flag + [% ELSE %] + [% flags.requestee %] flags + [% END %]. + If you delete the user account, + [% IF flags.requestee == 1 %] + this flag + [% ELSE %] + these flags + [% END %] + will change to be unspecifically requested. +
    • + [% END %] + [% IF namedqueries %] +
    • + [% otheruser.login FILTER html %] has + [% IF namedqueries == 1 %] + a [% 'shared' IF namedquery_group_map %] named search + [% ELSE %] + [%+ namedqueries FILTER html %] named searches + [% END %]. + [% IF namedqueries == 1 %] + This named search + [% ELSE %] + These named searches + [% END %] + will be deleted along with the user account. + [% IF namedquery_group_map %] + [% IF namedqueries > 1 %] + Of these, + [% IF namedquery_group_map > 1 %] + [%+ namedquery_group_map FILTER html %] are + [% ELSE %] + one is + [% END %] + shared. + [% END %] + Other users will not be able to use + [% IF namedquery_group_map > 1 %] + these shared named searches + [% ELSE %] + this shared named search + [% END %] + any more. + [% END %] +
    • + [% END %] + [% IF profile_setting %] +
    • + The user's preference settings will be deleted along with the user + account. +
    • + [% END %] + [% IF series %] +
    • + [% otheruser.login FILTER html %] has created + [% IF series == 1 %] + a series + [% ELSE %] + [%+ series %] series + [% END %]. + [% IF series == 1 %] + This series + [% ELSE %] + These series + [% END %] + will be deleted along with the user account. +
    • + [% END %] + [% IF quips %] +
    • + [% otheruser.login FILTER html %] has submitted + [% IF quips == 1 %] + a quip + [% ELSE %] + [%+ quips %] quips + [% END %]. + If you delete the user account, + [% IF quips == 1 %] + this quip + [% ELSE %] + these quips + [% END %] + will have no author anymore, but will remain available. +
    • + [% END %] + [% IF votes %] +
    • + [% otheruser.login FILTER html %] has voted on + [% IF votes == 1 %] + [%+ terms.abug %] + [% ELSE %] + [%+ votes %] [%+ terms.bugs %] + [% END %]. + If you delete the user account, + [% IF votes == 1 %] + this vote + [% ELSE %] + these votes + [% END %] + will be deleted along with the user account. +
    • + [% END %] + [% IF watch.watched || watch.watcher %] +
    • + [% otheruser.login FILTER html %] + [% IF watch.watched %] + is being watched by + [% IF watch.watched == 1 %] + a user + [% ELSE %] + [%+ watch.watched %] users + [% END %] + [% END %] + [% IF watch.watcher %] + [%+ 'and' IF watch.watched %] + watches + [% IF watch.watcher == 1 %] + a user + [% ELSE %] + [%+ watch.watcher %] users + [% END %] + [% END %]. + [% IF watch.watched + watch.watcher == 1 %] + This watching + [% ELSE %] + These watchings + [% END %] + will cease along with the deletion of the user account. +
    • + [% END %] + [% IF whine_events %] +
    • + [% otheruser.login FILTER html %] has scheduled + [% IF whine_events == 1 %] + a whine + [% ELSE %] + [%+ whine_events %] whines + [% END %]. + [% IF whine_events == 1 %] + This whine + [% ELSE %] + These whines + [% END %] + will be deleted along with the user account. +
    • + [% END %] + [% IF whine_schedules %] +
    • + [% otheruser.login FILTER html %] is on the receiving end of + [% IF whine_schedules == 1 %] + a whine + [% ELSE %] + [%+ whine_schedules %] whines + [% END %]. + The corresponding schedules will be deleted along with the user account, + but the whines themselves will be left unaltered. +
    • + [% END %] +
    +
    + + [% IF accept_deletion %] +

    + Please be aware of the consequences of this before continuing. +

    +

    Do you really want to delete this user account?

    + +
    +

    + + + + + [% INCLUDE listselectionhiddenfields %] +

    +
    +

    If you do not want to delete the user account at this time, + [% ELSE %] +

    You cannot delete this user account due to unsafe actions reported above. You can + [% END %] + + [% END %] +[% END %] + + edit the user, + go + back + to the user list, + [% IF editusers %] + add + a new user, + [% END %] + or find other users. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/create.html.tmpl b/template/en/default/admin/users/create.html.tmpl new file mode 100644 index 0000000..6fd5b67 --- /dev/null +++ b/template/en/default/admin/users/create.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user list. + # editusers: is viewing user member of editusers? + #%] + +[% PROCESS global/header.html.tmpl + title = "Add user" + style_urls = ['skins/standard/editusers.css'] + onload = "document.forms['f'].login.focus()" + doc_section = "useradmin.html#createnewusers" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +
    + + [% PROCESS admin/users/userdata.html.tmpl + editform = 0 + editusers = editusers + otheruser = [] + %] +
    +

    + + + + [% INCLUDE listselectionhiddenfields %] +

    +
    + +

    + You can also find a user + [% IF listselectionvalues %], + or + go + back to the user list + [% END %]. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/edit.html.tmpl b/template/en/default/admin/users/edit.html.tmpl new file mode 100644 index 0000000..3efa4b8 --- /dev/null +++ b/template/en/default/admin/users/edit.html.tmpl @@ -0,0 +1,168 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # message: message tag specifying a global/messages.html.tmpl + # message + # listselectionvalues: selection values to recreate the current user list. + # editusers: is viewing user member of editusers? + # otheruser: Bugzilla::User object of viewed user. + # groups: array of group information (name, grant type, + # canbless) for viewed user. + #%] + +[% title = BLOCK %]Edit user [% otheruser.identity FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + message = message + style_urls = ['skins/standard/admin.css', 'skins/standard/editusers.css'] + doc_section = "useradmin.html#modifyusers" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +
    + + [% PROCESS admin/users/userdata.html.tmpl + editform = 1 + editusers = editusers + otheruser = otheruser + %] + [% IF groups.size %] + + + + + [% END %] + + + + + +
    Group access: + + + [% IF editusers %] + + [% END %] + + + [% IF editusers %] + + [% END %] + + + [% FOREACH group = groups %] + [% perms = permissions.${group.id} %] + + [% IF editusers %] + + [% END %] + + + + [% END %] +
    + Can turn these bits on for other users +
    |User is a member of these groups
    + [% '[' IF perms.indirectbless %] + [% %] + [% ']' IF perms.indirectbless %] + [% '[' IF perms.derivedmember %] + [% '*' IF perms.regexpmember %] + [%%] + [% '*' IF perms.regexpmember %] + [% ']' IF perms.derivedmember %] + +
    +
    Product responsibilities: + [% IF otheruser.product_responsibilities.size %] + [% PROCESS admin/users/responsibilities.html.tmpl otheruser = otheruser %] + [% ELSE %] + none + [% END %] +
    + +

    + + + + + [% INCLUDE listselectionhiddenfields %] + + or View Account History +

    +
    +

    + User is a member of any groups shown with a check or grey bar. + A grey bar indicates indirect membership, either derived from other + groups (marked with square brackets) or via regular expression + (marked with '*'). +

    +[% IF editusers %] +

    + Square brackets around the bless checkbox indicate the ability + to bless users (grant them membership in the group) as a result + of membership in another group. +

    +[% END %] + +[% IF Param('allowuserdeletion') && editusers %] +
    +

    + + + + [% INCLUDE listselectionhiddenfields %] +

    +
    +[% END %] + +

    + You can also + [% IF editusers %] + add + a new user + [% IF listselectionvalues %], + [% END %] + [% END %] + [% IF listselectionvalues.matchtype != 'exact' %] + go + back + to the user list, + [% END %] + [% IF editusers OR listselectionvalues %] + or + [% END %] + find other users. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/list.html.tmpl b/template/en/default/admin/users/list.html.tmpl new file mode 100644 index 0000000..cb05e82 --- /dev/null +++ b/template/en/default/admin/users/list.html.tmpl @@ -0,0 +1,115 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user list. + # editusers: is viewing user member of editusers? + # users: list of user information (id, login_name, realname, + # disabledtext). + #%] + +[% PROCESS global/header.html.tmpl + title = "Select user" + style_urls = ['skins/standard/editusers.css'] + doc_section = "useradmin.html" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +[% listselectionurlparams = INCLUDE listselectionurlparams %] + +[% columns = + [{name => 'login_name' + heading => 'Edit user...' + contentlink => 'editusers.cgi?action=edit&userid=%%userid%%' _ + listselectionurlparams + } + {name => 'realname' + heading => 'Real name' + } + {heading => 'Account History' + content => 'View' + contentlink => 'editusers.cgi?action=activity' _ + '&userid=%%userid%%' _ + listselectionurlparams + } + ] +%] + +[% IF Param('allowuserdeletion') && editusers %] + [% columns.push({heading => 'Action' + content => 'Delete' + contentlink => 'editusers.cgi?action=del' _ + '&userid=%%userid%%' _ + listselectionurlparams + } + ) + %] +[% END %] + +[%# Disabled users are crossed out. Missing realnames are noticed in red. %] +[% overrides.login_name = {} %] +[% overrides.realname = {} %] + +[% FOREACH thisuser = users %] + [% IF !thisuser.realname %] + [%# We cannot pass one class now and one class later. %] + [% SET classes = (thisuser.disabledtext ? "bz_inactive missing" : "missing") %] + [% overrides.realname.login_name.${thisuser.login_name} = { + content => "missing" + override_content => 1 + class => "$classes" + override_class => 1 + } + %] + [% ELSIF thisuser.disabledtext %] + [% overrides.realname.login_name.${thisuser.login_name} = { + class => "bz_inactive" + override_class => 1 + } + %] + [% END %] + + [% IF thisuser.disabledtext %] + [% overrides.login_name.login_name.${thisuser.login_name} = { + class => "bz_inactive" + override_class => 1 + } + %] + [% END %] +[% END %] + +

    [% users.size %] user[% "s" UNLESS users.size == 1 %] found.

    + +[% PROCESS admin/table.html.tmpl + columns = columns + data = users + overrides = overrides +%] + +

    + If you do not wish to modify a user account at this time, you can + find other users + [% IF editusers %] + or + add + a new user + [% END %]. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/listselectvars.html.tmpl b/template/en/default/admin/users/listselectvars.html.tmpl new file mode 100644 index 0000000..a6eae57 --- /dev/null +++ b/template/en/default/admin/users/listselectvars.html.tmpl @@ -0,0 +1,33 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user list. + #%] + +[% BLOCK listselectionurlparams %] + [% FOREACH field = listselectionvalues.keys %]& + [% field FILTER url_quote %]= + [% listselectionvalues.$field FILTER url_quote %] + [% END %] +[% END %] + +[% BLOCK listselectionhiddenfields %] + [% FOREACH field = listselectionvalues.keys %] + + [% END %] +[% END %] diff --git a/template/en/default/admin/users/responsibilities.html.tmpl b/template/en/default/admin/users/responsibilities.html.tmpl new file mode 100644 index 0000000..bbf121a --- /dev/null +++ b/template/en/default/admin/users/responsibilities.html.tmpl @@ -0,0 +1,61 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + # Frédéric Buclin + #%] + +[% hidden_products = 0 %] + + [% FOREACH item = otheruser.product_responsibilities %] + [% IF !user.can_see_product(item.product.name) %] + [% hidden_products = 1 %] + [% NEXT %] + [% END %] + + + + + + + + + + [% FOREACH component = item.components %] + + + [% FOREACH responsibility = ['default_assignee', 'default_qa_contact'] %] + + [% END %] + + [% END %] + + [% END %] +
    Product: [% item.product.name FILTER html %]
    ComponentDefault AssigneeDefault QA Contact
    + [% IF user.in_group("editcomponents", component.product_id) %] + + [% END %] + [% component.name FILTER html %] + [% IF user.in_group("editcomponents", component.product_id) %] + + [% END %] + + [% component.$responsibility.id == otheruser.id ? "X" : " " %] +
    + +[% IF hidden_products %] +

    The user is involved in at least one product which you cannot + see (and so is not listed above). You have to ask an administrator with enough + privileges to edit this user's roles for these products.

    +[% END %] diff --git a/template/en/default/admin/users/search.html.tmpl b/template/en/default/admin/users/search.html.tmpl new file mode 100644 index 0000000..82e0afd --- /dev/null +++ b/template/en/default/admin/users/search.html.tmpl @@ -0,0 +1,78 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + # David Lawrence + #%] + +[%# INTERFACE: + # + # editusers: is viewing user member of editusers? + # restrictablegroups: list of groups visible to the user: + # id: group id + # name: group name + #%] + + +[% PROCESS global/header.html.tmpl + title = "Search users" + style_urls = ['skins/standard/editusers.css'] + onload = "document.forms['f'].matchstr.focus()" + doc_section = "useradmin.html#user-account-search" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +
    + +

    + + + + +

    + +[% IF restrictablegroups.size %] +

    + +

    +[% END %] +
    + +[% IF editusers %] +

    + You can also add a new user + [%- IF listselectionvalues %], + or + show + the user list again + [%- END %]. +

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/userdata.html.tmpl b/template/en/default/admin/users/userdata.html.tmpl new file mode 100644 index 0000000..f23aa1b --- /dev/null +++ b/template/en/default/admin/users/userdata.html.tmpl @@ -0,0 +1,98 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # editform: is this an edit form? (It's a create form otherwise) + # editusers: is viewing user member of editusers? + # otheruser: Bugzilla::User object of user to edit + #%] + + + + + [% IF editusers %] + + [% IF editform %] + [% IF !otheruser.in_group('bz_sudo_protect') %] +
    + Impersonate this user + [% END %] + [% END %] + [% ELSE %] + [% otheruser.login FILTER html %] + [% END %] + + + + + + [% IF editusers %] + + [% ELSE %] + [% otheruser.name FILTER html %] + [% END %] + + + +[%# XXX This condition (can_change_password) will cause a problem + # if we ever have a login system that can create accounts through + # createaccount.cgi but can't change passwords. + #%] + +[% IF editusers %] + [% IF user.authorizer.can_change_password %] + + + + + [% IF editform %]
    + (Enter new password to change.) + [% END %] + + + [% END %] + + + + + (This affects [% terms.bug %]mail and whinemail, not password-reset or other + non-[% terms.bug %]-related emails) + + + + + + [% INCLUDE global/textarea.html.tmpl + name = 'disabledtext' + id = 'disabledtext' + minrows = 2 + maxrows = 10 + defaultrows = 10 + cols = 60 + defaultcontent = otheruser.disabledtext + %]
    + (If non-empty, then the account will be disabled, and this text should + explain why.) + + +[% END %] diff --git a/template/en/default/admin/versions/confirm-delete.html.tmpl b/template/en/default/admin/versions/confirm-delete.html.tmpl new file mode 100644 index 0000000..88ffceb --- /dev/null +++ b/template/en/default/admin/versions/confirm-delete.html.tmpl @@ -0,0 +1,101 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version belongs. + # version: object; Bugzilla::Version object representing the + # version the user wants to delete. + #%] + +[% title = BLOCK %]Delete Version of Product '[% product.name FILTER html %]' + [% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] + + + + + + + + + + + + + + + + + + +
    FieldValue
    Version:[% version.name FILTER html %]
    Version of Product:[% product.name FILTER html %]
    [% terms.Bugs %]: +[% IF version.bug_count %] + + [%- version.bug_count FILTER none %] +[% ELSE %] + None +[% END %] +
    + +

    Confirmation

    + +[% IF version.bug_count %] +

    + Sorry, there + [% IF version.bug_count > 1 %] + are [% version.bug_count FILTER none %] [%+ terms.bugs %] + [% ELSE %] + is [% version.bug_count FILTER none %] [%+ terms.bug %] + [% END %] + + outstanding for this version. You must move + + [% IF version.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + to another version before you can delete this one. +

    +[% ELSE %] + +

    Do you really want to delete this version?

    + +
    + + + + + +
    + +[% END %] + +[% PROCESS admin/versions/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/create.html.tmpl b/template/en/default/admin/versions/create.html.tmpl new file mode 100644 index 0000000..8b4ba64 --- /dev/null +++ b/template/en/default/admin/versions/create.html.tmpl @@ -0,0 +1,52 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version is being created for + #%] + +[% title = BLOCK %]Add Version to Product '[% product.name FILTER html %]'[% END %] +[% subheader = BLOCK %]This page allows you to add a new version to product + '[% product.name FILTER html %]'.[% END %] +[% PROCESS global/header.html.tmpl + title = title + subheader = subheader +%] + +
    + + + + + +
    + + + + +
    + +[% PROCESS admin/versions/footer.html.tmpl + no_add_version_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/edit.html.tmpl b/template/en/default/admin/versions/edit.html.tmpl new file mode 100644 index 0000000..2a7c784 --- /dev/null +++ b/template/en/default/admin/versions/edit.html.tmpl @@ -0,0 +1,57 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version belongs. + # version: object; Bugzilla::Version object representing the + # version the user wants to edit. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Edit Version '[% version.name FILTER html %]' of product ' + [%- product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +
    + + + + + + + +
    + + + + + + +
    + +[% PROCESS admin/versions/footer.html.tmpl + no_edit_version_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/footer.html.tmpl b/template/en/default/admin/versions/footer.html.tmpl new file mode 100644 index 0000000..8d96a12 --- /dev/null +++ b/template/en/default/admin/versions/footer.html.tmpl @@ -0,0 +1,65 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version belongs. + # version: object; Bugzilla::Version object representing the version + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_version_link + # no_edit_other_versions_link + # no_add_version_link + #%] + +
    + +

    + +[% UNLESS no_add_version_link %] + Add a version. +[% END %] + +[% IF version.name && !no_edit_version_link %] + Edit version + '[% version.name FILTER html %]'. +[% END %] + +[% UNLESS no_edit_other_versions_link %] + Edit other versions of product '[% product.name FILTER html %]'. + +[% END %] + + Edit product '[% product.name FILTER html %]'. + +

    diff --git a/template/en/default/admin/versions/list.html.tmpl b/template/en/default/admin/versions/list.html.tmpl new file mode 100644 index 0000000..401ee51 --- /dev/null +++ b/template/en/default/admin/versions/list.html.tmpl @@ -0,0 +1,89 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the versions belongs. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select version of product + '[% product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editversions.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&version=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editversions.cgi?action=del&product= + [%- product.name FILTER url_quote %]&version=%%name%%[% END %] +[% bug_count_contentlink = BLOCK %]buglist.cgi?version=%%name%%&product= + [%- product.name FILTER url_quote %][% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit version..." + contentlink => edit_contentlink + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => "bug_count" + heading => "$terms.Bugs" + align => "right" + contentlink => bug_count_contentlink + }) + %] + +[% END %] + +[% columns.push({ + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) +%] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = product.versions +%] + +[% IF ! showbugcounts %] + +

    + Redisplay table with [% terms.bug %] counts (slower)

    + +[% END %] + +[% PROCESS admin/versions/footer.html.tmpl + no_edit_other_versions_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/select-product.html.tmpl b/template/en/default/admin/versions/select-product.html.tmpl new file mode 100644 index 0000000..7fded47 --- /dev/null +++ b/template/en/default/admin/versions/select-product.html.tmpl @@ -0,0 +1,70 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + # Frédéric Buclin + # + #%] + +[%# INTERFACE: + # products: array of product objects + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit versions for which product?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit versions of..." + contentlink => "editversions.cgi?product=%%name%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?product=%%name%%" + }) + %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] +

    + Redisplay table with [% terms.bug %] counts (slower)

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/workflow/comment.html.tmpl b/template/en/default/admin/workflow/comment.html.tmpl new file mode 100644 index 0000000..a7a6a74 --- /dev/null +++ b/template/en/default/admin/workflow/comment.html.tmpl @@ -0,0 +1,92 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + # Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% INCLUDE global/header.html.tmpl + title = "Comments Required on Status Transitions" + style_urls = ['skins/standard/admin.css'] +%] + + + +

    + This page allows you to define which status transitions require a comment + by the user doing the change. +

    + +
    + + + + + + + + + + [% FOREACH status = statuses %] + + [% END %] + + + [%# This defines the entry point in the workflow %] + [% p = [{id => 0, name => "{Start}", is_open => 1}] %] + [% FOREACH status = p.merge(statuses) %] + + + + [% FOREACH new_status = statuses %] + [% IF workflow.${status.id}.${new_status.id}.defined %] + + [% ELSE %] + + [% END %] + [% END %] + + [% END %] +
     To
    From  + [% display_value("bug_status", status.name) FILTER html %] +
    + [% display_value("bug_status", status.name) FILTER html %] + + +  
    + +

    + + + - + Cancel Changes - + View Current Workflow +

    + +
    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/admin/workflow/edit.html.tmpl b/template/en/default/admin/workflow/edit.html.tmpl new file mode 100644 index 0000000..406c08a --- /dev/null +++ b/template/en/default/admin/workflow/edit.html.tmpl @@ -0,0 +1,110 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + # Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% INCLUDE global/header.html.tmpl + title = "Edit Workflow" + style_urls = ['skins/standard/admin.css'] +%] + + + +

    + This page allows you to define which status transitions are valid in your workflow. + For compatibility with older versions of [% terms.Bugzilla %], reopening [% terms.abug %] + will only display either [% display_value("bug_status", "UNCONFIRMED") FILTER html %] or + [%+ display_value("bug_status", "REOPENED") FILTER html %] (if allowed by your workflow) but not + both. The decision depends on whether the [% terms.bug %] has ever been confirmed or not. + So it is a good idea to allow both transitions and let [% terms.Bugzilla %] select the + correct one. +

    + +
    + + + + + + + + + + [% FOREACH status = statuses %] + + [% END %] + + + [%# This defines the entry point in the workflow %] + [% p = [{id => 0, name => "{Start}", is_open => 1}] %] + [% FOREACH status = p.merge(statuses) %] + + + + [% FOREACH new_status = statuses %] + [% IF status.id != new_status.id && (status.id || new_status.is_open) %] + [% checked = workflow.${status.id}.${new_status.id}.defined ? 1 : 0 %] + [% mandatory = (status.id && new_status.name == Param("duplicate_or_move_bug_status")) ? 1 : 0 %] + + [% ELSE %] + + [% END %] + [% END %] + + [% END %] +
     To
    From  + [% display_value("bug_status", status.name) FILTER html %] +
    + [% display_value("bug_status", status.name) FILTER html %] + + +  
    + +

    + When [% terms.abug %] is marked as a duplicate of another one or is moved + to another installation, the [% terms.bug %] status is automatically set to + [% display_value("bug_status", Param("duplicate_or_move_bug_status")) FILTER html %]. All transitions to + this [% terms.bug %] status must then be valid (this is the reason why you cannot edit + them above).
    + Note: you can change this setting by visiting the + Parameters + page and editing the duplicate_or_move_bug_status parameter. +

    + +

    + + + - + Cancel Changes - + View Comments Required on Status Transitions +

    + +
    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/attachment/cancel-create-dupe.html.tmpl b/template/en/default/attachment/cancel-create-dupe.html.tmpl new file mode 100644 index 0000000..f838955 --- /dev/null +++ b/template/en/default/attachment/cancel-create-dupe.html.tmpl @@ -0,0 +1,48 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Olav Vitters. + # + # Contributor(s): Olav Vitters + # David Lawrence + #%] + +[%# INTERFACE: + # bugid: integer. ID of the bug report that this attachment relates to. + # attachid: integer. ID of the previous attachment recently created. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "Already filed attachment" +%] + +[% USE Bugzilla %] + + + + + +
    + + You already used the form to file + attachment [% attachid FILTER url_quote %]. + +
    + +

    + You can either + create a new attachment or [% "go back to $terms.bug $bugid" FILTER bug_link(bugid) FILTER none %]. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/choose.html.tmpl b/template/en/default/attachment/choose.html.tmpl new file mode 100644 index 0000000..700abb4 --- /dev/null +++ b/template/en/default/attachment/choose.html.tmpl @@ -0,0 +1,43 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Locate attachment", + onload = "document.forms['choose-id'].id.focus()" + %] + +

    +

    Access an attachment by entering its ID into the form below:

    +

    Attachment ID: + + +

    +
    + +
    +

    Or, access it from the list of attachments in its associated [% terms.bug %] report:

    +

    [% terms.Bug %] ID: + +

    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/confirm-delete.html.tmpl b/template/en/default/attachment/confirm-delete.html.tmpl new file mode 100644 index 0000000..14c76c3 --- /dev/null +++ b/template/en/default/attachment/confirm-delete.html.tmpl @@ -0,0 +1,92 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # a: attachment object; attachment the user wants to delete. + # token: string; The token used to identify the session. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Delete Attachment [% a.id FILTER html %] of [% terms.Bug %] [%+ a.bug_id FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "attachments.html" +%] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldValue
    Attachment ID: + [% a.id FILTER html %] +
    File name:[% a.filename FILTER html %]
    Description:[% a.description FILTER html %]
    Contained in [% terms.Bug %]:[% a.bug_id FILTER bug_link(a.bug_id) FILTER none %]
    Creator:[% a.attacher.identity FILTER html %]
    Creation Date:[% a.attached FILTER time %]
    + +

    Confirmation

    + + + + + +
    + The content of this attachment will be deleted in an irreversible way. +
    + +

    Do you really want to delete this attachment?

    + +
    + + +
    + + + + +
    + +

    + No, cancel this deletion and return to + [%+ "$terms.bug " _ a.bug_id FILTER bug_link(a.bug_id) FILTER none %]. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/content-types.html.tmpl b/template/en/default/attachment/content-types.html.tmpl new file mode 100644 index 0000000..471222a --- /dev/null +++ b/template/en/default/attachment/content-types.html.tmpl @@ -0,0 +1,27 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + + + + + + + + diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl new file mode 100644 index 0000000..f00a0ad --- /dev/null +++ b/template/en/default/attachment/create.html.tmpl @@ -0,0 +1,135 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Joel Peshkin + # Erik Stambaugh + # Marc Schumann + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[%# Define strings that will serve as the title and header of this page %] +[% title = BLOCK %]Create New Attachment for [% terms.Bug %] #[% bug.bug_id %][% END %] +[% header = BLOCK %]Create New Attachment for + [%+ "$terms.Bug $bug.bug_id" FILTER bug_link(bug) FILTER none %][% END %] +[% subheader = BLOCK %][% bug.short_desc FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + header = header + subheader = subheader + style_urls = [ 'skins/standard/create_attachment.css' ] + javascript_urls = [ "js/attachment.js", "js/util.js" ] + doc_section = "attachments.html" +%] + +
    + + + + + + [% PROCESS attachment/createformcontents.html.tmpl %] + + [%# Additional fields for attachments on existing bugs: %] + + + + + + [% IF (user.id != bug.assigned_to.id) AND user.in_group("editbugs", bug.product_id) %] + + + + + [% END %] + + + + + [% IF user.is_insider %] + + + + + [% END %] + + + + +
    Obsoletes: + (optional) Check each existing attachment made obsolete by your new attachment.
    + [% IF attachments.size %] + [% FOREACH attachment = attachments %] + [% IF ((attachment.isprivate == 0) || user.is_insider) %] + + [% attachment.id %]: [% attachment.description FILTER html %]
    + [% END %] + [% END %] + [% ELSE %] + [no attachments can be made obsolete] + [% END %] +
    Reassignment: + If you want to assign this [% terms.bug %] to yourself, + check the box below.
    + + + [% bug_statuses = [] %] + [% FOREACH bug_status = bug.status.can_change_to %] + [% NEXT IF bug_status.name == "UNCONFIRMED" + && !bug.product_obj.allows_unconfirmed %] + [% bug_statuses.push(bug_status) IF bug_status.is_open %] + [% END %] + [% IF bug_statuses.size %] + + + [% END %] +
    + (optional) Add a comment about this attachment to the [% terms.bug %].
    + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 6 + maxrows = 15 + cols = constants.COMMENT_COLS + wrap = 'soft' + %] +
    Privacy: + + +
     
    + +
    + +[% Hook.process('end') %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/created.html.tmpl b/template/en/default/attachment/created.html.tmpl new file mode 100644 index 0000000..da2fec8 --- /dev/null +++ b/template/en/default/attachment/created.html.tmpl @@ -0,0 +1,67 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # attachment: object of the attachment just created. + # contenttypemethod: string. How we got the content type of the attachment. + # Possible values: autodetect, list, manual. + #%] + +[% PROCESS global/variables.none.tmpl %] +[% bug = bugs.0 %] +[% PROCESS "bug/show-header.html.tmpl" %] +[% PROCESS global/header.html.tmpl + title = "Attachment $attachment.id added to $terms.Bug $attachment.bug_id" +%] + +
    +
    + Attachment #[% attachment.id %] + to [% "$terms.bug $attachment.bug_id" FILTER bug_link(attachment.bug_id) FILTER none %] created +
    +
    + [% PROCESS "bug/process/bugmail.html.tmpl" mailing_bugid = attachment.bug_id %] + [% IF convertedbmp %] +

    + Note: [% terms.Bugzilla %] automatically converted your BMP image file to a + compressed PNG format. +

    + [% END %] + [% IF contenttypemethod == 'autodetect' %] +

    + Note: [% terms.Bugzilla %] automatically detected the content type + [% attachment.contenttype FILTER html %] for this attachment. If this is + incorrect, correct the value by editing the attachment's + details. +

    + [% END %] + + [%# Links to more information about the changed bug. %] + [% Hook.process("links") %] +
    +
    + +

    +Create + Another Attachment to [% terms.Bug %] [%+ attachment.bug_id %] +

    + +[% PROCESS bug/show.html.tmpl %] diff --git a/template/en/default/attachment/createformcontents.html.tmpl b/template/en/default/attachment/createformcontents.html.tmpl new file mode 100644 index 0000000..2cef632 --- /dev/null +++ b/template/en/default/attachment/createformcontents.html.tmpl @@ -0,0 +1,106 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Joel Peshkin + # Erik Stambaugh + # Marc Schumann + #%] + + + : + + Enter the path to the file on your computer.
    + + + +[% IF Param("maxlocalattachment") %] + + BigFile: + + + + + +[% END %] +[% IF Param("allow_attach_url") %] + + : + + URL to be attached instead.
    + + + + +[% END %] + + : + + Describe the attachment briefly.
    + + + + + Content Type: + + If the attachment is a patch, check the box below.
    + +

    + [%# Reset this whenever the page loads so that the JS state is up to date %] + + + Otherwise, choose a method for determining the content type.
    + +
    + + : +
    + + : + + + + + + + [% IF flag_types && flag_types.size > 0 %] + [% PROCESS "flag/list.html.tmpl" bug_id=bugid attach_id=attachid %]
    + [% END %] + + diff --git a/template/en/default/attachment/delete_reason.txt.tmpl b/template/en/default/attachment/delete_reason.txt.tmpl new file mode 100644 index 0000000..e4a1fc4 --- /dev/null +++ b/template/en/default/attachment/delete_reason.txt.tmpl @@ -0,0 +1,32 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # attachment: object of the attachment the user wants to delete. + # reason: string; The reason provided by the user. + # date: the date when the request to delete the attachment was made. + #%] + +The content of attachment [% attachment.id %] has been deleted by + [%+ user.identity %] +[% IF reason %] +who provided the following reason: + +[%+ reason %] +[% ELSE %] +without providing any reason. +[% END %] + +The token used to delete this attachment was generated at [% date FILTER time %]. diff --git a/template/en/default/attachment/diff-file.html.tmpl b/template/en/default/attachment/diff-file.html.tmpl new file mode 100644 index 0000000..9392ca1 --- /dev/null +++ b/template/en/default/attachment/diff-file.html.tmpl @@ -0,0 +1,177 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Keiser + # Frédéric Buclin + #%] + +[%# This line is really long for a reason: to get rid of any possible textnodes + # between the elements. This is necessary because DOM parent-child-sibling + # relations can change and screw up the javascript for restoring, collapsing + # and expanding. Do not change without testing all three of those. + # Also, the first empty row is required because 'table-layout: fixed' only + # considers the first row to determine column widths. If a colspan is found, + # it then share the width equally among all columns, which we don't want. + #%] + + + +[% section_num = 0 %] +[% FOREACH section = sections %] + [% section_num = section_num + 1 %] + + [% current_line_old = section.old_start %] + [% current_line_new = section.new_start %] + [% FOREACH group = section.groups %] + [% IF group.context %] + [% FOREACH line = group.context %] + + + + + + + [% current_line_old = current_line_old + 1 %] + [% current_line_new = current_line_new + 1 %] + [% END %] + [% END %] + [% IF group.plus.size %] + [% IF group.minus.size %] + [% i = 0 %] + [% WHILE (i < group.plus.size || i < group.minus.size) %] + [%# WHILE cannot loop more than 1000 times by default, so we break it every 500 times. %] + [% currentloop = 0 %] + [% WHILE currentloop < 500 && (i < group.plus.size || i < group.minus.size) %] + + [% IF i < group.minus.size %] + + + [% ELSIF i == group.minus.size %] + [% rowspan = group.plus.size - group.minus.size %] + + + [% END %] + + [% IF i < group.plus.size %] + + + [% ELSIF i == group.plus.size %] + [% rowspan = group.minus.size - group.plus.size %] + + + [% END %] + + [% currentloop = currentloop + 1 %] + [% i = i + 1 %] + [% END %] + [% END %] + [% current_line_old = current_line_old + group.minus.size %] + [% current_line_new = current_line_new + group.plus.size %] + [% ELSE %] + [% FOREACH line = group.plus %] + [% IF file.is_add %] + + + + + [% ELSE %] + + [% IF loop.first %] + + 1 %] rowspan="[% group.plus.size %]"[% END %]> + [% END %] + + + + [% END %] + [% current_line_new = current_line_new + 1 %] + [% END %] + [% END %] + [% ELSE %] + [% IF group.minus.size %] + [% FOREACH line = group.minus %] + [% IF file.is_remove %] + + + + + [% ELSE %] + + + + [% IF loop.first %] + + 1 %] rowspan="[% group.minus.size %]"[% END %]> + [% END %] + + [% END %] + [% current_line_old = current_line_old + 1 %] + [% END %] + [% END %] + [% END %] + [% END %] +[% END %] + +
    [% collapsed ? '(+)' : '(-)' %] + [% IF lxr_prefix && !file.is_add %] + [% file.filename FILTER html %] + [% ELSE %] + [% file.filename FILTER html %] + [% END %] + [% IF file.plus_lines %] + [% IF file.minus_lines %] + (-[% file.minus_lines %] / +[% file.plus_lines %] lines) + [% ELSE %] + (+[% file.plus_lines %] lines) + [% END %] + [% ELSE %] + [% IF file.minus_lines %] + (-[% file.minus_lines %] lines) + [% END %] + [% END %] +
    diff --git a/template/en/default/attachment/diff-footer.html.tmpl b/template/en/default/attachment/diff-footer.html.tmpl new file mode 100644 index 0000000..49c662a --- /dev/null +++ b/template/en/default/attachment/diff-footer.html.tmpl @@ -0,0 +1,35 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Keiser + #%] + + + +[% IF headers %] + +
    + + [% PROCESS global/variables.none.tmpl %] + Return to [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %] + + [% PROCESS global/footer.html.tmpl %] + +[% ELSE %] + + +[% END %] diff --git a/template/en/default/attachment/diff-header.html.tmpl b/template/en/default/attachment/diff-header.html.tmpl new file mode 100644 index 0000000..663d9b7 --- /dev/null +++ b/template/en/default/attachment/diff-header.html.tmpl @@ -0,0 +1,153 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): John Keiser + #%] + +[%# Define strings that will serve as the title and header of this page %] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + [% IF attachid %] +Attachment #[% attachid %] for [% terms.bug %] #[% bugid %] + [% ELSE %] +Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] + [% END %] +[% END %] + +[% onload = 'restore_all(); document.checkboxform.restore_indicator.checked = true' %] + +[% BLOCK viewurl %]attachment.cgi?id=[% id %][% END %] +[% BLOCK editurl %][% PROCESS viewurl %]&action=edit[% END %] +[% BLOCK diffurl %][% PROCESS viewurl %]&action=diff[% END %] + +[% IF headers %] + [% header = BLOCK %] + [% IF attachid %] + Attachment #[% attachid %]: [% description FILTER html %] + [% ELSE %] + Diff Between + #[% oldid %]: [% old_desc FILTER html %] + and + #[% newid %]: [% new_desc FILTER html %] + [% END %] + for [% terms.bug %] #[% bugid %] + [% END %] + [% subheader = BLOCK %] + [% bugsummary FILTER html %] + [% END %] + [% PROCESS global/header.html.tmpl doc_section = "attachments.html#patchviewer" + javascript_urls = "js/attachment.js" + style_urls = ['skins/standard/create_attachment.css'] %] +[% ELSE %] + + + + + + +[% END %] + +[%# If we have attachid, we are in diff, otherwise we're in interdiff %] +[% IF attachid %] + [%# HEADER %] + [% IF headers %] + View + | Details + | Raw Unified + | Return to [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %] + [% END %] + [% IF other_patches.size > 0 %] + [% IF headers %] |[%END%] + Differences between +
    + + and this patch + + + + +
    + [% END %] +
    +[% ELSE %] + [% IF headers %] + Raw Unified + | Return to [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %] + | + [% END %] +[% END %] + +[%# Collapse / Expand %] +Collapse All | +Expand All + +[% IF do_context %] + [%# only happens for normal viewing, not interdiff %] + | Context: + [% IF context == "patch" %] + (Patch / + [% ELSE %] + (Patch / + [% END %] + [% IF context == "file" %] + File / + [% ELSE %] + File / + [% END %] + + [% IF context == "patch" || context == "file" %] + [% context = 3 %] + [% END %] + [%# textbox for context %] +
    ) +[% END %] + +[% IF warning %] +

    Warning: + [% IF warning == "interdiff1" %] + this difference between two patches may show things in the wrong places due + to a limitation in [% terms.Bugzilla %] when comparing patches with different + sets of files. + [% END %] + [% IF warning == "interdiff2" %] + this difference between two patches may be inaccurate due to a limitation in + [%+ terms.Bugzilla %] when comparing patches made against different revisions. + [% END %] +

    +[% ELSE %] +

    +[% END %] + +[%# Restore Stuff %] +
    + + + diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl new file mode 100644 index 0000000..fa8a53a --- /dev/null +++ b/template/en/default/attachment/edit.html.tmpl @@ -0,0 +1,289 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[%# Define strings that will serve as the title and header of this page %] +[% title = BLOCK %] + Attachment [% attachment.id %] Details for [% terms.Bug %] [%+ attachment.bug_id %] +[% END %] +[% header = BLOCK %] + Attachment [% attachment.id %] Details for + [%+ "$terms.Bug ${attachment.bug_id}" FILTER bug_link(attachment.bug_id) FILTER none %] +[% END %] +[% subheader = BLOCK %][% attachment.bug.short_desc FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + header = header + subheader = subheader + doc_section = "attachments.html" + javascript_urls = ['js/attachment.js'] + style_urls = ['skins/standard/create_attachment.css'] +%] + +[%# No need to display the Diff button and iframe if the attachment is not a patch. %] +[% use_patchviewer = (feature_enabled('patch_viewer') && attachment.ispatch) %] +[% can_edit = attachment.validate_can_edit %] +[% editable_or_hide = can_edit ? "" : " bz_hidden_option" %] + + + + + + + [% IF user.id %] + + [% END %] + + + + + + + [% IF !attachment.datasize %] + + [% ELSIF attachment.isurl %] + + [% ELSIF !Param("allow_attachment_display") %] + + [% ELSIF attachment.is_viewable %] + + [% ELSE %] + + [% END %] + +
    +
    + + [% INCLUDE global/textarea.html.tmpl + id = 'description' + name = 'description' + minrows = 3 + cols = 25 + wrap = 'soft' + classes = 'block' _ editable_or_hide + defaultcontent = attachment.description + %] + [% IF !can_edit %] + [%+ attachment.description FILTER wrap_comment(25) FILTER html %] + [% END %] +
    + + [% IF attachment.isurl %] + + + [% ELSE %] +
    + + + [% IF !can_edit %] + [%+ attachment.filename FILTER truncate(25) FILTER html %] + [% END %] +
    + +
    + + + [% IF !can_edit %] + [%+ attachment.contenttype FILTER truncate(25) FILTER html %] + [% END %] +
    + +
    + Size: + [% IF attachment.datasize %] + [%+ attachment.datasize FILTER unitconvert %] + [% ELSE %] + deleted + [% END %] +
    + +
    + Creator: + [%+ INCLUDE global/user.html.tmpl who = attachment.attacher %] +
    + +
    + + [% IF can_edit %] + + [% ELSE %] + Is Patch: + [%+ attachment.ispatch ? "yes" : "no" %] + [% END %] +
    + [% END %] + +
    + + [% IF can_edit %] + + [% ELSE %] + Is Obsolete: + [%+ attachment.isobsolete ? "yes" : "no" %] + [% END %] +
    + + [% IF user.is_insider %] +
    + + [% IF can_edit %] + + [% ELSE %] + Is Private: + [%+ attachment.isprivate ? "yes" : "no" %] + [% END %] +
    + [% END %] + + [% IF attachment.flag_types.size > 0 %] +
    + [% PROCESS "flag/list.html.tmpl" bug_id = attachment.bug_id + attach_id = attachment.id + flag_types = attachment.flag_types + read_only_flags = !can_edit + %] +
    + [% END %] + + [% IF user.id %] +
    + + [% INCLUDE global/textarea.html.tmpl + id = 'comment' + name = 'comment' + minrows = 5 + cols = 25 + wrap = 'soft' + classes = 'block' + %] +
    + +

    + [% END %] +
    The content of this attachment has been deleted. + + [% IF attachment.datasize < 120 %] + [% attachment.data FILTER html %] + [% ELSE %] + [% attachment.data FILTER truncate(80) FILTER html %] +  ... + [% attachment.data.match(".*(.{20})$").0 FILTER html %] + [% END %] + + +

    + The attachment is not viewable in your browser due to security + restrictions enabled by [% terms.Bugzilla %]. +

    +

    + In order to view the attachment, you first have to + download it. +

    +
    + [% INCLUDE global/textarea.html.tmpl + id = 'editFrame' + name = 'comment' + style = 'height: 400px; width: 100%; display: none' + minrows = 10 + cols = 80 + wrap = 'soft' + defaultcontent = (attachment.contenttype.match('^text\/')) ? + attachment.data.replace('(.*\n|.+)', '>$1') : undef + %] + + + +

    + Attachment is not viewable in your browser because its MIME type + ([% attachment.contenttype FILTER html %]) is not one that your browser is + able to display. +

    +

    + Download the attachment. +

    +
    + + +
    + Actions: + View + [% IF use_patchviewer %] + | Diff + [% END %] + [% IF Param("allow_attachment_deletion") + && user.in_group('admin') + && attachment.datasize > 0 %] + | Delete + [% END %] +
    + +
    + Attachments on [% "$terms.bug ${attachment.bug_id}" FILTER bug_link(attachment.bug_id) FILTER none %]: + [% FOREACH a = attachments %] + [% IF a == attachment.id %] + [%+ a %] + [% ELSE %] + [% a %] + [% END %] + [% " |" UNLESS loop.last() %] + [% END %] +
    + +[% Hook.process('end') %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/list.html.tmpl b/template/en/default/attachment/list.html.tmpl new file mode 100644 index 0000000..6453b4e --- /dev/null +++ b/template/en/default/attachment/list.html.tmpl @@ -0,0 +1,151 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + #%] + + + +
    + + + + + + [% count = 0 %] + [% obsolete_attachments = 0 %] + + [% FOREACH attachment = attachments %] + [% count = count + 1 %] + [% IF !attachment.isprivate || user.is_insider || attachment.attacher.id == user.id %] + [% IF attachment.isobsolete %] + [% obsolete_attachments = obsolete_attachments + 1 %] + [% END %] + + + + [% IF show_attachment_flags %] + + [% END %] + + + + [% END %] + [% END %] + + + + +
    + Attachments +
    + [% IF attachment.datasize %] + + [% END %] + [% attachment.description FILTER html FILTER obsolete(attachment.isobsolete) %] + [% "" IF attachment.datasize %] + + + [% IF attachment.datasize %] + ([% attachment.datasize FILTER unitconvert %], + [% IF attachment.ispatch %] + patch) + [% ELSIF attachment.isurl %] + url) + [% ELSE %] + [%+ attachment.contenttype FILTER html %]) + [% END %] + [% ELSE %] + (deleted) + [% END %] + +
    + + [%- attachment.attached FILTER time %], + + [% INCLUDE global/user.html.tmpl who = attachment.attacher %] +
    +
    + [% IF attachment.flags.size == 0 %] + no flags + [% ELSE %] + [% FOREACH flag = attachment.flags %] + [% flag.setter.nick FILTER html %]: + [%+ flag.type.name FILTER html FILTER no_break %][% flag.status %] + [%+ IF flag.status == "?" && flag.requestee %] + ([% flag.requestee.nick FILTER html %]) + [% END %]
    + [% END %] + [% END %] +
    + Details + [% IF attachment.ispatch && feature_enabled('patch_viewer') %] + | Diff + [% END %] + [% Hook.process("action") %] +
    +
    diff --git a/template/en/default/attachment/midair.html.tmpl b/template/en/default/attachment/midair.html.tmpl new file mode 100644 index 0000000..f0883b5 --- /dev/null +++ b/template/en/default/attachment/midair.html.tmpl @@ -0,0 +1,78 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + #%] + +[%# INTERFACE: + # operations: array; bug activity since the user last displayed the attachment form, + # used by bug/activity/table.html.tmpl to display recent changes that will + # be overwritten if the user submits these changes. See that template + # for further documentation. + # attachment: object; the attachment being changed. + #%] + +[%# The global Bugzilla->cgi object is used to obtain form variable values. %] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] +[% PROCESS global/header.html.tmpl title = "Mid-air collision!" %] + +

    Mid-air collision detected!

    + +

    + Someone else has made changes to + attachment [% attachment.id %] + of [% "$terms.bug $attachment.bug_id" FILTER bug_link(attachment.bug_id) FILTER none %] + at the same time you were trying to. The changes made were: +

    + +

    + [% PROCESS "bug/activity/table.html.tmpl" incomplete_data=0 %] +

    + +[% IF cgi.param("comment") %] +

    + Your comment was:
    +

    +    [% cgi.param("comment") FILTER wrap_comment FILTER html %]
    +  
    +

    +[% END %] + +

    +You have the following choices: +

    + +
      +
    • +
      + [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + + This will cause all of the above changes to be overwritten. +
      +
    • +
    • + Throw away my changes, and + revisit + attachment [% attachment.id %] +
    • +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/show-multiple.html.tmpl b/template/en/default/attachment/show-multiple.html.tmpl new file mode 100644 index 0000000..bcc2977 --- /dev/null +++ b/template/en/default/attachment/show-multiple.html.tmpl @@ -0,0 +1,102 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[% PROCESS global/variables.none.tmpl %] +[% filtered_summary = bugsummary FILTER html %] +[% header = BLOCK %]View All Attachments for + [%+ "$terms.Bug $bug.id" FILTER bug_link(bug) FILTER none %][% END %] + +[% title = BLOCK %] + View All Attachments for [% terms.Bug %] [%+ bug.bug_id FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + header = header + subheader = filtered_summary + style_urls = ['skins/standard/create_attachment.css'] +%] + +
    + +[% FOREACH a = attachments %] + +
    + + + + + + + + + + + + + + + + +
    + Attachment #[% a.id %] +
    + [% a.description FILTER html FILTER obsolete(a.isobsolete) %] + + [% IF a.ispatch %] + patch + [% ELSE %] + [% a.contenttype FILTER html %] + [% END %] + [% a.attached FILTER time %][% a.datasize FILTER unitconvert %] + [% IF a.flags.size == 0 %] + no flags + [% ELSE %] + [% FOREACH flag = a.flags %] + [% flag.setter.nick FILTER html %]: + [%+ flag.type.name FILTER html %][% flag.status %] + [% IF flag.status == "?" && flag.requestee %] + ([% flag.requestee.nick FILTER html %]) + [% END %] + [% ", " IF !loop.last %] + [% END %] + [% END %] + + Details +
    + + [% IF a.is_viewable %] + + [% ELSE %] +

    + Attachment cannot be viewed because its MIME type is not text/*, image/*, or application/vnd.mozilla.*. + Download the attachment instead. +

    + [% END %] +
    + +

    + +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/attachment/updated.html.tmpl b/template/en/default/attachment/updated.html.tmpl new file mode 100644 index 0000000..9a74f5c --- /dev/null +++ b/template/en/default/attachment/updated.html.tmpl @@ -0,0 +1,46 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Gervase Markham + #%] + +[%# INTERFACE: + # attachment: object of the attachment we just attached. + #%] + +[% PROCESS global/variables.none.tmpl %] +[% bug = bugs.0 %] + +[% PROCESS "bug/show-header.html.tmpl" %] +[% PROCESS global/header.html.tmpl + title = "Changes Submitted to Attachment $attachment.id of $terms.Bug $attachment.bug_id" +%] + +
    +
    Changes to + attachment [% attachment.id %] + of [% "$terms.bug $attachment.bug_id" FILTER bug_link(attachment.bug_id) FILTER none %] submitted +
    +
    + [% PROCESS "bug/process/bugmail.html.tmpl" mailing_bugid = attachment.bug_id %] + [%# Links to more information about the changed bug. %] + [% Hook.process("links") %] +
    +
    + +[% PROCESS bug/show.html.tmpl %] diff --git a/template/en/default/bug/activity/show.html.tmpl b/template/en/default/bug/activity/show.html.tmpl new file mode 100644 index 0000000..67ac689 --- /dev/null +++ b/template/en/default/bug/activity/show.html.tmpl @@ -0,0 +1,49 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # bug: object. The bug whose activity is being displayed. + # operations: array of hashes, see activity/table.html.tmpl. + # + # This template also needs to be called with the interface to the + # activity/table.html.tmpl template fulfilled. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% filtered_desc = bug.short_desc FILTER html %] +[% PROCESS global/header.html.tmpl + title = "Changes made to $terms.bug $bug.bug_id" + header = "Activity log for $terms.bug $bug.bug_id: $filtered_desc" + %] + +

    + [% "Back to $terms.bug $bug.bug_id" FILTER bug_link(bug) FILTER none %] +

    + +[% PROCESS bug/activity/table.html.tmpl %] + +[% IF operations.size > 0 %] +

    + [% "Back to $terms.bug $bug.bug_id" FILTER bug_link(bug) FILTER none %] +

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/activity/table.html.tmpl b/template/en/default/bug/activity/table.html.tmpl new file mode 100644 index 0000000..2492534 --- /dev/null +++ b/template/en/default/bug/activity/table.html.tmpl @@ -0,0 +1,113 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # David D. Kilzer + # Reed Loden + #%] + +[%# INTERFACE: + # operations: array of hashes. May be empty. Each has has three members: + # who: string. who performed the operation + # when: string. when they performed it + # changes: hash. Details of what they changed. This hash has three + # compulsory and one optional member: + # field: string. The name of the field + # removed: string. What was removed from the field + # added: string. What was added to the field + # attach_id: integer. If the change was adding an attachment, its id. + # incomplete_data: boolean. True if some of the data is incomplete (because + # it was affected by an old Bugzilla bug.) + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS bug/time.html.tmpl %] + +[% IF incomplete_data %] +

    + There used to be an issue in Bugzilla + which caused activity data to be lost if there were a large number of cc's + or dependencies. That has been fixed, but some data was already lost in + your activity table that could not be regenerated. The changes that the + script could not reliably determine are prefixed by '?'. +

    +[% END %] + +[% IF operations.size > 0 %] + + + + + + + + + + [% FOREACH operation = operations %] + + + + [% FOREACH change = operation.changes %] + [% "" IF loop.index > 0 %] + + [% PROCESS change_column change_type = change.removed %] + [% PROCESS change_column change_type = change.added %] + [% END %] + + [% END %] +
    WhoWhenWhatRemovedAdded
    + [% operation.who FILTER email FILTER html %] + + [% operation.when FILTER time %] +
    + [% IF change.attachid %] + + Attachment #[% change.attachid %] + [% END %] + [%+ field_descs.${change.fieldname} FILTER html %] +
    +[% ELSE %] +

    + No changes have been made to this [% terms.bug %] yet. +

    +[% END %] + +[% BLOCK change_column %] + + [% IF change_type.defined %] + [% IF change.fieldname == 'estimated_time' || + change.fieldname == 'remaining_time' || + change.fieldname == 'work_time' %] + [% PROCESS formattimeunit time_unit=change_type %] + [% ELSIF change.fieldname == 'blocked' || + change.fieldname == 'dependson' %] + [% change_type FILTER bug_list_link FILTER none %] + [% ELSIF change.fieldname == 'assigned_to' || + change.fieldname == 'reporter' || + change.fieldname == 'qa_contact' || + change.fieldname == 'cc' || + change.fieldname == 'flagtypes.name' %] + [% display_value(change.fieldname, change_type) FILTER email FILTER html %] + [% ELSE %] + [% display_value(change.fieldname, change_type) FILTER html %] + [% END %] + [% ELSE %] +   + [% END %] + +[% END %] diff --git a/template/en/default/bug/choose.html.tmpl b/template/en/default/bug/choose.html.tmpl new file mode 100644 index 0000000..9009d38 --- /dev/null +++ b/template/en/default/bug/choose.html.tmpl @@ -0,0 +1,35 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Search by $terms.bug number" + %] + +
    +

    + You may find a single [% terms.bug %] by entering its [% terms.bug %] id here: + + +

    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl new file mode 100644 index 0000000..41b91d7 --- /dev/null +++ b/template/en/default/bug/comments.html.tmpl @@ -0,0 +1,235 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Max Kanat-Alexander + # Shane H. W. Travis + #%] + +[% PROCESS bug/time.html.tmpl %] + + + + +[% DEFAULT start_at = 0 mode = "show" %] +[% sort_order = user.settings.comment_sort_order.value %] + +[%# NOTE: (start_at > 0) means we came here from a midair collision, + # in which case we don't care what the user's preference is. + %] +[% IF (start_at > 0) %] + [% sort_order = "oldest_to_newest" %] +[% END %] + + +[%# Set up the variables as needed, depending on the sort order %] +[% IF sort_order == "oldest_to_newest" %] + [% count = 0 %] + [% description = 0 %] + [% increment = 1 %] +[% ELSE %] + [% increment = -1 %] + [% IF sort_order == "newest_to_oldest" %] + [% count = comments.size - 1 %] + [% description = 0 %] + [% ELSIF sort_order == "newest_to_oldest_desc_first" %] + [% count = comments.size %] + [% description = comments.size %] + [% END %] +[% END %] + + + + + +
    + +[% FOREACH comment = comments %] + [% IF count >= start_at %] + [% PROCESS a_comment %] + [% END %] + + [% count = count + increment %] +[% END %] + +[%# Note: this template is used in multiple places; if you use this hook, + # make sure you are aware of this fact. + #%] +[% Hook.process("aftercomments") %] + + + [% IF mode == "edit" %] + + [% END %] +
    + +[%############################################################################%] +[%# Block for individual comments #%] +[%############################################################################%] + +[% BLOCK a_comment %] + [% RETURN IF comment.is_private AND ! user.is_insider %] + +
    + [% IF count == description %] + [% class_name = "bz_first_comment_head" %] + [% comment_label = "Description" %] + [% ELSE %] + [% class_name = "bz_comment_head" %] + [% comment_label = "Comment " _ count %] + [% END %] + +
    + + [% IF mode == "edit" %] + + + + [% END %] + + [% IF mode == "edit" && user.is_insider %] +
    + + + +
    + [% END %] + + + + [%- comment_label FILTER html %] + + + + [% INCLUDE global/user.html.tmpl who = comment.author %] + + + + [% FOREACH group = comment.author.direct_group_membership %] + [% NEXT UNLESS group.icon_url %] + [% group.name FILTER html %] + [% END %] + + + + [%+ comment.creation_ts FILTER time %] + +
    + + [% IF user.is_timetracker && + (comment.work_time > 0 || comment.work_time < 0) %] +
    + Additional hours worked: + [% PROCESS formattimeunit time_unit=comment.work_time %] + [% END %] + +[%# Don't indent the
     block, since then the spaces are displayed in the
    +  # generated HTML
    +  #%]
    +
    +  [%- comment.body_full({ wrap => 1 }) FILTER quoteUrls(bug, comment) -%]
    +
    +
    +[% END %] diff --git a/template/en/default/bug/create/comment-guided.txt.tmpl b/template/en/default/bug/create/comment-guided.txt.tmpl new file mode 100644 index 0000000..df04d8f --- /dev/null +++ b/template/en/default/bug/create/comment-guided.txt.tmpl @@ -0,0 +1,54 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] +[%# INTERFACE: + # This template has no interface. + # + # Form variables from a bug submission (i.e. the fields on a template from + # enter_bug.cgi) can be access via Bugzilla.cgi.param. It can be used to + # pull out various custom fields and format an initial Description entry + # from them. + #%] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] +User-Agent: [%+ cgi.user_agent() %] +Build Identifier: [%+ cgi.param("buildid") %] + +[%+ cgi.param("comment") IF cgi.param("comment") %] + +[%+ IF cgi.param("reproducible") != "Choose one..." -%] +Reproducible: [%+ cgi.param("reproducible") %] +[% END %] + +[% IF !(cgi.param("reproduce_steps").match('^1\.\s*2\.\s*3\.\s*$') || cgi.param("reproduce_steps").match('^\s*$')) %] +Steps to Reproduce: +[%+ cgi.param("reproduce_steps") %] +[% END %] + +[% IF cgi.param("actual_results") -%] +Actual Results: +[%+ cgi.param("actual_results") %] +[% END %] + +[% IF cgi.param("expected_results") %] +Expected Results: +[%+ cgi.param("expected_results") %] +[% END %] + +[%+ cgi.param("additional_info") %] diff --git a/template/en/default/bug/create/comment.txt.tmpl b/template/en/default/bug/create/comment.txt.tmpl new file mode 100644 index 0000000..e7339d3 --- /dev/null +++ b/template/en/default/bug/create/comment.txt.tmpl @@ -0,0 +1,32 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] +[%# INTERFACE: + # This template has no interface. + # + # Form variables from a bug submission (i.e. the fields on a template from + # enter_bug.cgi) can be access via Bugzilla.cgi.param. It can be used to + # pull out various custom fields and format an initial Description entry + # from them. + #%] +[% USE Bugzilla %] +[% Hook.process("form") %] + + +[% Bugzilla.cgi.param("comment") %] diff --git a/template/en/default/bug/create/confirm-create-dupe.html.tmpl b/template/en/default/bug/create/confirm-create-dupe.html.tmpl new file mode 100644 index 0000000..b0a5cdd --- /dev/null +++ b/template/en/default/bug/create/confirm-create-dupe.html.tmpl @@ -0,0 +1,57 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Olav Vitters. + # + # Contributor(s): Olav Vitters + #%] + +[%# INTERFACE: + # bugid: integer. ID of the bug previously used to create a bug. + # allow_override: boolean int. Is 1 if the user may submit the bug again. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "Already filed $terms.bug" +%] + +[% USE Bugzilla %] + + + + + +
    + + You already used the form to file [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %]. + +
    + +

    You are highly encouraged to visit [% "$terms.bug $bugid" +FILTER bug_link(bugid) FILTER none %].

    + +[% IF allow_override %] +

    If you are sure you used the same form to submit a new [% terms.bug %], + click 'File [% terms.bug %] again'.

    + +

    + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^(Bugzilla_login|Bugzilla_password|ignore_token)$" %] + + +
    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl new file mode 100644 index 0000000..9f2a21b --- /dev/null +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -0,0 +1,523 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Christine Begle + #%] + +[%# INTERFACE: + # This template has the same interface as create.html.tmpl + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/header.html.tmpl + title = "Enter $terms.ABug" + onload = "PutDescription()" + style = "#somebugs { width: 100%; height: 500px }" + %] + +

    + + This is a template used on mozilla.org. This template, and the + comment-guided.txt.tmpl template that formats the data submitted via + the form in this template, are included as a demo of what it's + possible to do with custom templates in general, and custom [% terms.bug %] + entry templates in particular. As much of the text will not apply, + you should alter it + if you want to use this form on your [% terms.Bugzilla %] installation. + +

    + +[% tablecolour = "#FFFFCC" %] + +[%# This script displays the descriptions for selected components. %] + + + +

    Step 1 of 3 - has your [% terms.bug %] already been reported?

    + +

    + Please don't skip this step - half of all + [% terms.bugs %] filed are + reported already. + Check the two lists of frequently-reported [% terms.bugs %]: +

    + +[%# Include other products if sensible %] +[% IF product.name == "Firefox" %] + [% productstring = "product=Mozilla%20Application%20Suite&product=Firefox" %] +[% ELSIF product.name == "Thunderbird" %] + [% productstring = "product=Mozilla%20Application%20Suite&product=Thunderbird" %] +[% ELSE %] + [% productstring = BLOCK %]product=[% product.name FILTER url_quote %][% END %] +[% END %] + +

    + All-time Top 100 (loaded initially) | + Hot in the last two weeks +

    + + + +

    + If your [% terms.bug %] isn't there, search [% terms.Bugzilla %] by entering + a few key words having to do with your [% terms.bug %] in this box. + For example: pop3 mail or copy paste. + The results will appear above. +

    + +[%# All bugs opened inside the past six months %] +
    + + + + + [% IF product.name == "Firefox" OR + product.name == "Thunderbird" OR + product.name == "Mozilla Application Suite" OR + product.name == "Camino" %] + + + + + + [% END %] + + + + + +
    + +

    + Look through the search results. If you get the + [% terms.zeroSearchResults %] message, [% terms.Bugzilla %] + found no [% terms.bugs %] that + match. Check for typing mistakes, or try fewer or different keywords. + If you find [% terms.abug %] that looks the same as yours, please add + any useful extra information you have to it, rather than opening a new one. +

    + + + +

    Step 2 of 3 - give information

    + +

    + If you've tried a few searches and your [% terms.bug %] really isn't in + there, tell us all about it. +

    + +
    + + + + + + + + + + + + + + + + + + + [%# We override rep_platform and op_sys for simplicity. The values chosen + are based on which are most common in the b.m.o database %] + [% rep_platform = [ "PC", "Macintosh", "All", "Other" ] %] + + + + + + + [% op_sys = [ "Windows 2000", "Windows XP", "Windows Vista", "Windows 7", + "Mac OS X", "Linux", "All", "Other" ] %] + + + + + + + [% IF product.name.match("Firefox|Camino|Mozilla Application Suite") %] + [% matches = cgi.user_agent('Gecko/(\d+)') %] + [% buildid = cgi.user_agent() IF matches %] + [% END %] + + [%# Accept URL parameter build ID for non-browser products %] + [% IF cgi.param("buildid") %] + [% buildid = cgi.param("buildid") %] + [% END %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Product + + + [% product.name FILTER html %] +
    + Component + + + + + + +
    + + +
    + +
    +
    + +

    + The area where the problem occurs. + To pick the right component, you could use the same one as + similar [% terms.bugs %] you found in your search, or read the full list of + component + descriptions (opens in new window) if you need more help. +

    +
    + Hardware Platform + + [% PROCESS select sel = 'rep_platform' %] +
    + Operating System + + [% PROCESS select sel = 'op_sys' %] +
    + Build Identifier + + +

    + This should identify the exact version of the product you were using. + If the above field is blank or you know it is incorrect, copy the + version text from the product's Help | + About menu (for browsers this will begin with "Mozilla/5.0..."). + If the product won't start, instead paste the complete URL you downloaded + it from. +

    +
    + URL + + +

    + URL that demonstrates the problem you are seeing (optional).
    + IMPORTANT: if the problem is with a broken web page, you need + to report it + a different way. +

    +
    + Summary + + +

    + A sentence which summarises the problem. + Please be descriptive and use lots of keywords. +

    +

    + + Bad example: mail crashed + +
    + + Good example: + crash if I close the mail window while checking for new POP mail + +

    +
    + Details + + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + minrows = 6 + cols = constants.COMMENT_COLS + %] +

    + Expand on the Summary. Please be + as specific as possible about what is wrong. +

    +

    + + Bad example: Mozilla crashed. + You suck! + +
    + + Good example: After a crash which + happened when I was sorting in the Bookmark Manager,
    all of my + top-level bookmark folders beginning with the letters Q to Z are + no longer present. +
    +

    +
    + Reproducibility + + +
    + Steps to Reproduce + + [% INCLUDE global/textarea.html.tmpl + name = 'reproduce_steps' + minrows = 4 + cols = constants.COMMENT_COLS + defaultcontent = "1.\n2.\n3." + %] +

    + Describe how to reproduce the problem, step by + step. Include any special setup steps. +

    +
    + Actual Results + + [% INCLUDE global/textarea.html.tmpl + name = 'actual_results' + minrows = 4 + cols = constants.COMMENT_COLS + %] +

    + What happened after you performed the steps above? +

    +
    + Expected Results + + [% INCLUDE global/textarea.html.tmpl + name = 'expected_results' + minrows = 4 + cols = constants.COMMENT_COLS + %] +

    + What should the software have done instead? +

    +
    + Additional Information + + [% INCLUDE global/textarea.html.tmpl + name = 'additional_info' + minrows = 8 + cols = constants.COMMENT_COLS + %] +

    + Add any additional information you feel may be + relevant to this [% terms.bug %], such as the theme you were + using (does the [% terms.bug %] still occur + with the default theme?), a + Talkback crash ID, or special + information about your computer's configuration. Any information + longer than a few lines, such as a stack trace or HTML + testcase, should be added + using the "Add an Attachment" link on the [% terms.bug %], after + it is filed. If you believe that it's relevant, please also include + your build configuration, obtained by typing about:buildconfig + into your URL bar. +
    +
    + If you are reporting a crash, note the module in + which the software crashed (e.g., Application Violation in + gkhtml.dll). +

    +
    + Severity + + +

    + Say how serious the problem is, or if your [% terms.bug %] is a + request for a new feature. +

    +
    + + + +

    Step 3 of 3 - submit the [% terms.bug %] report

    + +

    + +

    + +

    + That's it! Thanks very much. You'll be notified by email about any + progress that is made on fixing your [% terms.bug %]. + +

    + Please be warned + that we get a lot of [% terms.bug %] reports filed - it may take quite a + while to get around to yours. You can help the process by making sure your + [%+ terms.bug %] is + complete and easy to understand, and by quickly replying to any questions + which may arrive by email. +

    + +
    + +[% PROCESS global/footer.html.tmpl %] + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + +[% END %] diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl new file mode 100644 index 0000000..4b17457 --- /dev/null +++ b/template/en/default/bug/create/create.html.tmpl @@ -0,0 +1,705 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Ville Skyttä + # Shane H. W. Travis + # Marc Schumann + # Akamai Technologies + # Max Kanat-Alexander + # Frédéric Buclin + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %]Enter [% terms.Bug %]: [% product.name FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = [ 'skins/standard/create_attachment.css', + 'skins/standard/yui/calendar.css' ] + javascript_urls = [ "js/attachment.js", "js/util.js", "js/yui/calendar.js", + "js/field.js", "js/TUI.js" ] + onload = 'set_assign_to();' +%] + + + +[% USE Bugzilla %] +[% SET select_fields = {} %] +[% FOREACH field = Bugzilla.get_fields( + { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) +%] + [% select_fields.${field.name} = field %] +[% END %] + +
    + + + + + + + + + + + + + + + + + + + + + + + [%# We can't use the select block in these two cases for various reasons. %] + + + + + + + + + + + + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.bug_severity, editable = 1, + value = default.bug_severity %] + + + + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.rep_platform, editable = 1, + value = default.rep_platform %] + + + + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.op_sys, editable = 1, + value = default.op_sys %] + + + + + + [% IF Param('usetargetmilestone') && Param('letsubmitterchoosemilestone') %] + [% sel = { description => 'Target Milestone', name => 'target_milestone' } %] + [% INCLUDE select %] + [% ELSE %] + + [% END %] + + [% IF Param('letsubmitterchoosepriority') %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.priority, editable = 1, + value = default.priority %] + [% ELSE %] + + [% END %] + + + +[% IF !Param('defaultplatform') || !Param('defaultopsys') %] + + + + + + +[% END %] + + + + + + + +[% IF bug_status.size <= 1 %] + + + +[% ELSE %] + [% sel = { description => 'Initial State', name => 'bug_status' } %] + [% INCLUDE select %] +[% END %] + + + [%# Calculate the number of rows we can use for flags %] + [% num_rows = 6 + (Param("useqacontact") ? 1 : 0) + + (user.is_timetracker ? 3 : 0) + + (Param("usebugaliases") ? 1 : 0) + %] + + + + + + + + + +[% IF Param("useqacontact") %] + + + + +[% END %] + + + + + + + + + + + + + + + +[% IF user.is_timetracker %] + + + + + + + + + + + + +[% END %] + +[% IF Param("usebugaliases") %] + + + + +[% END %] + + + + + + + + + [% USE Bugzilla %] + + [% FOREACH field = Bugzilla.active_custom_fields %] + [% NEXT UNLESS field.enter_bug %] + [% SET value = ${field.name}.defined ? ${field.name} : "" %] + + [% INCLUDE bug/field.html.tmpl + bug = default, field = field, value = value, editable = 1, + value_span = 3 %] + + [% END %] + + + + + + + + + + + + + + + [% IF user.is_insider %] + + + + + [% END %] + + + + + + + + + [% IF user.in_group('editbugs', product.id) %] + [% IF use_keywords %] + + + + + [% END %] + + + + + + + + + + [% END %] + + + + [% IF group.size %] + + + + + [% END %] + + + + [%# Form controls for entering additional data about the bug being created. %] + [% Hook.process("form") %] + + + + + + +
    + [%# Migration note: The following file corresponds to the old Param + # 'entryheaderhtml' + #%] + [% PROCESS 'bug/create/user-message.html.tmpl' %] +
    + Hide + Advanced Fields + [%# Show the link if the browser supports JS %] + + + (* = + Required Field) +
    Product:[% product.name FILTER html %]Reporter:[% user.login FILTER html %]
    + + Component: + + + + [%# Enclose the fieldset in a nested table so that its width changes based + # on the length on the component description. %] + + + + +
    +
    + Component Description +
    Select a component to read its description.
    +
    +
    +
    Version: + +
      
      + We've made a guess at your + [% IF Param('defaultplatform') %] + operating system. Please check it + [% ELSIF Param('defaultopsys') %] + platform. Please check it + [% ELSE %] + operating system and platform. Please check them + [% END %] + and make any corrections if necessary. +
     
    Initial State:[% display_value("bug_status", default.bug_status) FILTER html %]  + [% IF product.flag_types.bug.size > 0 %] + [% display_flag_headers = 0 %] + [% any_flags_requesteeble = 0 %] + + [% FOREACH flag_type = product.flag_types.bug %] + [% NEXT UNLESS flag_type.is_active %] + [% display_flag_headers = 1 %] + [% SET any_flags_requesteeble = 1 IF flag_type.is_requestable && flag_type.is_requesteeble %] + [% END %] + + [% IF display_flag_headers %] + [% PROCESS "flag/list.html.tmpl" flag_types = product.flag_types.bug + any_flags_requesteeble = any_flags_requesteeble + flag_table_id = "bug_flags" + %] + [% END %] + [% END %] +
    Assign To: + [% INCLUDE global/userselect.html.tmpl + name => "assigned_to" + value => assigned_to + disabled => assigned_to_disabled + size => 30 + emptyok => 1 + custom_userlist => assignees_list + %] + +
    QA Contact: + [% INCLUDE global/userselect.html.tmpl + name => "qa_contact" + value => qa_contact + disabled => qa_contact_disabled + size => 30 + emptyok => 1 + custom_userlist => qa_contacts_list + %] + +
    CC: + [% INCLUDE global/userselect.html.tmpl + name => "cc" + value => cc + disabled => cc_disabled + size => 30 + multiple => 5 + %] +
    Default CC: +
    +
    +
     
    Estimated Hours: + +
    Deadline: + + (YYYY-MM-DD) +
     
    Alias: + +
    URL: + +
    Summary: + +
    Description: + [% defaultcontent = BLOCK %] + [% IF cloned_bug_id %] ++++ This [% terms.bug %] was initially created as a clone of [% terms.Bug %] #[% cloned_bug_id %] +++ + + + [% END %] + [%-# We are within a BLOCK. The comment will be correctly HTML-escaped + # by global/textarea.html.tmpl. So we must not escape the comment here. %] + [% comment FILTER none %] + [%- END %] + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + defaultcontent = defaultcontent + %] +
    +
      +    + + +
    Attachment: + +
    + Add an attachment + + [% PROCESS attachment/createformcontents.html.tmpl + flag_types = product.flag_types.attachment + any_flags_requesteeble = 1 + flag_table_id ="attachment_flags" %] +
    +
    + +
    Keywords: + (optional) +
    Depends on: + +
    Blocks: + +
      +
    + + Only users in all of the selected groups can view this [% terms.bug %]: + +
    + + (Leave all boxes unchecked to make this a public [% terms.bug %].) + +
    +
    + + + [% FOREACH g = group %] +      + +
    + [% END %] +
      + +      + +
    + +
    + +[%# Links or content with more information about the bug being created. %] +[% Hook.process("end") %] + +[% PROCESS global/footer.html.tmpl %] + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + [% IF sel.description %] + + [% sel.description %]: + + [% END %] + + + + + [% IF sel.name == "bug_status" %] + + [% END %] + +[% END %] + +[% BLOCK build_userlist %] + [% user_found = 0 %] + [% default_login = default_user.login %] + [% RETURN UNLESS default_login %] + + [% FOREACH user = userlist %] + [% IF user.login == default_login %] + [% user_found = 1 %] + [% LAST %] + [% END %] + [% END %] + + [% userlist.push({login => default_login, + identity => default_user.identity, + visible => 1}) + UNLESS user_found %] +[% END %] diff --git a/template/en/default/bug/create/created.html.tmpl b/template/en/default/bug/create/created.html.tmpl new file mode 100644 index 0000000..d9eaccb --- /dev/null +++ b/template/en/default/bug/create/created.html.tmpl @@ -0,0 +1,61 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # id: number; the ID of the bug that was created. + # sentmail: array of hash; bugs for which BugMail should be sent, contains: + # type: string; type of change for this bug, either 'created' if this bug + # was created or 'dep' if it was added as a dependent/blocker + # id: integer; the ID of the bug + # bug: object; Bugzilla::Bug object of the bug that was created (used in + # template bug/edit.html.tmpl + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "bug/show-header.html.tmpl" %] +[% PROCESS global/header.html.tmpl + title = "$terms.Bug $id Submitted – $filtered_desc" + header = "$terms.Bug $id Submitted" +%] + +[% header_done = 1 %] + +[% FOREACH item = sentmail %] + [% PROCESS bug/process/results.html.tmpl + type = item.type + id = item.id + sent_bugmail = item + %] +[% END %] + +
    + +
    + +[% PROCESS bug/edit.html.tmpl %] + +
    + +[% PROCESS bug/navigate.html.tmpl bottom_navigator => 1 %] + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/create/make-template.html.tmpl b/template/en/default/bug/create/make-template.html.tmpl new file mode 100644 index 0000000..1397483 --- /dev/null +++ b/template/en/default/bug/create/make-template.html.tmpl @@ -0,0 +1,46 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Marc Schumann + #%] + +[%# INTERFACE: + # url: URL to a pre-filled bug entry form. + # short_desc: Bug summary as entered in the form. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Bookmarks are your friend" + header = "Template constructed" +%] + +

    + You can bookmark this link: + “ + [% IF short_desc %] + [% short_desc FILTER html %] + [% ELSE %] + [% terms.Bug %] entry template + [% END %]”. + This bookmark will bring up the Enter [% terms.Bug %] page with the + fields initialized as you've requested. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/create/user-message.html.tmpl b/template/en/default/bug/create/user-message.html.tmpl new file mode 100644 index 0000000..ac2cc29 --- /dev/null +++ b/template/en/default/bug/create/user-message.html.tmpl @@ -0,0 +1,36 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Matthew Tuck + #%] + +[%# Migration note: this file corresponds to the old Param + # 'entryheaderhtml' + #%] + +[%# You can make the output of this template product-specific by using + # Template Toolkit IF statements. The current product name is stored in + # the 'product' variable. + #%] + +[% PROCESS global/variables.none.tmpl %] + +Before reporting [% terms.abug %], please read the + +[% terms.bug %] writing guidelines, please look at the list of +most frequently reported [% terms.bugs %], and please +search for the [% terms.bug %]. diff --git a/template/en/default/bug/dependency-graph.html.tmpl b/template/en/default/bug/dependency-graph.html.tmpl new file mode 100644 index 0000000..37dcde0 --- /dev/null +++ b/template/en/default/bug/dependency-graph.html.tmpl @@ -0,0 +1,106 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # bug_id: integer. The number of the bug(s). + # multiple_bugs: boolean. True if bug_id contains > 1 bug number. + # doall: boolean. True if we are displaying every bug in the database. + # showsummary: boolean. True if we are showing bug summaries. + # rankdir: string. "TB" if we are ranking top-to-bottom, + "LR" if left-to-right. + # image_url: string. The URL of the graphic showing the dependencies. + # map_url: string. The URL of the map file for the image. (Optional) + # image_map: string. The image map for the graphic showing the + dependencies. (Optional) + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = "Dependency Graph" + header = title + %] + +[% IF NOT multiple_bugs AND NOT doall %] + [% filtered_desc = short_desc FILTER html %] + [% title = "$title for $terms.bug $bug_id" + header = "$header for $terms.bug $bug_id" + subheader = filtered_desc + %] +[% END %] + +[% PROCESS global/header.html.tmpl %] + +[% image_map %] + +

    + Green circles represent open [% terms.bugs %]. +

    + +[% IF image_map %] + Dependency graph +[% ELSE %] + + Dependency graph + +[% END %] + +
    + +
    + + + + + + + + + + + + + + + + +
    : + + +
    + +
    + +
    + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/dependency-tree.html.tmpl b/template/en/default/bug/dependency-tree.html.tmpl new file mode 100644 index 0000000..c42c3c4 --- /dev/null +++ b/template/en/default/bug/dependency-tree.html.tmpl @@ -0,0 +1,266 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Tobias Burnus + # Ville Skyttä + # Myk Melez + # André Batosti + #%] + +[% PROCESS 'global/field-descs.none.tmpl' %] + +[% filtered_desc = blocked_tree.$bugid.short_desc FILTER html %] +[% PROCESS global/header.html.tmpl + title = "Dependency tree for $terms.Bug $bugid" + header = "Dependency tree for + $terms.Bug $bugid" + javascript_urls = ["js/expanding-tree.js"] + style_urls = ["skins/standard/dependency-tree.css"] + subheader = filtered_desc + doc_section = "hintsandtips.html#dependencytree" +%] + +[% PROCESS depthControlToolbar %] + +[% INCLUDE tree_section ids=dependson_ids type=1 %] + +[% INCLUDE tree_section ids=blocked_ids type=2 %] + +[% PROCESS depthControlToolbar %] + +[% PROCESS global/footer.html.tmpl %] + +[%###########################################################################%] +[%# Tree-drawing blocks #%] +[%###########################################################################%] + +[% BLOCK tree_section %] + [%# INTERFACE + # - ids: a list of bug IDs to be displayed as children + # - type: the type of tree. 1 = depends on, 2 = blockeds + # GLOBALS + # - seen: Maintains a global hash of bugs that have been displayed + #%] + [% global.seen = {} %] + [%# Display the tree of bugs that this bug depends on. %] +

    + [% terms.Bug %] [%+ bugid %] + [% IF type == 1 %] + [% tree_name = "dependson_tree" %] + [% IF ids.size %] + depends on + [% ELSE %] + does not depend on any [% terms.bugs %]. + [% END %] + [% ELSIF type == 2 %] + [% tree_name = "blocked_tree" %] + [% IF ids.size %] + blocks + [% ELSE %] + does not block any [% terms.bugs %]. + [% END %] + [% END %] + [% IF ids.size %] + [%+ (ids.size == 1) ? "one" : ids.size %] + [%+ IF hide_resolved %]open[% END %] + [%+ (ids.size == 1) ? terms.bug : terms.bugs %]: + [% END %] +

    + [% IF ids.size %] + ([% IF maxdepth -%]Up to [% maxdepth %] level[% "s" IF maxdepth > 1 %] deep | [% END -%] + view as [% terms.bug %] list + [% IF user.in_group('editbugs') && ids.size > 1 %] + | change several + [% END %]) +
      + [% INCLUDE display_tree tree=$tree_name %] +
    + [% END %] +[% END %] + + +[% BLOCK display_tree %] + [%# INTERFACE + # - bugid: the ID of the bug being displayed + # - tree: a hash of bug objects and of bug dependencies + #%] + [% bug = tree.$bugid %] +
  • + [%- INCLUDE bullet bugid=bugid tree=tree -%] + + [%- INCLUDE buglink bug=bug bugid=bugid %] + + [% IF global.seen.$bugid %] + (*) + [% ELSIF tree.dependencies.$bugid.size %] +
      + [% FOREACH depid = tree.dependencies.$bugid %] + [% INCLUDE display_tree bugid=depid %] + [% END %] +
    + [% END %] +
  • + [% global.seen.$bugid = 1 %] +[% END %] + +[% BLOCK bullet %] + [% IF tree.dependencies.$bugid.size && ! global.seen.$bugid %] + [% extra_class = " b_open" %] + [% extra_args = 'onclick="return doToggle(this, event)"' %] + [% END %] +    +[% END %] + +[% BLOCK buglink %] + [% isclosed = !bug.isopened %] + [% FILTER closed(isclosed) -%] + + [%- bugid %]: + [%+ bug.short_desc FILTER html %] + [[% INCLUDE buginfo %]] + + + + + [% END %] +[% END %] + +[% BLOCK buginfo %] + [% display_value("bug_status", bug.bug_status) FILTER html -%] [%+ display_value("resolution", bug.resolution) FILTER html %]; + [%-%] assigned to [% bug.assigned_to.login FILTER email FILTER html %] + [%-%][% "; Target: " _ bug.target_milestone IF bug.target_milestone %] +[% END %] + +[%###########################################################################%] +[%# Block for depth control toolbar #%] +[%###########################################################################%] + +[% BLOCK depthControlToolbar %] + + + [%# Hide/show resolved button + Swaps text depending on the state of hide_resolved %] + + + + + + + + + + + + + + + + +
    +
    + + [% IF maxdepth %] + + [% END %] + + +
    +
    + Max Depth: + +   + +
    + [%# set to one form %] + + + + +
    +
    +
    + [%# Minus one form + Allow subtracting only when realdepth and maxdepth > 1 %] + + + + +
    +
    +
    + [%# Limit entry form: the button can not do anything when total depth + is less than two, so disable it %] + + + + +
    +
    +
    + [%# plus one form + Disable button if total depth < 2, or if depth set to unlimited %] + + [% IF maxdepth %] + + [% END %] + + = realdepth %]> +
    +
    +
    + [%# Unlimited button %] + + + +
    +
    + +[% END %] diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl new file mode 100644 index 0000000..80c6fcd --- /dev/null +++ b/template/en/default/bug/edit.html.tmpl @@ -0,0 +1,1161 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Vaskin Kissoyan + # Max Kanat-Alexander + # Frédéric Buclin + # Olav Vitters + # Guy Pyrzak + # Elliotte Martin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS bug/time.html.tmpl %] + +[% USE Bugzilla %] +[% SET select_fields = {} %] +[% FOREACH field = Bugzilla.get_fields( + { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) +%] + [% select_fields.${field.name} = field %] +[% END %] + + + +
    + + + + + + + [% PROCESS section_title %] + + + [%# 1st Column %] + + + [%# 2nd Column %] + + + + + +
    + + [%# *** ID, product, component, status, resolution, Hardware, and OS *** %] + [% PROCESS section_status %] + + [% PROCESS section_spacer %] + + [% PROCESS section_details1 %] + + [% PROCESS section_spacer %] + + [%# *** severity, priority, version and milestone *** %] + [% PROCESS section_details2 %] + + [%# *** assigned to and qa contact *** %] + [% PROCESS section_people %] + + [% PROCESS section_spacer %] + + [% PROCESS section_url_keyword_whiteboard %] + + [% PROCESS section_spacer %] + + [%# *** Dependencies *** %] + [% PROCESS section_dependson_blocks %] + +
    +
    +
     
    +
    + + [%# *** Reported and modified dates *** %] + [% PROCESS section_dates %] + + [% PROCESS section_cclist %] + + [% PROCESS section_spacer %] + + [% PROCESS section_see_also %] + + [% PROCESS section_customfields %] + + [% PROCESS section_spacer %] + + [% Hook.process("after_custom_fields") %] + + [% PROCESS section_flags %] + +
    +
    +
    +
    + + + + +
    + [% IF user.is_timetracker %] + [% PROCESS section_timetracking %] + [% END %] + + [%# *** Attachments *** %] + + [% PROCESS attachment/list.html.tmpl + attachments = bug.attachments + bugid = bug.bug_id + num_attachment_flag_types = bug.num_attachment_flag_types + show_attachment_flags = bug.show_attachment_flags + %] + + [% PROCESS comment_box %] + + [% PROCESS section_restrict_visibility %] +
    + + [%# *** Additional Comments *** %] +
    + [% PROCESS bug/comments.html.tmpl + comments = bug.comments + mode = user.id ? "edit" : "show" + %] +
    + +
    + +[%############################################################################%] +[%# Block for the Title (alias and short desc) #%] +[%############################################################################%] + +[% BLOCK section_title %] + [%# That's the main table, which contains all editable fields. %] +
    + [% PROCESS commit_button id="_top"%] + + [%-# %][% terms.Bug %] [% bug.bug_id FILTER html %] + [%-# %] - + [% IF Param("usebugaliases") %] + [% IF bug.alias != "" %] + ([% bug.alias FILTER html %]) + [% END %] + [% END %] + [% bug.short_desc FILTER quoteUrls(bug) %] + [% IF bug.check_can_change_field('short_desc', 0, 1) || + bug.check_can_change_field('alias', 0, 1) %] + (edit) + [% END %] + + + +
    + + [% IF Param("usebugaliases") %] + + [% IF bug.check_can_change_field('alias', 0, 1) %] + + + [% END %] + [%# *** Summary *** %] + + + + +
    + : + [% ELSIF bug.alias %] + ( + [% ELSE %] + + [% END %] + [% PROCESS input inputname => "alias" + size => "20" + maxlength => "20" + no_td => 1 + %][% ")" IF NOT bug.check_can_change_field('alias', 0, 1) + && bug.alias %] +
    + : + + [% PROCESS input inputname => "short_desc" size => "80" colspan => 2 + maxlength => 255 spellcheck => "true" no_td => 1 %] +
    +
    +
    + +[% END %] + +[%############################################################################%] +[%# Block for the first table in the "Details" section #%] +[%############################################################################%] + +[% BLOCK section_details1 %] + + [%#############%] + [%# PRODUCT #%] + [%#############%] + + + [% INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.product, + override_legal_values = bug.choices.product + desc_url = 'describecomponents.cgi', value = bug.product + editable = bug.check_can_change_field('product', 0, 1) %] + + [%###############%] + [%# Component #%] + [%###############%] + + + + + [% PROCESS select selname => "component" %] + + + + : + + + [% PROCESS select selname => "version" %] + + [%############%] + [%# PLATFORM #%] + [%############%] + + + : + + + [% INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.rep_platform, + no_tds = 1, value = bug.rep_platform + editable = bug.check_can_change_field('rep_platform', 0, 1) %] + [%+ INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.op_sys, + no_tds = 1, value = bug.op_sys + editable = bug.check_can_change_field('op_sys', 0, 1) %] + + + + + + +[% END %] + +[%############################################################################%] +[%# Block for the status section #%] +[%############################################################################%] + +[% BLOCK section_status %] + + + Status: + + + + [% display_value("bug_status", bug.bug_status) FILTER html %] + [% IF bug.resolution %] + [%+ display_value("resolution", bug.resolution) FILTER html %] + [% IF bug.dup_id %] + of [% "${terms.bug} ${bug.dup_id}" FILTER bug_link(bug.dup_id) FILTER none %] + [% END %] + [% END %] + [% IF bug.user.canedit || bug.user.isreporter %] + (edit) + [% END %] + + + +[% END %] + +[%############################################################################%] +[%# Block for the second table in the "Details" section #%] +[%############################################################################%] + +[% BLOCK section_details2 %] + + [%###############################################################%] + [%# Importance (priority, severity and votes) #%] + [%###############################################################%] + + + : + + + [% INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.priority, + no_tds = 1, value = bug.priority + editable = bug.check_can_change_field('priority', 0, 1) %] + [%+ INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.bug_severity, + no_tds = 1, value = bug.bug_severity + editable = bug.check_can_change_field('bug_severity', 0, 1) %] + [% IF bug.use_votes %] + + [% IF bug.votes %] + with + + [% bug.votes %] + [% IF bug.votes == 1 %] + vote + [% ELSE %] + votes + [% END %] + [% END %] + (vote) + + [% END %] + + + + [% IF Param("usetargetmilestone") && bug.target_milestone %] + + + : + + [% PROCESS select selname = "target_milestone" %] + + [% END %] + +[% END %] + +[%############################################################################%] +[%# Block for the table in the "People" section #%] +[%############################################################################%] + +[% BLOCK section_people %] + + + + Assigned To: + + + [% IF bug.check_can_change_field("assigned_to", 0, 1) %] +
    + + [% INCLUDE global/user.html.tmpl who = bug.assigned_to %] + (edit) + +
    +
    + [% INCLUDE global/userselect.html.tmpl + id => "assigned_to" + name => "assigned_to" + value => bug.assigned_to.login + size => 30 + %] +
    + + +
    + + [% ELSE %] + [% INCLUDE global/user.html.tmpl who = bug.assigned_to %] + [% END %] + + + + [% IF Param('useqacontact') %] + + + : + + + [% IF bug.check_can_change_field("qa_contact", 0, 1) %] + [% IF bug.qa_contact != "" %] +
    + + + [% INCLUDE global/user.html.tmpl who = bug.qa_contact %] + (edit) + +
    + [% END %] +
    + [% INCLUDE global/userselect.html.tmpl + id => "qa_contact" + name => "qa_contact" + value => bug.qa_contact.login + size => 30 + emptyok => 1 + %] +
    + + +
    + + [% ELSE %] + [% INCLUDE global/user.html.tmpl who = bug.qa_contact %] + [% END %] + + + [% END %] +[% END %] + +[%############################################################################%] +[%# Block for URL Keyword and Whiteboard #%] +[%############################################################################%] +[% BLOCK section_url_keyword_whiteboard %] +[%# *** URL Whiteboard Keywords *** %] + + + : + + + [% IF bug.check_can_change_field("bug_file_loc", 0, 1) %] + + [% IF bug.bug_file_loc + AND NOT bug.bug_file_loc.match("^(javascript|data)") %] + + [% bug.bug_file_loc FILTER truncate(40) FILTER html %] + [% ELSE %] + [% bug.bug_file_loc FILTER html %] + [% END %] + (edit) + [% END %] + + [% url_output = PROCESS input no_td=1 inputname => "bug_file_loc" size => "40" colspan => 2 %] + [% IF NOT bug.check_can_change_field("bug_file_loc", 0, 1) %] + [% url_output FILTER none %] + [% ELSE %] + [% url_output FILTER none %] + [% END %] + + [% IF bug.check_can_change_field("bug_file_loc", 0, 1) %] + + [% END %] + + + + [% IF Param('usestatuswhiteboard') %] + + + : + + [% PROCESS input inputname => "status_whiteboard" size => "40" colspan => 2 %] + + [% END %] + + [% IF use_keywords %] + + + : + + [% PROCESS input inputname => "keywords" size => 40 colspan => 2 + value => bug.keywords.join(', ') %] + + [% END %] +[% END %] + +[%############################################################################%] +[%# Block for Depends On / Blocks #%] +[%############################################################################%] +[% BLOCK section_dependson_blocks %] + + [% PROCESS dependencies + dep = { title => "Depends on", fieldname => "dependson" } %] + + + + [% PROCESS dependencies accesskey = "b" + dep = { title => "Blocks", fieldname => "blocked" } %] + + +   + + + Show dependency tree + + [% IF Param('webdotbase') %] + / graph + [% END %] + + +[% END %] + + +[%############################################################################%] +[%# Block for Restricting Visibility #%] +[%############################################################################%] + +[% BLOCK section_restrict_visibility %] + [% RETURN UNLESS bug.groups.size %] + +
    + [% inallgroups = 1 %] + [% inagroup = 0 %] + [% emitted_description = 0 %] + + [% FOREACH group = bug.groups %] + [% SET inallgroups = 0 IF NOT group.ingroup %] + [% SET inagroup = 1 IF group.ison %] + + [% NEXT IF group.mandatory %] + + [% IF NOT emitted_description %] + [% emitted_description = 1 %] +
    + Only users in all of the selected groups can view this + [%+ terms.bug %]: +

    + Unchecking all boxes makes this a more public [% terms.bug %]. +

    +
    + [% END %] + + [% IF group.ingroup %] + + [% END %] + + + +
    + [% END %] + + [% IF emitted_description %] + [% IF NOT inallgroups %] +

    Only members of a group can change the + visibility of [% terms.abug %] for that group.

    + [% END %] + [% END %] + + [% IF inagroup %] +
    + Users in the roles selected below can always view + this [% terms.bug %]: +
    +
    +
    + [% user_can_edit_accessible = + bug.check_can_change_field("reporter_accessible", 0, 1) + %] + [% IF user_can_edit_accessible %] + + [% END %] + + +
    +
    + [% user_can_edit_accessible = + bug.check_can_change_field("cclist_accessible", 0, 1) + %] + [% IF user_can_edit_accessible %] + + [% END %] + + +
    +

    + The assignee + [% IF (Param('useqacontact')) %] + and QA contact + [% END %] + can always see [% terms.abug %], and this section does not + take effect unless the [% terms.bug %] is restricted to at + least one group. +

    +
    + [% END %] +
    [%# bz_group_visibility_section %] +[% END %] + +[%############################################################################%] +[%# Block for Dates #%] +[%############################################################################%] + +[% BLOCK section_dates %] + + + Reported: + + + [% bug.creation_ts FILTER time %] by [% INCLUDE global/user.html.tmpl who = bug.reporter %] + + + + + + Modified: + + + [% bug.delta_ts FILTER time FILTER replace(':\d\d$', '') FILTER replace(':\d\d ', ' ')%] + ([%# terms.Bug %]History) + + + +[% END %] + +[%############################################################################%] +[%# Block for CC LIST #%] +[%############################################################################%] +[% BLOCK section_cclist %] + + + + + + [% 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) %] + + +
    + [% END %] + [% END %] + [% bug.cc.size || 0 FILTER html %] + [% IF bug.cc.size == 1 %] + user + [% ELSE %] + users + [% END %] + [% IF user.id %] + [% IF bug.cc.contains( user.email ) %] + including you + [% END %] + [% END %] + + ([% IF user.id %]edit[% ELSE %]show[% END %]) + +
    +
    + [% IF user.id %] +
    +
    + [% INCLUDE global/userselect.html.tmpl + id => "newcc" + name => "newcc" + value => "" + size => 30 + multiple => 5 + %] +
    + [% END %] + [% IF bug.cc %] + + [% IF user.id %] +
    + + [%%] +
    + [% END %] + [% END %] +
    + + + +[% END %] + +[%############################################################################%] +[%# Block for See Also #%] +[%############################################################################%] +[% BLOCK section_see_also %] + [% IF Param('use_see_also') || bug.see_also.size %] + + [% INCLUDE bug/field.html.tmpl + field = bug_fields.see_also + value = bug.see_also + editable = bug.check_can_change_field('see_also', 0, 1) + %] + + [% END %] +[% END %] + +[%############################################################################%] +[%# Block for FLAGS #%] +[%############################################################################%] + +[% BLOCK section_flags %] + [%# *** Flags *** %] + [% show_bug_flags = 0 %] + [% FOREACH type = bug.flag_types %] + [% IF (type.flags && type.flags.size > 0) || (user.id && type.is_active) %] + [% show_bug_flags = 1 %] + [% LAST %] + [% END %] + [% END %] + [% IF show_bug_flags %] + + + + + + + + + [% IF bug.flag_types.size > 0 %] + [% PROCESS "flag/list.html.tmpl" flag_no_header = 1 + flag_types = bug.flag_types + any_flags_requesteeble = bug.any_flags_requesteeble %] + [% END %] + + + [% END %] +[% END %] + +[%############################################################################%] +[%# Block for Custom Fields #%] +[%############################################################################%] + +[% BLOCK section_customfields %] +[%# *** Custom Fields *** %] + + [% FOREACH field = Bugzilla.active_custom_fields %] + + [% PROCESS bug/field.html.tmpl value=bug.${field.name} + editable = bug.check_can_change_field(field.name, 0, 1) + value_span = 2 %] + + [% END %] +[% END %] + +[%############################################################################%] +[%# Block for Section Spacer #%] +[%############################################################################%] + +[% BLOCK section_spacer %] + + + +[% END %] + + + + +[%############################################################################%] +[%# Block for dependencies #%] +[%############################################################################%] + +[% BLOCK dependencies %] + + + : + + + + [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %] + + [% END %] + + + [% FOREACH depbug = bug.${dep.fieldname} %] + [% depbug FILTER bug_link(depbug, use_alias => 1) FILTER none %][% " " %] + [% END %] + [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %] + + (edit) + + + [% END %] + + + [% accesskey = undef %] + +[% END %] + +[%############################################################################%] +[%# Block for Time Tracking Group #%] +[%############################################################################%] + +[% BLOCK section_timetracking %] + + + + + + + + + + + + + + + + + + + + + + +
    + + + Current Est. + + + + + + %Complete + + Gain + + +
    + + + [% PROCESS formattimeunit + time_unit=(bug.actual_time + bug.remaining_time) %] + + [% PROCESS formattimeunit time_unit=bug.actual_time %] + + + + + + [% PROCESS calculatepercentage act=bug.actual_time + rem=bug.remaining_time %] + + [% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %] + +
    + (YYYY-MM-DD) +
    + + Summarize time (including time for [% terms.bugs %] + blocking this [% terms.bug %]) +
    +[% END %] + +[%############################################################################%] +[%# Block for the Additional Comments box #%] +[%############################################################################%] + +[% BLOCK comment_box %] +
    + + [% IF user.id %] + : + + [% IF user.is_insider %] + + + [% END %] + + +
    + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + %] + [% Hook.process("after_comment_textarea", 'bug/edit.html.tmpl') %] +
    + [% PROCESS commit_button id=""%] + + + + + + +
    + Status: + + + [% PROCESS bug/knob.html.tmpl %] +
    +
    + + [%# For logged-out users %] + [% ELSE %] +
    + Note + You need to + log in + before you can comment on or make changes to this [% terms.bug %]. +
    + [% END %] +
    +[% END %] + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + + [% IF bug.check_can_change_field(selname, 0, 1) + AND bug.choices.${selname}.size > 1 %] + + [% ELSE %] + [% bug.${selname} FILTER html %] + [% END %] + +[% END %] + +[%############################################################################%] +[%# Block for INPUT fields #%] +[%############################################################################%] + +[% BLOCK input %] + [% IF no_td != 1 %] + + [% END %] + [% val = value ? value : bug.$inputname %] + [% IF bug.check_can_change_field(inputname, 0, 1) %] + + [% ELSE %] + [% IF size && val.length > size %] + + [% val FILTER truncate(size) FILTER html %] + + [% ELSE %] + [% val FILTER html %] + [% END %] + [% END %] + [% IF no_td != 1 %] + + [% END %] + [% no_td = 0 %] + [% maxlength = 0 %] + [% colspan = 0 %] + [% size = 0 %] + [% value = undef %] + [% spellcheck = undef %] +[% END %] +[% BLOCK commit_button %] + [% IF user.id %] +
    + + [% IF bug.user.canmove %] + + [% END %] +
    + [% END %] +[% END %] diff --git a/template/en/default/bug/field-events.js.tmpl b/template/en/default/bug/field-events.js.tmpl new file mode 100644 index 0000000..06fba12 --- /dev/null +++ b/template/en/default/bug/field-events.js.tmpl @@ -0,0 +1,40 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is the San Jose State + # University Foundation. Portions created by the Initial Developer + # are Copyright (C) 2008 the Initial Developer. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[%# INTERFACE: + # field: a Bugzilla::Field object + #%] + +[% FOREACH controlled_field = field.controls_visibility_of %] + showFieldWhen('[% controlled_field.name FILTER js %]', + '[% field.name FILTER js %]', + '[% controlled_field.visibility_value.name FILTER js %]'); +[% END %] +[% FOREACH legal_value = field.legal_values %] + [% FOREACH controlled_field = legal_value.controlled_values.keys %] + [% SET cont_ids = [] %] + [% FOREACH val = legal_value.controlled_values.$controlled_field %] + [% cont_ids.push(val.id) %] + [% END %] + showValueWhen('[% controlled_field FILTER js %]', + [[% cont_ids.join(',') FILTER js %]], + '[% field.name FILTER js %]', + [% legal_value.id FILTER js %]); + [% END %] +[% END %] diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl new file mode 100644 index 0000000..bb678d7 --- /dev/null +++ b/template/en/default/bug/field.html.tmpl @@ -0,0 +1,215 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Max Kanat-Alexander + # Elliotte Martin + #%] + +[%# INTERFACE: + # field: a Bugzilla::Field object + # value: The value of the field for this bug. + # override_legal_values (optional): The list of legal values, for select fields. + # editable: Whether the field should be displayed as an editable + # or as just the plain text of its value. + # allow_dont_change: display the --do_not_change-- option for select fields. + # value_span: A colspan for the table cell containing + # the field value. + # no_tds: boolean; if true, don't display the label or the + # wrapping for the field. + # desc_url: string; Normally the label of a non-custom field links to + # fields.html. If you want it to link elsewhere, specify the + # relative URL you want to link to, here. Remember to call + # url_quote on any query string arguments. + # bug (optional): The current Bugzilla::Bug being displayed, or a hash + # with default field values being displayed on a page. + #%] + +[% SET hidden = 0 %] +[% IF field.visibility_field.defined %] + [% IF !bug.${field.visibility_field.name} + .contains(field.visibility_value.name) + %] + [% SET hidden = 1 %] + [% END %] +[% END %] + +[% IF NOT no_tds %] + + [% IF editable %] + ' IF editable %] + +[% END %] + +[% IF NOT no_tds %] + +[% END %] +[% Hook.process('start_field_column') %] +[% IF editable %] + [% SWITCH field.type %] + [% CASE constants.FIELD_TYPE_FREETEXT %] + + [% CASE constants.FIELD_TYPE_DATETIME %] + + + +
    + + + [% CASE constants.FIELD_TYPE_BUG_ID %] + + + + + [% IF bug.${field.name} %] + [% bug.${field.name} FILTER bug_link(bug.${field.name}) FILTER none %] + [% END %] + + (edit) + + + [% CASE [ constants.FIELD_TYPE_SINGLE_SELECT + constants.FIELD_TYPE_MULTI_SELECT ] %] + + [%# When you pass an empty multi-select in the web interface, + # it doesn't appear at all in the CGI object. Instead of + # forcing all users of process_bug to always specify every + # multi-select, we have this field defined if the multi-select + # field is defined, and then if this is passed but the multi-select + # isn't, we know that the multi-select was emptied. + %] + [% IF field.type == constants.FIELD_TYPE_MULTI_SELECT %] + + [% END %] + + + + [% CASE constants.FIELD_TYPE_TEXTAREA %] + [% INCLUDE global/textarea.html.tmpl + id = field.name name = field.name minrows = 4 maxrows = 8 + cols = 60 defaultcontent = value %] + [% CASE constants.FIELD_TYPE_BUG_URLS %] + [% '
      ' IF value.size %] + [% FOREACH url = value %] +
    • + [% url FILTER html %] + [% IF editable %] + + [% END %] +
    • + [% END %] + [% '
    ' IF value.size %] + + [% IF editable && Param('use_see_also') %] +
    + + [% END %] + [% END %] +[% ELSIF field.type == constants.FIELD_TYPE_TEXTAREA %] +
    [% value FILTER wrap_comment(60) + FILTER html %]
    +[% ELSIF field.type == constants.FIELD_TYPE_BUG_ID %] + [% IF bug.${field.name} %] + [% bug.${field.name} FILTER bug_link(bug.${field.name}) FILTER none %] + [% END %] +[% ELSE %] + [% value.join(', ') FILTER html %] +[% END %] +[% Hook.process('end_field_column') %] +[% '' IF NOT no_tds %] diff --git a/template/en/default/bug/format_comment.txt.tmpl b/template/en/default/bug/format_comment.txt.tmpl new file mode 100644 index 0000000..7d33c23 --- /dev/null +++ b/template/en/default/bug/format_comment.txt.tmpl @@ -0,0 +1,68 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Marc Schumann. + # Portions created by Marc Schumann are Copyright (c) 2008 Marc Schumann. + # All rights reserved. + # + # Contributor(s): Marc Schumann + #%] + +[%# NOTE: Everywhere you use this template, you must call + # "FILTER remove('^X')" on the result. This is unfortunately the only way + # to preserve leading whitespace in comments. + #%] + +[%# INTERFACE: + # comment: A Bugzilla::Comment object. + # is_bugmail: boolean; True if this comment is going into a plain-text + # bugmail. + #%] + +[%# Please don't use field-descs here. It can slow down Bugzilla. %] +[% PROCESS 'global/variables.none.tmpl' %] + +[% SET comment_body = comment.body %] + +[% IF comment.type == constants.CMT_DUPE_OF %] +X[% comment_body %] + +*** This [% terms.bug %] has been marked as a duplicate of [% terms.bug %] [%+ comment.extra_data %] *** +[% ELSIF comment.type == constants.CMT_HAS_DUPE %] +*** [% terms.Bug %] [%+ comment.extra_data %] has been marked as a duplicate of this [% terms.bug %]. *** +[% ELSIF comment.type == constants.CMT_POPULAR_VOTES %] +*** This [% terms.bug %] has been confirmed by popular vote. *** +[% ELSIF comment.type == constants.CMT_MOVED_TO %] +X[% comment_body %] + +[%+ terms.Bug %] moved to [% Param("move-to-url") %]. +If the move succeeded, [% comment.extra_data %] will receive a mail containing +the number of the new [% terms.bug %] in the other database. +If all went well, please paste in a link to the new [% terms.bug %]. +Otherwise, reopen this [% terms.bug %]. +[% ELSIF comment.type == constants.CMT_ATTACHMENT_CREATED %] +Created attachment [% comment.extra_data %] +[% IF is_bugmail %] + --> [% urlbase _ "attachment.cgi?id=" _ comment.extra_data %] +[% END %] +[%+ comment.attachment.description %] + +[%+ comment.body %] +[% ELSIF comment.type == constants.CMT_ATTACHMENT_UPDATED %] +Comment on attachment [% comment.extra_data %] +[% IF is_bugmail %] + --> [% urlbase _ "attachment.cgi?id=" _ comment.extra_data %] +[% END %] +[%+ comment.attachment.description %] + +[%+ comment.body %] +[% END %] diff --git a/template/en/default/bug/knob.html.tmpl b/template/en/default/bug/knob.html.tmpl new file mode 100644 index 0000000..ac14e6d --- /dev/null +++ b/template/en/default/bug/knob.html.tmpl @@ -0,0 +1,100 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Vaskin Kissoyan + # Frédéric Buclin + # Guy Pyrzak + #%] + +[% PROCESS global/variables.none.tmpl %] +
    + [% PROCESS bug/field.html.tmpl + no_tds = 1 + field = bug_fields.bug_status + value = bug.bug_status + override_legal_values = bug.choices.bug_status + editable = bug.choices.bug_status.size > 1 + %] + + [% IF bug.resolution + OR bug.check_can_change_field('resolution', bug.resolution, 1) + %] + + [% END %] + + + [% PROCESS bug/field.html.tmpl + no_tds = 1 + field = bug_fields.resolution + value = bug.resolution + override_legal_values = bug.choices.resolution + editable = bug.check_can_change_field('resolution', bug.resolution, 1) + %] + + + [% IF bug.check_can_change_field('dup_id', 0, 1) %] + + of + + [% "${terms.bug} ${bug.dup_id}" FILTER bug_link(bug.dup_id) FILTER none %] + (edit) + + + [% IF bug.dup_id %] + + [% END %] + + [% ELSIF bug.dup_id %] + + of + [% "${terms.bug} ${bug.dup_id}" FILTER bug_link(bug.dup_id) FILTER none %] + [% END %] +
    + + diff --git a/template/en/default/bug/navigate.html.tmpl b/template/en/default/bug/navigate.html.tmpl new file mode 100644 index 0000000..4a3d063 --- /dev/null +++ b/template/en/default/bug/navigate.html.tmpl @@ -0,0 +1,87 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% PROCESS global/variables.none.tmpl %] +[% IF bottom_navigator == 1 %] + +[% END %] + + + diff --git a/template/en/default/bug/process/bugmail.html.tmpl b/template/en/default/bug/process/bugmail.html.tmpl new file mode 100644 index 0000000..b0132a2 --- /dev/null +++ b/template/en/default/bug/process/bugmail.html.tmpl @@ -0,0 +1,60 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Bradley Baetz + # J. Paul Reed + #%] + +[%# INTERFACE: + # mailing_bugid: The bug ID that email is being sent for. + # sent_bugmail: The results of Bugzilla::BugMail::Send(). + #%] + +[% PROCESS global/variables.none.tmpl %] + +
    +[% PROCESS emails + description = "Email sent to" + names = sent_bugmail.sent +%] + +[% PROCESS emails + description = "Excluding" + names = sent_bugmail.excluded +%] +
    + +[%############################################################################%] +[%# Block for a set of email addresses #%] +[%############################################################################%] + +[% BLOCK emails %] +
    [% description FILTER html %]:
    +
    + [% IF user.can_see_bug(mailing_bugid) %] + [% IF names.size > 0 %] + [%+ FOREACH name = names %] + [% name FILTER html %][% ", " UNLESS loop.last() %] + [% END %] + [% ELSE %] + no one + [% END %] + [% ELSE %] + (list of e-mails not available) + [% END %] +
    +[% END %] diff --git a/template/en/default/bug/process/confirm-duplicate.html.tmpl b/template/en/default/bug/process/confirm-duplicate.html.tmpl new file mode 100644 index 0000000..d89c8da --- /dev/null +++ b/template/en/default/bug/process/confirm-duplicate.html.tmpl @@ -0,0 +1,75 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # original_bug_id: number; the bug number for the bug + # against which a bug is being duped + # duplicate_bug_id: number; the bug number for the bug + # being duped + # cclist_accessible: boolean; whether or not users on the cc: list + # of the original bug can access that bug. + #%] + +[% PROCESS global/variables.none.tmpl %] +[% PROCESS global/header.html.tmpl title="Duplicate Warning" %] +[% orig_bug = "$terms.bug $original_bug_id" + FILTER bug_link(original_bug_id) %] + +

    + When marking [% terms.abug %] as a duplicate, the reporter of the duplicate + is normally added to the CC list of the original. The permissions + on [% orig_bug FILTER none %] (the original) are currently set + such that the reporter would not normally be able to see it. +

    + +

    + Adding the reporter to the CC list of [% orig_bug FILTER none %] + [% IF cclist_accessible %] + will immediately + [% ELSE %] + might, in the future, + [% END %] + allow him/her access to view this [% terms.bug %]. + Do you wish to do this? +

    + +
    + +[% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + +

    + + Yes, add the reporter to CC list on [% orig_bug FILTER none %] +

    +

    + + No, do not add the reporter to CC list on [% orig_bug FILTER none %] +

    +

    + [% "Throw away my changes, and revisit $terms.bug $duplicate_bug_id" + FILTER bug_link(duplicate_bug_id) FILTER none %] +

    +

    + +

    + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/process/header.html.tmpl b/template/en/default/bug/process/header.html.tmpl new file mode 100644 index 0000000..79f0126 --- /dev/null +++ b/template/en/default/bug/process/header.html.tmpl @@ -0,0 +1,46 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # As global/header.html.tmpl. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] + +[% PROCESS "bug/show-header.html.tmpl" %] + +[% IF title_tag == "bug_processed" %] + [% title = BLOCK %] + [% IF Bugzilla.cgi.param('id') %] + [% terms.Bug %] [%+ id FILTER html %] + [% ELSE %] + [% terms.Bugs %] + [% END %] + processed + [% END %] +[% ELSIF title_tag == "mid_air" %] + [% title = "Mid-air collision!" %] +[% ELSIF title_tag == "change_votes" %] + [% title = "Change Votes" %] +[% END %] + +[% PROCESS global/header.html.tmpl %] diff --git a/template/en/default/bug/process/midair.html.tmpl b/template/en/default/bug/process/midair.html.tmpl new file mode 100644 index 0000000..34031fc --- /dev/null +++ b/template/en/default/bug/process/midair.html.tmpl @@ -0,0 +1,109 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # operations: array; bug activity since the user last displayed the bug form, + # used by bug/activity/table.html.tmpl to display recent changes that will + # be overwritten if the user submits these changes. See that template + # for further documentation. + # start_at: number; the comment at which show/comments.tmpl should begin + # displaying comments, either the index of the last comment (if the user + # entered a comment along with their change) or a number less than that + # (if they didn't), in which case no comments are displayed. + # comments: array; all the comments on the bug. + # bug: Bugzilla::Bug; the bug being changed. + #%] + +[%# The global Bugzilla->cgi object is used to obtain form variable values. %] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% UNLESS header_done %] + [% PROCESS bug/process/header.html.tmpl %] +[% END %] + +

    Mid-air collision detected!

    + +

    + Someone else has made changes to + [%+ "$terms.bug $bug.id" FILTER bug_link(bug) FILTER none %] + at the same time you were trying to. + The changes made were: +

    + +

    + [% PROCESS "bug/activity/table.html.tmpl" incomplete_data=0 %] +

    + +[% IF comments.size > start_at %] +

    + Added the comment(s): +

    + [% PROCESS "bug/comments.html.tmpl" %] +
    +

    +[% END %] + +[% IF cgi.param("comment") %] +

    + Your comment was:
    +

    +    [% cgi.param("comment") FILTER wrap_comment FILTER html %]
    +  
    +

    +[% END %] + +

    +You have the following choices: +

    + +
      +
    • +
      + + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^Bugzilla_login|Bugzilla_password|delta_ts$" %] + + This will cause all of the above changes to be overwritten + [% ", except for the added comment(s)" IF comments.size > start_at %]. +
      +
    • + [% IF cgi.param("comment") %] +
    • +
      + + + + + + +
      +
    • + [% END %] +
    • + Throw away my changes, and + [%+ "revisit $terms.bug $bug.id" FILTER bug_link(bug) FILTER none %] +
    • +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/process/results.html.tmpl b/template/en/default/bug/process/results.html.tmpl new file mode 100644 index 0000000..ee218d4 --- /dev/null +++ b/template/en/default/bug/process/results.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # id: number; the ID of the bug that was changed/checked. + # + # type: string; the type of change/check that was made: "bug" when a bug + # is changed, "dupe" when a duplication notation is added to a bug, + # and "dep" when a bug is checked for changes to its dependencies. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% UNLESS header_done %] + [% PROCESS bug/process/header.html.tmpl %] +[% END %] + +[% DEFAULT type="bug" %] + +[% Link = BLOCK %][% "$terms.Bug $id" FILTER bug_link(id) %][% END %] +[% link = BLOCK %][% "$terms.bug $id" FILTER bug_link(id) %][% END %] + +[% + title = { + 'bug' => "Changes submitted for $link" , + 'dupe' => "Duplicate notation added to $link" , + 'dep' => "Checking for dependency changes on $link" , + 'votes' => "$Link confirmed by number of votes" , + 'created' => "$Link has been added to the database" , + 'move' => "$Link has been moved to another database" , + } +%] + +
    +
    [% title.$type %]
    +
    + [% PROCESS "bug/process/bugmail.html.tmpl" mailing_bugid = id %] + [%# Links to more information about the changed bug. %] + [% Hook.process("links") %] +
    +
    diff --git a/template/en/default/bug/process/verify-new-product.html.tmpl b/template/en/default/bug/process/verify-new-product.html.tmpl new file mode 100644 index 0000000..1cc186c --- /dev/null +++ b/template/en/default/bug/process/verify-new-product.html.tmpl @@ -0,0 +1,205 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # product: object; the new product. + # versions: array; versions for the new product. + # components: array; components for the new product. + # milestones: array; milestones for the new product. + # defaults: hash; keys are names of fields, values are defaults for + # those fields + # + # verify_bug_groups: If groups need to be confirmed in addition to fields. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = 'Verify New Product Details...' %] + +
    + +[% SET exclude_items = ['version', 'component', 'target_milestone'] %] +[% IF verify_bug_groups %] + [% exclude_items.push('bit-\d+') %] +[% END %] +[% Hook.process('exclude') %] + +[% PROCESS "global/hidden-fields.html.tmpl" + exclude = '^' _ exclude_items.join('|') _ '$' %] + + + +[%# Verify the version, component, and target milestone fields. %] +

    Verify Version, Component + [%- ", Target Milestone" + IF Param("usetargetmilestone") + && bug.check_can_change_field('target_milestone', 0, 1) %]

    + +

    +[% IF Param("usetargetmilestone") + && bug.check_can_change_field('target_milestone', 0, 1) +%] + You are moving the [% terms.bug %](s) to the product + [% product.name FILTER html %], + and the version, component, and/or target milestone fields are no longer + correct. Please set the correct version, component, and target milestone now: +[% ELSE %] + You are moving the [% terms.bug %](s) to the product + [% product.name FILTER html %], + and the version and component fields are no longer correct. + Please set the correct version and component now: +[% END %] +

    + + + + + + [% IF Param("usetargetmilestone") + && bug.check_can_change_field('target_milestone', 0, 1) + %] + + [% END %] + [% Hook.process('field') %] + +
    + Version:
    + [% IF versions.size == 1 %] + [% SET default_version = versions.0 %] + [% ELSE %] + [% SET default_version = defaults.version %] + [% END %] + [% PROCESS "global/select-menu.html.tmpl" + name="version" + options=versions + default=default_version + size=10 %] +
    + Component:
    + [% IF components.size == 1 %] + [% SET default_component = components.0 %] + [% ELSE %] + [% SET default_component = defaults.component %] + [% END %] + [% PROCESS "global/select-menu.html.tmpl" + name="component" + options=components + default=default_component + size=10 %] +
    + Target Milestone:
    + [% PROCESS "global/select-menu.html.tmpl" + name="target_milestone" + options=milestones + default=defaults.milestone + size=10 %] +
    + +[% IF verify_bug_groups %] +

    Verify [% terms.Bug %] Group

    + + [% IF old_groups.size %] +

    These groups are not legal for the '[% product.name FILTER html %]' + product or you are not allowed to restrict [% terms.bugs %] to these groups. + [%+ terms.Bugs %] will no longer be restricted to these groups and may become + public if no other group applies:
    + [% FOREACH group = old_groups %] + + +
    + [% END %] +

    + [% END %] + + [% mandatory_groups = [] %] + [% optional_groups = [] %] + + [% FOREACH gid = product.group_controls.keys %] + [% group = product.group_controls.$gid %] + [% NEXT UNLESS group.group.is_active %] + + [% IF group.membercontrol == constants.CONTROLMAPMANDATORY + || (group.othercontrol == constants.CONTROLMAPMANDATORY && !user.in_group(group.group.name)) %] + [% mandatory_groups.push(group) %] + [% ELSIF (group.membercontrol != constants.CONTROLMAPNA && user.in_group(group.group.name)) + || group.othercontrol != constants.CONTROLMAPNA %] + [% optional_groups.push(group) %] + [% END %] + [% END %] + + [% IF optional_groups.size %] +

    These groups are optional. You can decide to restrict [% terms.bugs %] to + one or more of the following groups:
    + [% FOREACH group = optional_groups %] + + + +
    + [% END %] +

    + [% END %] + + [% IF mandatory_groups.size %] +

    These groups are mandatory and [% terms.bugs %] will be automatically + restricted to these groups:
    + [% FOREACH group = mandatory_groups %] + + +
    + [% END %] +

    + [% END %] +[% END %] + + + +
    +
    + +[%# If 'id' is defined, then we are editing a single bug. + # Else we are editing several bugs at once. %] + +[% IF cgi.param('id') AND cgi.param('id').match('^\d+$') %] + [% id = cgi.param('id') %] + Cancel and Return to [% "$terms.bug $id" FILTER bug_link(id) FILTER none %] +[% ELSE %] + Cancel and Return to the last search results +[% END %] + +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/bug/show-header.html.tmpl b/template/en/default/bug/show-header.html.tmpl new file mode 100644 index 0000000..3f81e57 --- /dev/null +++ b/template/en/default/bug/show-header.html.tmpl @@ -0,0 +1,50 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Vaskin Kissoyan + # Bradley Baetz + # Max Kanat-Alexander + #%] + +[%# This template should be called with PROCESS before processing + # "global/header.html.tmpl" in any template that is going to load the + # bug form. It expects only a "bug" object, and can even manage to get + # along without that. Some of these variables are just defaults that will + # be overridden by the calling templates. + #%] + +[% filtered_desc = bug.short_desc FILTER html %] +[% subheader = filtered_desc %] +[% filtered_timestamp = bug.delta_ts FILTER time %] +[% title = "$terms.Bug $bug.bug_id – $filtered_desc" %] +[% header = "$terms.Bug $bug.bug_id" %] +[% header_addl_info = "Last modified: $filtered_timestamp" %] +[% javascript_urls = [ "js/util.js", "js/field.js", "js/yui/calendar.js" ] %] +[% style_urls = [ "skins/standard/yui/calendar.css", + "skins/standard/show_bug.css" ] %] +[% doc_section = "bug_page.html" %] + +[% bodyclasses = ['bz_bug', + "bz_status_$bug.bug_status", + "bz_product_$bug.product", + "bz_component_$bug.component", + "bz_bug_$bug.bug_id", + ] %] +[% FOREACH group = bug.groups_in %] + [% bodyclasses.push("bz_group_$group.name") %] +[% END %] diff --git a/template/en/default/bug/show-multiple.html.tmpl b/template/en/default/bug/show-multiple.html.tmpl new file mode 100644 index 0000000..177bea1 --- /dev/null +++ b/template/en/default/bug/show-multiple.html.tmpl @@ -0,0 +1,366 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Gervase Markham + # Toms Baugis + # Olav Vitters + # Max Kanat-Alexander + # Elliotte Martin + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "Full Text $terms.Bug Listing" + h1 = "" + style_urls = ["skins/standard/show_multiple.css", + "skins/standard/buglist.css"] + doc_section = "bug_page.html" +%] +[% PROCESS bug/time.html.tmpl %] +[% IF bugs.first %] + [% ids = [] %] + [% FOREACH bug = bugs %] + [% PROCESS bug_display %] + [% ids.push(bug.bug_id) UNLESS bug.error %] + [% END %] + [% IF ids.size > 1 %] +
    +
    + + +
    +
    + [% END %] +[% ELSE %] +

    + You'd have more luck if you gave me some [% terms.bug %] numbers. +

    +[% END %] + + +[% PROCESS global/footer.html.tmpl %] + + +[%###########################################################################%] +[%# Block for an individual bug #%] +[%###########################################################################%] + +[% BLOCK bug_display %] +

    + [% terms.Bug %] + [% bug.bug_id FILTER html %] + [% IF Param("usebugaliases") AND bug.alias AND NOT bug.error %] + ( + [% bug.alias FILTER html %]) + [% END %] +

    + + + [% IF bug.error %] + + + + [% ELSE %] + [%# The rightcell block (also called by the row block) automatically shows + # the fields from rightcells %] + [% rightcells = ['reporter', 'assigned_to'] %] + [% IF Param('useqacontact') %] + [% rightcells.push('qa_contact') %] + [% END %] + [% rightcells.push('') %] + [% IF bug.cc %] + [% rightcells.push('cc') %] + [% END %] + [% IF bug.keywords %] + [% rightcells.push('keywords') %] + [% END %] + + [%# Determine if the bug has a flag %] + [% FOREACH type = bug.flag_types %] + [% IF type.flags.size %] + [% rightcells.push('flags') %] + [% LAST %] + [% END %] + [% END %] + + [% PROCESS row cell = "short_desc" fullrow = 1 %] + + + + + + [% PROCESS rightcell %] + + + [% PROCESS row cell = "component" %] + + + + + + [% PROCESS rightcell %] + + + + + + + [% PROCESS rightcell %] + + + + + + + [% PROCESS rightcell %] + + + [% PROCESS row cell = "version" %] + [% PROCESS row cell = "target_milestone" IF Param('usetargetmilestone') %] + [% PROCESS row cell = "rep_platform" %] + [% PROCESS row cell = "op_sys" %] + + [% IF bug.bug_file_loc %] + + + + + [% END %] + + [% IF Param("usestatuswhiteboard") %] + [% PROCESS row cell = "status_whiteboard" fullrow = 1 %] + [% END %] + + [% USE Bugzilla %] + [% field_counter = 0 %] + [% FOREACH field = Bugzilla.active_custom_fields %] + [% field_counter = field_counter + 1 %] + [%# Odd-numbered fields get an opening %] + [% '' IF field_counter % 2 %] + [% PROCESS bug/field.html.tmpl value=bug.${field.name} editable=0 %] + [%# Even-numbered fields get a closing %] + [% '' IF !(field_counter % 2) %] + [% END %] + [%# And we have to finish the row if we ended on an odd number. %] + [% '' IF field_counter % 2 %] + + [% IF (bug.dependson.size || bug.blocked.size) %] + [% PROCESS dependencies name = "dependson" %] + [% PROCESS dependencies name = "blocked" %] + [% END %] + + [% IF user.is_timetracker %] + + + + + [% PROCESS row cell="deadline" %] + [% END %] + + [% IF bug.attachments.size %] + + + + + [% END %] + [% END %] + + [% Hook.process("last_row", "bug/show-multiple.html.tmpl") %] + +
    + [% IF bug.error == "InvalidBugId" %] + '[%+ bug.bug_id FILTER html %]' is not a valid [% terms.bug %] number + [%- IF Param("usebugaliases") %] nor a known [% terms.bug %] alias[% END %]. + [% ELSIF bug.error == "NotPermitted" %] + You are not allowed to view this [% terms.bug %]. + [% ELSIF bug.error == "NotFound" %] + This [% terms.bug %] cannot be found. + [% ELSE %] + [%+ bug.error FILTER html %] + [% END %] +
    [% field_descs.product FILTER html %]: + [% IF Param("useclassification") && bug.classification_id != 1 %] + [[% bug.classification FILTER html %]]  + [% END %] + [% bug.product FILTER html %] +
    [% field_descs.bug_status FILTER html %]: + [% display_value("bug_status", bug.bug_status) FILTER html %] + [%+ display_value("resolution", bug.resolution) FILTER html %] +
    [% field_descs.bug_severity FILTER html %]: + [% display_value("bug_severity", bug.bug_severity) FILTER html %] +
    [% field_descs.priority FILTER html %]: + [% bug.priority FILTER html %] +
    [% field_descs.bug_file_loc FILTER html %]: + [% IF bug.bug_file_loc.match("^(javascript|data)") %] + [% bug.bug_file_loc FILTER html %] + [% ELSE %] + + [% bug.bug_file_loc FILTER html %] + [% END %] +
    Time tracking: + + + + + + + + + + + + + + + + + +
    [% field_descs.estimated_time FILTER html %][% field_descs.actual_time FILTER html %][% field_descs.work_time FILTER html %][% field_descs.remaining_time FILTER html %][% field_descs.percentage_complete FILTER html %]Gain
    + [% PROCESS formattimeunit time_unit = bug.estimated_time %] + + [% PROCESS formattimeunit + time_unit=(bug.remaining_time + bug.actual_time) %] + [% PROCESS formattimeunit time_unit = bug.actual_time %] + [% PROCESS formattimeunit time_unit = bug.remaining_time %] + + [% PROCESS calculatepercentage act = bug.actual_time + rem = bug.remaining_time %] + + [% PROCESS formattimeunit + time_unit=bug.estimated_time - + (bug.actual_time + bug.remaining_time) %] +
    +
    Attachments: + [% IF bug.show_attachment_flags %] + + + + + + [% FOREACH attachment = bug.attachments %] + + + + + [% END %] +
    DescriptionFlags
    + + [% attachment.description FILTER html %] + [% "
    " IF not loop.last() %] +
    + [% IF attachment.flags.size == 0 %] + none + [% ELSE %] + [% FOREACH flag = attachment.flags %] + [% flag.setter.nick FILTER html %]: + [%+ flag.type.name FILTER html FILTER no_break %][% flag.status %] + [% IF flag.status == "?" && flag.requestee %] + ([% flag.requestee.nick FILTER html %]) + [% END %][% ", " IF not loop.last() %] + [% END %] + [% END %] +
    + [% ELSE %] + [% FOREACH attachment = bug.attachments %] + + [% attachment.description FILTER html %] + [% "
    " IF not loop.last() %] + [% END %] + [% END %] +
    + + +
    + + [% PROCESS bug/comments.html.tmpl + comments = bug.comments %] + +[% END %] + + +[%###########################################################################%] +[%# Block for standard table rows #%] +[%###########################################################################%] + +[% BLOCK row %] + + [% field_descs.${cell} FILTER html %]: + [% display_value(cell, bug.${cell}) FILTER html %] + [% PROCESS rightcell IF !fullrow %] + + [% fullrow = 0 %] +[% END %] + + +[%############################################################################%] +[%# Block for dependencies #%] +[%############################################################################%] + +[% BLOCK dependencies %] + + [% terms.Bug %] [%+ field_descs.${name} FILTER html %]: + + [% FOREACH depbug = bug.${name} %] + [% depbug FILTER bug_link(depbug) FILTER none %][% ", " IF not loop.last() %] + [% END %] + + + [% PROCESS rightcell %] + +[% END %] + +[%############################################################################%] +[%# Block for cells shown right of the table #%] +[%############################################################################%] + +[% BLOCK rightcell %] + [% IF rightcells %] + [% name = rightcells.shift %] + [% IF name == "cc" %] + [% field_descs.cc FILTER html %]: + + [% FOREACH c = bug.cc %] + [% c FILTER email FILTER html %][% ", " IF not loop.last() %] + [% END %] + [% ELSIF name == "reporter" || name == "assigned_to" + || name == "qa_contact" %] + [% field_descs.${name} FILTER html %]: + [% bug.${name}.identity FILTER email FILTER html %] + [% ELSIF name == "flags" %] + Flags: + + [% FOREACH type = bug.flag_types %] + [% FOREACH flag = type.flags %] + [% flag.setter.nick FILTER html %]: + [%+ flag.type.name FILTER html FILTER no_break %][% flag.status %] + [%+ IF flag.status == "?" && flag.requestee %] + ([% flag.requestee.nick FILTER html %]) + [% END %]
    + [% END %] + [% END %] + + [% ELSIF name != "" %] + [% field_descs.${name} FILTER html %]: + [% display_value(name, bug.${name}) FILTER html %] + [% ELSE %] +   +   + [% END %] + [% END %] +[% END %] diff --git a/template/en/default/bug/show.html.tmpl b/template/en/default/bug/show.html.tmpl new file mode 100644 index 0000000..8d8e63a --- /dev/null +++ b/template/en/default/bug/show.html.tmpl @@ -0,0 +1,53 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Vaskin Kissoyan + # Bradley Baetz + # Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] + +[%# This script/template only handles one bug #%] +[% bug = bugs.0 %] + +[% IF !header_done %] + [% PROCESS "bug/show-header.html.tmpl" %] + [% PROCESS global/header.html.tmpl %] +[% END %] + +[% IF nextbug %] +
    +

    + The next [% terms.bug %] in your list is [% terms.bug %] + [% bug.bug_id %]: +

    +
    +[% END %] + +[% PROCESS bug/navigate.html.tmpl %] + +[% PROCESS bug/edit.html.tmpl %] + +
    + +[% PROCESS bug/navigate.html.tmpl bottom_navigator => 1%] + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/show.xml.tmpl b/template/en/default/bug/show.xml.tmpl new file mode 100644 index 0000000..2349602 --- /dev/null +++ b/template/en/default/bug/show.xml.tmpl @@ -0,0 +1,157 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Bradley Baetz + # Colin Ogilvie + # + #%] +[% PROCESS bug/time.html.tmpl %] + + + + + +[% FOREACH bug = bugs %] + [% IF bug.error %] + + [% bug.bug_id FILTER xml %] + + [% ELSE %] + + [% FOREACH field = bug.fields %] + [% IF displayfields.$field %] + [%+ PROCESS bug_field %] + [% END %] + [% END %] + + [%# This is here so automated clients can still use process_bug.cgi %] + [% IF displayfields.token && user.id %] + [% issue_hash_token([bug.id, bug.delta_ts]) FILTER xml %] + [% END %] + + [%# Now handle 'special' fields #%] + [% IF displayfields.group %] + [% FOREACH g = bug.groups %] + [% NEXT UNLESS g.ison %] + [% g.name FILTER xml %] + [% END %] + [% END %] + + [%# Bug Flags %] + [% PROCESS section_flags obj => bug %] + + [% IF displayfields.long_desc %] + [% FOREACH c = bug.comments %] + [% NEXT IF c.is_private && !user.is_insider %] + + [% c.id FILTER xml %] + [% IF c.is_about_attachment %] + [% c.extra_data FILTER xml %] + [% END %] + [% c.author.email FILTER email FILTER xml %] + [% c.creation_ts FILTER time("%Y-%m-%d %T %z") FILTER xml %] + [% IF user.is_timetracker && (c.work_time - 0 != 0) %] + [% PROCESS formattimeunit time_unit = c.work_time FILTER xml %] + [% END %] + [% c.body_full FILTER xml %] + + [% END %] + [% END %] + + [% IF displayfields.attachment %] + [% FOREACH a = bug.attachments %] + [% NEXT IF a.isprivate && !user.is_insider %] + + [% a.id %] + [% a.attached FILTER time("%Y-%m-%d %T %z") FILTER xml %] + [% a.modification_time FILTER time("%Y-%m-%d %T %z") FILTER xml %] + [% a.description FILTER xml %] + [% a.filename FILTER xml %] + [% a.contenttype FILTER xml %] + [% a.datasize FILTER xml %] + [% a.attacher.email FILTER email FILTER xml %] + [%# This is here so automated clients can still use attachment.cgi %] + [% IF displayfields.token && user.id %] + [% issue_hash_token([a.id, a.modification_time]) FILTER xml %] + [% END %] + [% IF displayfields.attachmentdata %] + [% a.data FILTER base64 %] + [% END %] + + [% PROCESS section_flags obj => a %] + + [% END %] + [% END %] + + [% Hook.process("bug_end") %] + + + [% END %] +[% END %] + + + +[% BLOCK bug_field %] + [% FOREACH val = bug.$field %] + [%# We need to handle some fields differently. This should become + # nicer once we have custfields, and a type attribute for the fields + #%] + [% name = '' %] + [% IF field == 'reporter' OR field == 'assigned_to' OR + field == 'qa_contact' %] + [% name = val.name %] + [% val = val.email FILTER email %] + [% ELSIF field == 'cc' %] + [% val = val FILTER email %] + [% ELSIF field == 'creation_ts' OR field == 'delta_ts' %] + [% val = val FILTER time("%Y-%m-%d %T %z") %] + [% END %] + <[% field %][% IF name != '' %] name="[% name FILTER xml %]"[% END -%]> + [%- val FILTER xml %] + [% END %] +[% END %] + +[% BLOCK section_flags %] + [% RETURN UNLESS displayfields.flag %] + + [% FOREACH flag = obj.flags %] + + [% END %] +[% END %] diff --git a/template/en/default/bug/summarize-time.html.tmpl b/template/en/default/bug/summarize-time.html.tmpl new file mode 100644 index 0000000..eb5ba7a --- /dev/null +++ b/template/en/default/bug/summarize-time.html.tmpl @@ -0,0 +1,335 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Christian Reis + # Frédéric Buclin + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = "Time Summary " %] +[% IF do_depends %] + [% title = title _ "for " %] + [% header = "$terms.Bug $ids.0" FILTER bug_link(ids.0) FILTER none %] + [% header = title _ header _ " (and $terms.bugs blocking it)" %] + [% title = title _ "$terms.Bug $ids.0" %] +[% ELSE %] + [% title = title _ "($ids.size $terms.bugs selected)" %] + [% header = title %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + header = header + style_urls = ["skins/standard/summarize-time.css"] + doc_section = "timetracking.html" + %] + +[% INCLUDE query_form %] + +[% IF do_report %] + + [% global.grand_total = 0 global.estimated = 0 global.remaining = 0 %] + + [% FOREACH workdata = part_list %] + [%# parts contains date ranges (from, to). %] + [% part = parts.shift %] +
    +

    + [% IF part.0 or part.1 %] + [% part.0 OR "Up" FILTER html %] to [% part.1 OR "now" FILTER html %] + [% ELSE %] + Full summary (no period specified) + [% END %] +

    +
    + [% IF group_by == "number" %] + [% INCLUDE number_report %] + [% ELSE %] + [% INCLUDE owner_report %] + [% END %] + [% END %] + + [% IF detailed %] +

    + Total of [% global.remaining FILTER format("%.2f") %]h remains from + original estimate of [% global.estimated FILTER format("%.2f") %]h + [% IF global.deadline %] + (deadline [% global.deadline FILTER html %]) + [% END %] +

    + [% END %] + + [% IF monthly %] +

    Total of [% global.grand_total FILTER format("%.2f") %] hours worked

    +
    + [% END %] + + [% IF null.size > 0 %] + [% INCLUDE inactive_report %] +

    Total of [% null.size %] inactive [% terms.bugs %]

    + [% END %] + +[% END %] + +[% PROCESS global/footer.html.tmpl %] + +[%# + # + # Developer reporting + # + #%] + +[% BLOCK owner_report %] + [% global.total = 0 global.bug_count = {} global.owner_count = {} %] + + [% FOREACH owner = workdata.keys.sort %] + [% INCLUDE do_one_owner owner=owner ownerdata=workdata.$owner + detailed=detailed %] + [% END %] + + [% additional = "$global.owner_count.size developers @ + $global.bug_count.size $terms.bugs" %] + [% INCLUDE section_total colspan=3 additional=additional %] +
    +[% END %] + +[% BLOCK do_one_owner %] + [% global.owner_count.$owner = 1 %] + + [% owner FILTER html %] + + [% col = 0 subtotal = 0%] + [% FOREACH bugdata=ownerdata.nsort("bug_id") %] + [% bug_id = bugdata.bug_id %] + [% INCLUDE calc_bug_total id=bug_id %] + [% global.bug_count.$bug_id = 1 %] + [% IF detailed %] + [% INCLUDE bug_header cid=col id=bug_id bugdata=bugdata extra=1 %] + [% col = col + 1 %] + [% END %] + [% subtotal = subtotal + bugdata.total_time %] + [% END %] + + Total: + + [% subtotal FILTER format("%.2f") %] + [% global.total = global.total + subtotal %] + +[% END %] + +[%# + # + # Bug Number reporting + # + #%] + +[% BLOCK number_report %] + [% global.total = 0 global.owner_count = {} global.bug_count = {} %] + + + [% FOREACH bug = workdata.keys.nsort %] + [% INCLUDE do_one_bug id=bug bugdata=workdata.$bug + detailed=detailed %] + [% END %] + + [% additional = "$global.bug_count.size $terms.bugs & + $global.owner_count.size developers" %] + [% INCLUDE section_total additional=additional colspan=2 %] +
    +[% END %] + +[% BLOCK do_one_bug %] + [% subtotal = 0.00 cid = 0 %] + [% INCLUDE calc_bug_total id=id %] + [% global.bug_count.$id = 1 %] + [% INCLUDE bug_header id=id %] + + [% FOREACH owner = bugdata.sort("login_name") %] + [% work_time = owner.total_time %] + [% subtotal = subtotal + work_time %] + [% login_name = owner.login_name %] + [% global.owner_count.$login_name = 1 %] + [% IF detailed %] + [% cid = cid + 1 %] + +   + [% login_name FILTER html %] + + [% work_time FILTER format("%.2f") %] + + [% END %] + [% END %] + +   + + Total: + + + [% subtotal FILTER format("%.2f") %] + + + [% global.total = global.total + subtotal %] +[% END %] + +[% BLOCK bug_header %] + + + [% "$terms.Bug $id" FILTER bug_link(id) FILTER none %] + + [% display_value("bug_status", bugs.$id.bug_status) FILTER html %] + [% bugs.$id.short_desc FILTER html %] + [% IF extra %] + [% bugdata.total_time FILTER html %] + [% END %] + + [% IF detailed %] + +   + + + + + + + +
    + Estimated: [% bugs.$id.estimated_time FILTER format("%.2f") %]h + + Remaining: [% bugs.$id.remaining_time FILTER format("%.2f") %]h + + Deadline: [% bugs.$id.deadline || "Not set" %] +
    + + [% IF extra %] +   + [% END %] + + [% END %] +[% END %] + +[% BLOCK calc_bug_total %] + [% IF !global.bug_count.$id %] + [% global.estimated = global.estimated + bugs.$id.estimated_time %] + [% global.remaining = global.remaining + bugs.$id.remaining_time %] + [% IF !global.deadline || bugs.$id.deadline && + global.deadline.replace("-", "") < bugs.$id.deadline.replace("-", "") %] + [% SET global.deadline = bugs.$id.deadline %] + [% END %] + [% END %] +[% END %] + +[% BLOCK inactive_report %] +

    Inactive [% terms.bugs %]

    + + [% cid = 0 %] + [% FOREACH bug_id = null.nsort %] + [% INCLUDE bug_header id=bug_id cid=cid %] + [% cid = cid + 1 %] + [% END %] +
    +[% END %] + + +[% BLOCK section_total %] + [% IF global.total > 0 %] + + Totals + [% additional FILTER html %] + [% global.total FILTER format("%.2f") %] + + [% ELSE %] + + No time allocated during the specified period. + + [% END %] + [% global.grand_total = global.grand_total + global.total %] +[% END %] + +[%# + # + # The query form + # + #%] + +[% BLOCK query_form %] +
    +
    + + + + +[% IF warn_swap_dates %] +

    The + end date specified occurs before the start date, which doesn't + make sense; the dates below have therefore been swapped.

    +[% END %] + + + + + + + + +
    + : + + +   + and : + + + +
      + (Dates are optional, and in YYYY-MM-DD format) +
    + Group by: + + + + + : +
      + + + [%# XXX: allow splitting by other intervals %] +   + + +   + + +
    + +
    + +
    +[% END %] diff --git a/template/en/default/bug/time.html.tmpl b/template/en/default/bug/time.html.tmpl new file mode 100644 index 0000000..e070e7d --- /dev/null +++ b/template/en/default/bug/time.html.tmpl @@ -0,0 +1,47 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Jeff Hedlund + # + #%] + +[% BLOCK formattimeunit %] + [%# INTERFACE: + # time_unit: the number converting, converts to 2 decimal places + # unless the last character is a 0, then it truncates to + # 1 decimal place + #%] + [% time_unit = time_unit FILTER format('%.2f') %] + [% IF time_unit.match('0\Z') %] + [% time_unit FILTER format('%.1f') %] + [% ELSE %] + [% time_unit FILTER format('%.2f') %] + [% END %] +[% END %] + +[% BLOCK calculatepercentage %] + [%# INTERFACE: + # act: actual time + # rem: remaining time + # %] + [% IF (act + rem) > 0 %] + [% (act / (act + rem)) * 100 + FILTER format("%d") %] + [% ELSE %] + 0 + [% END %] +[% END %] diff --git a/template/en/default/bug/votes/delete-all.html.tmpl b/template/en/default/bug/votes/delete-all.html.tmpl new file mode 100644 index 0000000..41b7512 --- /dev/null +++ b/template/en/default/bug/votes/delete-all.html.tmpl @@ -0,0 +1,51 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # This template has no interface. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Remove your votes?" + %] + +

    + You are about to remove all of your [% terms.bug %] votes. Are you sure you wish to + remove your vote from every [% terms.bug %] you've voted on? +

    + +
    + +

    + + Yes, delete all my votes +

    +

    + + No, go back and review my votes +

    +

    + +

    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/votes/list-for-bug.html.tmpl b/template/en/default/bug/votes/list-for-bug.html.tmpl new file mode 100644 index 0000000..a599dc0 --- /dev/null +++ b/template/en/default/bug/votes/list-for-bug.html.tmpl @@ -0,0 +1,60 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # bug_id: integer. ID of the bug we are listing the votes for. + # users: list of hashes. May be empty. Each hash has two members: + # login_name: string. The login name of the user whose vote is attached + # vote_count: integer. The number of times that user has votes for this bug. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Show Votes" + subheader = "$terms.Bug $bug_id" + %] + +[% total = 0 %] + + + + + + + [% FOREACH voter = users %] + [% total = total + voter.vote_count %] + + + + + [% END %] +
    WhoNumber of votes
    + + [% voter.login_name FILTER email FILTER html %] + + + [% voter.vote_count %] +
    + +

    Total votes: [% total %]

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/votes/list-for-user.html.tmpl b/template/en/default/bug/votes/list-for-user.html.tmpl new file mode 100644 index 0000000..2f97616 --- /dev/null +++ b/template/en/default/bug/votes/list-for-user.html.tmpl @@ -0,0 +1,185 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # voting_user: hash containing a 'login' field + # + # products: list of hashes containing details of products relating to + # voting: + # name: name of product + # bugs: list of bugs the user has voted for + # bug_ids: list of bug ids the user has voted for + # onevoteonly: one or more votes allowed per bug? + # total: users current vote count for the product + # maxvotes: max votes allowed for a user in this product + # maxperbug: max votes per bug allowed for a user in this product + # + # bug_id: number; if the user is voting for a bug, this is the bug id + # + # canedit: boolean; Should the votes be presented in a form, or readonly? + # + # all_bug_ids: List of all bug ids the user has voted for, across all products + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% IF !header_done %] + [% subheader = voting_user.login FILTER html %] + [% IF canedit %] + [% title = "Change Votes" %] + [% IF bug_id %] + [%# We .select and .focus the input so it works for textbox and + checkbox %] + [% onload = "document.forms['voting_form'].bug_" _ bug_id _ + ".select();document.forms['voting_form'].bug_" _ bug_id _ + ".focus()" %] + [% END %] + [% ELSE %] + [% title = "Show Votes" %] + [% END %] + [% PROCESS global/header.html.tmpl + style_urls = [ "skins/standard/voting.css" ] + %] +[% ELSE %] +
    +[% END %] + +[% IF votes_recorded %] +

    + + The changes to your votes have been saved. + +

    +[% ELSE %] +
    +[% END %] + +[% IF products.size %] +
    + + + + + + + + + + [% onevoteproduct = 0 %] + [% multivoteproduct = 0 %] + [% FOREACH product = products %] + [% IF product.onevoteonly %] + [% onevoteproduct = 1 %] + [% ELSE %] + [% multivoteproduct = 1 %] + [% END %] + + + + + + + [% FOREACH bug = product.bugs %] + + + + + + + [% END %] + + + + + + [% END %] +
    Votes[% terms.Bug %] #Summary
    [% product.name FILTER html %]([% terms.bug %] list) + + [% IF product.maxperbug < product.maxvotes AND + product.maxperbug > 1 %] + + (Note: only [% product.maxperbug %] vote + [% "s" IF product.maxperbug != 1 %] allowed per [% terms.bug %] in + this product.) + + [% END %] +
    [% IF bug.id == bug_id && canedit %]Enter New Vote here → + [%- END %] + [% IF canedit %] + [% IF product.onevoteonly %] + + [% ELSE %] + + [% END %] + [% ELSE %] + [% bug.count %] + [% END %] + + [% bug.id FILTER bug_link(bug) FILTER none %] + + [% bug.summary FILTER html %] + (Show Votes) +
    [% product.total %] vote + [% "s" IF product.total != 1 %] used out of [% product.maxvotes %] + allowed. +
    +
    +
    + + [% IF canedit %] + or + view all + as [% terms.bug %] list +
    +
    + To change your votes, + [% IF multivoteproduct %] + type in new numbers (using zero to mean no votes) + [% " or " IF onevoteproduct %] + [% END %] + [% IF onevoteproduct %] + change the checkbox + [% END %] + and then click Change My Votes. + [% ELSE %] + View all + as [% terms.bug %] list + [% END %] +
    +[% ELSE %] +

    + [% IF canedit %] + You are + [% ELSE %] + This user is + [% END %] + currently not voting on any [% terms.bugs %]. +

    +[% END %] + +

    + Help with voting. +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/config.js.tmpl b/template/en/default/config.js.tmpl new file mode 100644 index 0000000..0d63583 --- /dev/null +++ b/template/en/default/config.js.tmpl @@ -0,0 +1,142 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] +// +// This file contains installation specific values for third-party clients. +// +// Note: this interface is experimental and under development. +// We may and probably will make breaking changes to it in the future. + +// the global bugzilla url +var installation = { + base_url : '[% urlbase FILTER js %]', + install_version : '[% constants.BUGZILLA_VERSION FILTER js %]', + maintainer : '[% Param('maintainer') FILTER js %]' +}; + + +// Status and Resolution +// ===================== +var status = [ [% FOREACH x = status %]'[% x FILTER js %]', [% END %] ]; +var status_open = [ [% FOREACH x = open_status %]'[% x FILTER js %]', [% END %] ]; +var status_closed = [ [% FOREACH x = closed_status %]'[% x FILTER js %]', [% END %] ]; +var resolution = [ [% FOREACH x = resolution %]'[% x FILTER js %]', [% END %] ]; + + +// Keywords +// ======== + +var keyword = [ [% FOREACH x = keyword %]'[% x FILTER js %]', [% END %] ]; + + +// Platforms +// ========= + +var platform = [ [% FOREACH x = platform %]'[% x FILTER js %]', [% END %] ]; + + +// Severities +// ========== + +var severity = [ [% FOREACH x = severity %]'[% x FILTER js %]', [% END %] ]; + + +// Custom Fields +// ============= + +[% FOREACH cf = custom_fields %] +var [% cf.name FILTER js %] = [ [% FOREACH x = cf.legal_values %]'[% x.name FILTER js %]', [% END %] ]; +[% END %] + + +// Products and Components +// ======================= +// +// It is not necessary to list all products and components here. +// Instead, you can define a "blacklist" for some commonly used words +// or word fragments that occur in a product or component name +// but should _not_ trigger product/component search. + + +// A list of all products and their components, versions, and target milestones: + +var component = new Object(); +var version = new Object(); +var target_milestone = new Object(); + +[% FOREACH p = products %] + component['[% p.name FILTER js %]'] = [ [% FOREACH x = p.components %]'[% x.name FILTER js %]', [% END %] ]; + version['[% p.name FILTER js %]'] = [ [% FOREACH x = p.versions %]'[% x.name FILTER js %]', [% END %] ]; + target_milestone['[% p.name FILTER js %]'] = [ [% FOREACH x = p.milestones %]'[% x.name FILTER js %]', [% END %] ]; +[% END %] + +// Product and Component Exceptions +// ================================ +// +// A blacklist for some commonly used words or word fragments +// that occur in a product or component name but should *not* +// trigger product/component search in QuickSearch. + +var product_exceptions = new Array( + // Example: + //"row" // [Browser] + // // ^^^ + //,"new" // [MailNews] + // // ^^^ +); + +var component_exceptions = new Array( + // Example: + //"hang" // [mozilla.org] Bugzilla: Component/Keyword Changes + // // ^^^^ +); + +// Queryable Fields +// ================ +[% PROCESS "global/field-descs.none.tmpl" %] +var field = [ +[% FOREACH x = field %] + { name: '[% x.name FILTER js %]', + description: '[% (field_descs.${x.name} OR x.description) FILTER js %]', + [%-# These values are meaningful for custom fields only. %] + [% IF x.custom %] + type: '[% x.type FILTER js %]', + type_desc: '[% field_types.${x.type} FILTER js %]', + enter_bug: '[% x.enter_bug FILTER js %]', + [% END %] + }, +[% END %] +]; + +// Deprecated Variables +// ==================== +// +// Other names for various variables. These are deprecated +// and could go away at any time. Use them at your own risk! + +var bugzilla = installation.base_url; +var statuses = status; +var statuses_resolved = status_closed; +var resolutions = resolution; +var keywords = keyword; +var platforms = platform; +var severities = severity; +var cpts = component; +var vers = version; +var tms = target_milestone; diff --git a/template/en/default/config.rdf.tmpl b/template/en/default/config.rdf.tmpl new file mode 100644 index 0000000..ec80f76 --- /dev/null +++ b/template/en/default/config.rdf.tmpl @@ -0,0 +1,262 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + #%] + + + + + + + + [% constants.BUGZILLA_VERSION FILTER html %] + [% Param('maintainer') FILTER html %] + + + + [% FOREACH item = status %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = open_status %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = closed_status %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = resolution %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = keyword %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = platform %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = op_sys %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = priority %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = severity %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + +[% FOREACH cf = custom_fields %] + + + [% FOREACH item = cf.legal_values %] +
  • [% item.name FILTER html %]
  • + [% END %] +
    +
    + +[% END %] + + + + [% FOREACH product = products %] +
  • + + [% product.name FILTER html %] + + + + [% FOREACH component = product.components %] +
  • + [% END %] + + + + + + [% FOREACH version = product.versions %] +
  • + [% END %] + + + + [% IF Param('usetargetmilestone') %] + + + [% FOREACH milestone = product.milestones %] +
  • + [% END %] + + + [% END %] + + +
  • + [% END %] +
    +
    + + [% all_visible_flag_types = {} %] + + + [% FOREACH product = products %] + [% FOREACH component = product.components %] +
  • + + [% component.name FILTER html %] + [% IF show_flags %] + + + [% flag_types = component.flag_types.bug.merge(component.flag_types.attachment) %] + [% FOREACH flag_type = flag_types %] + [% NEXT UNLESS flag_type.is_active %] + [% all_visible_flag_types.${flag_type.id} = flag_type %] +
  • + [% END %] + + + [% END %] + +
  • + [% END %] + [% END %] +
    +
    + + + + [% FOREACH product = products %] + [% FOREACH version = product.versions %] +
  • + + [% version.name FILTER html %] + +
  • + [% END %] + [% END %] +
    +
    + + [% IF Param('usetargetmilestone') %] + + + [% FOREACH product = products %] + [% FOREACH milestone = product.milestones %] +
  • + + [% milestone.name FILTER html %] + +
  • + [% END %] + [% END %] +
    +
    + [% END %] + + [% IF show_flags %] + + + [% FOREACH flag_type = all_visible_flag_types.values.sort('name') %] +
  • + + [% flag_type.id FILTER html %] + [% flag_type.name FILTER html %] + [% flag_type.description FILTER html %] + [% flag_type.target_type FILTER html %] + [% flag_type.is_requestable FILTER html %] + [% flag_type.is_requesteeble FILTER html %] + [% flag_type.is_multiplicable FILTER html %] + [% IF user.in_group("editcomponents") %] + [% flag_type.grant_group.name FILTER html %] + [% flag_type.request_group.name FILTER html %] + [% END %] + +
  • + [% END %] +
    +
    + [% END %] + + + + [% PROCESS "global/field-descs.none.tmpl" %] + [% FOREACH item = field %] +
  • + + [% item.name FILTER html %] + [% (field_descs.${item.name} OR item.description) FILTER html %] + [%-# These values are meaningful for custom fields only. %] + [% IF item.custom %] + [% item.type FILTER html %] + [% field_types.${item.type} FILTER html %] + [% item.enter_bug FILTER html %] + [% END %] + +
  • + [% END %] +
    +
    +
    + +
    diff --git a/template/en/default/email/lockout.txt.tmpl b/template/en/default/email/lockout.txt.tmpl new file mode 100644 index 0000000..ac65257 --- /dev/null +++ b/template/en/default/email/lockout.txt.tmpl @@ -0,0 +1,39 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is the Mozilla Corporation. + # Portions created by the Initial Developer are Copyright (C) 2008 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% Param('maintainer') %] +Subject: [[% terms.Bugzilla %]] Account Lock-Out: [% locked_user.login %] ([% attempts.0.ip_addr %]) +X-Bugzilla-Type: admin + +The IP address [% attempts.0.ip_addr %] failed too many login attempts ( +[%- constants.MAX_LOGIN_ATTEMPTS +%]) for +the account [% locked_user.login %]. + +The login attempts occurred at these times: + +[% FOREACH login = attempts %] + [%+ login.login_time FILTER time %] +[% END %] + +This IP will be able to log in again using this account at +[%+ unlock_at FILTER time %]. diff --git a/template/en/default/email/newchangedmail.txt.tmpl b/template/en/default/email/newchangedmail.txt.tmpl new file mode 100644 index 0000000..65e0287 --- /dev/null +++ b/template/en/default/email/newchangedmail.txt.tmpl @@ -0,0 +1,88 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): André Batosti + #%] + +[% PROCESS "global/variables.none.tmpl" %] +From: [% Param('mailfrom') %] +To: [% to_user.email %] +Subject: [[% terms.Bug %] [%+ bugid %]] [% 'New: ' IF isnew %][%+ summary %] +X-Bugzilla-Reason: [% reasonsheader %] +X-Bugzilla-Type: [% isnew ? 'new' : 'changed' %] +X-Bugzilla-Watch-Reason: [% reasonswatchheader %] +[% IF Param('useclassification') %] +X-Bugzilla-Classification: [% classification %] +[% END %] +X-Bugzilla-Product: [% product %] +X-Bugzilla-Component: [% comp %] +X-Bugzilla-Keywords: [% keywords %] +X-Bugzilla-Severity: [% severity %] +X-Bugzilla-Who: [% changer %] +X-Bugzilla-Status: [% status %] +X-Bugzilla-Priority: [% priority %] +X-Bugzilla-Assigned-To: [% assignedto %] +X-Bugzilla-Target-Milestone: [% targetmilestone %] +X-Bugzilla-Changed-Fields: [% changedfields %] +[%+ threadingmarker %] + +[%+ urlbase %]show_bug.cgi?id=[% bugid %] +[%- IF diffs %] + +[%+ diffs %] +[% END -%] +[% FOREACH comment = new_comments %] + +[%- IF comment.count %] +--- Comment #[% comment.count %] from [% comment.author.identity %] [%+ comment.creation_ts FILTER time(undef, to_user.timezone) %] --- +[% END %] +[%+ comment.body_full({ is_bugmail => 1, wrap => 1 }) %] +[% END %] + +-- [%# Protect the trailing space of the signature marker %] +Configure [% terms.bug %]mail: [% urlbase %]userprefs.cgi?tab=email +------- You are receiving this mail because: ------- +[% FOREACH relationship = reasons %] + [% SWITCH relationship %] + [% CASE constants.REL_ASSIGNEE %] +You are the assignee for the [% terms.bug %]. + [% CASE constants.REL_REPORTER %] +You reported the [% terms.bug %]. + [% CASE constants.REL_QA %] +You are the QA contact for the [% terms.bug %]. + [% CASE constants.REL_CC %] +You are on the CC list for the [% terms.bug %]. + [% CASE constants.REL_VOTER %] +You are a voter for the [% terms.bug %]. + [% CASE constants.REL_GLOBAL_WATCHER %] +You are watching all [% terms.bug %] changes. + [% END %] +[% END %] +[% FOREACH relationship = reasons_watch %] + [% SWITCH relationship %] + [% CASE constants.REL_ASSIGNEE %] +You are watching the assignee of the [% terms.bug %]. + [% CASE constants.REL_REPORTER %] +You are watching the reporter. + [% CASE constants.REL_QA %] +You are watching the QA contact of the [% terms.bug %]. + [% CASE constants.REL_CC %] +You are watching someone on the CC list of the [% terms.bug %]. + [% CASE constants.REL_VOTER %] +You are watching a voter for the [% terms.bug %]. + [% END %] +[% END %] diff --git a/template/en/default/email/sanitycheck.txt.tmpl b/template/en/default/email/sanitycheck.txt.tmpl new file mode 100644 index 0000000..8826d4e --- /dev/null +++ b/template/en/default/email/sanitycheck.txt.tmpl @@ -0,0 +1,36 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Frédéric Buclin + #%] + +[% PROCESS "global/variables.none.tmpl" %] +From: [% Param('mailfrom') %] +To: [% addressee %] +Subject: [[% terms.Bugzilla %]] Sanity Check Results +X-Bugzilla-Type: sanitycheck + +[%+ urlbase %]sanitycheck.cgi + +Below can you read the sanity check results. +[% IF error_found %] +Some errors have been found. +[% ELSE %] +No errors have been found. +[% END %] + +[% output %] diff --git a/template/en/default/email/sudo.txt.tmpl b/template/en/default/email/sudo.txt.tmpl new file mode 100644 index 0000000..74fbc49 --- /dev/null +++ b/template/en/default/email/sudo.txt.tmpl @@ -0,0 +1,43 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 2005 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): A. Karl Kornel + #%] + +[% PROCESS global/variables.none.tmpl %] + +Content-Type: text/plain +From: [% Param('mailfrom') %] +To: [% user.email %] +Subject: [[% terms.Bugzilla %]] Your account [% user.login -%] + is being impersonated +X-Bugzilla-Type: admin + + [%+ sudoer.identity %] has used the 'sudo' feature to access +[%+ terms.Bugzilla %] using your account. + +[% IF reason %] + [%+ sudoer.identity %] provided the following reason for doing this: + +[% reason FILTER wrap_comment %] +[% ELSE %] + [%+ sudoer.identity %] did not provide a reason for doing this. +[% END %] + + If you feel that this action was inappropriate, please contact +[%+ Param("maintainer") %]. For more information on this feature, +visit <[% urlbase %]page.cgi?id=sudo.html>. diff --git a/template/en/default/email/votes-removed.txt.tmpl b/template/en/default/email/votes-removed.txt.tmpl new file mode 100644 index 0000000..bfb37c9 --- /dev/null +++ b/template/en/default/email/votes-removed.txt.tmpl @@ -0,0 +1,55 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Emmanuel Seyman + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% Param('mailfrom') %] +To: [% to %] +Subject: [% terms.Bug %] [%+ bugid %] Some or all of your votes have been removed. +X-Bugzilla-Type: voteremoved + +Some or all of your votes have been removed from [% terms.bug %] [%+ bugid %]. + +You had [% votesold FILTER html %] [%+ IF votesold == 1 %]vote[% ELSE %]votes[% END +%] on this [% terms.bug %], but [% votesremoved FILTER html %] have been removed. + +[% IF votesnew %] +You still have [% votesnew FILTER html %] [%+ IF votesnew == 1 %]vote[% ELSE %]votes[% END %] on this [% terms.bug %]. +[% ELSE %] +You have no more votes remaining on this [% terms.bug %]. +[% END %] + +Reason: +[% IF reason == "votes_bug_moved" %] + This [% terms.bug %] has been moved to a different product. + +[% ELSIF reason == "votes_too_many_per_bug" %] + The rules for voting on this product has changed; + you had too many votes for a single [% terms.bug %]. + +[% ELSIF reason == "votes_too_many_per_user" %] + The rules for voting on this product has changed; you had + too many total votes, so all votes have been removed. +[% END %] + + + +[% urlbase %]show_bug.cgi?id=[% bugid %] + diff --git a/template/en/default/email/whine.txt.tmpl b/template/en/default/email/whine.txt.tmpl new file mode 100644 index 0000000..e90480e --- /dev/null +++ b/template/en/default/email/whine.txt.tmpl @@ -0,0 +1,65 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Emmanuel Seyman + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] +From: [% Param("mailfrom") %] +To: [% email %][% Param("emailsuffix") %] +Subject: Your [% terms.Bugzilla %] [%+ terms.bug %] list needs attention. +X-Bugzilla-Type: whine + +[This e-mail has been automatically generated.] + +You have one or more [% terms.bugs %] assigned to you in the [% terms.Bugzilla %] +[% terms.bug %] tracking system ([% urlbase %]) that require +attention. + +All of these [% terms.bugs %] are in the [% display_value("bug_status", "NEW") %] or +[%= display_value("bug_status", "REOPENED") %] state, and have not been +touched in [% Param("whinedays") %] days or more. +You need to take a look at them, and decide on an initial action. + +Generally, this means one of three things: + +(1) You decide this [% terms.bug %] is really quick to deal with (like, it's [% display_value("resolution", "INVALID") %]), + and so you get rid of it immediately. +(2) You decide the [% terms.bug %] doesn't belong to you, and you reassign it to + someone else. (Hint: if you don't know who to reassign it to, make + sure that the Component field seems reasonable, and then use the + "Reset Assignee to default" option.) +(3) You decide the [% terms.bug %] belongs to you, but you can't solve it this moment. + Accept the [% terms.bug %] by setting the status to [% display_value("bug_status", "ASSIGNED") %]. + +To get a list of all [% display_value("bug_status", "NEW") %]/[% display_value("bug_status", "REOPENED") %] [%+ terms.bugs %], you can use this URL (bookmark +it if you like!): + + [% urlbase %]buglist.cgi?bug_status=NEW&bug_status=REOPENED&assigned_to=[% email %] + +Or, you can use the general query page, at +[%+ urlbase %]query.cgi + +Appended below are the individual URLs to get to all of your [% display_value("bug_status", "NEW") %] [%+ terms.bugs %] +that haven't been touched for [% Param("whinedays") %] days or more. + +You will get this message once a day until you've dealt with these [% terms.bugs %]! + +[% FOREACH bug = bugs %] + [%+ bug.summary %] + -> [% urlbase %]show_bug.cgi?id=[% bug.id %] +[% END %] diff --git a/template/en/default/extensions/config.pm.tmpl b/template/en/default/extensions/config.pm.tmpl new file mode 100644 index 0000000..6997ec1 --- /dev/null +++ b/template/en/default/extensions/config.pm.tmpl @@ -0,0 +1,41 @@ +[%# -*- mode: perl -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # name: string; The name of the extension. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS extensions/license.txt.tmpl %] + +package B[% %]ugzilla::Extension::[% name %]; +use strict; + +use constant NAME => '[% name %]'; + +use constant REQUIRED_MODULES => [ +]; + +use constant OPTIONAL_MODULES => [ +]; + +__PACKAGE__->NAME; diff --git a/template/en/default/extensions/extension.pm.tmpl b/template/en/default/extensions/extension.pm.tmpl new file mode 100644 index 0000000..2492271 --- /dev/null +++ b/template/en/default/extensions/extension.pm.tmpl @@ -0,0 +1,46 @@ +[%# -*- mode: perl -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # name: string; The name of the extension. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS extensions/license.txt.tmpl %] + +package B[% %]ugzilla::Extension::[% name %]; +use strict; +use base qw(B[% %]ugzilla::Extension); + +# This code for this is in [% path %]/lib/Util.pm +use B[% %]ugzilla::Extension::[% name %]::Util; + +our $VERSION = '0.01'; + +# See the documentation of B[% %]ugzilla::Hook ("perldoc B[% %]ugzilla::Hook" +# in the bugzilla directory) for a list of all available hooks. +sub install_update_db { + my ($self, $args) = @_; + +} + +__PACKAGE__->NAME; diff --git a/template/en/default/extensions/hook-readme.txt.tmpl b/template/en/default/extensions/hook-readme.txt.tmpl new file mode 100644 index 0000000..efceec1 --- /dev/null +++ b/template/en/default/extensions/hook-readme.txt.tmpl @@ -0,0 +1,27 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] + +Template hooks go in this directory. Template hooks are called in normal +[%+ terms.Bugzilla %] templates like [[% '%' %] Hook.process('some-hook') %]. +More information about them can be found in the documentation of +B[% %]ugzilla::Extension. (Do "perldoc B[% %]ugzilla::Extension" from the main +[%+ terms.Bugzilla %] directory to see that documentation.) diff --git a/template/en/default/extensions/license.txt.tmpl b/template/en/default/extensions/license.txt.tmpl new file mode 100644 index 0000000..964e075 --- /dev/null +++ b/template/en/default/extensions/license.txt.tmpl @@ -0,0 +1,47 @@ +[%# -*- mode: perl -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # name: string; The name of the extension. + #%] + +[% PROCESS global/variables.none.tmpl %] + +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the [% name %] [%+ terms.Bugzilla %] Extension. +# +# The Initial Developer of the Original Code is YOUR NAME +# Portions created by the Initial Developer are Copyright (C) [% year %] the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): +# YOUR NAME diff --git a/template/en/default/extensions/name-readme.txt.tmpl b/template/en/default/extensions/name-readme.txt.tmpl new file mode 100644 index 0000000..6d25c83 --- /dev/null +++ b/template/en/default/extensions/name-readme.txt.tmpl @@ -0,0 +1,38 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] + +Normal templates go in this directory. You can load them in your +code like this: + +use B[% %]ugzilla::Error; +my $template = B[% %]ugzilla->template; +$template->process('[% name FILTER lower %]/some-template.html.tmpl') + or ThrowTemplateError($template->error()); + +That would be how to load a file called some-template.html.tmpl that +was in this directory. + +Note that you have to be careful that the full path of your template +never conflicts with a template that exists in [% terms.Bugzilla %] or in +another extension, or your template might override that template. That's why +we created this directory called '[% name FILTER lower %]' for you, so you +can put your templates in here to help avoid conflicts. diff --git a/template/en/default/extensions/util.pm.tmpl b/template/en/default/extensions/util.pm.tmpl new file mode 100644 index 0000000..32076a6 --- /dev/null +++ b/template/en/default/extensions/util.pm.tmpl @@ -0,0 +1,42 @@ +[%# -*- mode: perl -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # name: string; The name of the extension. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS extensions/license.txt.tmpl %] + +package B[% %]ugzilla::Extension::[% name %]::Util; +use strict; +use base qw(Exporter); +our @EXPORT = qw( + +); + +# This file can be loaded by your extension via +# "use B[% %]ugzilla::Extension::[% name %]::Util". You can put functions +# used by your extension in here. (Make sure you also list them in +# @EXPORT.) + +1; diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl new file mode 100644 index 0000000..2c096df --- /dev/null +++ b/template/en/default/filterexceptions.pl @@ -0,0 +1,531 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code are the Bugzilla tests. +# +# The Initial Developer of the Original Code is Jacob Steenhagen. +# Portions created by Jacob Steenhagen are +# Copyright (C) 2001 Jacob Steenhagen. All +# Rights Reserved. +# +# Contributor(s): Gervase Markham + +# Important! The following classes of directives are excluded in the test, +# and so do not need to be added here. Doing so will cause warnings. +# See 008filter.t for more details. +# +# Comments - [%#... +# Directives - [% IF|ELSE|UNLESS|FOREACH... +# Assignments - [% foo = ... +# Simple literals - [% " selected" ... +# Values always used for numbers - [% (i|j|k|n|count) %] +# Params - [% Param(... +# Safe functions - [% (time2str)... +# Safe vmethods - [% foo.size %] [% foo.length %] +# [% foo.push() %] +# TT loop variables - [% loop.count %] +# Already-filtered stuff - [% wibble FILTER html %] +# where the filter is one of html|csv|js|url_quote|quoteUrls|time|uri|xml|none + +%::safe = ( + +'whine/schedule.html.tmpl' => [ + 'event.key', + 'query.id', + 'query.sort', + 'schedule.id', + 'option.0', + 'option.1', +], + +'whine/mail.html.tmpl' => [ + 'bug.bug_id', +], + +'flag/list.html.tmpl' => [ + 'flag.id', + 'flag.status', + 'type.id', +], + +'search/boolean-charts.html.tmpl' => [ + '"field${chartnum}-${rownum}-${colnum}"', + '"value${chartnum}-${rownum}-${colnum}"', + 'field.name', + '"${chartnum}-${rownum}-${newor}"', + '"${chartnum}-${newand}-0"', + 'newchart', + 'jsmagic', +], + +'search/form.html.tmpl' => [ + 'qv.name', + 'qv.description', + 'field.name', + 'field.description', + 'field.accesskey', + 'sel.name', +], + +'search/search-specific.html.tmpl' => [ + 'status.name', +], + +'search/tabs.html.tmpl' => [ + 'content', +], + +'request/queue.html.tmpl' => [ + 'column_headers.$group_field', + 'column_headers.$column', + 'request.status', + 'request.bug_id', + 'request.attach_id', +], + +'reports/keywords.html.tmpl' => [ + 'keyword.bug_count', +], + +'reports/report-table.csv.tmpl' => [ + 'data.$tbl.$col.$row', + 'colsepchar', +], + +'reports/report-table.html.tmpl' => [ + '"&$tbl_vals" IF tbl_vals', + '"&$col_vals" IF col_vals', + '"&$row_vals" IF row_vals', + 'classes.$row_idx.$col_idx', + 'urlbase', + 'data.$tbl.$col.$row', + 'row_total', + 'col_totals.$col', + 'grand_total', +], + +'reports/report.html.tmpl' => [ + 'width', + 'height', + 'imageurl', + 'formaturl', + 'other_format.name', + 'sizeurl', + 'switchbase', + 'format', + 'cumulate', +], + +'reports/chart.html.tmpl' => [ + 'width', + 'height', + 'imageurl', + 'sizeurl', + 'height + 100', + 'height - 100', + 'width + 100', + 'width - 100', +], + +'reports/series-common.html.tmpl' => [ + 'sel.name', + '"onchange=\"$sel.onchange\"" IF sel.onchange', +], + +'reports/chart.csv.tmpl' => [ + 'data.$j.$i', + 'colsepchar', +], + +'reports/create-chart.html.tmpl' => [ + 'series.series_id', + 'newidx', +], + +'reports/edit-series.html.tmpl' => [ + 'default.series_id', +], + +'list/edit-multiple.html.tmpl' => [ + 'group.id', + 'menuname', +], + +'list/list.rdf.tmpl' => [ + 'template_version', + 'bug.bug_id', + 'column', +], + +'list/table.html.tmpl' => [ + 'tableheader', + 'bug.bug_id', + 'abbrev.$id.title || field_descs.$id || column.title', +], + +'list/list.csv.tmpl' => [ + 'bug.bug_id', + 'colsepchar', +], + +'list/list.js.tmpl' => [ + 'bug.bug_id', +], + +'global/choose-product.html.tmpl' => [ + 'target', +], + +# You are not permitted to add any values here. Everything in this file should +# be filtered unless there's an extremely good reason why not, in which case, +# use the "none" dummy filter. +'global/code-error.html.tmpl' => [ +], + +'global/header.html.tmpl' => [ + 'javascript', + 'style', + 'onload', + 'title', + '" – $header" IF header', + 'subheader', + 'header_addl_info', + 'message', +], + +'global/messages.html.tmpl' => [ + 'message_tag', + 'series.frequency * 2', +], + +'global/per-bug-queries.html.tmpl' => [ + '" value=\"$bugids\"" IF bugids', +], + +'global/select-menu.html.tmpl' => [ + 'options', + 'size', +], + +'global/tabs.html.tmpl' => [ + 'content', +], + +# You are not permitted to add any values here. Everything in this file should +# be filtered unless there's an extremely good reason why not, in which case, +# use the "none" dummy filter. +'global/user-error.html.tmpl' => [ +], + +'global/confirm-user-match.html.tmpl' => [ + 'script', + 'fields.${field_name}.flag_type.name', +], + +'global/site-navigation.html.tmpl' => [ + 'bug.bug_id', + 'bug.votes', +], + +'bug/comments.html.tmpl' => [ + 'comment.id', + 'bug.bug_id', +], + +'bug/dependency-graph.html.tmpl' => [ + 'image_map', # We need to continue to make sure this is safe in the CGI + 'image_url', + 'map_url', + 'bug_id', +], + +'bug/dependency-tree.html.tmpl' => [ + 'bugid', + 'maxdepth', + 'hide_resolved', + 'ids.join(",")', + 'maxdepth + 1', + 'maxdepth > 0 && maxdepth <= realdepth ? maxdepth : ""', + 'maxdepth == 1 ? 1 + : ( maxdepth ? maxdepth - 1 : realdepth - 1 )', +], + +'bug/edit.html.tmpl' => [ + 'bug.deadline', + 'bug.remaining_time', + 'bug.delta_ts', + 'bug.bug_id', + 'bug.votes', + 'group.bit', + 'dep.title', + 'dep.fieldname', + 'bug.${dep.fieldname}.join(\', \')', + 'selname', + '" accesskey=\"$accesskey\"" IF accesskey', + 'inputname', + '" colspan=\"$colspan\"" IF colspan', + '" size=\"$size\"" IF size', + '" maxlength=\"$maxlength\"" IF maxlength', + '" spellcheck=\"$spellcheck\"" IF spellcheck', +], + +'bug/show-multiple.html.tmpl' => [ + 'attachment.id', + 'flag.status', +], + +'bug/show.html.tmpl' => [ + 'bug.bug_id', +], + +'bug/show.xml.tmpl' => [ + 'constants.BUGZILLA_VERSION', + 'a.id', + 'field', +], + +'bug/summarize-time.html.tmpl' => [ + 'global.grand_total FILTER format("%.2f")', + 'subtotal FILTER format("%.2f")', + 'work_time FILTER format("%.2f")', + 'global.total FILTER format("%.2f")', + 'global.remaining FILTER format("%.2f")', + 'global.estimated FILTER format("%.2f")', + 'bugs.$id.remaining_time FILTER format("%.2f")', + 'bugs.$id.estimated_time FILTER format("%.2f")', +], + + +'bug/time.html.tmpl' => [ + 'time_unit FILTER format(\'%.1f\')', + 'time_unit FILTER format(\'%.2f\')', + '(act / (act + rem)) * 100 + FILTER format("%d")', +], + +'bug/votes/list-for-bug.html.tmpl' => [ + 'voter.vote_count', + 'total', +], + +'bug/votes/list-for-user.html.tmpl' => [ + 'product.maxperbug', + 'bug.id', + 'bug.count', + 'product.total', + 'product.maxvotes', +], + +'bug/process/results.html.tmpl' => [ + 'title.$type', + '"$terms.Bug $id" FILTER bug_link(id)', + '"$terms.bug $id" FILTER bug_link(id)', +], + +'bug/create/create.html.tmpl' => [ + 'g.bit', + 'sel.name', + 'sel.description', + 'cloned_bug_id', +], + +'bug/create/create-guided.html.tmpl' => [ + 'tablecolour', + 'sel', + 'productstring', +], + +'bug/activity/table.html.tmpl' => [ + 'change.attachid', +], + +'attachment/create.html.tmpl' => [ + 'bug.bug_id', + 'attachment.id', +], + +'attachment/created.html.tmpl' => [ + 'attachment.id', + 'attachment.bug_id', +], + +'attachment/edit.html.tmpl' => [ + 'attachment.id', + 'attachment.bug_id', + 'a', + 'editable_or_hide', +], + +'attachment/list.html.tmpl' => [ + 'attachment.id', + 'flag.status', + 'bugid', + 'obsolete_attachments', +], + +'attachment/midair.html.tmpl' => [ + 'attachment.id', +], + +'attachment/show-multiple.html.tmpl' => [ + 'a.id', + 'flag.status' +], + +'attachment/updated.html.tmpl' => [ + 'attachment.id', +], + +'attachment/diff-header.html.tmpl' => [ + 'attachid', + 'id', + 'bugid', + 'oldid', + 'newid', + 'patch.id', +], + +'attachment/diff-file.html.tmpl' => [ + 'lxr_prefix', + 'file.minus_lines', + 'file.plus_lines', + 'bonsai_prefix', + 'section.old_start', + 'section_num', + 'current_line_old', + 'current_line_new', +], + +'admin/admin.html.tmpl' => [ + 'class' +], + +'admin/table.html.tmpl' => [ + 'link_uri' +], + +'admin/custom_fields/cf-js.js.tmpl' => [ + 'constants.FIELD_TYPE_SINGLE_SELECT', + 'constants.FIELD_TYPE_MULTI_SELECT', +], + +'admin/params/common.html.tmpl' => [ + 'sortlist_separator', +], + +'admin/products/groupcontrol/confirm-edit.html.tmpl' => [ + 'group.count', +], + +'admin/products/groupcontrol/edit.html.tmpl' => [ + 'group.id', + 'constants.CONTROLMAPNA', + 'constants.CONTROLMAPSHOWN', + 'constants.CONTROLMAPDEFAULT', + 'constants.CONTROLMAPMANDATORY', +], + +'admin/products/list.html.tmpl' => [ + 'classification_url_part', +], + +'admin/products/footer.html.tmpl' => [ + 'classification_url_part', + 'classification_text', +], + +'admin/flag-type/confirm-delete.html.tmpl' => [ + 'flag_type.flag_count', + 'flag_type.id', +], + +'admin/flag-type/edit.html.tmpl' => [ + 'action', + 'type.id', + 'type.target_type', + 'type.sortkey || 1', + 'typeLabelLowerPlural', + 'typeLabelLowerSingular', + 'selname', +], + +'admin/flag-type/list.html.tmpl' => [ + 'type.id', +], + + +'admin/components/confirm-delete.html.tmpl' => [ + 'comp.bug_count' +], + +'admin/groups/delete.html.tmpl' => [ + 'shared_queries' +], + +'admin/users/confirm-delete.html.tmpl' => [ + 'attachments', + 'reporter', + 'assignee_or_qa', + 'cc', + 'component_cc', + 'flags.requestee', + 'flags.setter', + 'longdescs', + 'quips', + 'votes', + 'series', + 'watch.watched', + 'watch.watcher', + 'whine_events', + 'whine_schedules', + 'otheruser.id' +], + +'admin/users/edit.html.tmpl' => [ + 'otheruser.id', + 'group.id', +], + +'admin/components/edit.html.tmpl' => [ + 'comp.bug_count' +], + +'admin/workflow/edit.html.tmpl' => [ + 'status.id', + 'new_status.id', +], + +'admin/workflow/comment.html.tmpl' => [ + 'status.id', + 'new_status.id', +], + +'account/auth/login-small.html.tmpl' => [ + 'qs_suffix', +], + +'account/prefs/email.html.tmpl' => [ + 'relationship.id', + 'event.id', + 'prefname', +], + +'account/prefs/prefs.html.tmpl' => [ + 'current_tab.label', + 'current_tab.name', +], + +'account/prefs/saved-searches.html.tmpl' => [ + 'group.id', +], + +); diff --git a/template/en/default/flag/list.html.tmpl b/template/en/default/flag/list.html.tmpl new file mode 100644 index 0000000..1110fb6 --- /dev/null +++ b/template/en/default/flag/list.html.tmpl @@ -0,0 +1,213 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[% IF user.id AND !read_only_flags %] + +[%# We list flags by looping twice over the flag types relevant for the bug. + # In the first loop, we display existing flags and then, for active types, + # we display UI for adding new flags. In the second loop, we display UI + # for adding additional new flags for those types for which a flag already + # exists but which are multiplicable (can have multiple flags of the type + # on a single bug/attachment). + #%] + +[% DEFAULT flag_table_id = "flags" %] + + + + + [% UNLESS flag_no_header %] + + + [% IF any_flags_requesteeble %] + + [% END %] + + [% END %] + + [%# Step 1: Display every flag type (except inactive types with no flags). %] + [% FOREACH type = flag_types %] + + [%# Step 1a: Display existing flag(s). %] + [% FOREACH flag = type.flags %] + + + + + [% IF any_flags_requesteeble %] + + [% END %] + + [% END %] + + [%# Step 1b: Display UI for setting flag. %] + [% IF (!type.flags || type.flags.size == 0) && type.is_active %] + + [% PROCESS flag_row first_cell_empty = 1 addl_text = "" %] + [% END %] + [% END %] + + [%# Step 2: Display flag type again (if type is multiplicable). %] + [% FOREACH type = flag_types %] + [% NEXT UNLESS type.flags && type.flags.size > 0 && type.is_multiplicable && type.is_active %] + [% IF !separator_displayed %] + + [% separator_displayed = 1 %] + [% END %] + + [% PROCESS flag_row first_cell_empty = 0 addl_text = "addl." %] + [% END %] +
    + Flags: + + Requestee: +
    + [% flag.setter.nick FILTER html %]: + + + + + + [% IF (type.is_active && type.is_requestable && type.is_requesteeble) || flag.requestee %] + + [% IF Param('usemenuforusers') %] + [% flag_custom_list = flag.type.grant_list %] + [% IF !(type.is_active && type.is_requestable && type.is_requesteeble) %] + [%# We are here only because there was already a requestee. In this case, + the only valid action is to remove the requestee or leave it alone; + nothing else. %] + [% flag_custom_list = [flag.requestee] %] + [% END %] + [% INCLUDE global/userselect.html.tmpl + name => "requestee-$flag.id" + id => "requestee-$flag.id" + value => flag.requestee.login + multiple => 0 + emptyok => 1 + custom_userlist => flag_custom_list + %] + [% ELSE %] + () + [% END %] + + [% END %] +

    + +[% ELSE %] + [%# The user is logged out. Display flags as read-only. %] + [% header_displayed = 0 %] + [% FOREACH type = flag_types %] + [% FOREACH flag = type.flags %] + [% IF !flag_no_header AND !header_displayed %] +

    Flags:

    + [% header_displayed = 1 %] + [% END %] + [% flag.setter.nick FILTER html %]: + [%+ type.name FILTER html FILTER no_break %][% flag.status %] + [% IF flag.requestee %] + ([% flag.requestee.nick FILTER html %]) + [% END %]
    + [% END %] + [% END %] +[% END %] + +[%# Display a table row for unset flags %] + +[% BLOCK flag_row %] + + [% IF first_cell_empty %] +   + + [% ELSE %] + + [% END %] + + [% addl_text FILTER html %] + + + + + + [% IF any_flags_requesteeble %] + + [% IF type.is_requestable && type.is_requesteeble %] + + [% IF Param('usemenuforusers') %] + [% INCLUDE global/userselect.html.tmpl + name => "requestee_type-$type.id" + id => "requestee_type-$type.id" + multiple => type.is_multiplicable * 3 + emptyok => !type.is_multiplicable + value => "" + custom_userlist => type.grant_list + %] + [% ELSE %] + () + [% END %] + + [% END %] + + [% END %] + +[% END %] diff --git a/template/en/default/global/banner.html.tmpl b/template/en/default/global/banner.html.tmpl new file mode 100644 index 0000000..ab1c2a8 --- /dev/null +++ b/template/en/default/global/banner.html.tmpl @@ -0,0 +1,26 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Matthew Tuck + # Vitaly Harisov + #%] + +[%# Migration note: this file corresponds to the old Param 'bannerhtml' %] + + diff --git a/template/en/default/global/choose-classification.html.tmpl b/template/en/default/global/choose-classification.html.tmpl new file mode 100644 index 0000000..9342d81 --- /dev/null +++ b/template/en/default/global/choose-classification.html.tmpl @@ -0,0 +1,63 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Albert Ting + # + # Contributor(s): Albert Ting + #%] + +[%# INTERFACE: + # classifications: an array of classification objects containing + # at least one product accessible by the user. + #%] + +[% IF target == "enter_bug.cgi" %] + [% title = "Select Classification" %] + [% subheader = "Please select the classification." %] +[% END %] + +[% DEFAULT title = "Choose the classification" %] +[% PROCESS global/header.html.tmpl %] + + + + + + + + + + + +[% FOREACH class = classifications %] + + + + [% IF class.description %] + + [% END %] + +[% END %] + +
    + + All: +  Show all products
     
    + + [% class.name FILTER html %]: +  [% class.description FILTER html_light %]
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/choose-product.html.tmpl b/template/en/default/global/choose-product.html.tmpl new file mode 100644 index 0000000..5c9ad09 --- /dev/null +++ b/template/en/default/global/choose-product.html.tmpl @@ -0,0 +1,75 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # classifications: array of hashes, with an 'object' key representing a + # classification object and 'products' the list of + # product objects the user can enter bugs into. + # target: the script that displays this template. + # cloned_bug_id: ID of the bug being cloned. + # format: the desired format to display the target. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% IF target == "enter_bug.cgi" %] + [% title = "Enter $terms.Bug" %] + [% h2 = BLOCK %]First, you must pick a product on which to enter [% terms.abug %]: [% END %] +[% ELSIF target == "describecomponents.cgi" %] + [% title = "Browse" %] + [% h2 = "Select a product category to browse:" %] +[% END %] + +[% DEFAULT title = "Choose a Product" %] +[% PROCESS global/header.html.tmpl %] + +

    [% h2 FILTER html %]

    + + + +[% FOREACH c = classifications %] + [% IF c.object %] + + + + [% END %] + + [% FOREACH p = c.products %] + + + + + + [% END %] + + + + +[% END %] + +
    [% c.object.name FILTER html %]: + [%+ c.object.description FILTER html_light %]
    + + [% p.name FILTER html FILTER no_break %]:  + [% p.description FILTER html_light %]
     
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl new file mode 100644 index 0000000..753695b --- /dev/null +++ b/template/en/default/global/code-error.html.tmpl @@ -0,0 +1,574 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # header_done: boolean. True if the header has already been printed. + # error: string. The tag of the error. + # variables: hash. Useful data about the problem. The keys are the variable + # names, and the values the variable values. + #%] + +[%# This is a list of all the possible code errors. Please keep them in + # alphabetical order by error tag, and leave a blank line between errors. + # + # Note that you must explicitly filter every single template variable + # in this file; if you do not wish to change it, use the "none" filter. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% DEFAULT title = "Internal Error" %] + +[% error_message = BLOCK %] + [% IF error == "action_unrecognized" %] + [% docslinks = {'query.html' => "Searching for $terms.bugs", + 'query.html#list' => "$terms.Bug lists"} %] + I don't recognize the value ([% action FILTER html %]) + of the action variable. + + [% ELSIF error == "attachment_already_obsolete" %] + Attachment #[% attach_id FILTER html %] ([% description FILTER html %]) + is already obsolete. + + [% ELSIF error == "attachment_local_storage_disabled" %] + [% title = "Local Storage Disabled" %] + You cannot store attachments locally. This feature is disabled. + + [% ELSIF error == "attachment_url_disabled" %] + [% title = "Attachment URL Disabled" %] + You cannot attach a URL. This feature is currently disabled. + + [% ELSIF error == "auth_invalid_email" %] + [% title = "Invalid Email Address" %] + We received an email address ([% addr FILTER html %]) + that didn't pass our syntax checking for a legal email address, + when trying to create or update your account. + [% IF default %] + A legal address must contain exactly one '@', + and at least one '.' after the @. + [% ELSE %] + [%+ Param('emailregexpdesc') %] + [% END %] + It must also not contain any of these special characters: + \ ( ) & < > , ; : " [ ], or any whitespace. + + [% ELSIF error == "authres_unhandled" %] + The result value of [% value FILTER html %] was not handled by + the login code. + + [% ELSIF error == "bad_page_cgi_id" %] + [% title = "Invalid Page ID" %] + The ID [% page_id FILTER html %] is not a + valid page identifier. + + [% ELSIF error == "bad_arg" %] + Bad argument [% argument FILTER html %] sent to + [% function FILTER html %] function. + + [% ELSIF error == "bug_error" %] + Trying to retrieve [% terms.bug %] [%+ bug.bug_id FILTER html %] returned + the error [% bug.error FILTER html %]. + + [% ELSIF error == "chart_data_not_generated" %] + [% admindocslinks = {'extraconfig.html' => 'Setting up Charting'} %] + [% IF product %] + Charts for the [% product FILTER html %] product are not + available yet because no charting data has been collected for it since it + was created. + [% ELSE %] + No charting data has been collected yet. + [% END %] + Please wait a day and try again. + If you're seeing this message after a day, then you should contact + [% Param('maintainer') %] + and reference this error. + + [% ELSIF error == "chart_datafile_corrupt" %] + The chart data file [% file FILTER html %] is corrupt. + + [% ELSIF error == "chart_dir_nonexistent" %] + One of the directories [% dir FILTER html %] and + [% graph_dir FILTER html %] does not exist. + + [% ELSIF error == "chart_file_open_fail" %] + Unable to open the chart datafile [% filename FILTER html %]. + + [% ELSIF error == "column_not_null_without_default" %] + Failed adding the column [% name FILTER html %]: + You cannot add a NOT NULL column with no default to an existing table + unless you specify something for the $init_value argument. + + [% ELSIF error == "column_not_null_no_default_alter" %] + You cannot alter the [% name FILTER html %] column to be NOT NULL + without specifying a default or something for $set_nulls_to, because + there are NULL values currently in it. + + [% ELSIF error == "comment_extra_data_not_allowed" %] + You tried to set the extra_data field to + '[% extra_data FILTER html %]' but comments of type [% type FILTER html %] + do not accept an extra_data argument. + + [% ELSIF error == "comment_extra_data_required" %] + Comments of type [% type FILTER html %] require an extra_data + argument to be set. + + [% ELSIF error == "comment_extra_data_not_numeric" %] + You tried to set the extra_data field to + '[% extra_data FILTER html %]' but comments of type [% type FILTER html %] + require a numeric extra_data argument. + + [% ELSIF error == "comment_type_invalid" %] + '[% type FILTER html %]' is not a valid comment type. + + [% ELSIF error == "db_rename_conflict" %] + Name conflict: Cannot rename [% old FILTER html %] to + [% new FILTER html %] because [% new FILTER html %] already exists. + + [% ELSIF error == "cookies_need_value" %] + Every cookie must have a value. + + [% ELSIF error == "env_no_email" %] + [% terms.Bugzilla %] did not receive an email address from the + environment. + [% IF Param("auth_env_email") %] + This means that the '[% Param("auth_env_email") FILTER html %]' + environment variable was empty or did not exist. + [% ELSE %] + You need to set the "auth_env_email" parameter to the name of + the environment variable that will contain the user's email + address. + [% END %] + + [% ELSIF error == "extension_must_be_subclass" %] + [% package FILTER html %] from + [% filename FILTER html %] is not a subclass of + [% class FILTER html %]. + + [% ELSIF error == "extension_must_return_name" %] + [% extension FILTER html %] returned + [% returned FILTER html %], which is not a valid name + for an extension. Extensions must return their name, not 1 + or a number. See the documentation of + Bugzilla::Extension + for details. + + [% ELSIF error == "extension_no_name" %] + We did not find a NAME method in + [% package FILTER html %] (loaded from + [% filename FILTER html %]). This means that + the extension has one or more of the following problems: + +
      +
    • [% filename FILTER html %] did not define a + [% package FILTER html %] package.
    • +
    • [% package FILTER html %] did not define a + NAME method (or the NAME method + returned an empty string).
    • +
    + + [% ELSIF error == "extern_id_conflict" %] + The external ID '[% extern_id FILTER html %]' already exists + in the database for '[% username FILTER html %]', but your + account source says that '[% extern_user FILTER html %]' has that ID. + + [% ELSIF error == "field_choice_must_use_type" %] + When you call a class method on Bugzilla::Field::Choice, + you must call Bugzilla::Field::Choice->type('some_field') + to generate the right class (you can't call class methods directly + on Bugzilla::Field::Choice). + + [% ELSIF error == "field_not_custom" %] + '[% field.description FILTER html %]' ([% field.name FILTER html %]) + is not a custom field. + + [% ELSIF error == "field_type_mismatch" %] + Cannot seem to handle [% field FILTER html %] + and [% type FILTER html %] together. + + [% ELSIF error == "field_type_not_specified" %] + [% title = "Field Type Not Specified" %] + You must specify a type when creating a custom field. + + [% ELSIF error == "illegal_content_type_method" %] + Your form submission got corrupted somehow. The content + method field, which specifies how the content type gets determined, + should have been either autodetect, list, + or manual, but was instead + [% contenttypemethod FILTER html %]. + + [% ELSIF error == "illegal_field" %] + A legal [% field FILTER html %] was not set. + + [% ELSIF error == "inactive_group" %] + Attempted to add [% terms.bug %] to the '[% name FILTER html %]' + group, which is not used for [% terms.bugs %]. + + [% ELSIF error == "invalid_attach_id_to_obsolete" %] + The attachment number of one of the attachments you wanted to obsolete, + [% attach_id FILTER html %], is invalid. + + [% ELSIF error == "invalid_customfield_type" %] + [% title = "Invalid Field Type" %] + The type [% type FILTER html %] is not a valid field type. + + [% ELSIF error == "invalid_dimensions" %] + [% title = "Invalid Dimensions" %] + The width or height specified is not a positive integer. + + [% ELSIF error == "invalid_feature" %] + [% title = "Invalid Feature Name" %] + [% feature FILTER html %] is not a valid feature name. See + OPTIONAL_MODULES in + Bugzilla::Install::Requirements for valid names. + + [% ELSIF error == "invalid_flag_association" %] + [% title = "Invalid Flag Association" %] + Some flags do not belong to + [% IF attach_id %] + attachment [% attach_id FILTER html %]. + [% ELSE %] + [%+ terms.bug %] [%+ bug_id FILTER html %]. + [% END %] + + [% ELSIF error == "invalid_series_id" %] + [% title = "Invalid Series" %] + The series_id [% series_id FILTER html %] is not valid. It may be that + this series has been deleted. + + [% ELSIF error == "invalid_webservergroup" %] + There is no such group: [% group FILTER html %]. Check your $webservergroup + setting in [% constants.bz_locations.localconfig FILTER html %]. + + [% ELSIF error == "mismatched_bug_ids_on_obsolete" %] + Attachment [% attach_id FILTER html %] ([% description FILTER html %]) + is attached to [% terms.bug %] [%+ attach_bug_id FILTER html %], + but you tried to flag it as obsolete while creating a new attachment to + [% terms.bug %] [%+ my_bug_id FILTER html %]. + + [% ELSIF error == "feature_disabled" %] + The [% install_string("feature_$feature") FILTER html %] feature is not + available in this [% terms.Bugzilla %]. + [% IF user.in_group('admin') %] + If you would like to enable this feature, please run + checksetup.pl to see how to install the necessary + requirements for this feature. + [% END %] + + [% ELSIF error == "flag_unexpected_object" %] + [% title = "Object Not Recognized" %] + Flags cannot be set for objects of type [% caller FILTER html %]. + They can only be set for [% terms.bugs %] and attachments. + + [% ELSIF error == "flag_requestee_disabled" %] + [% title = "Flag not Requestable from Specific Person" %] + You can't ask a specific person for + [% type.name FILTER html %]. + + [% ELSIF error == "flag_status_invalid" %] + The flag status [% status FILTER html %] + [% IF id %] + for flag ID #[% id FILTER html %] + [% END %] + is invalid. + + [% ELSIF error == "flag_type_inactive" %] + [% title = "Inactive Flag Type" %] + The flag type [% type FILTER html %] is inactive and cannot be used + to create new flags. + + [% ELSIF error == "flag_type_nonexistent" %] + There is no flag type with the ID [% id FILTER html %]. + + [% ELSIF error == "flag_type_target_type_invalid" %] + The target type was neither [% terms.bug %] nor attachment + but rather [% target_type FILTER html %]. + + [% ELSIF error == "invalid_field_name" %] + Can't use [% field FILTER html %] as a field name. + + [% ELSIF error == "invalid_keyword_id" %] + The keyword ID [% id FILTER html %] couldn't be + found. + + [% ELSIF error == "invalid_user" %] + [% title = "Invalid User" %] + There is no user account + [% IF user_id %] + with ID [% user_id FILTER html %]. + [% ELSIF user_login %] + with login name [% user_login FILTER html %]. + [% ELSE %] + given. + [% END %] + + [% ELSIF error == "jobqueue_insert_failed" %] + [% title = "Job Queue Failure" %] + Inserting a [% job FILTER html %] job into the Job + Queue failed with the following error: [% errmsg FILTER html %] + + [% ELSIF error == "jobqueue_no_job_mapping" %] + Bugzilla::JobQueue has not been configured to handle + the job "[% job FILTER html %]". You need to add this job type + to the JOB_MAP constant in Bugzilla::JobQueue. + + [% ELSIF error == "ldap_bind_failed" %] + Failed to bind to the LDAP server. The error message was: + [% errstr FILTER html %] + + [% ELSIF error == "ldap_cannot_retreive_attr" %] + The specified LDAP attribute [% attr FILTER html %] was not found. + + [% ELSIF error == "ldap_connect_failed" %] + Could not connect to the LDAP server(s) [% server FILTER html %]. + + [% ELSIF error == "ldap_start_tls_failed" %] + Could not start TLS with LDAP server: [% error FILTER html %]. + + [% ELSIF error == "ldap_search_error" %] + An error occurred while trying to search LDAP for + "[% username FILTER html %]": + [% IF errstr %] + [% errstr FILTER html %] + [% ELSE %] + Unable to find user in LDAP + [% END %] + + [% ELSIF error == "ldap_server_not_defined" %] + The LDAP server for authentication has not been defined. + + [% ELSIF error == "mail_send_error" %] + There was an error sending mail from '[% mail.header('From') FILTER html %]' + to '[% mail.header('To') FILTER html %]': + [% msg FILTER html %] + + [% ELSIF error == "missing_bug_id" %] + No [% terms.bug %] ID was given. + + [% ELSIF error == "missing_series_id" %] + Having inserted a series into the database, no series_id was returned for + it. Series: [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %]. + + [% ELSIF error == "need_quipid" %] + A valid quipid is needed. + + [% ELSIF error == "no_manual_moved" %] + You cannot set the resolution of [% terms.abug %] to [% display_value("resolution", "MOVED") FILTER html %] without + moving the [% terms.bug %]. + + [% ELSIF error == "no_open_bug_status" %] + [% title = "$terms.Bug Cannot Be Confirmed" %] + There is no valid transition from + [%+ display_value("bug_status", "UNCONFIRMED") FILTER html %] to an open state. + + [% ELSIF error == "param_invalid" %] + [% title = "Invalid Parameter" %] + [% param FILTER html %] is not a valid parameter + for the [% function FILTER html %] function. + + [% ELSIF error == "param_must_be_numeric" %] + [% title = "Invalid Parameter" %] + Invalid parameter [% param FILTER html %] passed to + [% function FILTER html %]: It must be numeric. + + [% ELSIF error == "param_required" %] + [% title = "Missing Parameter" %] + The function [% function FILTER html %] requires + a [% param FILTER html %] argument, and that + argument was not set. + + [% ELSIF error == "params_required" %] + [% title = "Missing Parameter" %] + The function [% function FILTER html %] requires + that you set one of the following parameters: + [% params.join(', ') FILTER html %] + + [% ELSIF error == "product_empty_group_controls" %] + [% title = "Missing Group Controls" %] + New settings must be defined to edit group controls for + the [% group.name FILTER html %] group. + + [% ELSIF error == "product_illegal_group_control" %] + [% title = "Illegal Group Control" %] + '[% value FILTER html %]' is not a legal value for + the '[% field FILTER html %]' field. + + [% ELSIF error == "protection_violation" %] + The function [% function FILTER html %] was called + + [% IF argument %] + with the argument [% argument FILTER html %] + [% END %] + + from + + [% IF caller %] + [%+ caller FILTER html %], which is + [% END %] + + outside the package. This function may only be called from + a subclass of [% superclass FILTER html %]. + + [% ELSIF error == "radius_preparation_error" %] + An error occurred while preparing for a RADIUS authentication request: + [% errstr FILTER html %]. + + [% ELSIF error == "request_queue_group_invalid" %] + The group field [% group FILTER html %] is invalid. + + [% ELSIF error == "report_axis_invalid" %] + [% val FILTER html %] is not a valid value for + [%+ IF fld == "x" %]the horizontal axis + [%+ ELSIF fld == "y" %]the vertical axis + [%+ ELSIF fld == "z" %]the multiple tables/images + [%+ ELSE %]a report axis[% END %] field. + + [% ELSIF error == "setting_info_invalid" %] + To create a new setting, you must supply a setting name, a list of + value/sortindex pairs, and the devault value. + + [% ELSIF error == "setting_name_invalid" %] + The setting name [% name FILTER html %] is not a valid + option. Setting names must begin with a letter, and contain only + letters, digits, or the symbols '_', '-', '.', or ':'. + + [% ELSIF error == "setting_subclass_invalid" %] + There is no such Setting subclass as + [% subclass FILTER html %]. + + [% ELSIF error == "setting_value_invalid" %] + The value "[% value FILTER html %]" is not in the list of + legal values for the [% name FILTER html %] setting. + + [% ELSIF error == "token_generation_error" %] + Something is seriously wrong with the token generation system. + + [% ELSIF error == "template_error" %] + [% template_error_msg FILTER html %] + + [% ELSIF error == "template_invalid" %] + Template with invalid file name found in hook call: [% name FILTER html %]. + + [% ELSIF error == "unable_to_retrieve_password" %] + I was unable to retrieve your old password from the database. + + [% ELSIF error == "undefined_field" %] + Form field [% field FILTER html %] was not defined. + + [% ELSIF error == "unknown_action" %] + [% IF action %] + Unknown action [% action FILTER html %]! + [% ELSE %] + I could not figure out what you wanted to do. + [% END %] + + [% ELSIF error == "unknown_method" %] + The requested method '[% method FILTER html %]' was not found. + + [% ELSIF error == "usage_mode_invalid" %] + '[% invalid_usage_mode FILTER html %]' is not a valid usage mode. + + [% ELSIF error == "must_be_patch" %] + [% title = "Attachment Must Be Patch" %] + Attachment #[% attach_id FILTER html %] must be a patch. + + [% ELSIF error == "not_in_transaction" %] + Attempted to end transaction without starting one first. + + [% ELSIF error == "comma_operator_deprecated" %] + [% title = "SQL query generator internal error" %] + There is an internal error in the SQL query generation code, + creating queries with implicit JOIN. + + [% ELSIF error == "invalid_post_bug_submit_action" %] + Invalid setting for post_bug_submit_action + + [% ELSE %] + [%# Try to find hooked error messages %] + [% error_message = Hook.process("errors") %] + [% IF NOT error_message %] + [% title = "Internal error" %] + An internal error has occurred, but [% terms.Bugzilla %] doesn't know + what [% error FILTER html %] means. + + If you are a [% terms.Bugzilla %] end-user seeing this message, please save + this page and send it to [% Param('maintainer') %]. + [% ELSE %] + [% error_message FILTER none %] + [% END %] + [% END %] +[% END %] + +[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %] +[% USE Bugzilla %] +[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %] + [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %] + [% error_message FILTER none %] + [% ELSE %] + [% error_message FILTER txt %] + [% END %] + [% RETURN %] +[% END %] + +[% UNLESS header_done %] + [% PROCESS global/header.html.tmpl %] +[% END %] + +[% PROCESS global/docslinks.html.tmpl + docslinks = docslinks + admindocslinks = admindocslinks +%] + + +

    + [% terms.Bugzilla %] has suffered an internal error. Please save this page and send + it to [% Param("maintainer") %] with details of what you were doing at + the time this message appeared. +

    + +
    + + + + + +
    + + [% error_message FILTER none %] + +
    + +[% IF variables %] +
    +Variables:
    +  [% FOREACH key = variables.keys %]
    +    [%+ key FILTER html %]: [%+ variables.$key FILTER html %]
    +  [% END %]
    +  
    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl new file mode 100644 index 0000000..6ad638f --- /dev/null +++ b/template/en/default/global/common-links.html.tmpl @@ -0,0 +1,116 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Svetlana Harisova + #%] + +[% DEFAULT qs_suffix = "" %] +[% USE Bugzilla %] + + + +[% Hook.process("link-row") %] +[% BLOCK link_to_documentation %] + [% IF doc_section && Param('docs_urlbase') %] +
  • + | + Help +
  • + [% END %] +[% END %] diff --git a/template/en/default/global/confirm-action.html.tmpl b/template/en/default/global/confirm-action.html.tmpl new file mode 100644 index 0000000..e57a83c --- /dev/null +++ b/template/en/default/global/confirm-action.html.tmpl @@ -0,0 +1,63 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # Portions created by Frédéric Buclin are Copyright (C) 2008 + # Frédéric Buclin. All Rights Reserved. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # script_name: the script generating this warning. + # token: a valid token for the current action. + # reason: reason of the failure. + #%] + +[% PROCESS global/header.html.tmpl title = "Suspicious Action" + style_urls = ['skins/standard/global.css'] %] + +
    + [% IF reason == "expired_token" %] + Your changes have been rejected because you exceeded the time limit + of [% constants.MAX_TOKEN_AGE FILTER html %] days before submitting your + changes to [% script_name FILTER html %]. Your page may have been displayed + for too long, or old changes have been resubmitted by accident. + + [% ELSIF reason == "missing_token" %] + It looks like you didn't come from the right page. + One reason could be that you entered the URL in the address bar of your + web browser directly, which should be safe. Another reason could be that + you clicked on a URL which redirected you here without your consent. + + [% ELSIF reason == "invalid_token" %] + You submitted changes to [% script_name FILTER html %] with an invalid + token, which may indicate that someone tried to abuse you, for instance + by making you click on a URL which redirected you here without your + consent. + [% END %] +

    + Are you sure you want to commit these changes? +

    +
    + +
    + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^(Bugzilla_login|Bugzilla_password|token)$" %] + + +
    + +

    No, throw away these changes (you will be redirected +to the home page).

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/confirm-user-match.html.tmpl b/template/en/default/global/confirm-user-match.html.tmpl new file mode 100644 index 0000000..67a901f --- /dev/null +++ b/template/en/default/global/confirm-user-match.html.tmpl @@ -0,0 +1,202 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Erik Stambaugh + #%] + +[%# INTERFACE: + # fields: hash/record; the fields being matched, each of which has: + # type: single|multi: whether or not the user can select multiple matches + # flag_type: for flag requestee fields, the type of flag being requested + # matches: hash; Hierarchical. The levels go like this: + # field_name { + # pattern_text { + # 'users' = @user_list (user objects) + # 'status' = success|fail|trunc (result of search. + # 'trunc' (truncated) means max was reached) + # } + # } + # script: string; The name of the calling script, used to create a + # self-referential URL + #%] + +[%# use the global field descs %] +[% PROCESS "global/field-descs.none.tmpl" %] + +[%# This lists fields which use the user auto-completion feature and which + # are not listed in field_descs. %] +[% field_labels = { # Used by editcomponents.cgi + "initialcc" => "Default CC List", + "initialowner" => "Default Assignee", + "initialqacontact" => "Default QA Contact", + # Used by process_bug.cgi + "masscc" => "CC List", + # Used by request.cgi + "requester" => "Requester", + "requestee" => "Requestee", + # Used by userprefs.cgi + "new_watchedusers" => "Watch List", + + } +%] +[% IF matchsuccess == 1 %] + [% PROCESS global/header.html.tmpl title="Confirm Match" %] + + [% USE Bugzilla %] + +
    + +

    + [% IF matchmultiple %] + [% terms.Bugzilla %] cannot make a conclusive match for one or more + of the names and/or email addresses you entered on the previous page. +
    Please examine the lists of potential matches below and select the + ones you want, + [% ELSE %] + [% terms.Bugzilla %] is configured to require verification whenever + you enter a name or partial email address. +
    Below are the names/addresses you entered and the matched accounts. + Please confirm that they are correct, + [% END %] + or go back to the previous page to revise the names you entered. +

    +[% ELSE %] + [% PROCESS global/header.html.tmpl title="Match Failed" %] +

    + [% terms.Bugzilla %] was unable to make any match at all for one or more of + the names and/or email addresses you entered on the previous page. + [% IF !user.id %] + Note: You are currently logged out. Only exact matches against e-mail + addresses will be performed. + [% END %] +

    +

    Please go back and try other names or email addresses.

    +[% END %] + + + + + + + [%# this is messy to allow later expansion %] + + [% FOREACH field = matches %] + + + + + + + + [% END %] + +
    +
    +
    + [% PROCESS field_names field_name=field.key %]: + + [% FOREACH query = field.value %] +
    + [% query.key FILTER html %] + [% IF query.value.users.size %] + [% IF query.value.users.size > 1 %] + [% IF query.value.status == 'fail' %] + + matches multiple users. + + Please go back and try again with a more specific + name/address. + [% ELSE %] + [% IF query.value.status == 'trunc' %] + matched + more than the maximum + of [% query.value.users.size %] users:
    + [% ELSE %] + matched:
    + [% END %] + + [% END %] + [% ELSE %] + matched + [% query.value.users.0.identity FILTER html %] + [% END %] + [% ELSE %] + [% IF (query.key.length < 3) && !Param('emailsuffix') %] + was too short for substring match + (minimum 3 characters) + [% ELSE %] + did not match anything + [% END %] + [% END %] +
    + [% END %] +
    +
    +
    + +[% IF matchsuccess == 1 %] + + [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + +

    + +

    + +
    + +[% END %] + +[% PROCESS global/footer.html.tmpl %] + + +[% BLOCK field_names %] + + [% IF field_descs.$field_name %] + [% field_descs.$field_name FILTER html %] + [% ELSIF field_labels.$field_name %] + [% field_labels.$field_name FILTER html %] + [% ELSIF field_name.match("^requestee") %] + [% fields.${field_name}.flag_type.name %] requestee + [% ELSE %] + [% field_name FILTER html %] + [% END %] + +[% END %] diff --git a/template/en/default/global/docslinks.html.tmpl b/template/en/default/global/docslinks.html.tmpl new file mode 100644 index 0000000..712dfb4 --- /dev/null +++ b/template/en/default/global/docslinks.html.tmpl @@ -0,0 +1,52 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # docslinks: hash. Hash keys will be used as text of the documentation links, + # hash values will be used as links to the document, relative to + # the main Bugzilla documentation directory. + # Example: If you want a 'FAQ' link to point to, the "faq-general" + # named anchor on faq.html, assign + # { 'FAQ' => "faq.html#faq-general" } + # to docslinks. + # You may only link to sections by their given ID; it is not allowed + # to link to a section which is not given an ID (thus getting + # assigned an automatically generated ID). Otherwise, the link + # would break on a recompilation of the documentation. + # admindocslinks: hash. Same as docslinks, but will only be displayed to + # members of the admin group. + #%] + +[% IF Param('docs_urlbase') && + docslinks.keys.size || (admindocslinks.keys.size && user.in_group('admin')) %] + +[% END %] + +[% BLOCK docslinkslist %] + [% FOREACH docslink = docstype.keys %] +
  • + [% docstype.$docslink FILTER html %] +
  • + [% END %] +[% END %] diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl new file mode 100644 index 0000000..0c17e57 --- /dev/null +++ b/template/en/default/global/field-descs.none.tmpl @@ -0,0 +1,176 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Elliotte Martin + #%] + +[%# Remember to PROCESS rather than INCLUDE this template. %] + +[% PROCESS global/variables.none.tmpl %] + +[% SET search_descs = { + "noop" => "---", + "equals" => "is equal to", + "notequals" => "is not equal to", + "anyexact" => "is equal to any of the strings", + "substring" => "contains the string", + "casesubstring" => "contains the string (exact case)", + "notsubstring" => "does not contain the string", + "anywordssubstr" => "contains any of the strings", + "allwordssubstr" => "contains all of the strings", + "nowordssubstr" => "contains none of the strings", + "regexp" => "matches regular expression", + "notregexp" => "does not match regular expression", + "lessthan" => "is less than", + "lessthaneq" => "is less than or equal to", + "greaterthan" => "is greater than", + "greaterthaneq" => "is greater than or equal to", + "anywords" => "contains any of the words", + "allwords" => "contains all of the words", + "nowords" => "contains none of the words", + "changedbefore" => "changed before", + "changedafter" => "changed after", + "changedfrom" => "changed from", + "changedto" => "changed to", + "changedby" => "changed by", + "matches" => "matches", + "notmatches" => "does not match", +} %] + +[% field_types = { ${constants.FIELD_TYPE_UNKNOWN} => "Unknown Type", + ${constants.FIELD_TYPE_FREETEXT} => "Free Text", + ${constants.FIELD_TYPE_SINGLE_SELECT} => "Drop Down", + ${constants.FIELD_TYPE_MULTI_SELECT} => "Multiple-Selection Box", + ${constants.FIELD_TYPE_TEXTAREA} => "Large Text Box", + ${constants.FIELD_TYPE_DATETIME} => "Date/Time", + ${constants.FIELD_TYPE_BUG_ID} => "$terms.Bug ID", + } %] + +[%# You can use this hash to localize (translate) the values displayed + # for drop-down and multiple-select fields. Lines starting with "#" + # are comments. + #%] +[% value_descs = { + "bug_status" => { + # "UNCONFIRMED" => "UNCO", + # "NEW" => "NEWISH", + }, + + "resolution" => { + "" => "---", + # "FIXED" => "NO LONGER AN ISSUE", + # "MOVED" => "BYE-BYE", + }, +} %] + +[%# We use "FILTER none" here because only the caller can know how to + # filter the result appropriately. + #%] +[% MACRO display_value(field_name, value_name) BLOCK %][% FILTER trim %] + [% IF value_descs.${field_name}.${value_name}.defined %] + [% value_descs.${field_name}.${value_name} FILTER none %] + [% ELSE %] + [% value_name FILTER none %] + [% END %] +[% END %][% END %] + +[% IF in_template_var %] + [% vars.terms = terms %] + + [%# field_descs is loaded as a global template variable and cached + # across all templates--see VARIABLES in Bugzilla/Template.pm. + #%] + [% vars.field_descs = { + "[Bug creation]" => "[$terms.Bug creation]", + "actual_time" => "Actual Hours", + "alias" => "Alias", + "assigned_to" => "Assignee", + "attach_data.thedata" => "Attachment data", + "attachments.description" => "Attachment description", + "attachments.filename" => "Attachment filename", + "attachments.mimetype" => "Attachment mime type", + "attachments.ispatch" => "Attachment is patch", + "attachments.isobsolete" => "Attachment is obsolete", + "attachments.isprivate" => "Attachment is private", + "attachments.isurl" => "Attachment is a URL", + "attachments.submitter" => "Attachment creator", + "blocked" => "Blocks", + "bug_file_loc" => "URL", + "bug_group" => "Group", + "bug_id" => "$terms.Bug ID", + "bug_severity" => "Severity", + "bug_status" => "Status", + "changeddate" => "Changed", + "cc" => "CC", + "classification" => "Classification", + "cclist_accessible" => "CC list accessible", + "commenter" => "Commenter", + "component_id" => "Component ID", + "component" => "Component", + "content" => "Content", + "creation_ts" => "Creation date", + "deadline" => "Deadline", + "delta_ts" => "Changed", + "dependson" => "Depends on", + "dup_id" => "Duplicate", + "estimated_time" => "Orig. Est.", + "everconfirmed" => "Ever confirmed", + "flagtypes.name" => "Flags", + "keywords" => "Keywords", + "longdesc" => "Comment", + "longdescs.isprivate" => "Comment is private", + "newcc" => "CC", + "op_sys" => "OS", + "opendate" => "Opened", + "owner_idle_time" => "Time Since Assignee Touched", + "percentage_complete" => "%Complete", + "priority" => "Priority", + "product_id" => "Product ID", + "product" => "Product", + "qa_contact" => "QA Contact", + "remaining_time" => "Hours Left", + "rep_platform" => "Hardware", + "reporter" => "Reporter", + "reporter_accessible" => "Reporter accessible", + "requestees.login_name" => "Flag Requestee", + "resolution" => "Resolution", + "see_also" => "See Also", + "setters.login_name" => "Flag Setter", + "setting" => "Setting", + "settings" => "Settings", + "short_desc" => "Summary", + "status_whiteboard" => "Whiteboard", + "target_milestone" => "Target Milestone", + "version" => "Version", + "votes" => "Votes" + "work_time" => "Hours Worked", + } %] + + [%# Also include any custom fields or fields which don't have a + Description here, by copying their Description from the + database. If you want to override this for your language + or your installation, just use a hook. %] + [% UNLESS Param('shutdownhtml') %] + [% FOREACH bz_field = bug_fields.values %] + [% SET vars.field_descs.${bz_field.name} = bz_field.description + IF !vars.field_descs.${bz_field.name}.defined %] + [% END %] + [% END %] +[% END %] + +[% Hook.process("end") %] diff --git a/template/en/default/global/footer.html.tmpl b/template/en/default/global/footer.html.tmpl new file mode 100644 index 0000000..0379f02 --- /dev/null +++ b/template/en/default/global/footer.html.tmpl @@ -0,0 +1,49 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Svetlana Harisova + #%] + +[%# INTERFACE: + # This template has no interface. However, you must fulfill the interface to + # global/useful-links.html.tmpl. + #%] + +[% INCLUDE "global/help.html.tmpl" %] + + + +[%# Migration note: below this point, this file corresponds to the old Param + # 'footerhtml' + #%] + + + + + + diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl new file mode 100644 index 0000000..4837df5 --- /dev/null +++ b/template/en/default/global/header.html.tmpl @@ -0,0 +1,324 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Vaskin Kissoyan + # Vitaly Harisov + # Svetlana Harisova + #%] + +[%# INTERFACE: + # (All the below interface elements are optional.) + # title: string. Page title. + # header: string. Main page header. + # subheader: string. Page subheader. + # header_addl_info: string. Additional header information. + # bodyclasses: array of extra CSS classes for the + # onload: string. JavaScript code to run when the page finishes loading. + # javascript: string. Javascript to go in the header. + # javascript_urls: list. List of URLs to Javascript. + # style: string. CSS style. + # style_urls: list. List of URLs to CSS style sheets. + # message: string. A message to display to the user. May contain HTML. + # atomlink: Atom link URL, May contain HTML + #%] + +[% IF message %] + [% PROCESS global/messages.html.tmpl %] +[% END %] + +[% DEFAULT + subheader = "" + header_addl_info = "" + onload = "" + style_urls = [] +%] + +[%# We should be able to set the default value of the header variable + # to the value of the title variable using the DEFAULT directive, + # but that doesn't work if a caller sets header to the empty string + # to avoid header inheriting the value of title, since DEFAULT + # mistakenly treats empty strings as undefined and gives header the + # value of title anyway. To get around that problem we explicitly + # set header's default value here only if it is undefined. %] +[% IF !header.defined %][% header = title %][% END %] + + + + + [% Hook.process("start") %] + [% title %] + +[%# Migration note: contents of the old Param 'headerhtml' would go here %] + + [% PROCESS "global/site-navigation.html.tmpl" %] + + [% PROCESS 'global/setting-descs.none.tmpl' %] + + [%# Set up the skin CSS cascade: + # 1. Standard Bugzilla stylesheet set (persistent) + # 2. Standard Bugzilla stylesheet set (selectable) + # 3. All third-party "skin" stylesheet sets (selectable) + # 4. Page-specific styles + # 5. Custom Bugzilla stylesheet set (persistent) + # "Selectable" skin file sets may be either preferred or alternate. + # Exactly one is preferred, determined by the "skin" user preference. + #%] + [% IF user.settings.skin.value != 'standard' %] + [% user_skin = user.settings.skin.value %] + [% END %] + [% style_urls.unshift('skins/standard/global.css') %] + + [%# CSS cascade, part 1: Standard Bugzilla stylesheet set (persistent). + # Always present. + #%] + [% FOREACH style_url = style_urls %] + + [% END %] + + + [%# CSS cascade, part 2: Standard Bugzilla stylesheet set (selectable) + # Present if skin selection is enabled. + #%] + [% IF user.settings.skin.is_enabled %] + [% FOREACH style_url = style_urls %] + + [% END %] + + [% END %] + + [%# CSS cascade, part 3: Third-party stylesheet set (selectable). + # All third-party skins are present if skin selection is enabled. + # The admin-selected skin is always present. + #%] + [% FOREACH contrib_skin = user.settings.skin.legal_values %] + [% NEXT IF contrib_skin == 'standard' %] + [% NEXT UNLESS contrib_skin == user_skin + OR user.settings.skin.is_enabled %] + [% contrib_skin = contrib_skin FILTER url_quote %] + [% IF contrib_skin.match('\.css$') %] + [%# 1st skin variant: single-file stylesheet %] + + [% ELSE %] + [%# 2nd skin variant: stylesheet set %] + [% FOREACH style_url = style_urls %] + [% IF style_url.match('^skins/standard/') %] + + [% END %] + [% END %] + + [% END %] + [% END %] + + [%# CSS cascade, part 4: page-specific styles. + #%] + [% IF style %] + + [% END %] + + [%# CSS cascade, part 5: Custom Bugzilla stylesheet set (persistent). + # Always present. Site administrators may override all other style + # definitions, including skins, using custom stylesheets. + #%] + [% FOREACH style_url = style_urls %] + [% IF style_url.match('^skins/standard/') %] + + [% END %] + [% END %] + + + + + + + + [% IF javascript_urls %] + [% FOREACH javascript_url = javascript_urls %] + + [% END %] + [% END %] + + [%# this puts the live bookmark up on firefox for the Atom feed %] + [% IF atomlink %] + + [% END %] + + [%# Required for the 'Autodiscovery' feature in Firefox 2 and IE 7. %] + + + [% Hook.process("additional_header") %] + + +[%# Migration note: contents of the old Param 'bodyhtml' go in the body tag, + # but set the onload attribute in the DEFAULT directive above. + #%] + + + +[%# Migration note: the following file corresponds to the old Param + # 'bannerhtml' + #%] + + [%# header %] + +
    + +[% IF Param('announcehtml') %] +[% Param('announcehtml') FILTER none %] +[% END %] + +[% IF message %] +
    [% message %]
    +[% END %] diff --git a/template/en/default/global/help.html.tmpl b/template/en/default/global/help.html.tmpl new file mode 100644 index 0000000..36439bc --- /dev/null +++ b/template/en/default/global/help.html.tmpl @@ -0,0 +1,32 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% IF cgi.param("help") %] + +[% END %] + diff --git a/template/en/default/global/hidden-fields.html.tmpl b/template/en/default/global/hidden-fields.html.tmpl new file mode 100644 index 0000000..24f15c4 --- /dev/null +++ b/template/en/default/global/hidden-fields.html.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # exclude: string; a regular expression matching fields to exclude + # from the list of hidden fields generated by this template + #%] + +[%# The global Bugzilla->cgi object is used to obtain form variable values. %] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[%# Generate hidden form fields for non-excluded fields. %] +[% FOREACH field = cgi.param() %] + [% NEXT IF exclude && field.search(exclude) %] + [%# The '.slice(0)' bit is here to force the 'param(field)' to be evaluated + in a list context, so we can avoid extra code checking for single valued or + empty fields %] + [% IF field == "data" && cgi.param("data") %] +
    +

    + We were unable to store the file you uploaded because of incomplete information + in the form you just submitted. Because we are unable to retain the file between + form submissions, you must re-attach the file in addition to completing the + remaining missing information above. +

    +

    + Please re-attach the file [% cgi.param(field) FILTER html %] in + the field below: +

    +

    + +

    +
    + [% ELSE %] + [% FOREACH mvalue = cgi.param(field).slice(0) %] + + [% END %] + [% END %] +[% END %] diff --git a/template/en/default/global/initialize.none.tmpl b/template/en/default/global/initialize.none.tmpl new file mode 100644 index 0000000..a6c4897 --- /dev/null +++ b/template/en/default/global/initialize.none.tmpl @@ -0,0 +1,32 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# This template is a place to put directives that should get processed + # every time a primary template gets processed. Primary templates are those + # called from Perl code rather than from other templates via the PROCESS + # and INCLUDE directives. + # + # This template gets auto-processed at the beginning of primary templates + # via the PRE_PROCESS configuration parameter. Note that it gets processed + # for non-HTML templates too, so don't put HTML-specific stuff in here; + # put that into header.html.tmpl instead. + #%] + +[% USE Hook %] diff --git a/template/en/default/global/js-products.html.tmpl b/template/en/default/global/js-products.html.tmpl new file mode 100644 index 0000000..8ca206f --- /dev/null +++ b/template/en/default/global/js-products.html.tmpl @@ -0,0 +1,34 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Frédéric Buclin + #%] + +[%# The javascript block gets used in header.html.tmpl. %] +[% javascript = BLOCK %] + var useclassification = false; // No classification level in use + var first_load = true; // Is this the first time we load the page? + var last_sel = []; // Caches last selection + var cpts = new Array(); + [% n = 1 %] + [% FOREACH prod = products %] + cpts['[% n %]'] = [ + [%- FOREACH comp = prod.components %]'[% comp.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; + [% n = n+1 %] + [% END %] +[% END %] diff --git a/template/en/default/global/message.html.tmpl b/template/en/default/global/message.html.tmpl new file mode 100644 index 0000000..e578a7f --- /dev/null +++ b/template/en/default/global/message.html.tmpl @@ -0,0 +1,42 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): + #%] + +[%# INTERFACE: + # url: string. An optional URL to go to. + # link: string. The link text for that URL. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% DEFAULT title = "$terms.Bugzilla Message" %] + +[% PROCESS global/header.html.tmpl %] + +[%# The "header" template automatically displays a message if it finds one. + Note that the global messages list is in messages.html.tmpl. %] + +[%# Display a URL if the calling script or message block has included one. %] +[% IF url && link %] +

    + [% link FILTER html %] +

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/message.txt.tmpl b/template/en/default/global/message.txt.tmpl new file mode 100644 index 0000000..9329cdb --- /dev/null +++ b/template/en/default/global/message.txt.tmpl @@ -0,0 +1,25 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Max Kanat-Alexander. + # Portions created by Max Kanat-Alexander are Copyright (C) 2005 + # Max Kanat-Alexander. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] + +[%# Yes, this may show some HTML. But it's the best we + # can do at the moment. %] +[% PROCESS global/messages.html.tmpl %] +[% message FILTER txt %] diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl new file mode 100644 index 0000000..7351aa0 --- /dev/null +++ b/template/en/default/global/messages.html.tmpl @@ -0,0 +1,858 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Max Kanat-Alexander + #%] + +[%# This is a list of all the possible messages. Please keep them in + # alphabetical order by message tag, and leave a blank line between messages. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% message_tag = message %] + +[% message = BLOCK %] + [% IF message_tag == "account_created" %] + The user account [% otheruser.login FILTER html %] has been created + successfully. + [% IF groups.size %] + You may want to edit the group settings now, using the form below. + [% END %] + + [% ELSIF message_tag == "account_creation_canceled" %] + [% title = "User Account Creation Canceled" %] + The creation of the user account [% account FILTER html %] has been + canceled. + + [% ELSIF message_tag == "account_updated" %] + [% IF changed_fields.size + + groups_added_to.size + groups_removed_from.size + + groups_granted_rights_to_bless.size + groups_denied_rights_to_bless.size %] + [% title = "User $loginold updated" %] + The following changes have been made to the user account + [%+ loginold FILTER html %]: +
      + [% FOREACH field = changed_fields %] +
    • + [% IF field == 'login_name' %] + The login is now [% otheruser.login FILTER html %]. + [% ELSIF field == 'realname' %] + The real name has been updated. + [% ELSIF field == 'cryptpassword' %] + A new password has been set. + [% ELSIF field == 'disabledtext' %] + The disable text has been modified. + [% ELSIF field == 'disable_mail' %] + [% IF otheruser.email_disabled %] + [% terms.Bug %]mail has been disabled. + [% ELSE %] + [% terms.Bug %]mail has been enabled. + [% END %] + [% END %] +
    • + [% END %] + [% IF groups_added_to.size %] +
    • + The account has been added to the + [%+ groups_added_to.join(', ') FILTER html %] + group[% 's' IF groups_added_to.size > 1 %]. +
    • + [% END %] + [% IF groups_removed_from.size %] +
    • + The account has been removed from the + [%+ groups_removed_from.join(', ') FILTER html %] + group[% 's' IF groups_removed_from.size > 1 %]. +
    • + [% END %] + [% IF groups_granted_rights_to_bless.size %] +
    • + The account has been granted rights to bless the + [%+ groups_granted_rights_to_bless.join(', ') FILTER html %] + group[% 's' IF groups_granted_rights_to_bless.size > 1 %]. +
    • + [% END %] + [% IF groups_denied_rights_to_bless.size %] +
    • + The account has been denied rights to bless the + [%+ groups_denied_rights_to_bless.join(', ') FILTER html %] + group[% 's' IF groups_denied_rights_to_bless.size > 1 %]. +
    • + [% END %] +
    + [% ELSE %] + [% title = "User $otheruser.login not changed" %] + You didn't request any changes to the user's account + [%+ otheruser.login FILTER html %]. + [% END %] + + [% ELSIF message_tag == "account_deleted" %] + [% title = "User $otheruser.login deleted" %] + The user account [% otheruser.login FILTER html %] has been deleted + successfully. + + [% ELSIF message_tag == "account_disabled" %] + The user account [% account FILTER html %] is disabled, so you + cannot change its password. + + [% ELSIF message_tag == "attachment_creation_failed" %] + The [% terms.bug %] was created successfully, but attachment creation + failed. + Please add your attachment by clicking the "Add an Attachment" link + below. + + [% ELSIF message_tag == "bug_group_description" %] + Access to [% terms.bugs %] in the [% product.name FILTER html %] product + + [% ELSIF message_tag == "buglist_adding_field" %] + [% title = "Adding field to search page..." %] + [% link = "Click here if the page does not redisplay automatically." %] + + [% ELSIF message_tag == "buglist_updated_named_query" %] + [% title = "Search updated" %] + Your search named [% queryname FILTER html %] has been updated. + + [% ELSIF message_tag == "buglist_new_default_query" %] + OK, you now have a new default search. You may + also bookmark the result of any individual search. + + [% ELSIF message_tag == "buglist_new_named_query" %] + [% title = "Search created" %] + OK, you have a new search named [% queryname FILTER html %]. + + [% ELSIF message_tag == "buglist_query_gone" %] + [% title = "Search is gone" %] + [% link = "Go back to the search page." %] + OK, the [% namedcmd FILTER html %] search is gone. + + [% ELSIF message_tag == "buglist_sorted_by_relevance" %] + [% terms.Bugs %] on this list are sorted by relevance, with the most + relevant [% terms.bugs %] at the top. + + [% ELSIF message_tag == "change_columns" %] + [% title = "Change columns" %] + Resubmitting your search with new columns... + Click here + if the page does not automatically refresh. + + [% ELSIF message_tag == "classification_created" %] + [% title = "New Classification Created" %] + The [% classification.name FILTER html %] classification has been created. + + [% ELSIF message_tag == "classification_deleted" %] + [% title = "Classification Deleted" %] + The [% classification.name FILTER html %] classification has been deleted. + + [% ELSIF message_tag == "classification_updated" %] + [% title = "Classification Updated" %] + [% IF changes.keys.size %] + Changes to the [% classification.name FILTER html %] classification + have been saved: +
      + [% IF changes.name.defined %] +
    • Name updated to '[% classification.name FILTER html %]'
    • + [% END %] + [% IF changes.description.defined %] + [% IF classification.description %] +
    • Description updated to '[% classification.description FILTER html %]'
    • + [% ELSE %] +
    • Description removed
    • + [% END %] + [% END %] + [% IF changes.sortkey.defined %] +
    • Sortkey updated to '[% classification.sortkey FILTER html %]'
    • + [% END %] + [% Hook.process('classification_updated_fields') %] +
    + [% ELSE %] + No changes made to [% classification.name FILTER html %]. + [% END %] + + [% ELSIF message_tag == "component_created" %] + [% title = "Component Created" %] + The component [% comp.name FILTER html %] has been created. + + [% ELSIF message_tag == "component_deleted" %] + [% title = "Component Deleted" %] + The component [% comp.name FILTER html %] has been deleted. + [% IF comp.bug_count %] + All [% terms.bugs %] being in this component and all references + to them have also been deleted. + [% END %] + + [% ELSIF message_tag == "component_updated" %] + [% title = "Component Updated" %] + [% IF changes.keys.size %] + Changes to the component [% comp.name FILTER html %] have been saved: +
      + [% IF changes.name.defined %] +
    • Name updated to '[% comp.name FILTER html %]'
    • + [% END %] + [% IF changes.description.defined %] +
    • Description updated to '[% comp.description FILTER html_light %]'
    • + [% END %] + [% IF changes.initialowner.defined %] +
    • Default assignee updated to '[% comp.default_assignee.login FILTER html %]'
    • + [% END %] + [% IF changes.initialqacontact.defined %] + [% IF comp.default_qa_contact.id %] +
    • Default QA contact updated to '[% comp.default_qa_contact.login FILTER html %]'
    • + [% ELSE %] +
    • Default QA contact deleted
    • + [% END %] + [% END %] + [% IF changes.cc_list.defined %] + [% IF comp.initial_cc.size %] + [% cc_list = [] %] + [% FOREACH cc_user = comp.initial_cc %] + [% cc_list.push(cc_user.login) %] + [% END %] +
    • Default CC list updated to [% cc_list.join(", ") FILTER html %]
    • + [% ELSE %] +
    • Default CC list deleted
    • + [% END %] + [% END %] + [% Hook.process('component_updated_fields') %] +
    + [% ELSE %] + No changes made to [% comp.name FILTER html %]. + [% END %] + + [% ELSIF message_tag == "custom_field_created" %] + [% title = "Custom Field Created" %] + The new custom field '[% field.name FILTER html %]' has been + successfully created. + + [% ELSIF message_tag == "custom_field_deleted" %] + [% title = "Custom Field Deleted" %] + The custom field '[% field.name FILTER html %]' has been + successfully deleted. + + [% ELSIF message_tag == "custom_field_updated" %] + [% title = "Custom Field Updated" %] + Properties of the '[% field.name FILTER html %]' field have been + successfully updated. + + [% ELSIF message_tag == "default_settings_updated" %] + [% IF changes_saved %] + Changes to default preferences have been saved. + [% ELSE %] + No changes made. + [% END %] + + [% ELSIF message_tag == "emailold_change_canceled" %] + [% title = "Cancel Request to Change Email Address" %] + The request to change the email address for your account to + [%+ new_email FILTER html %] has been canceled. + + [% ELSIF message_tag == "email_change_canceled" %] + [% title = "Cancel Request to Change Email Address" %] + The request to change the email address for the + account [%+ old_email FILTER html %] to + [%+ new_email FILTER html %] has been canceled. + + [% ELSIF message_tag == "email_change_canceled_reinstated" %] + [% title = "Cancel Request to Change Email Address" %] + The request to change the email address for the + account [%+ old_email FILTER html %] to + [%+ new_email FILTER html %] has been canceled. + Your old account settings have been reinstated. + + [% ELSIF message_tag == "extension_created" %] + An extension named [% name FILTER html %] has been created + in [% path FILTER html %]. Make sure you change "YOUR NAME" and + "YOUR EMAIL ADDRESS" in the code to your name and your email address. + + [% ELSIF message_tag == "field_value_created" %] + [% title = "New Field Value Created" %] + The value [% value.name FILTER html %] has been added as a + valid choice for the [% field.description FILTER html %] + ([% field.name FILTER html %]) field. + [% IF field.name == "bug_status" %] + You should now visit the status workflow + page to include your new [% terms.bug %] status. + [% END %] + + [% ELSIF message_tag == "field_value_deleted" %] + [% title = "Field Value Deleted" %] + The value [% value.name FILTER html %] of the + [% field.description FILTER html %] + ([% field.name FILTER html %]) field has been deleted. + + [% ELSIF message_tag == "field_value_updated" %] + [% title = "Field Value Updated" %] + [% IF changes.keys.size %] + The [% value_old FILTER html %] value of the + [% field.description FILTER html %] + ([% field.name FILTER html %]) field has been changed: +
      + [% IF changes.value %] +
    • Field value updated to + [% changes.value.1 FILTER html %]. + [% IF value.is_default %] + (Note that this value is the default for this field. All + references to the default value will now point to this new value.) + [% END %] +
    • + [% END %] + [% IF changes.sortkey %] +
    • Sortkey updated to + [% changes.sortkey.1 FILTER html %].
    • + [% END %] + [% IF changes.visibility_value_id %] + [% IF value.visibility_value.defined %] +
    • It only appears when + [%+ value.field.value_field.description FILTER html %] is set to + '[%+ value.visibility_value.name FILTER html %]'.
    • + [% ELSE %] +
    • It now always appears, no matter what + [%+ value.field.value_field.description FILTER html %] is set to. +
    • + [% END %] + [% END %] +
    + [% ELSE %] + No changes made to the field value [% value_old FILTER html %]. + [% END %] + + [% ELSIF message_tag == "flag_cleared" %] + Some flags didn't apply in the new product/component + and have been cleared. + + [% ELSIF message_tag == "flag_creation_failed" %] + [% title = "Flag Creation Failure" %] + An error occured while validating flags: + [%+ flag_creation_error FILTER none %] + + [% ELSIF message_tag == "get_field_desc" %] + [% field_descs.$field_name FILTER html %] + + [% ELSIF message_tag == "get_resolution" %] + [% display_value("resolution", resolution) FILTER html %] + + [% ELSIF message_tag == "get_status" %] + [% display_value("bug_status", status) FILTER html %] + + [% ELSIF message_tag == "group_created" %] + [% title = "New Group Created" %] + The group [% group.name FILTER html %] has been created. + + [% ELSIF message_tag == "group_deleted" %] + [% title = "Group Deleted" %] + The group [% name FILTER html %] has been deleted. + + [% ELSIF message_tag == "group_membership_removed" %] + [% title = "Group Membership Removed" %] + [% IF users.size %] + Explicit membership to the [% group FILTER html %] group removed + [% IF regexp %] for users matching '[% regexp FILTER html %]'[% END %]: + [% FOREACH user = users %] + [%+ user.login FILTER html %] + [% END %] + [% ELSE %] + No users are being affected by your action. + [% END %] + + [% ELSIF message_tag == "group_updated" %] + [% IF changes.keys.size %] + The following changes have been made to the '[% group.name FILTER html %]' + group: +
      + [% FOREACH field = changes.keys.sort %] + [% SWITCH field %] + [% CASE 'name' %] +
    • The name was changed to '[% changes.name.1 FILTER html %]'
    • + [% CASE 'description' %] +
    • The description was updated.
    • + [% CASE 'userregexp' %] +
    • The regular expression was updated.
    • + [% CASE 'isactive' %] + [% IF changes.isactive.1 %] +
    • The group will now be used for [% terms.bugs %].
    • + [% ELSE %] +
    • The group will no longer be used for [% terms.bugs %].
    • + [% END %] + [% CASE 'icon_url' %] +
    • The group icon URL has been updated.
    • + [% CASE 'members_add' %] +
    • The following groups are now members of this group: + [%+ changes.members_add.join(', ') FILTER html %]
    • + [% CASE 'members_remove' %] +
    • The following groups are no longer members of this group: + [%+ changes.members_remove.join(', ') FILTER html %]
    • + [% CASE 'member_of_add' %] +
    • This group is now a member of the following groups: + [%+ changes.member_of_add.join(', ') FILTER html %]
    • + [% CASE 'member_of_remove' %] +
    • This group is no longer a member of the following groups: + [%+ changes.member_of_remove.join(', ') FILTER html %]
    • + [% CASE 'bless_from_add' %] +
    • The following groups may now add users to this group: + [%+ changes.bless_from_add.join(', ') FILTER html %]
    • + [% CASE 'bless_from_remove' %] +
    • The following groups may no longer add users to this group: + [%+ changes.bless_from_remove.join(', ') FILTER html %]
    • + [% CASE 'bless_to_add' %] +
    • This group may now add users to the following groups: + [%+ changes.bless_to_add.join(', ') FILTER html %]
    • + [% CASE 'bless_to_remove' %] +
    • This group may no longer add users to the following groups: + [%+ changes.bless_to_remove.join(', ') FILTER html %]
    • + [% CASE 'visible_from_add' %] +
    • The following groups can now see users in this group: + [%+ changes.visible_from_add.join(', ') FILTER html %]
    • + [% CASE 'visible_from_remove' %] +
    • The following groups may no longer see users in this group: + [%+ changes.visible_from_remove.join(', ') FILTER html %]
    • + [% CASE 'visible_to_me_add' %] +
    • This group may now see users in the following groups: + [%+ changes.visible_to_me_add.join(', ') FILTER html %]
    • + [% CASE 'visible_to_me_remove' %] +
    • This group may no longer see users in the following groups: + [%+ changes.visible_to_me_remove.join(', ') FILTER html %]
    • + [% END %] + [% END %] +
    + [% ELSE %] + You didn't request any change for the '[% group.name FILTER html %]' + group. + [% END %] + + [% ELSIF message_tag == "invalid_column_name" %] + The custom sort order specified contains one or more invalid + column names: [% invalid_fragments.join(', ') FILTER html %]. + They have been removed from the sort list. + + [% ELSIF message_tag == "job_queue_depth" %] + [% count FILTER html %] jobs in the queue. + + [% ELSIF message_tag == "keyword_created" %] + [% title = "New Keyword Created" %] + The keyword [% name FILTER html %] has been created. + + [% ELSIF message_tag == "keyword_deleted" %] + [% title = "Keyword Deleted" %] + The [% keyword.name FILTER html %] keyword has been deleted. + After you have finished editing keywords, you need to + rebuild the keyword + cache (on a very large installation of [% terms.Bugzilla %], + this can take several minutes). + + [% ELSIF message_tag == "keyword_updated" %] + [% title = "Keyword Updated" %] + [% IF changes.keys.size %] + Changes to the [% keyword.name FILTER html %] keyword have + been saved: +
      + [% IF changes.name.defined %] +
    • + Keyword renamed to [% keyword.name FILTER html %]. + After you have finished editing keywords, you need to + rebuild + the keyword cache (on a very large installation + of [% terms.Bugzilla %], this can take several minutes). +
    • + [% END %] + [% IF changes.description.defined %] +
    • Description updated to [% keyword.description FILTER html %]
    • + [% END %] +
    + [% ELSE %] + No changes made. + [% END %] + + [% ELSIF message_tag == "logged_out" %] + [% title = "Logged Out" %] + [% url = "index.cgi?GoAheadAndLogIn=1" %] + [% link = "Log in again." %] + Your login has been forgotten. + The cookie that was remembering your login is now gone. You will be + prompted for a login the next time it is required. + + [% ELSIF message_tag == "login_changed" %] + [% title = "$terms.Bugzilla Login Changed" %] + Your [% terms.Bugzilla %] login has been changed. + + [% ELSIF message_tag == "migrate_component_created" %] + Component created: [% comp.name FILTER html %] + (in [% product.name FILTER html %]) + + [% ELSIF message_tag == "migrate_creating_bugs" %] + Creating [% terms.bugs %]... + + [% ELSIF message_tag == "migrate_field_created" %] + New custom field: [% field.description FILTER html %] + ([% field.name FILTER html %]) + + [% ELSIF message_tag == "migrate_product_created" %] + Product created: [% created.name FILTER html %] + + [% ELSIF message_tag == "migrate_reading_bugs" %] + Reading [% terms.bugs %]... + + [% ELSIF message_tag == "migrate_reading_products" %] + Reading products... + + [% ELSIF message_tag == "migrate_reading_users" %] + Reading users... + + [% ELSIF message_tag == "migrate_translating_bugs" %] + Converting [% terms.bug %] values to be appropriate for + [%+ terms.Bugzilla %]... + + [% ELSIF message_tag == "migrate_user_created" %] + User created: [% created.email FILTER html %] + [% IF password %] Password: [% password FILTER html %][% END %] + + [% ELSIF message_tag == "migrate_value_created" %] + [% IF product.defined %] + [% product.name FILTER html %] + [% END %] + [%+ field_descs.${field.name} FILTER html %] value + created: [% value FILTER html %] + + [% ELSIF message_tag == "milestone_created" %] + [% title = "Milestone Created" %] + The milestone [% milestone.name FILTER html %] has been created. + + [% ELSIF message_tag == "milestone_deleted" %] + [% title = "Milestone Deleted" %] + The milestone [% milestone.name FILTER html %] has been deleted. + [% IF milestone.bug_count %] + [%+ terms.Bugs %] targetted to this milestone have been retargetted to + the default milestone [% product.default_milestone FILTER html %]. + [% END %] + + [% ELSIF message_tag == "milestone_updated" %] + [% title = "Milestone Updated" %] + [% IF changes.size %] + Changes to the milestone [% milestone.name FILTER html %] + have been saved: +
      + [% IF changes.value.defined %] +
    • Milestone name updated to [% milestone.name FILTER html %]
    • + [% END %] + [% IF changes.sortkey.defined %] +
    • Sortkey updated to [% milestone.sortkey FILTER html %] + [% END %] +
    + [% ELSE %] + No changes made to milestone [% milestone.name FILTER html %]. + [% END %] + + [% ELSIF message_tag == "parameters_updated" %] + [% title = "Parameters Updated" %] + [% IF param_changed.size > 0 %] + [% FOREACH param = param_changed %] + Changed [% param FILTER html %]
    + [% IF param == 'utf8' && Param('utf8') %] + You must now re-run checksetup.pl.
    + [% END %] + [% END %] + [% ELSE %] + No changes made. + [% END %] + + [% IF shutdown_is_active == 1 %] +
    + [% terms.Bugzilla %] has now been shut down. To re-enable the system, + clear the shutdownhtml field. + [% END%] + + [% ELSIF message_tag == "password_change_canceled" %] + [% title = "Cancel Request to Change Password" %] + Your request has been canceled. + + [% ELSIF message_tag == "password_change_request" %] + [% title = "Request to Change Password" %] + A token for changing your password has been emailed to you. + Follow the instructions in that email to change your password. + + [% ELSIF message_tag == "password_changed" %] + [% title = "Password Changed" %] + Your password has been changed. + + [% ELSIF message_tag == "flag_type_created" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Created[% END %] + The flag type [% name FILTER html %] has been created. + + [% ELSIF message_tag == "flag_type_changes_saved" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Changes Saved[% END %] + Your changes to the flag type [% name FILTER html %] + have been saved. + + [% ELSIF message_tag == "flag_type_deleted" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Deleted[% END %] + The flag type [% name FILTER html %] has been deleted. + + [% ELSIF message_tag == "flag_type_deactivated" %] + [% title = BLOCK %]Flag Type '[% flag_type.name FILTER html %]' Deactivated[% END %] + The flag type [% flag_type.name FILTER html %] has been deactivated. + + [% ELSIF message_tag == "install_admin_get_email" %] + Enter the e-mail address of the administrator: + + [% ELSIF message_tag == "install_admin_get_name" %] + Enter the real name of the administrator: + + [% ELSIF message_tag == "install_admin_get_password" %] + Enter a password for the administrator account: + + [% ELSIF message_tag == "install_admin_created" %] + [% user.login FILTER html %] is now set up as an administrator. + + [% ELSIF message_tag == "install_admin_setup" %] + Looks like we don't have an administrator set up yet. + Either this is your first time using [% terms.Bugzilla %], or your + administrator's privileges might have accidentally been deleted. + + [% ELSIF message_tag == "install_column_add" %] + Adding new column '[% column FILTER html %]' to the '[% table FILTER html %]' table... + + [% ELSIF message_tag == "install_column_drop" %] + Deleting the '[% column FILTER html %]' column from the '[% table FILTER html %]' table... + + [% ELSIF message_tag == "install_column_rename" %] + Renaming column '[% old FILTER html %]' to '[% new FILTER html %]'... + + [% ELSIF message_tag == "install_confirm_password" %] + Please retype the password to verify: + + [% ELSIF message_tag == "install_default_classification" %] + Creating default classification '[% name FILTER html %]'... + + [% ELSIF message_tag == "install_default_product" %] + Creating initial dummy product '[% name FILTER html %]'... + + [% ELSIF message_tag == "install_file_perms_fix" %] + Fixing file permissions... + + [% ELSIF message_tag == "install_fk_add" %] + Adding foreign key: [% table FILTER html %].[% column FILTER html %] -> [% fk.TABLE FILTER html %].[% fk.COLUMN FILTER html %]... + + [% ELSIF message_tag == "install_fk_drop" %] + Dropping foreign key: [% table FILTER html %].[% column FILTER html %] -> [% fk.TABLE FILTER html %].[% fk.COLUMN FILTER html %]... + + [% ELSIF message_tag == "install_fk_invalid" %] + ERROR: There are invalid values for the [% column FILTER html %] column in the [% table FILTER html %] + table. (These values do not exist in the [% foreign_table FILTER html %] table, in the + [% foreign_column FILTER html %] column.) + + Before continuing with checksetup, you will need to fix these values, + either by deleting these rows from the database, or changing the values + of [% column FILTER html %] in [% table FILTER html %] to point to valid values in [% foreign_table FILTER html %].[% foreign_column FILTER html %]. + + The bad values from the [% table FILTER html %].[% column FILTER html %] column are: + [%+ values.join(', ') FILTER html %] + + [% ELSIF message_tag == "install_fk_invalid_fixed" %] + WARNING: There were invalid values in [% table FILTER html %].[% column FILTER html %] + that have been [% IF action == 'delete' %]deleted[% ELSE %]set to NULL[% END %]: + [%+ values.join(', ') FILTER html %] + + [% ELSIF message_tag == "install_group_create" %] + Creating group [% name FILTER html %]... + + [% ELSIF message_tag == "install_setting_new" %] + Adding a new user setting called '[% name FILTER html %]' + + [% ELSIF message_tag == "install_table_drop" %] + Dropping the '[% name FILTER html %]' table... + + [% ELSIF message_tag == "install_table_rename" %] + Renaming the '[% old FILTER html %]' table to '[% new FILTER html %]'... + + [% ELSIF message_tag == "install_urlbase_default" %] + Now that you have installed [% terms.Bugzilla %], you should visit the + 'Parameters' page (linked in the footer of the Administrator + account) to ensure it is set up as you wish - this includes + setting the 'urlbase' option to the correct URL. + + [% ELSIF message_tag == "install_reset_password" %] + Enter a new password for [% user.login FILTER html %]: + + [% ELSIF message_tag == "install_reset_password_done" %] + New password set. + + [% ELSIF message_tag == "install_webservergroup_empty" %] + **************************************************************************** + WARNING! You have not entered a value for the "webservergroup" parameter + in localconfig. This means that certain files and directories which need + to be editable by both you and the web server must be world writable, and + other files (including the localconfig file which stores your database + password) must be world readable. This means that _anyone_ who can obtain + local access to this machine can do whatever they want to your + [%+ terms.Bugzilla %] installation, and is probably also able to run + arbitrary Perl code as the user that the web server runs as. + + You really, really, really need to change this setting. + **************************************************************************** + + [% ELSIF message_tag == "install_webservergroup_not_in" %] + Warning: you have entered a value for the "webservergroup" parameter in + localconfig, but you are not either a) running this script as [% constants.ROOT_USER FILTER html %]; + or b) a member of this group. This can cause permissions problems and + decreased security. If you experience problems running [% terms.Bugzilla %] + scripts, log in as [% constants.ROOT_USER FILTER html %] and re-run this script, become a + member of the group, or remove the value of the "webservergroup" parameter. + + [% ELSIF message_tag == "install_webservergroup_windows" %] + Warning: You have set webservergroup in [% constants.bz_locations.localconfig FILTER html %] + Please understand that this does not bring you any security when + running under Windows. + Verify that the file permissions in your [% terms.Bugzilla %] directory are + suitable for your system. Avoid unnecessary write access. + + [% ELSIF message_tag == "product_created" %] + [% title = "Product Created" %] + The product [% product.name FILTER html %] has been created. You will need to + + add at least one component before anyone can enter [% terms.bugs %] against this product. + + [% ELSIF message_tag == "product_deleted" %] + [% title = "Product Deleted" %] + The product [% product.name FILTER html %] and all its versions, + components, milestones and group controls have been deleted. + [% IF product.bug_count %] + All [% terms.bugs %] being in this product and all references + to them have also been deleted. + [% END %] + + [% ELSIF message_tag == "product_invalid" %] + [% title = "$terms.Bugzilla Component Descriptions" %] + The product [% product FILTER html %] does not exist + or you don't have access to it. The following is a list of the + products you can choose from. + + [% ELSIF message_tag == "remaining_time_zeroed" %] + The [% field_descs.remaining_time FILTER html %] field has been + set to zero automatically as part of closing this [% terms.bug %] + or moving it from one closed state to another. + + [% ELSIF message_tag == "sanitycheck" %] + [%# We use this way to call sanitycheck-specific messages so that + # we can still use get_text(). %] + [% PROCESS "admin/sanitycheck/messages.html.tmpl" %] + + [% ELSIF message_tag == "series_all_open" %] + All Open + + [% ELSIF message_tag == "series_all_closed" %] + All Closed + + [% ELSIF message_tag == "series_subcategory" %] + -All- + + [% ELSIF message_tag == "sudo_started" %] + [% title = "Sudo session started" %] + The sudo session has been started. For the next 6 hours, or until you + end the session, everything you do you do as the user you are + impersonating ([% target FILTER html %]). + + [% ELSIF message_tag == "sudo_ended" %] + [% title = "Sudo session complete" %] + The sudo session has been ended. From this point forward, everything you + do you do as yourself. + + [% ELSIF message_tag == "series_created" %] + [% title = "Series Created" %] + The series [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %] + has been created. Note that you may need to wait up to + [%+ series.frequency * 2 %] days before there will be enough data for a + chart of this series to be produced. + + [% ELSIF message_tag == "series_deleted" %] + [% title = "Series Deleted" %] + The series [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %] + has been deleted. + + [% ELSIF message_tag == "shutdown" %] + [% title = "$terms.Bugzilla is Down" %] + [% Param("shutdownhtml") %] + [% IF userid %] +

    For security reasons, you have been logged out automatically. + The cookie that was remembering your login is now gone. + [% END %] + + [% ELSIF message_tag == "term" %] + [% terms.$term FILTER html %] + + [% ELSIF message_tag == "unexpected_flag_types" %] + Some flags could not be set. Please check your changes. + + [% ELSIF message_tag == "user_match_failed" %] + You entered a username that did not match any known + [% terms.Bugzilla %] users, so we have instead left + the [% match_field FILTER html %] field blank. + + [% ELSIF message_tag == "user_match_multiple" %] + You entered a username that matched more than one + user, so we have instead left the [% match_field FILTER html %] + field blank. + + [% ELSIF message_tag == "version_created" %] + [% title = "Version Created" %] + The version [% version.name FILTER html %] of product + [% product.name FILTER html %] has been created. + + [% ELSIF message_tag == "version_deleted" %] + [% title = "Version Deleted" %] + The version [% version.name FILTER html %] of product + [% product.name FILTER html %] has been deleted. + + [% ELSIF message_tag == "version_updated" %] + [% title = "Version Updated" %] + [% IF changes.size %] + [% IF changes.value.defined %] + Version renamed to [% version.name FILTER html %]. + [% END %] + [% ELSE %] + No changes made to version [% version.name FILTER html %]. + [% END %] + + [% ELSIF message_tag == "workflow_updated" %] + The workflow has been updated. + [% END %] +[% END %] + +[% IF !message %] + [% message = Hook.process('messages') %] +[% END %] + +[%# Give sensible error if the message function is used incorrectly. #%] +[% IF !message %] + [% message = BLOCK %] + You are using [% terms.Bugzilla %]'s messaging functions incorrectly. You + passed in the string '[% message_tag %]'. The correct use is to pass + in a tag, and define that tag in the file messages.html.tmpl.
    +
    + If you are a [% terms.Bugzilla %] end-user seeing this message, please + save this page and send it to [% Param('maintainer') %]. + [% END %] +[% END %] diff --git a/template/en/default/global/per-bug-queries.html.tmpl b/template/en/default/global/per-bug-queries.html.tmpl new file mode 100644 index 0000000..3c62e35 --- /dev/null +++ b/template/en/default/global/per-bug-queries.html.tmpl @@ -0,0 +1,100 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[% IF user.id && user.settings.per_bug_queries.value == "on" %] +

    +[% END %] diff --git a/template/en/default/global/select-menu.html.tmpl b/template/en/default/global/select-menu.html.tmpl new file mode 100644 index 0000000..f8d4d68 --- /dev/null +++ b/template/en/default/global/select-menu.html.tmpl @@ -0,0 +1,64 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # name: string; the name of the menu. + # + # multiple: boolean; whether or not the menu is multi-select + # + # size: integer; the number of items to display at once + # + # options: array or hash; the items with which to populate the array. + # If a hash is passed, the hash keys become the names displayed + # to the user while the hash values become the value of the item. + # + # default: string; the item selected in the menu by default. + # + # onchange: code; JavaScript to be run when the user changes the value + # selected in the menu. + #%] + +[%# Get the scalar representation of the options reference, + # which looks like "ARRAY(0xA352BA3F)" or "HASH(0xA352BA3F)", + # so we can figure out whether it is a reference to an array + # or a hash. + #%] +[% options_type = BLOCK %][% options %][% END %] + + diff --git a/template/en/default/global/setting-descs.none.tmpl b/template/en/default/global/setting-descs.none.tmpl new file mode 100644 index 0000000..661334c --- /dev/null +++ b/template/en/default/global/setting-descs.none.tmpl @@ -0,0 +1,51 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Shane H. W. Travis + # + #%] + +[%# Remember to PROCESS rather than INCLUDE this template. %] + +[% PROCESS global/variables.none.tmpl %] + +[% setting_descs = { + "comment_sort_order" => "When viewing $terms.abug, show comments in this order", + "csv_colsepchar" => "Field separator character for CSV files", + "display_quips" => "Show a quip at the top of each $terms.bug list", + "zoom_textareas" => "Zoom textareas large when in use (requires JavaScript)", + "newest_to_oldest" => "Newest to Oldest", + "newest_to_oldest_desc_first" => "Newest to Oldest, but keep Description at the top", + "off" => "Off", + "oldest_to_newest" => "Oldest to Newest", + "on" => "On", + "per_bug_queries" => "Enable tags for $terms.bugs", + "post_bug_submit_action" => "After changing $terms.abug", + "next_bug" => "Show next $terms.bug in my list", + "same_bug" => "Show the updated $terms.bug", + "standard" => "Classic", + "skin" => "$terms.Bugzilla's general appearance (skin)", + "nothing" => "Do Nothing", + "state_addselfcc" => "Automatically add me to the CC list of $terms.bugs I change", + "always" => "Always", + "never" => "Never", + "cc_unless_role" => "Only if I have no role on them", + "lang" => "Language used in email", + "quote_replies" => "Quote the associated comment when you click on its reply link", + "quoted_reply" => "Quote the full comment", + "simple_reply" => "Reference the comment number only", + "timezone" => "Timezone used to display dates and times", + "local" => "Same as the server", + } +%] + +[% Hook.process('settings') %] diff --git a/template/en/default/global/site-navigation.html.tmpl b/template/en/default/global/site-navigation.html.tmpl new file mode 100644 index 0000000..df60b76 --- /dev/null +++ b/template/en/default/global/site-navigation.html.tmpl @@ -0,0 +1,101 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Toms Baugis + # Gervase Markham + #%] + +[%# INTERFACE: + # bug.bug_id: integer. Number of current bug (for navigation purposes) + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% IF NOT (cgi.user_agent("MSIE [1-6]") OR cgi.user_agent("Mozilla/4")) %] + + + [%# *** Attachment *** %] + [% IF attachment && attachment.bug_id %] + + [% END %] + + + [%# *** Dependencies, Votes, Activity, Print-version *** %] + [% IF bug %] + + [% IF Param('webdotbase') %] + + [% END %] + + [% IF bug.use_votes %] + + [% END %] + + + + [% END %] + + + [%# *** Saved Searches *** %] + [% IF user.showmybugslink %] + [% user_login = user.login FILTER url_quote %] + + [% END %] + + [% FOREACH q = user.queries %] + + [% END %] + + [% FOREACH q = user.queries_subscribed %] + + [% END %] + + [%# *** Bugzilla Administration Tools *** %] + [% IF user.login %] + [% '' IF user.in_group('tweakparams') %] + [% '' IF user.in_group('editusers') %] + [% '' + IF user.in_group('editcomponents') || user.get_products_by_permission("editcomponents").size %] + [% '' IF user.in_group('editcomponents') %] + [% '' IF user.in_group('creategroups') %] + [% '' IF user.in_group('editkeywords') %] + [% '' IF user.in_group('bz_canusewhines') %] + [% '' IF user.in_group('editcomponents') %] + [% END %] +[% END %] diff --git a/template/en/default/global/tabs.html.tmpl b/template/en/default/global/tabs.html.tmpl new file mode 100644 index 0000000..85556c4 --- /dev/null +++ b/template/en/default/global/tabs.html.tmpl @@ -0,0 +1,56 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Myk Melez + # Marc Schumann + #%] + +[%# INTERFACE: + # tabs: List of hashes. Must have at least one item. Each hash has: + # name: string. Name of the tab. + # link: string. relative URL to the tab's resource on this installation. + # label: string. text displayed in the tab. + # current_tab_name: string. name of the currently selected tab + #%] + +
    + + + + + [% FOREACH tab = tabs %] + [% IF tab.name == current_tab_name %] + + [% ELSE %] + + [% END %] + [% END %] + + + +
      + [% tab.label FILTER html %] + [% tab.label FILTER html %] +  
    + +
    + [% content %] +
    + +
    diff --git a/template/en/default/global/textarea.html.tmpl b/template/en/default/global/textarea.html.tmpl new file mode 100644 index 0000000..d20422e --- /dev/null +++ b/template/en/default/global/textarea.html.tmpl @@ -0,0 +1,50 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Marc Schumann + #%] + +[%# INTERFACE: + # + # id: (optional) The "id"-attribute of the textarea. + # name: (optional) The "name"-attribute of the textarea. + # accesskey: (optional) The "accesskey"-attribute of the textarea. + # style: (optional) The "style"-attribute of the textarea. + # classes: (optional) The "class"-attribute of the textarea. + # wrap: (deprecated; optional) The "wrap"-attribute of the textarea. + # minrows: (required) Number of rows the textarea shall have initially + # and when not having focus. + # maxrows: (optional) Number of rows the textarea shall have if + # maximized (which happens on getting focus). If not given, + # the textarea doesn't maximize when getting focus. + # defaultrows: (optional) Number of rows the textarea shall have if + # the zoom_textareas user preference if off. If not given, + # minrows will be used. + # cols: (required) Number of columns the textarea shall have. + # defaultcontent: (optional) Default content for the textarea. + #%] + + diff --git a/template/en/default/global/useful-links.html.tmpl b/template/en/default/global/useful-links.html.tmpl new file mode 100644 index 0000000..1f12249 --- /dev/null +++ b/template/en/default/global/useful-links.html.tmpl @@ -0,0 +1,81 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Svetlana Harisova + # Marc Schumann + #%] + +[%# Migration note: this whole file corresponds to the old %commandmenu% + substitution param in 'footerhtml' %] + +[% PROCESS global/variables.none.tmpl %] + + diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl new file mode 100644 index 0000000..4698c94 --- /dev/null +++ b/template/en/default/global/user-error.html.tmpl @@ -0,0 +1,1806 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Frédéric Buclin + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # header_done: boolean. True if the Bugzilla header has already been printed. + # error: string. The tag of the error, or the error message to be displayed + # (deprecated). May contain HTML if it's an error message. + #%] + +[%# This is a list of all the possible user errors. Please keep them in + # alphabetical order by error tag, and leave a blank line between errors. + # + # Note that you must explicitly filter every single template variable + # in this file; if you do not wish to change it, use the "none" filter. + # + # Extension- or custom-specific error handling can be easily added + # via hooks: just place additional code into + # template/en/hook/global/user-error-errors.html.tmpl + # Note: be aware of uniqueness of error string parameter value, since + # nobody can guarantee the hook files processing order in the future. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% DEFAULT title = "Error" %] + +[% error_message = BLOCK %] + [% IF error == "account_creation_disabled" %] + [% title = "Account Creation Disabled" %] + User account creation has been disabled. +
    + New accounts must be created by an administrator. The + maintainer is [% Param("maintainer") %]. + + [% ELSIF error == "account_creation_restricted" %] + [% title = "Account Creation Restricted" %] + User account creation has been restricted. +
    + Contact your administrator or the maintainer + ([% Param("maintainer") %]) for information about + creating an account. + + [% ELSIF error == "account_disabled" %] + [% title = "Account Disabled" %] + [% disabled_reason FILTER none %] +
    + If you believe your account should be restored, please + send email to [% Param("maintainer") %] explaining why. + + [% ELSIF error == "account_exists" %] + [% title = "Account Already Exists" %] + There is already an account with + [% IF email %] + the login name [% email FILTER html %]. + [% ELSE %] + that login name. + [% END %] + + [% ELSIF error == "account_locked" %] + [% title = "Account Locked" %] + Your IP ([% ip_addr FILTER html %]) has been locked out of this + account until [% unlock_at FILTER time %], as you have + exceeded the maximum number of login attempts. + + [% ELSIF error == "alias_has_comma_or_space" %] + [% title = "Invalid Characters In Alias" %] + The alias you entered, [% alias FILTER html %], + contains one or more commas or spaces. Aliases cannot contain + commas or spaces because those characters are used to separate + aliases from each other in lists. Please choose an alias + that does not contain commas and spaces. + + [% ELSIF error == "alias_in_use" %] + [% title = "Alias In Use" %] + [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] + has already taken the alias [% alias FILTER html %]. + Please choose another one. + + [% ELSIF error == "alias_is_numeric" %] + [% title = "Alias Is Numeric" %] + You tried to give this [% terms.bug %] the alias [% alias FILTER html %], + but aliases cannot be merely numbers, since they could + then be confused with [% terms.bug %] IDs. Please choose an + alias containing at least one letter. + + [% ELSIF error == "alias_too_long" %] + [% title = "Alias Too Long" %] + [% terms.Bug %] aliases cannot be longer than 20 characters. + Please choose a shorter alias. + + [% ELSIF error == "auth_cant_create_account" %] + [% title = "Can't create accounts" %] + This site is using an authentication scheme which does not permit + account creation. Please contact an administrator to get a new account + created. + + [% ELSIF error == "auth_failure" %] + [% title = "Authorization Required" %] + [% admindocslinks = {'groups.html' => 'Group Security'} %] + Sorry, + [% IF group %] + you aren't a member of the '[% group FILTER html %]' group, + [% END %] + + [% IF reason %] + [% IF group %] and [% END %] + [% IF reason == "cant_bless" %] + you don't have permissions to add or remove people from a group, + [% ELSIF reason == "not_visible" %] + there are visibility restrictions on certain user groups, + [% END %] + [% END %] + + [% IF group || reason %] and so [% END %] you are not authorized to + [% IF action == "access" %] + access + [% ELSIF action == "add" %] + add new + [% ELSIF action == "begin" %] + begin + [% ELSIF action == "modify" %] + modify + [% ELSIF action == "delete" %] + delete + [% ELSIF action == "edit" %] + add, modify or delete + [% ELSIF action == "move" %] + move + [% ELSIF action == "run" %] + run + [% ELSIF action == "schedule" %] + schedule + [% ELSIF action == "use" %] + use + [% ELSIF action == "approve" %] + approve + [% END %] + + [% IF object == "administrative_pages" %] + administrative pages + [% ELSIF object == "attachment" %] + [% IF attach_id %] + attachment #[% attach_id FILTER html %] + [% ELSE %] + this attachment + [% END %] + [% ELSIF object == "bugs" %] + [%+ terms.bugs %] + [% ELSIF object == "charts" %] + the "New Charts" feature + [% ELSIF object == "classifications" %] + classifications + [% ELSIF object == "components" %] + components + [% ELSIF object == "custom_fields" %] + custom fields + [% ELSIF object == "field_values" %] + field values + [% ELSIF object == "flagtypes" %] + flag types + [% ELSIF object == "group_access" %] + group access + [% ELSIF object == "groups" %] + groups + [% ELSIF object == "keywords" %] + keywords + [% ELSIF object == "milestones" %] + milestones + [% ELSIF object == "multiple_bugs" %] + multiple [% terms.bugs %] at once + [% ELSIF object == "parameters" %] + parameters + [% ELSIF object == "products" %] + products + [% ELSIF object == "quips" %] + quips + [% ELSIF object == "reports" %] + whine reports + [% ELSIF object == "sanity_check" %] + a sanity check + [% ELSIF object == "settings" %] + settings + [% ELSIF object == "sudo_session" %] + a sudo session + [% ELSIF object == "timetracking_summaries" %] + time-tracking summary reports + [% ELSIF object == "user" %] + the user [% IF userid %] with ID '[% userid FILTER html %]' + [% ELSE %]you specified [% END %] + [% ELSIF object == "users" %] + users + [% ELSIF object == "versions" %] + versions + [% ELSIF object == "workflow" %] + the workflow + [% END %]. + + [% Hook.process("auth_failure") %] + + [% ELSIF error == "attachment_deletion_disabled" %] + [% title = "Attachment Deletion Disabled" %] + Attachment deletion is disabled on this installation. + + [% ELSIF error == "attachment_illegal_url" %] + [% title = "Illegal Attachment URL" %] + [% url FILTER html %] is not a legal URL for attachments. + It must start either with http://, https:// or ftp://. + + [% ELSIF error == "attachment_removed" %] + [% title = "Attachment Removed" %] + The attachment you are attempting to access has been removed. + + [% ELSIF error == "bug_access_denied" %] + [% title = "Access Denied" %] + [% admindocslinks = {'groups.html' => 'Group Security'} %] + You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %]. + + [% ELSIF error == "bug_access_query" %] + [% title = "Access Denied" %] + [% docslinks = {'myaccount.html' => 'Creating an account'} %] + You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %]. + To see this [% terms.bug %], you must + first log + in to an account with the appropriate permissions. + + [% ELSIF error == "bug_url_invalid" %] + [% title = "Invalid $terms.Bug URL" %] + [% url FILTER html %] is not a valid URL to [% terms.abug %]. + [% IF reason == 'http' %] + URLs must start with "http" or "https". + [% ELSIF reason == 'show_bug' %] + [%+ terms.Bug %] URLs should point to show_bug.cgi + in a [% terms.Bugzilla %] installation. + [% ELSIF reason == 'id' %] + There is no valid [% terms.bug %] id in that URL. + [% END %] + + [% ELSIF error == "bug_url_too_long" %] + [% title = "Invalid $terms.Bug URL" %] + [% terms.Bug %] URLs can not be longer than + [%+ constants.MAX_BUG_URL_LENGTH FILTER none %] characters long. + [% url FILTER html %] is too long. + + [% ELSIF error == "buglist_parameters_required" %] + [% title = "Parameters Required" %] + [% docslinks = {'query.html' => "Searching for $terms.bugs", + 'query.html#list' => "$terms.Bug lists"} %] + You may not search, or create saved searches, without any search terms. + + [% ELSIF error == "chart_too_large" %] + [% title = "Chart Too Large" %] + Sorry, but 2000 x 2000 is the maximum size for a chart. + + [% ELSIF error == "comment_id_invalid" %] + [% id FILTER html %] is not a valid comment id. + + [% ELSIF error == "comment_invalid_isprivate" %] + You tried to modify the privacy of comment id [% id FILTER html %], + but that is not a valid comment on this [% terms.bug %]. + + [% ELSIF error == "comment_is_private" %] + Comment id [% id FILTER html %] is private. + + [% ELSIF error == "comment_required" %] + [% title = "Comment Required" %] + You have to specify a + [% IF old && new %] + comment when changing the status of [% terms.abug %] from + [%+ old.name FILTER html %] to [% new.name FILTER html %]. + [% ELSIF new %] + description for this [% terms.bug %]. + [% ELSE %] + comment on this change. + [% END %] + + [% ELSIF error == "comment_too_long" %] + [% title = "Comment Too Long" %] + Comments cannot be longer than + [%+ constants.MAX_COMMENT_LENGTH FILTER html %] characters. + + [% ELSIF error == "auth_classification_not_enabled" %] + [% title = "Classification Not Enabled" %] + Sorry, classification is not enabled. + + [% ELSIF error == "classification_name_too_long" %] + [% title = "Classification Name Too Long" %] + The name of a classification is limited to [% constants.MAX_CLASSIFICATION_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + +[% ELSIF error == "classification_not_specified" %] + [% title = "You Must Supply A Classification Name" %] + You must enter a classification name. + + [% ELSIF error == "classification_already_exists" %] + [% title = "Classification Already Exists" %] + A classification with the name '[% name FILTER html %]' already exists. + + [% ELSIF error == "classification_invalid_sortkey" %] + [% title = "Invalid Sortkey for Classification" %] + The sortkey '[% sortkey FILTER html %]' is invalid. It must be an + integer between 0 and [% constants.MAX_SMALLINT FILTER html %]. + + [% ELSIF error == "classification_not_deletable" %] + [% title = "Default Classification Can Not Be Deleted" %] + You can not delete the default classification + + [% ELSIF error == "classification_has_products" %] + Sorry, there are products for this classification. You + must reassign those products to another classification before you + can delete this one. + + [% ELSIF error == "component_already_exists" %] + [% title = "Component Already Exists" %] + The [% product.name FILTER html %] product already has + a component named [% name FILTER html %]. + + [% ELSIF error == "component_blank_description" %] + [% title = "Blank Component Description Not Allowed" %] + You must enter a non-blank description for this component. + + [% ELSIF error == "component_blank_name" %] + [% title = "Blank Component Name Not Allowed" %] + You must enter a name for this new component. + + [% ELSIF error == "component_has_bugs" %] + [% title = BLOCK %]Component has [% terms.Bugs %][% END %] + There are [% nb FILTER html %] [%+ terms.bugs %] entered for this component! + You must reassign those [% terms.bugs %] to another component before you + can delete this one. + + [% ELSIF error == "component_name_too_long" %] + [% title = "Component Name Is Too Long" %] + The name of a component is limited to [% constants.MAX_COMPONENT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + + [% ELSIF error == "component_need_initialowner" %] + [% title = "Component Requires Default Assignee" %] + A default assignee is required for this component. + + [% ELSIF error == "customfield_nonexistent" %] + [% title = "Unknown Custom Field" %] + There is no custom field with the name '[% name FILTER html %]'. + + [% ELSIF error == "customfield_not_obsolete" %] + [% title = "Custom Field Not Obsolete" %] + The custom field '[% name FILTER html %]' is not obsolete. + Please obsolete a custom field before attempting to delete it. + + [% ELSIF error == "customfield_has_activity" %] + [% title = "Custom Field Has Activity" %] + The custom field '[% name FILTER html %]' cannot be deleted because + it has recorded activity. + + [% ELSIF error == "customfield_has_contents" %] + [% title = "Custom Field Has Contents" %] + The custom field '[% name FILTER html %]' cannot be deleted because + at least one [% terms.bug %] has a non empty value for this field. + + [% ELSIF error == "dependency_loop_multi" %] + [% title = "Dependency Loop Detected" %] + The following [% terms.bug %](s) would appear on both the "depends on" + and "blocks" parts of the dependency tree if these changes + are committed: + [% FOREACH dep = deps %] + [%+ dep FILTER bug_link(dep) FILTER none %] + [% END %]. + This would create a circular dependency, which is not allowed. + + [% ELSIF error == "dependency_loop_single" %] + [% title = "Dependency Loop Detected" %] + You can't make [% terms.abug %] block itself or depend on itself. + + [% ELSIF error == "dupe_id_required" %] + [% title = "Duplicate $terms.Bug Id Required" %] + You must specify [% terms.abug %] id to mark this [% terms.bug %] + as a duplicate of. + + [% ELSIF error == "dupe_not_allowed" %] + [% title = "Cannot mark $terms.bugs as duplicates" %] + You cannot mark [% terms.bugs %] as duplicates when + changing several [% terms.bugs %] at once. + + [% ELSIF error == "dupe_loop_detected" %] + [% title = "Loop detected among duplicates" %] + You cannot mark [% terms.bug %] [%+ bug_id FILTER html %] as + a duplicate of + [% IF dupe_of == bug_id %] + itself + [% ELSE %] + [%+ terms.bug %] [%+ dupe_of FILTER html %], because it + would create a duplicate loop + [% END %]. + + [% ELSIF error == "email_change_in_progress" %] + [% title = "Email Change Already In Progress" %] + Email change already in progress; please check your email. + + [% ELSIF error == "email_confirmation_failed" %] + [% title = "Email Address Confirmation Failed" %] + Email address confirmation failed. + + [% ELSIF error == "email_no_text_plain" %] + Your message did not contain any text.[% terms.Bugzilla %] does not + accept HTML-only email, or HTML email with attachments. + + [% ELSIF error == "empty_group_description" %] + [% title = "The group description can not be empty" %] + You must enter a description for the group. + + [% ELSIF error == "empty_group_name" %] + [% title = "The group name can not be empty" %] + You must enter a name for the group. + + [% ELSIF error == "entry_access_denied" %] + [% title = "Permission Denied" %] + [% admindocslinks = {'groups.html' => 'Group Security'} %] + Sorry, either the product [% product FILTER html %] + does not exist or you aren't authorized to + enter [% terms.abug %] into it. + + [% ELSIF error == "extension_create_no_name" %] + You must specify a name for your extension, as an argument to this script. + + [% ELSIF error == "extension_first_letter_caps" %] + The first letter of your extension's name must be a capital letter. + (You specified '[% name FILTER html %]'.) + + [% ELSIF error == "field_already_exists" %] + [% title = "Field Already Exists" %] + The field '[% field.name FILTER html %]' + ([% field.description FILTER html %]) already exists. Please + choose another name. + + [% ELSIF error == "field_cant_control_self" %] + [% title = "Field Can't Control Itself" %] + The [% field.description FILTER html %] field can't be set to control + itself. + + [% ELSIF error == "field_control_must_be_select" %] + [% title = "Invalid Field Type Selected" %] + Only drop-down and multi-select fields can be used to control + the visibility/values of other fields. [% field.description FILTER html %] + is not the right type of field. + + [% ELSIF error == "field_invalid_name" %] + [% title = "Invalid Field Name" %] + '[% name FILTER html %]' is not a valid name for a field. + A name may contain only letters, numbers, and the underscore character. + + [% ELSIF error == "field_invalid_sortkey" %] + [% title = "Invalid Sortkey for Field" %] + The sortkey [% sortkey FILTER html %] that you have provided for + this field is not a valid positive integer. + + [% ELSIF error == "field_missing_description" %] + [% title = "Missing Description for Field" %] + You must enter a description for this field. + + [% ELSIF error == "field_missing_name" %] + [% title = "Missing Name for Field" %] + You must enter a name for this field. + + [% ELSIF error == "field_value_control_select_only" %] + [% title = "Invalid Value Control Field" %] + Only Drop-Down or Multi-Select fields can have a field that + controls their values. + + [% ELSIF error == "fieldname_invalid" %] + [% title = "Specified Field Does Not Exist" %] + The field '[% field.name FILTER html %]' does not exist or + cannot be edited with this interface. + + [% ELSIF error == "fieldvalue_already_exists" %] + [% title = "Field Value Already Exists" %] + The value '[% value.name FILTER html %]' already exists for the + [%+ field.description FILTER html %] field. + + [% ELSIF error == "fieldvalue_is_controller" %] + [% title = "Value Controls Other Fields" %] + You cannot delete the [% value.field.description FILTER html %] + '[% value.name FILTER html %]' because + [% IF fields.size %] + it controls the visibility of the following fields: + [%+ fields.join(', ') FILTER html %]. + [% END %] + [% ' and ' IF fields.size AND vals.size %] + [% IF vals.size %] + it controls the visibility of the following field values: +
      + [% FOREACH field_name = vals.keys %] + [% FOREACH val = vals.${field_name} %] +
    • [% val.field.name FILTER html %]: + '[% val.name FILTER html %]'
    • + [% END %] + [% END %] +
    + [% END %] + + [% ELSIF error == "fieldvalue_is_default" %] + [% title = "Specified Field Value Is Default" %] + '[% value.name FILTER html %]' is the default value for + the '[% field.description FILTER html %]' field and cannot be deleted. + [% IF user.in_group('tweakparams') %] + You have to change the default value first. + [% END %] + + [% ELSIF error == "fieldvalue_name_too_long" %] + [% title = "Field Value Is Too Long" %] + The value of a field is limited to + [%+ constants.FIELD_VALUE_MAX_SIZE FILTER none %] characters. + '[% value FILTER html %]' is too long ([% value.length %] characters). + + [% ELSIF error == "fieldvalue_not_editable" %] + [% title = "Field Value Not Editable" %] + The value '[% old_value.name FILTER html %]' cannot be renamed because + it plays some special role for the '[% field.description FILTER html %]' + field. + + [% ELSIF error == "fieldvalue_not_deletable" %] + [% title = "Field Value Not Deletable" %] + The value '[% value.name FILTER html %]' cannot be removed because + it plays some special role for the '[% field.description FILTER html %]' + field. + + [% ELSIF error == "fieldvalue_reserved_word" %] + [% title = "Reserved Word Not Allowed" %] + You cannot use the value '[% value FILTER html %]' for the + '[% field.description FILTER html %]' field. This value is used internally. + Please choose another one. + + [% ELSIF error == "fieldvalue_sortkey_invalid" %] + [% title = "Invalid Field Value Sortkey" %] + The sortkey '[% sortkey FILTER html %]' for the + [%+ field.description FILTER html %] field is not a valid + (positive) number. + + [% ELSIF error == "fieldvalue_still_has_bugs" %] + [% title = "You Cannot Delete This Field Value" %] + You cannot delete the value '[% value.name FILTER html %]' from the + [% field.description FILTER html %] field, because there are still + [%+ value.bug_count FILTER html %] [%+ terms.bugs %] using it. + + [% ELSIF error == "fieldvalue_undefined" %] + [% title = "Undefined Value Not Allowed" %] + You must specify a value. + + [% ELSIF error == "file_not_specified" %] + [% title = "No File Specified" %] + You did not specify a file to attach. + + [% ELSIF error == "file_too_large" %] + [% title = "File Too Large" %] + The file you are trying to attach is [% filesize FILTER html %] + kilobytes (KB) in size. Non-patch attachments cannot be more than + [%+ Param('maxattachmentsize') %] KB.
    + We recommend that you store your attachment elsewhere + [% IF Param("allow_attach_url") %] + and then specify the URL to this file on the attachment + creation page in the AttachURL field. + [% ELSE %] + and then insert the URL to it in a comment, or in the URL field + for this [% terms.bug %]. + [% END %] +
    Alternately, if your attachment is an image, you could convert + it to a compressible format like JPG or PNG and try again. + + [% ELSIF error == "flag_requestee_needs_privs" %] + [% title = "Flag Requestee Needs Privileges" %] + [% requestee.identity FILTER html %] does not have permission to set the + [% flagtype.name FILTER html %] flag. Please select a user who is + a member of the [% flagtype.grant_group.name FILTER html %] group. + + [% ELSIF error == "flag_requestee_unauthorized" %] + [% title = "Flag Requestee Not Authorized" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', + 'groups.html' => 'Group Security'} %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + + You asked [% requestee.identity FILTER html %] + for [% flag_type.name FILTER html %] on [% terms.bug %] + [%+ bug_id FILTER html -%] + [% IF attach_id && attach_id > 0 %], attachment [% attach_id FILTER html %][% END %], + but that [% terms.bug %] has been restricted to users in certain groups, + and the user you asked isn't in all the groups to which + the [% terms.bug %] has been restricted. + Please choose someone else to ask, or make the [% terms.bug %] accessible + to users on its CC: list and add that user to the list. + + [% ELSIF error == "flag_requestee_unauthorized_attachment" %] + [% title = "Flag Requestee Not Authorized" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', + 'groups.html' => 'Group Security'} %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + + You asked [% requestee.identity FILTER html %] + for [% flag_type.name FILTER html %] on + [%+ terms.bug %] [%+ bug_id FILTER html %], + attachment [% attach_id FILTER html %], but that attachment + is restricted to users in the [% Param("insidergroup") FILTER html %] group, + and the user you asked isn't in that group. Please choose someone else + to ask, or ask an administrator to add the user to the group. + + [% ELSIF error == "flag_type_cc_list_invalid" %] + [% title = "Flag Type CC List Invalid" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] + The CC list [% cc_list FILTER html %] must be less than 200 characters long. + + [% ELSIF error == "flag_type_component_without_product" %] + [% title = "Product Missing" %] + A component was selected without a product being selected. + + [% ELSIF error == "flag_type_description_invalid" %] + [% title = "Flag Type Description Invalid" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] + The description must be less than 32K. + + [% ELSIF error == "flag_type_name_invalid" %] + [% title = "Flag Type Name Invalid" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] + The name [% name FILTER html %] must be 1-50 characters long + and must not contain any spaces or commas. + + [% ELSIF error == "flag_type_not_multiplicable" %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + You cannot have several [% type.name FILTER html %] flags + for this [% IF attachment %] attachment [% ELSE %] [%+ terms.bug %] [% END %]. + + [% ELSIF error == "flag_update_denied" %] + [% title = "Flag Modification Denied" %] + [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', + 'groups.html' => 'Group Security'} %] + [% docslinks = {'flags-overview.html' => 'An overview on Flags', + 'flags.html' => 'Using Flags'} %] + You tried to [% IF status == "+" %] grant [% ELSIF status == "-" %] deny + [% ELSIF status == "X" %] clear [% ELSE %] request [% END %] + [% name FILTER html %] + [% IF status == "X" %][% old_status FILTER html %][% END %]. + + Only a user with the required permissions may make this change. + + [% ELSIF error == "format_not_found" %] + [% title = "Format Not Found" %] + The requested format [% format FILTER html %] does not exist with + a content type of [% ctype FILTER html %]. + + [% ELSIF error == "flag_type_sortkey_invalid" %] + [% title = "Flag Type Sort Key Invalid" %] + The sort key must be an integer between 0 and 32767 inclusive. + It cannot be [% sortkey FILTER html %]. + + [% ELSIF error == "freetext_too_long" %] + [% title = "Text Too Long" %] + The text you entered is too long ([% text.length FILTER html %] characters, + above the maximum length allowed of [% constants.MAX_FREETEXT_LENGTH FILTER none %] + characters): +

    [% text FILTER html %]

    + + [% ELSIF error == "group_cannot_delete" %] + [% title = "Cannot Delete Group" %] + The [% group.name FILTER html %] group cannot be deleted because + there are + records + in the database which refer to it. All references to this group must + be removed before you can remove it. + + [% ELSIF error == "group_change_denied" %] + [% title = "Cannot Add/Remove That Group" %] + You tried to add or remove group id [% group_id FILTER html %] + from [% terms.bug %] [%+ bug.id FILTER html %], but you do not + have permissions to do so. + + [% ELSIF error == "group_exists" %] + [% title = "The group already exists" %] + The group [% name FILTER html %] already exists. + + [% ELSIF error == "group_has_special_role" %] + [% title = "Group not deletable" %] + [% IF groups.size == 1 %] + [% attr = "it" %] + [% param = "parameter" %] + [% ELSE %] + [% attr = "them" %] + [% param = "parameters" %] + [% END %] + The group '[% name FILTER html %]' is used by the + '[% groups.join("' and '") FILTER html %]' [% param FILTER html %]. + In order to delete this group, you first have to change the + [%+ param FILTER html %] to make [% attr FILTER html %] point to another group. + + + [% ELSIF error == "group_invalid_removal" %] + You tried to remove [% terms.bug %] [%+ bug.id FILTER html %] + from group id [% group_id FILTER html %], but [% terms.bugs %] in the + '[% product FILTER html %]' product can not be removed from that + group. + + [% ELSIF error == "group_invalid_restriction" %] + You tried to restrict [% terms.bug %] [%+ bug.id FILTER html %] to + to group id [% group_id FILTER html %], but [% terms.bugs %] in the + '[% product FILTER html %]' product can not be restricted to + that group. + + [% ELSIF error == "group_not_specified" %] + [% title = "Group not specified" %] + No group was specified. + + [% ELSIF error == "system_group_not_deletable" %] + [% title = "System Groups not deletable" %] + [% name FILTER html %] is a system group. + This group cannot be deleted. + + [% ELSIF error == "group_unknown" %] + [% title = "Unknown Group" %] + The group [% name FILTER html %] does not exist. Please specify + a valid group name. Create it first if necessary! + + [% ELSIF error == "illegal_at_least_x_votes" %] + [% title = "Your Search Makes No Sense" %] + The At least ___ votes field must be a simple number. + You entered [% value FILTER html %], which isn't. + + [% ELSIF error == "illegal_attachment_edit" %] + [% title = "Unauthorized Action" %] + You are not authorized to edit attachment [% attach_id FILTER html %]. + + [% ELSIF error == "illegal_attachment_edit_bug" %] + [% title = "Unauthorized Action" %] + You are not authorized to edit attachments on [% terms.bug %] + [%+ bug_id FILTER html %]. + + [% ELSIF error == "illegal_attachment_is_patch" %] + [% title = "Your Search Makes No Sense" %] + The only legal values for the Attachment is patch field are + 0 and 1. + + [% ELSIF error == "illegal_bug_status_transition" %] + [% title = "Illegal $terms.Bug Status Change" %] + [% IF old.defined %] + You are not allowed to change the [% terms.bug %] status from + [%+ old.name FILTER html %] to [% new.name FILTER html %]. + [% ELSE %] + You are not allowed to file new [% terms.bugs %] with the + [%+ new.name FILTER html %] status. + [% END %] + + [% ELSIF error == "illegal_change" %] + [% title = "Not allowed" %] + You tried to change the + [% field_descs.$field FILTER html %] field + [% IF oldvalue.defined %] + from [% oldvalue.join(', ') FILTER html %] + [% END %] + [% IF newvalue.defined %] + to [% newvalue.join(', ') FILTER html %] + [% END %] + , but only + [% IF privs < 3 %] + the assignee + [% IF privs < 2 %] or reporter [% END %] + of the [% terms.bug %], or + [% END %] + a user with the required permissions may change that field. + + [% ELSIF error == "illegal_change_deps" %] + [% title = "Not allowed" %] + You tried to change the + [% field_descs.$field FILTER html %] field + but only a user allowed to edit + both related [% terms.bugs %] may change that field. + + [% ELSIF error == "illegal_changed_in_last_x_days" %] + [% title = "Your Search Makes No Sense" %] + The Changed in last ___ days field must be a simple number. + You entered [% value FILTER html %], which isn't. + + [% ELSIF error == "illegal_date" %] + [% title = "Illegal Date" %] + '[% date FILTER html %]' is not a legal date. + [% IF format %] + Please use the format '[% format FILTER html %]'. + [% END %] + + [% ELSIF error == "illegal_email_address" %] + [% title = "Invalid Email Address" %] + The e-mail address you entered ([% addr FILTER html %]) + didn't pass our syntax checking for a legal email address. + [% IF default %] + A legal address must contain exactly one '@', + and at least one '.' after the @. + [% ELSE %] + [%+ Param('emailregexpdesc') %] + [% END %] + It must also not contain any of these special characters: + \ ( ) & < > , ; : " [ ], or any whitespace. + + [% ELSIF error == "illegal_frequency" %] + [% title = "Too Frequent" %] + Unless you are an administrator, you may not create series which are + run more often than once every [% minimum FILTER html %] days. + + [% ELSIF error == "illegal_group_control_combination" %] + [% title = "Your Group Control Combination Is Illegal" %] + [% admindocslinks = {'groups.html' => 'Assigning Group Controls to Products'} %] + Your group control combination for group " + [% groupname FILTER html %]" is illegal. + + [% ELSIF error == "illegal_is_obsolete" %] + [% title = "Your Search Makes No Sense" %] + The only legal values for the Attachment is obsolete field are + 0 and 1. + + [% ELSIF error == "illegal_query_name" %] + [% title = "Illegal Search Name" %] + The name of your search cannot contain any of the following characters: + <, >, &. + + [% ELSIF error == "illegal_series_creation" %] + [% admindocslinks = {'groups.html' => 'Group security'} %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You are not authorized to create series. + + [% ELSIF error == "illegal_series_edit" %] + [% admindocslinks = {'groups.html' => 'Group security'} %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You are not authorized to edit this series. To do this, you must either + be its creator, or an administrator. + + [% ELSIF error == "illegal_time" %] + [% title = "Illegal Time" %] + '[% time FILTER html %]' is not a legal time. + [% IF format %] + Please use the format '[% format FILTER html %]'. + [% END %] + + [% ELSIF error == "illegal_regexp" %] + [% title = "Illegal Regular Expression" %] + The regular expression you provided [% value FILTER html %] is not valid. + The error was: [% dberror FILTER html %]. + + [% ELSIF error == "insufficient_data_points" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + We don't have enough data points to make a graph (yet). + + [% ELSIF error == "invalid_attach_id" %] + [% title = "Invalid Attachment ID" %] + The attachment id [% attach_id FILTER html %] is invalid. + + [% ELSIF error == "bug_id_does_not_exist" %] + [% title = BLOCK %]Invalid [% terms.Bug %] ID[% END %] + [% terms.Bug %] #[% bug_id FILTER html %] does not exist. + + [% ELSIF error == "improper_bug_id_field_value" %] + [% title = BLOCK %] + [% IF bug_id %]Invalid [% ELSE %]Missing [% END %] [% terms.Bug %] ID + [% END %] + [% IF bug_id %] + '[% bug_id FILTER html %]' is not a valid [% terms.bug %] number + [% IF Param("usebugaliases") %] + nor an alias to [% terms.abug %] + [% END %]. + [% ELSE %] + [% IF field %] + The '[% field_descs.$field FILTER html %]' field + cannot be empty. + [% END %] + You must enter a valid [% terms.bug %] number! + [% END %] + + [% ELSIF error == "invalid_changedsince" %] + [% title = "Invalid 'Changed Since'" %] + The 'changed since' value, '[% changedsince FILTER html %]', must be an + integer >= 0. + + [% ELSIF error == "invalid_content_type" %] + [% title = "Invalid Content-Type" %] + The content type [% contenttype FILTER html %] is invalid. + Valid types must be of the form foo/bar where foo + is one of [% constants.LEGAL_CONTENT_TYPES.join(', ') FILTER html %]. + + [% ELSIF error == "invalid_context" %] + [% title = "Invalid Context" %] + The context [% context FILTER html %] is invalid (must be a number, + "file" or "patch"). + + [% ELSIF error == "invalid_datasets" %] + [% title = "Invalid Datasets" %] + Invalid datasets [% datasets FILTER html %]. Only digits, + letters and colons are allowed. + + [% ELSIF error == "invalid_format" %] + [% title = "Invalid Format" %] + The format "[% format FILTER html %]" is invalid (must be one of + [% FOREACH my_format = formats %] + "[% my_format FILTER html %]" + [% END %] + ). + + [% ELSIF error == "invalid_group_ID" %] + [% title = "Invalid group ID" %] + The group you specified doesn't exist. + + [% ELSIF error == "invalid_group_name" %] + [% title = "Invalid group name" %] + The group you specified, [% name FILTER html %], is not valid here. + + [% ELSIF error == "invalid_maxrows" %] + [% title = "Invalid Max Rows" %] + The maximum number of rows, '[% maxrows FILTER html %]', must be + a positive integer. + + [% ELSIF error == "invalid_parameter" %] + [% title = "Invalid Parameter" %] + The new value for [% name FILTER html %] is invalid: [% err FILTER html %]. + + [% ELSIF error == "invalid_product_name" %] + [% title = "Invalid Product Name" %] + The product name '[% product FILTER html %]' is invalid or does not exist. + + [% ELSIF error == "invalid_regexp" %] + [% title = "Invalid regular expression" %] + The regular expression you entered is invalid. + + [% ELSIF error == "invalid_user_group" %] + [% title = "Invalid User Group" %] + [% IF users.size > 1 %] Users [% ELSE %] User [% END %] + '[% users.join(', ') FILTER html %]' + [% IF users.size > 1 %] are [% ELSE %] is [% END %] + not able to edit the + [% IF product %] + '[% product FILTER html %]' + [% END %] + [%+ field_descs.product FILTER html %] + [% IF bug_id %] + for [% terms.bug %] '[% bug_id FILTER html %]'. + [% ELSIF new %] + and may not be included on a new [% terms.bug %]. + [% ELSE %] + for at least one [% terms.bug %] being changed. + [% END %] + + [% ELSIF error == "invalid_username" %] + [% title = "Invalid Username" %] + The name [% name FILTER html %] is not a valid username. + Either you misspelled it, or the person has not + registered for a [% terms.Bugzilla %] account. + + [% ELSIF error == "invalid_username_or_password" %] + [% title = "Invalid Username Or Password" %] + The username or password you entered is not valid. + [%# People get two login attempts before being warned about + # being locked out. + #%] + [% IF remaining <= 2 %] + If you do not enter the correct password after + [%+ remaining FILTER html %] more attempt(s), you will be + locked out of this account for + [%+ constants.LOGIN_LOCKOUT_INTERVAL FILTER html %] minutes. + [% END %] + + [% ELSIF error == "json_rpc_post_only" %] + For security reasons, you may only use JSON-RPC with the POST + HTTP method. + + [% ELSIF error == "keyword_already_exists" %] + [% title = "Keyword Already Exists" %] + A keyword with the name [% name FILTER html %] already exists. + + [% ELSIF error == "keyword_blank_description" %] + [% title = "Blank Keyword Description Not Allowed" %] + You must enter a non-blank description for the keyword. + + [% ELSIF error == "keyword_blank_name" %] + [% title = "Blank Keyword Name Not Allowed" %] + You must enter a non-blank name for the keyword. + + [% ELSIF error == "keyword_invalid_name" %] + [% title = "Invalid Keyword Name" %] + You may not use commas or whitespace in a keyword name. + + [% ELSIF error == "local_file_too_large" %] + [% title = "Local File Too Large" %] + Local file uploads must not exceed + [% Param('maxlocalattachment') %] MB in size. + + [% ELSIF error == "login_needed_for_password_change" %] + [% title = "Login Name Required" %] + You must enter a login name when requesting to change your password. + + [% ELSIF error == "login_required_for_pronoun" %] + [% title = "Login Name Required" %] + You can't use %user% without being logged in, because %user% refers + to your login name, which we don't know. + + [% ELSIF error == "login_required" %] + [%# Used for non-web-based LOGIN_REQUIRED situations. %] + You must log in before using this part of [% terms.Bugzilla %]. + + [% ELSIF error == "migrate_config_created" %] + The file [% file FILTER html %] contains configuration + variables that must be set before continuing with the migration. + + [% ELSIF error == "migrate_from_invalid" %] + '[% from FILTER html %]' is not a valid type of [% terms.bug %]-tracker + to migrate from. See the contents of the B[% %]ugzilla/Migrate/ + directory for a list of valid [% terms.bug %]-trackers. + + [% ELSIF error == "milestone_already_exists" %] + [% title = "Milestone Already Exists" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'milestones.html' => 'About Milestones'} %] + The milestone '[% name FILTER html %]' already exists for product ' + [%- product FILTER html %]'. + + [% ELSIF error == "milestone_blank_name" %] + [% title = "Blank Milestone Name Not Allowed" %] + You must enter a name for this milestone. + + [% ELSIF error == "milestone_is_default" %] + [% title = "Default milestone not deletable" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'milestones.html' => 'About Milestones'} %] + Sorry, but [% milestone.name FILTER html %] is the default milestone + for the '[% milestone.product.name FILTER html %]' product, and so + it cannot be deleted. + + [% ELSIF error == "milestone_name_too_long" %] + [% title = "Milestone Name Is Too Long" %] + The name of a milestone is limited to [% constants.MAX_MILESTONE_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + + [% ELSIF error == "milestone_required" %] + [% title = "Milestone Required" %] + You must select a target milestone for [% terms.bug %] + [%+ bug.id FILTER html %] + if you are going to accept it. Part of accepting + [%+ terms.abug %] is giving an estimate of when it will be fixed. + + [% ELSIF error == "milestone_sortkey_invalid" %] + [% title = "Invalid Milestone Sortkey" %] + The sortkey '[% sortkey FILTER html %]' is not in the range + [%+ constants.MIN_SMALLINT FILTER html %] ≤ sortkey ≤ + [%+ constants.MAX_SMALLINT FILTER html %]. + + [% ELSIF error == "misarranged_dates" %] + [% title = "Misarranged Dates" %] + Your start date ([% datefrom FILTER html %]) is after + your end date ([% dateto FILTER html %]). + + [% ELSIF error == "missing_attachment_description" %] + [% title = "Missing Attachment Description" %] + You must enter a description for the attachment. + + [% ELSIF error == "missing_category" %] + [% title = "Missing Category" %] + You did not specify a category for this series. + + [% ELSIF error == "missing_component" %] + [% title = "Missing Component" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'components.html' => 'Creating a component'} %] + Sorry, the product [% product.name FILTER html %] + has to have at least one component in order for you to + enter [% terms.abug %] into it.
    + [% IF user.in_group("editcomponents", product.id) %] + Create + a new component. + [% ELSE %] + Please contact [% Param("maintainer") %] and ask them + to add a component to this product. + [% END %] + + [% ELSIF error == "missing_content_type" %] + [% title = "Missing Content-Type" %] + You asked [% terms.Bugzilla %] to auto-detect the content type, but + your browser did not specify a content type when uploading the file, + so you must enter a content type manually. + + [% ELSIF error == "missing_content_type_method" %] + [% title = "Missing Content-Type Determination Method" %] + You must choose a method for determining the content type, + either auto-detect, select from list, or enter + manually. + + [% ELSIF error == "missing_cookie" %] + [% title = "Missing Cookie" %] + Sorry, I seem to have lost the cookie that recorded + the results of your last search. I'm afraid you will have to start + again from the search page. + + [% ELSIF error == "missing_datasets" %] + [% title = "No Datasets Selected" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You must specify one or more datasets to plot. + + [% ELSIF error == "missing_frequency" %] + [% title = "Missing Frequency" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You did not specify a valid frequency for this series. + + [% ELSIF error == "missing_name" %] + [% title = "Missing Name" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You did not specify a name for this series. + + [% ELSIF error == "missing_query" %] + [% title = "Missing Search" %] + [% docslinks = {'query.html' => "Searching for $terms.bugs", + 'query.html#list' => "$terms.Bug lists"} %] + The search named [% queryname FILTER html %] + [% IF sharer_id && sharer_id != user.id %] + has not been made visible to you. + [% ELSE %] + does not exist. + [% END %] + + [% ELSIF error == "missing_resolution" %] + [% title = "Resolution Required" %] + A valid resolution is required to mark [% terms.bugs %] as + [%+ status FILTER upper FILTER html %]. + + [% ELSIF error == "move_bugs_disabled" %] + [% title = BLOCK %][% terms.Bug %] Moving Disabled[% END %] + Sorry, [% terms.bug %] moving has been disabled. If you need + to move [% terms.abug %], please contact [% Param("maintainer") %]. + + [% ELSIF error == "missing_subcategory" %] + [% title = "Missing Subcategory" %] + You did not specify a subcategory for this series. + + [% ELSIF error == "missing_version" %] + [% title = "Missing Version" %] + [% admindocslinks = {'versions.html' => 'Defining versions'} %] + Sorry, the product [% product.name FILTER html %] + has to have at least one version in order for you to + enter [% terms.abug %] into it.
    + [% IF user.in_group("editcomponents", product.id) %] + Create + a new version. + [% ELSE %] + Please contact [% Param("maintainer") %] and ask them + to add a version to this product. + [% END %] + + [% ELSIF error == "need_quip" %] + [% title = "Quip Required" %] + [% docslinks = {'quips.html' => 'About quips'} %] + Please enter a quip in the text field. + + [% ELSIF error == "new_password_missing" %] + [% title = "New Password Missing" %] + You must enter a new password. + + [% ELSIF error == "no_axes_defined" %] + [% title = "No Axes Defined" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + You didn't define any axes to plot. + + [% ELSIF error == "no_bugs_chosen" %] + [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %] + You apparently didn't choose any [% terms.bugs %] + [% IF action == "modify" %] + to modify. + [% ELSIF action == "view" %] + to view. + [% END %] + + [% ELSIF error == "no_bug_ids" %] + [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %] + You didn't choose any [% terms.bugs %] to + [% IF action == "add" %] add to [% ELSE %] remove from [% END %] + the [% tag FILTER html %] tag. + + [% ELSIF error == "no_bugs_in_list" %] + [% title = "Delete Tag?" %] + This will remove all [% terms.bugs %] from the + [% name FILTER html %] tag. This will delete the tag completely. Click + here + if you really want to delete it. + + [% ELSIF error == "no_bugs_to_remove" %] + [% title = "No Tag Selected" %] + You didn't select a tag from which to remove [% terms.bugs %]. + + [% ELSIF error == "no_initial_bug_status" %] + [% title = "No Initial $terms.Bug Status" %] + No [% terms.bug %] status is available on [% terms.bug %] creation. + Please report the problem to [% Param("maintainer") %]. + + [% ELSIF error == "no_new_quips" %] + [% title = "No New Quips" %] + [% admindocslinks = {'quips.html' => 'Controlling quip usage'} %] + This site does not permit the addition of new quips. + + [% ELSIF error == "no_page_specified" %] + [% title = "No Page Specified" %] + You did not specify the id of a page to display. + + [% ELSIF error == "no_products" %] + [% title = "No Products" %] + [% admindocslinks = {'products.html' => 'Setting up a product', + 'components.html' => 'Adding components to products', + 'groups.html' => 'Groups security'} %] + Either no products have been defined to enter [% terms.bugs %] against or you have not + been given access to any. + + [% ELSIF error == "no_valid_action" %] + [% title = "No valid action specified" %] + Cannot edit [% field_descs.$field FILTER html %]: no valid action was specified. + + [% ELSIF error == "number_not_numeric" %] + [% title = "Numeric Value Required" %] + The value '[% num FILTER html %]' in the + [% field_descs.$field FILTER html %] field + is not a numeric value. + + [% ELSIF error == "number_too_large" %] + [% title = "Number Too Large" %] + The value '[% num FILTER html %]' in the + [% field_descs.$field FILTER html %] field + is more than the maximum allowable value of '[% max_num FILTER html %]'. + + [% ELSIF error == "number_too_small" %] + [% title = "Number Too Small" %] + The value '[% num FILTER html %]' + in the [% field_descs.$field FILTER html %] field + is less than the minimum allowable value of '[% min_num FILTER html %]'. + + [% ELSIF error == "object_not_specified" %] + [% type = BLOCK %][% INCLUDE object_name class = class %][% END %] + [% title = BLOCK %][% type FILTER ucfirst FILTER html %] Not + Specified[% END %] + You must select/enter a [% type FILTER html %]. + + [% ELSIF error == "object_does_not_exist" %] + [% type = BLOCK %][% INCLUDE object_name class = class %][% END %] + [% title = BLOCK %]Invalid [% type FILTER ucfirst FILTER html %][% END %] + There is no [% type FILTER html %] + [% IF id.defined %] + with the id '[% id FILTER html %]' + [% ELSE %] + named '[% name FILTER html %]' + [% END %] + [% IF product.defined %] + in the '[% product.name FILTER html %]' product + [% END %]. + [% IF class == "Bugzilla::User" %] + Either you mis-typed the name or that user has not yet registered + for a [% terms.Bugzilla %] account. + [% END %] + + [% ELSIF error == "old_password_incorrect" %] + [% title = "Incorrect Old Password" %] + You did not enter your old password correctly. + + [% ELSIF error == "old_password_required" %] + [% title = "Old Password Required" %] + You must enter your old password to change your email address. + + [% ELSIF error == "password_change_requests_not_allowed" %] + [% title = "Password Change Requests Not Allowed" %] + Please go to: http://identity.mageia.org/ to change or recover your password. + + [% ELSIF error == "passwords_dont_match" %] + [% title = "Passwords Don't Match" %] + The two passwords you entered did not match. + + [% ELSIF error == "password_too_short" %] + [% title = "Password Too Short" %] + The password must be at least + [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long. + + [% ELSIF error == "patch_too_large" %] + [% title = "File Too Large" %] + The file you are trying to attach is [% filesize FILTER html %] + kilobytes (KB) in size. + Patches cannot be more than [% Param('maxattachmentsize') %] KB in size. + Try splitting your patch into several pieces. + + [% ELSIF error == "product_access_denied" %] + Either the product + [%+ IF id.defined %] + with the id [% id FILTER html %] + [% ELSE %] + '[% name FILTER html %]' + [% END %] + does not exist or you don't have access to it. + + [% ELSIF error == "product_doesnt_exist" %] + [% title = "Specified Product Does Not Exist" %] + The product '[% product FILTER html %]' does not exist. + + [% ELSIF error == "product_illegal_group" %] + [% title = "Illegal Group" %] + [% group.name FILTER html %] is not an active [% terms.bug %] group + and so you cannot edit group controls for it. + + [% ELSIF error == "product_illegal_votes" %] + [% title = "Votes Must Be Non-negative" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + '[% votes FILTER html %]' is an invalid value for the + + [% IF field == "votesperuser" %] + Votes Per User + [% ELSIF field == "maxvotesperbug" %] + Maximum Votes Per [% terms.Bug %] + [% ELSIF field == "votestoconfirm" %] + Votes To Confirm + [% END %] + field, which should contain a non-negative number. + + [% ELSIF error == "product_name_already_in_use" %] + [% title = "Product name already exists" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + The product name '[% product FILTER html %]' already exists. + + [% ELSIF error == "product_name_diff_in_case" %] + [% title = "Product name differs only in case" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + The product name '[% product FILTER html %]' differs from existing + product '[% existing_product FILTER html %]' only in case. + + [% ELSIF error == "product_name_too_long" %] + [% title = "Product name too long" %] + The name of a product is limited to [% constants.MAX_PRODUCT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + + [% ELSIF error == "product_must_define_defaultmilestone" %] + [% title = "Must define new default milestone" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'milestones.html' => 'About Milestones'} %] + You must + create the milestone '[% milestone FILTER html %]' before + it can be made the default milestone for product '[% product FILTER html %]'. + + [% ELSIF error == "product_admin_denied" %] + [% title = "Product Access Denied" %] + You are not allowed to edit properties of product '[% product FILTER html %]'. + + [% ELSIF error == "product_blank_name" %] + [% title = "Blank Product Name Not Allowed" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + You must enter a name for the product. + + [% ELSIF error == "product_disabled" %] + [% title = BLOCK %]Product closed for [% terms.Bug %] Entry[% END %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + Sorry, entering [% terms.abug %] into the + product [% product.name FILTER html %] has been disabled. + + [% ELSIF error == "product_edit_denied" %] + [% title = "Product Edit Access Denied" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'groups.html' => 'Group security'} %] + You are not permitted to edit [% terms.bugs %] in product + [%+ product FILTER html %]. + + [% ELSIF error == "product_has_bugs" %] + [% title = BLOCK %]Product has [% terms.Bugs %][% END %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + There are [% nb FILTER html %] [%+ terms.bugs %] entered for this product! + You must move those [% terms.bugs %] to another product before you + can delete this one. + + [% ELSIF error == "product_must_have_description" %] + [% title = "Product needs Description" %] + [% admindocslinks = {'products.html' => 'Administering products'} %] + You must enter a description for this product. + + [% ELSIF error == "product_must_have_version" %] + [% title = "Product needs Version" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'versions.html' => 'Administering versions'} %] + You must enter a valid version to create a new product. + + [% ELSIF error == "product_not_specified" %] + [% title = "No Product Specified" %] + [% admindocslinks = {'products.html' => 'Administering products', + 'components.html' => 'Administering components', + 'milestones.html' => 'Administering milestones', + 'versions.html' => 'Administering versions'} %] + No product specified when trying to edit components, milestones, versions + or product. + + [% ELSIF error == "query_name_exists" %] + [% title = "Search Name Already In Use" %] + The name [% name FILTER html %] is already used by another + saved search. You first have to + delete + it if you really want to use this name. + + [% ELSIF error == "query_name_missing" %] + [% title = "No Search Name Specified" %] + [% docslinks = {'query.html#list' => "$terms.Bug lists"} %] + You must enter a name for your search. + + [% ELSIF error == "query_name_too_long" %] + [% title = "Query Name Too Long" %] + The name of the query must be less than [% constants.MAX_LEN_QUERY_NAME FILTER html %] + characters long. + + [% ELSIF error == "quicksearch_unknown_field" %] + [% title = "QuickSearch Error" %] + There is a problem with your search: + [% FOREACH field = unknown %] +

    [% field FILTER html %] is not a valid field name.

    + [% END %] + [% FOREACH field = ambiguous.keys %] +

    [% field FILTER html %] matches more than one field: + [%+ ambiguous.${field}.join(', ') FILTER html %]

    + [% END %] + + [% IF unknown.size %] +

    The legal field names are + listed here.

    + [% END %] + + [% ELSIF error == "reassign_to_empty" %] + [% title = "Illegal Reassignment" %] + To reassign [% terms.abug %], you must provide an address for + the new assignee. + + [% ELSIF error == "require_component" %] + [% title = "Component Needed" %] + To file this [% terms.bug %], you must first choose a component. + If necessary, just guess. + + [% ELSIF error == "require_new_password" %] + [% title = "New Password Needed" %] + You cannot change your password without choosing a new one. + + [% ELSIF error == "require_summary" %] + [% title = "Summary Needed" %] + You must enter a summary for this [% terms.bug %]. + + [% ELSIF error == "resolution_cant_clear" %] + [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] is + closed, so you cannot clear its resolution. + + [% ELSIF error == "resolution_not_allowed" %] + [% title = "Resolution Not Allowed" %] + You cannot set a resolution for open [% terms.bugs %]. + + [% ELSIF error == "saved_search_used_by_whines" %] + [% title = "Saved Search In Use" %] + [% docslinks = {'whining.html' => 'About Whining'} %] + The saved search [% search_name FILTER html %] is being used + by Whining events with the following subjects: + [%+ subjects FILTER html %] + + [% ELSIF error == "search_content_without_matches" %] + [% title = "Illegal Search" %] + The "content" field can only be used with "matches" search + and the "matches" search can only be used with the "content" + field. + + [% ELSIF error == "series_already_exists" %] + [% title = "Series Already Exists" %] + [% docslinks = {'reporting.html' => 'Reporting'} %] + A series named [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %] + already exists. + + [% ELSIF error == "sidebar_supports_mozilla_only" %] + Sorry - sidebar.cgi currently only supports Mozilla based web browsers. + Upgrade today. :-) + + [% ELSIF error == "still_unresolved_bugs" %] + [% IF dependency_count == 1 %] + [% terms.Bug %]# [% dependencies.0.bug_id FILTER none %] + still has [% dependencies.0.dependencies FILTER html %] unresolved + [% IF dependencies.0.dependencies == 1 %] + dependency + [% ELSE %] + dependencies + [% END %]. Show + Dependency + Tree. + [% ELSE %] + There are [% dependency_count FILTER none %] open [% terms.bugs %] which + have unresolved dependencies. +
    + [% FOREACH bug = dependencies %] + [% terms.Bug %]# [% bug.bug_id FILTER none %] + has [% bug.dependencies FILTER html %] open + [% IF bug.dependencies == 1 %] + dependency. + [% ELSE %] + dependencies. + [% END %] + (Dependency + Tree)
    + [% END %] + [% END %] + + [% ELSIF error == "sudo_invalid_cookie" %] + [% title = "Invalid Sudo Cookie" %] + Your sudo cookie is invalid. Either it expired or you didn't start + a sudo session correctly. Refresh the page or load another page + to continue what you are doing as yourself. + + [% ELSIF error == "sudo_illegal_action" %] + [% title = "Impersonation Not Authorized" %] + [% IF NOT sudoer.in_group("bz_sudoers") %] + You are not allowed to impersonate users. + [% ELSIF target_user AND target_user.in_group("bz_sudo_protect") %] + You are not allowed to impersonate [% target_user.identity FILTER html %]. + [% ELSE %] + The user you tried to impersonate doesn't exist. + [% END %] + + [% ELSIF error == "sudo_in_progress" %] + [% title = "Session In Progress" %] + A sudo session (impersonating [% target FILTER html %]) is in progress. + End that session (using the link in the footer) before starting a new one. + + [% ELSIF error == "sudo_password_required" %] + [% title = "Password Required" %] + Your [% terms.Bugzilla %] password is required to begin a sudo + session. Please go back and enter your password. + + [% ELSIF error == "sudo_preparation_required" %] + [% title = "Preparation Required" %] + You may not start a sudo session directly. Please + start your session normally. + + [% ELSIF error == "sudo_protected" %] + [% title = "User Protected" %] + The user [% login FILTER html %] may not be impersonated by sudoers. + + [% ELSIF error == "too_many_votes_for_bug" %] + [% title = "Illegal Vote" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + You may only use at most [% max FILTER html %] votes for a single + [%+ terms.bug %] in the + [% product FILTER html %] product, but you are trying to + use [% votes FILTER html %]. + + [% ELSIF error == "too_many_votes_for_product" %] + [% title = "Illegal Vote" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + You tried to use [% votes FILTER html %] votes in the + [% product FILTER html %] product, which exceeds the maximum of + [%+ max FILTER html %] votes for this product. + + [% ELSIF error == "token_does_not_exist" %] + [% title = "Token Does Not Exist" %] + The token you submitted does not exist, has expired, or has + been canceled. + + [% ELSIF error == "too_soon_for_new_token" %] + [% title = "Too Soon For New Token" %] + You have requested + [% IF type == "password" %] + a password + [% ELSIF type == "account" %] + an account + [% END %] + token too recently to request another. Please wait a while and try again. + + [% ELSIF error == "unknown_keyword" %] + [% title = "Unknown Keyword" %] + [% keyword FILTER html %] is not a known keyword. + The legal keyword names are listed here. + + [% ELSIF error == "unknown_tab" %] + [% title = "Unknown Tab" %] + [% current_tab_name FILTER html %] is not a legal tab name. + + [% ELSIF error == "version_already_exists" %] + [% title = "Version Already Exists" %] + [% admindocslinks = {'versions.html' => 'Administering versions'} %] + The version '[% name FILTER html %]' already exists for product ' + [%- product FILTER html %]'. + + [% ELSIF error == "version_blank_name" %] + [% title = "Blank Version Name Not Allowed" %] + You must enter a name for this version. + + [% ELSIF error == "version_has_bugs" %] + [% title = BLOCK %]Version has [% terms.Bugs %][% END %] + There are [% nb FILTER html %] [%+ terms.bugs %] associated with this + version! You must reassign those [% terms.bugs %] to another version + before you can delete this one. + + [% ELSIF error == "users_deletion_disabled" %] + [% title = "Deletion not activated" %] + [% admindocslinks = {'useradmin.html' => 'User administration'} %] + Sorry, the deletion of user accounts is not allowed. + + [% ELSIF error == "user_has_responsibility" %] + [% title = "Can't Delete User Account" %] + [% admindocslinks = {'useradmin.html' => 'User administration'} %] + The user you want to delete is set up as the default [% terms.bug %] + assignee + [% IF Param('useqacontact') %] + or QA contact + [% END %] + for at least one component. + For this reason, you cannot delete the account at this time. + + [% ELSIF error == "user_access_by_id_denied" %] + [% title = "User Access By Id Denied" %] + Logged-out users cannot use the "ids" argument to this function + to access any user information. + + [% ELSIF error == "user_access_by_match_denied" %] + [% title = "User-Matching Denied" %] + Logged-out users cannot use the "match" argument to this function + to access any user information. + + [% ELSIF error == "user_login_required" %] + [% title = "Login Name Required" %] + [% admindocslinks = {'useradmin.html' => 'User administration'} %] + You must enter a login name for the new user. + + [% ELSIF error == "user_match_failed" %] + [% title = "Match Failed" %] + [% name FILTER html %] does not exist or you are not allowed + to see that user. + + [% ELSIF error == "user_match_too_many" %] + [% title = "No Conclusive Match" %] + [% terms.Bugzilla %] cannot make a conclusive match for one or more + of the names and/or email addresses you entered for + the [% fields.join(', ') FILTER html %] field(s). + + [% ELSIF error == "user_not_insider" %] + [% title = "User Not In Insidergroup" %] + Sorry, but you are not allowed to (un)mark comments or attachments + as private. + + [% ELSIF error == "votes_must_be_nonnegative" %] + [% title = "Votes Must Be Non-negative" %] + [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] + Only use non-negative numbers for your [% terms.bug %] votes. + + [% ELSIF error == "wrong_token_for_cancelling_email_change" %] + [% title = "Wrong Token" %] + That token cannot be used to cancel an email address change. + + [% ELSIF error == "wrong_token_for_changing_passwd" %] + [% title = "Wrong Token" %] + That token cannot be used to change your password. + + [% ELSIF error == "wrong_token_for_confirming_email_change" %] + [% title = "Wrong Token" %] + That token cannot be used to change your email address. + + [% ELSIF error == "wrong_token_for_creating_account" %] + [% title = "Wrong Token" %] + That token cannot be used to create a user account. + + [% ELSIF error == "xmlrpc_invalid_value" %] + "[% value FILTER html %]" is not a valid value for a + <[% type FILTER html %]> field. (See the XML-RPC specification + for details.) + + [% ELSIF error == "zero_length_file" %] + [% title = "File Is Empty" %] + The file you are trying to attach is empty, does not exist, or you don't + have permission to read it. + + [% ELSIF error == "illegal_user_id" %] + [% title = "Illegal User ID" %] + User ID '[% userid FILTER html %]' is not valid integer. + + [% ELSE %] + + [%# Try to find hooked error messages %] + [% error_message = Hook.process("errors") %] + + [% IF not error_message %] + [% title = "Error string not found" %] + The user error string [% error FILTER html %] was not found. + Please send email to [% Param("maintainer") %] describing the steps taken + to obtain this message. + [% ELSE %] + [% error_message FILTER none %] + [% END %] + [% END %] +[% END %] + +[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %] +[% USE Bugzilla %] +[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %] + [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %] + [% error_message FILTER none %] + [% ELSE %] + [% error_message FILTER txt %] + [% END %] + [% RETURN %] +[% END %] + +[% UNLESS header_done %] + [% PROCESS global/header.html.tmpl %] +[% END %] + +[% PROCESS global/docslinks.html.tmpl + docslinks = docslinks + admindocslinks = admindocslinks +%] + + + + + +
    + [% error_message FILTER none %] +
    + +

    + Please press Back and try again. +

    + +[%# If a saved search fails, people want the ability to edit or delete it. + # This is the best way of getting information about that possible saved + # search from any error call location. %] + +[% namedcmd = Bugzilla.cgi.param("namedcmd") %] +[% sharer_id = Bugzilla.cgi.param("sharer_id") %] +[% IF namedcmd AND error != "missing_query" + AND error != "saved_search_used_by_whines" + AND !sharer_id %] +

    + Alternatively, you can + forget + + [% FOREACH q = Bugzilla.user.queries %] + [% IF q.name == namedcmd %] + or edit + [% END %] + [% END %] + + the saved search '[% namedcmd FILTER html %]'. +

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK object_name %] + [% IF class == "Bugzilla::Attachment" %] + attachment + [% ELSIF class == "Bugzilla::User" %] + user + [% ELSIF class == "Bugzilla::Component" %] + component + [% ELSIF class == "Bugzilla::Version" %] + version + [% ELSIF class == "Bugzilla::Milestone" %] + milestone + [% ELSIF class == "Bugzilla::Status" %] + status + [% ELSIF class == "Bugzilla::Flag" %] + flag + [% ELSIF class == "Bugzilla::FlagType" %] + flagtype + [% ELSIF class == "Bugzilla::Field" %] + field + [% ELSIF class == "Bugzilla::Group" %] + group + [% ELSIF class == "Bugzilla::Product" %] + product + [% ELSIF class == "Bugzilla::Search::Saved" %] + saved search + [% ELSIF ( matches = class.match('^Bugzilla::Field::Choice::(.+)') ) %] + [% SET field_name = matches.0 %] + [% field_descs.$field_name FILTER html %] + [% END %] +[% END %] diff --git a/template/en/default/global/user.html.tmpl b/template/en/default/global/user.html.tmpl new file mode 100644 index 0000000..df902b4 --- /dev/null +++ b/template/en/default/global/user.html.tmpl @@ -0,0 +1,39 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Daniel Brooks. + # Portions created by the Initial Developer are Copyright (C) 2007 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Daniel Brooks + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # who: A Bugzilla::User object that we are going to represent. + #%] + + + [% FILTER collapse %] + [% IF user.id %] + ' IF user.id %] + [% END %] + diff --git a/template/en/default/global/userselect.html.tmpl b/template/en/default/global/userselect.html.tmpl new file mode 100644 index 0000000..35075ef --- /dev/null +++ b/template/en/default/global/userselect.html.tmpl @@ -0,0 +1,83 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Byron Jones + # Frédéric Buclin + #%] + +[%# INTERFACE: + # name: mandatory; field name + # id: optional; field id + # value: optional; default field value/selection + # onchange: optional; onchange attribute value + # disabled: optional; if true, the field is disabled + # accesskey: optional, input only; accesskey attribute value + # size: optional, input only; size attribute value + # emptyok: optional, select only; if true, prepend menu option to start of select + # multiple: optional, do multiselect box, value is size (height) of box + # custom_userlist: optional, specify a limited list of users to use + #%] + +[% IF Param("usemenuforusers") %] + +[% ELSE %] + +[% END %] + + diff --git a/template/en/default/global/variables.none.tmpl b/template/en/default/global/variables.none.tmpl new file mode 100644 index 0000000..dd7281e --- /dev/null +++ b/template/en/default/global/variables.none.tmpl @@ -0,0 +1,42 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): + #%] + +[%# This is a list of terms that may be changed to "brand" the Bugzilla + # instance (for example, referring to "bugs" as "issues".) When used, these + # strings are used in several different types of content, and are not + # protected with Template-Toolkit FILTERs. Consequently, no special + # characters are allowed. + # + # Remember to PROCESS rather than INCLUDE this template. + #%] + +[% terms = { + "bug" => "bug", + "Bug" => "Bug", + "abug" => "a bug", + "Abug" => "A bug", + "aBug" => "a Bug", + "ABug" => "A Bug", + "bugs" => "bugs", + "Bugs" => "Bugs", + "zeroSearchResults" => "Zarro Boogs found", + "Bugzilla" => "Bugzilla" + } +%] diff --git a/template/en/default/index.html.tmpl b/template/en/default/index.html.tmpl new file mode 100644 index 0000000..a971b59 --- /dev/null +++ b/template/en/default/index.html.tmpl @@ -0,0 +1,178 @@ +[%# -*- mode: html -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Jacob Steenhagen + # Vitaly Harisov + # Guy Pyrzak + #%] + +[%# INTERFACE: + # release: a hash containing data about new releases, if any. + #%] + +[% PROCESS global/variables.none.tmpl %] + + +[% PROCESS global/header.html.tmpl + title = "$terms.Bugzilla Main Page" + header = "Main Page" + header_addl_info = "version $constants.BUGZILLA_VERSION" + style_urls = [ 'skins/standard/index.css' ] +%] + + + + +[% IF release %] +
    + [% IF release.data %] + [% IF release.deprecated %] +

    [% terms.Bugzilla %] [%+ release.deprecated FILTER html %] is no longer + supported. You are highly encouraged to upgrade in order to keep your + system secure.

    + [% END %] + +

    A new [% terms.Bugzilla %] version ([% release.data.latest_ver FILTER html %]) + is available at + [% release.data.url FILTER html %].
    + Release date: [% release.data.date FILTER html %]

    + +

    This message is only shown to logged in users with admin privs. + You can configure this notification from the + Parameters page.

    + [% ELSIF release.error == "cannot_download" %] +

    The local XML file '[% release.xml_file FILTER html %]' cannot be created. + Please make sure the web server can write in this directory and that you can access + the web. If you are behind a proxy, set the + proxy_url parameter correctly.

    + [% ELSIF release.error == "no_update" %] +

    The local XML file '[% release.xml_file FILTER html %]' cannot be updated. + Please make sure the web server can edit this file.

    + [% ELSIF release.error == "no_access" %] +

    The local XML file '[% release.xml_file FILTER html %]' cannot be read. + Please make sure this file has the correct rights set on it.

    + [% ELSIF release.error == "corrupted" %] +

    The local XML file '[% release.xml_file FILTER html %]' has an invalid XML format. + Please delete it and try accessing this page again.

    + [% ELSIF release.error == "unknown_parameter" %] +

    '[% Param("upgrade_notification") FILTER html %]' is not a valid notification + parameter. Please check this parameter in the + Parameters page.

    + [% END %] +
    +[% END %] + +
    + + + + +
    +

    Welcome to [% terms.Bugzilla %]

    +
    [% Hook.process('intro') %]
    + File [% terms.aBug %] + + Search + + User Preferences + [% ELSE %] + href="http://identity.mageia.org/register">Open a New Account + [% END %] + +
    + +
    +
    [% Hook.process('outro') %]
    +
    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/index.html.tmpl~ b/template/en/default/index.html.tmpl~ new file mode 100644 index 0000000..41a46f4 --- /dev/null +++ b/template/en/default/index.html.tmpl~ @@ -0,0 +1,182 @@ +[%# -*- mode: html -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Jacob Steenhagen + # Vitaly Harisov + # Guy Pyrzak + #%] + +[%# INTERFACE: + # release: a hash containing data about new releases, if any. + #%] + +[% PROCESS global/variables.none.tmpl %] + + +[% PROCESS global/header.html.tmpl + title = "$terms.Bugzilla Main Page" + header = "Main Page" + header_addl_info = "version $constants.BUGZILLA_VERSION" + style_urls = [ 'skins/standard/index.css' ] +%] + + + + +[% IF release %] +
    + [% IF release.data %] + [% IF release.deprecated %] +

    [% terms.Bugzilla %] [%+ release.deprecated FILTER html %] is no longer + supported. You are highly encouraged to upgrade in order to keep your + system secure.

    + [% END %] + +

    A new [% terms.Bugzilla %] version ([% release.data.latest_ver FILTER html %]) + is available at + [% release.data.url FILTER html %].
    + Release date: [% release.data.date FILTER html %]

    + +

    This message is only shown to logged in users with admin privs. + You can configure this notification from the + Parameters page.

    + [% ELSIF release.error == "cannot_download" %] +

    The local XML file '[% release.xml_file FILTER html %]' cannot be created. + Please make sure the web server can write in this directory and that you can access + the web. If you are behind a proxy, set the + proxy_url parameter correctly.

    + [% ELSIF release.error == "no_update" %] +

    The local XML file '[% release.xml_file FILTER html %]' cannot be updated. + Please make sure the web server can edit this file.

    + [% ELSIF release.error == "no_access" %] +

    The local XML file '[% release.xml_file FILTER html %]' cannot be read. + Please make sure this file has the correct rights set on it.

    + [% ELSIF release.error == "corrupted" %] +

    The local XML file '[% release.xml_file FILTER html %]' has an invalid XML format. + Please delete it and try accessing this page again.

    + [% ELSIF release.error == "unknown_parameter" %] +

    '[% Param("upgrade_notification") FILTER html %]' is not a valid notification + parameter. Please check this parameter in the + Parameters page.

    + [% END %] +
    +[% END %] + +
    + + + + +
    +

    Welcome to [% terms.Bugzilla %]

    +
    [% Hook.process('intro') %]
    + File [% terms.aBug %] + + Search + + User Preferences + [% ELSIF Param('createemailregexp') + && user.authorizer.user_can_create_account + %] + href="createaccount.cgi">Open a New Account + [% ELSE %] + href="?GoAheadAndLogIn=1">Log In + [% END %] + +
    + +
    +
    [% Hook.process('outro') %]
    +
    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/list/change-columns.html.tmpl b/template/en/default/list/change-columns.html.tmpl new file mode 100644 index 0000000..36cd5db --- /dev/null +++ b/template/en/default/list/change-columns.html.tmpl @@ -0,0 +1,127 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Lawrence + # Pascal Held + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Change Columns" + javascript_urls = "js/change-columns.js" + onload = "initChangeColumns()" +%] + +

    + Select the columns you wish to appear in your [% terms.bug %] lists. Note that + this feature requires cookies to work. +

    + +[% PROCESS "global/field-descs.none.tmpl" %] +[% field_descs.short_short_desc = "Summary (first 60 characters)" %] +[% field_descs.short_desc = "Full Summary" %] +[% field_descs.assigned_to_realname = "Assignee Realname" %] +[% field_descs.reporter_realname = "Reporter Realname" %] +[% field_descs.qa_contact_realname = "QA Contact Realname" %] + +
    + + + + + + + + + + + + + + +
    Available Columns
    Selected Columns
    + + + +

    + +
    + + + +

    + +
    + +

    + + +
    + + + +

    + + [% IF saved_search %] +

    + + + +

    + [% END %] + +

    + +

    + + +
    + +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/list/edit-multiple.html.tmpl b/template/en/default/list/edit-multiple.html.tmpl new file mode 100644 index 0000000..75f2f83 --- /dev/null +++ b/template/en/default/list/edit-multiple.html.tmpl @@ -0,0 +1,424 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Max Kanat-Alexander + # Frédéric Buclin + # Guy Pyrzak + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% dontchange = "--do_not_change--" %] + + + + + +
    + +

    + To change multiple [% terms.bugs %]:

    +
      +
    1. Check the [% terms.bugs %] you want to change above.
    2. +
    3. Make your changes in the form fields below. If the change + you are making requires an explanation, include it in + the comments box.
    4. +
    5. Click the Commit button.
    6. +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF Param("usetargetmilestone") %] + + + [% END %] + + + + + + + [% IF user.is_timetracker %] + + + + + + + + + + + + + [% END %] + + + + + + + [% IF Param("useqacontact") %] + + + + + [% END %] + + + + + + + + + [% IF use_keywords %] + + + + + + + [% END %] + + + + + + + + + + + + [% IF Param('usestatuswhiteboard') %] + + + + + [% END %] + + [% USE Bugzilla %] + [% FOREACH field = Bugzilla.active_custom_fields %] + + [% PROCESS bug/field.html.tmpl value = dontchange + editable = 1 + allow_dont_change = 1 %] + + [% END %] + + [% Hook.process("after_custom_fields") %] + +
    + [% PROCESS selectmenu menuname = "product" + menuitems = products + property = "name" %] + + [% PROCESS selectmenu menuname = "version" + menuitems = versions + property = "" %] +
    + [% PROCESS selectmenu menuname = "component" + menuitems = components %] + + + + [% PROCESS selectmenu menuname = "priority" + menuitems = priorities %] +
    + + + [% PROCESS selectmenu menuname = "rep_platform" + menuitems = platforms %] + + + + [% PROCESS selectmenu menuname = "bug_severity" + menuitems = severities %] +
    + + + [% PROCESS selectmenu menuname = "op_sys" + menuitems = op_sys %] + + [% PROCESS selectmenu menuname = "target_milestone" + menuitems = targetmilestones %] +
    [% PROCESS status_section %]
    + + + +
    + +   
    + [% INCLUDE global/userselect.html.tmpl + id => "assigned_to" + name => "assigned_to" + value => dontchange + size => 32 + %] + + +
    + [% INCLUDE global/userselect.html.tmpl + id => "qa_contact" + name => "qa_contact" + value => dontchange + size => 32 + %] + + +
    + + +
    + + + + +
    + + + + +
    + + + + +
    + Status Whiteboard: + + +
    + + +[% IF user.is_insider %] + + +[% END %] +
    +[% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 5 + maxrows = 25 + cols = constants.COMMENT_COLS +%]
    + +[% Hook.process('before_groups') %] + +[% IF groups.size > 0 %] + + Groups:
    + + + + + + + + + [% FOREACH group = groups %] + + + + [% IF group.is_active %] + + [% ELSE %] + + [% foundinactive = 1 %] + [% END %] + + + + + [% END %] + +
    Don't
    change
    this group
    restriction
    Remove
    [% terms.bugs %]
    from this
    group
    Add
    [% terms.bugs %]
    to this
    group
    Group Name:
    + + + + + +   + [% SET inactive = !group.is_active %] + [% group.description FILTER html_light FILTER inactive(inactive) %] +
    + + [% IF foundinactive %] +

    (Note: [% terms.Bugs %] may not be added to [% FILTER inactive %]inactive + groups[% END %], only removed.)

    + [% END %] + +[% END %] + + +[% IF Param('move-enabled') && user.is_mover %] + +[% END %] + +[%############################################################################%] +[%# Select Menu Block #%] +[%############################################################################%] + +[% BLOCK selectmenu %] + +[% END %] + +[%############################################################################%] +[%# Status Block #%] +[%############################################################################%] + +[% BLOCK status_section %] + [% all_open_bugs = !current_bug_statuses.containsany(closedstates) %] + [% all_closed_bugs = !current_bug_statuses.containsany(openstates) %] + [% closed_status_array = [] %] + + + + + + + + + +[% END %] diff --git a/template/en/default/list/list-simple.html.tmpl b/template/en/default/list/list-simple.html.tmpl new file mode 100644 index 0000000..125a164 --- /dev/null +++ b/template/en/default/list/list-simple.html.tmpl @@ -0,0 +1,53 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # title: string. The title for this page. (optional) + #%] + +[% PROCESS global/variables.none.tmpl %] + +[%############################################################################%] +[%# Initialization #%] +[%############################################################################%] + +[% DEFAULT title = "$terms.Bug List" %] + +[%############################################################################%] +[%# Bug Table #%] +[%############################################################################%] + + + + + [% title FILTER html %] + + + + + + [% IF bugs.size == 0 %] +

    [% terms.zeroSearchResults %].

    + [% ELSE %] + [% PROCESS list/table.html.tmpl %] + [% END %] + + + diff --git a/template/en/default/list/list.atom.tmpl b/template/en/default/list/list.atom.tmpl new file mode 100644 index 0000000..ed0c660 --- /dev/null +++ b/template/en/default/list/list.atom.tmpl @@ -0,0 +1,101 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Walter Hoehn + # John Belmonte + # Jason Remillard + # Phil Ringnalda + # + # This is a template for generating an Atom representation of a buglist. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% DEFAULT title = "$terms.Bugzilla $terms.Bugs" %] + + + + [% title FILTER xml %] + + + [% bugs.sort('changedtime').last.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") + FILTER xml %] + [% urlbase FILTER html %]buglist.cgi?[% urlquerypart FILTER xml %] + + [% FOREACH bug = bugs %] + + [% "@" IF bug.secure_mode %][[% terms.Bug %] [%+ bug.bug_id FILTER xml %]] [% bug.short_desc FILTER xml %] + + [% urlbase FILTER xml %]show_bug.cgi?id=[% bug.bug_id FILTER xml %] + + [% bug.reporter_realname ? bug.reporter_realname : bug.reporter FILTER xml %] + + [% bug.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") FILTER xml %] + + [%# Filter out the entire block, so that we don't need to escape the html code out %] + [% FILTER xml %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF Param("usetargetmilestone") %] + + + + [% END %] + + + + + + + +
    FieldValue
    [% columns.product.title FILTER html %][% bug.product FILTER html %]
    [% columns.component.title FILTER html %][% bug.component FILTER html %]
    [% columns.assigned_to_realname.title FILTER html %][% bug.assigned_to_realname ? bug.assigned_to_realname : bug.assigned_to FILTER html %]
    [% columns.reporter_realname.title FILTER html %][% bug.reporter_realname ? bug.reporter_realname : bug.reporter FILTER html %]
    [% columns.bug_status.title FILTER html %][% display_value("bug_status", bug.bug_status) FILTER html %]
    [% columns.resolution.title FILTER html %] [% display_value("resolution", bug.resolution) FILTER html %]
    [% columns.priority.title FILTER html %][% display_value("priority", bug.priority) FILTER html %]
    [% columns.bug_severity.title FILTER html %] [% display_value("bug_severity", bug.bug_severity) FILTER html %]
    [% columns.target_milestone.title FILTER html %][% bug.target_milestone FILTER html %]
    [% columns.opendate.title FILTER html %][% bug.opendate FILTER html %]
    [% columns.changeddate.title FILTER html %][% bug.changeddate FILTER html -%]
    + [% END %] +
    +
    + [% END %] +
    diff --git a/template/en/default/list/list.csv.tmpl b/template/en/default/list/list.csv.tmpl new file mode 100644 index 0000000..6114d6f --- /dev/null +++ b/template/en/default/list/list.csv.tmpl @@ -0,0 +1,46 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% colsepchar = user.settings.csv_colsepchar.value %] + +bug_id +[% FOREACH column = displaycolumns %] + [% colsepchar %][% column FILTER csv %] +[% END %] + +[% FOREACH bug = bugs %] + [% bug.bug_id %] + [% FOREACH column = displaycolumns %] + [% colsepchar %] + [% IF column == "opendate" OR column == "changeddate" %] + [% rawcolumn = column.replace("date", "time") %] + [% bug.$column = bug.$rawcolumn FILTER time("%Y-%m-%d %H:%M:%S") %] + [% ELSIF column == 'bug_status' %] + [% bug.$column = display_value("bug_status", bug.$column) %] + [% ELSIF column == 'resolution' %] + [%- bug.$column = display_value("resolution", bug.$column) %] + [% END %] + [% bug.$column FILTER csv %] + [% END %] + +[% END %] diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl new file mode 100644 index 0000000..941b34a --- /dev/null +++ b/template/en/default/list/list.html.tmpl @@ -0,0 +1,291 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # searchtype: string. Type of search - either "series", "saved" or undef. + # ... + # defaultsavename: string. The default name for saving the query. + #%] + +[%############################################################################%] +[%# Template Initialization #%] +[%############################################################################%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = "$terms.Bug List" %] +[% IF searchname || defaultsavename %] + [% title = title _ ": " _ (searchname OR defaultsavename) FILTER html %] +[% END %] + +[% qorder = order FILTER url_quote IF order %] + + +[%############################################################################%] +[%# Page Header #%] +[%############################################################################%] + +[% PROCESS global/header.html.tmpl + title = title + style = style + atomlink = "buglist.cgi?$urlquerypart&title=$title&ctype=atom" + javascript_urls = [ "js/util.js", "js/field.js", "js/yui/calendar.js" ] + style_urls = [ "skins/standard/buglist.css", "skins/standard/yui/calendar.css" ] + doc_section = "query.html#list" +%] + +
    + + [% currenttime FILTER time('%a %b %e %Y %T %Z') FILTER html %]
    +
    + + [% IF debug %] +

    [% query FILTER html %]

    + [% IF query_explain.defined %] +
    [% query_explain FILTER html %]
    + [% END %] + [% END %] + + [% IF user.settings.display_quips.value == 'on' %] + [% DEFAULT quip = "$terms.Bugzilla would like to put a random quip here, but no one has entered any." %] + + [% quip FILTER html %] + + [% END %] + +
    + +[% IF toolong %] +

    + This list is too long for [% terms.Bugzilla %]'s little mind; the + Next/Prev/First/Last buttons won't appear on individual [% terms.bugs %]. +

    +[% END %] + +[% SET shown_types = [ + 'notequals', 'regexp', 'notregexp', 'lessthan', 'lessthaneq', + 'greaterthan', 'greaterthaneq', 'changedbefore', 'changedafter', + 'changedfrom', 'changedto', 'changedby', 'notsubstring', 'nowords', + 'nowordssubstr', 'notmatches', +] %] +
      +[% FOREACH desc_item = search_description %] +
    • + [% field_descs.${desc_item.field} FILTER html %]: + [% IF shown_types.contains(desc_item.type) || debug %] + ([% search_descs.${desc_item.type} FILTER html %]) + [% END %] + [% FOREACH val IN desc_item.value.split(',') %] + [%+ display_value(desc_item.field, val) FILTER html %][% ',' UNLESS loop.last %] + [% END %] + [% IF debug %] + ([% desc_item.term FILTER html %]) + [% END %] +
    • +[% END %] +
    + +
    + +[%############################################################################%] +[%# Preceding Status Line #%] +[%############################################################################%] + +[% IF bugs.size > 9 %] + + [% bugs.size %] [%+ terms.bugs %] found. + +[% END %] + +[%############################################################################%] +[%# Start of Change Form #%] +[%############################################################################%] + +[% IF dotweak %] +
    +[% END %] + +[%############################################################################%] +[%# Bug Table #%] +[%############################################################################%] + +[% FLUSH %] +[% PROCESS list/table.html.tmpl %] + +[%############################################################################%] +[%# Succeeding Status Line #%] +[%############################################################################%] + + + [% IF bugs.size == 0 %] + [% terms.zeroSearchResults %]. + [% ELSIF bugs.size == 1 %] + One [% terms.bug %] found. + [% ELSE %] + [% bugs.size %] [%+ terms.bugs %] found. + [% END %] + + +[% IF bugs.size == 0 %] + +[% END %] + +
    + +[%############################################################################%] +[%# Rest of Change Form #%] +[%############################################################################%] + +[% IF dotweak %] + [% PROCESS "list/edit-multiple.html.tmpl" %] +
    +
    +[% END %] + +[%############################################################################%] +[%# Navigation Bar #%] +[%############################################################################%] + + + + [% IF bugs.size > 0 %] + + + + + + [% END %] + + + + [% IF searchtype == "saved" %] + + [% ELSE %] + + + + [% END %] + +
    +
    + [% FOREACH id = buglist %] + + [% END %] + + +
    +
    + + [% FOREACH id = buglist %] + + [% END %] + + +
    + + [% IF user.is_timetracker %] +
    + + +
    + [% END %] +
      + Edit Search + + | + + Forget Search '[% searchname FILTER html %]' +   +
    + as + + + + +
    +
    + +[% IF one_product.defined && bugs.size %] +

    + [% PROCESS enter_bug_link %] +

    +[% END %] + +[%############################################################################%] +[%# Page Footer #%] +[%############################################################################%] + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK edit_search_url %] + [% editqueryname = searchname OR defaultsavename OR '' %] + query.cgi?[% urlquerypart FILTER html %] + [%- IF editqueryname != '' %]&known_name= + [%- editqueryname FILTER url_quote %] + [% END %] +[% END %] + +[% BLOCK enter_bug_link %] + File + a new [% terms.bug %] + [% IF one_product.defined %] + in the "[% one_product.name FILTER html %]" product + [% END %] +[% END %] diff --git a/template/en/default/list/list.ics.tmpl b/template/en/default/list/list.ics.tmpl new file mode 100644 index 0000000..3f9e2b8 --- /dev/null +++ b/template/en/default/list/list.ics.tmpl @@ -0,0 +1,103 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): William Jon McCann + #%] +[% PROCESS global/variables.none.tmpl %] +BEGIN:VCALENDAR +CALSCALE:GREGORIAN +[%+ PROCESS ics_prodid +%] +VERSION:2.0 +[% FOREACH bug = bugs %] +BEGIN:VTODO +[%+ PROCESS ics_dtstart +%] +[%+ PROCESS ics_summary +%] +[%+ PROCESS ics_uid base_url=urlbase bug_id=bug.bug_id +%] +[%+ PROCESS ics_url base_url=urlbase bug_id=bug.bug_id +%] +[%+ PROCESS ics_status bug_status = bug.bug_status +%] +[%+ PROCESS ics_dtstamp +%] +[%+ ics_priorities.${bug.priority} FILTER ics('PRIORITY') +%] +[% IF bug.changeddate %] +[%+ bug.changedtime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('LAST-MODIFIED') +%] +[% END %] +[% IF bug.percentage_complete %] +[%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%] +[% END %] +[% IF bug.product %] +[%+ bug.product FILTER ics('X-BUGZILLA-PRODUCT') +%] +[% END %] +[% IF bug.component %] +[%+ bug.component FILTER ics('X-BUGZILLA-COMPONENT') +%] +[% END %] +[% IF bug.version %] +[%+ bug.version FILTER ics('X-BUGZILLA-VERSION') +%] +[% END %] +[% IF bug.keywords %] +[%+ bug.keywords FILTER ics('X-BUGZILLA-KEYWORDS') +%] +[% END %] +END:VTODO +[% END %] +END:VCALENDAR + +[% BLOCK ics_prodid %] + [% "-//Mozilla/Bugzilla $constants.BUGZILLA_VERSION//EN" FILTER ics('PRODID') %] +[% END %] + +[% BLOCK ics_uid %] + [% "${bug_id}@${base_url}" FILTER url_quote FILTER ics('UID') %] +[% END %] + +[% BLOCK ics_url %] + [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER url_quote FILTER ics('URL;VALUE=URI') %] +[% END %] + +[% BLOCK ics_dtstart %] + [% bug.opentime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTART') %] +[% END %] + +[% BLOCK ics_dtstamp %] + [% currenttime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTAMP') %] +[% END %] + +[% BLOCK ics_status %] + [% status = "" %] + [% FOREACH state = closedstates %] + [% IF bug_status == state %] + [% status = 'COMPLETED' %] + [% LAST %] + [% END %] + [% END %] + [% IF NOT status %] + [% IF bug_status == 'ASSIGNED' %] + [% status = 'IN-PROGRESS' %] + [% ELSE %] + [% status = 'NEEDS-ACTION' %] + [% END %] + [% END %] + [% status FILTER ics('STATUS') %] +[% END %] + +[% BLOCK ics_summary %] + [% IF bug.short_desc %] + [% summary = bug.short_desc %] + [% ELSIF bug.short_short_desc %] + [% summary = bug.short_short_desc %] + [% ELSE %] + [% summary = "$terms.Bug $bug.bug_id" %] + [% END %] + [% summary FILTER ics('SUMMARY') %] +[% END %] diff --git a/template/en/default/list/list.js.tmpl b/template/en/default/list/list.js.tmpl new file mode 100644 index 0000000..7e9664c --- /dev/null +++ b/template/en/default/list/list.js.tmpl @@ -0,0 +1,37 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +// Note: only publicly-accessible bugs (those not in any group) will be +// listed when using this JavaScript format. This is to prevent malicious +// sites stealing information about secure bugs. + +bugs = new Array; + +[% FOREACH bug = bugs %] + bugs[[% bug.bug_id %]] = [ + [% FOREACH column = displaycolumns %] + "[%- bug.$column FILTER js -%]"[% "," UNLESS loop.last %] + [% END %] + ]; +[% END %] + +if (window.buglistCallback) { + buglistCallback(bugs); +} diff --git a/template/en/default/list/list.rdf.tmpl b/template/en/default/list/list.rdf.tmpl new file mode 100644 index 0000000..99c06c1 --- /dev/null +++ b/template/en/default/list/list.rdf.tmpl @@ -0,0 +1,56 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + + + + + + + + [% currenttime FILTER time('%Y-%m-%d %T %Z') FILTER html %] + + + [% FOREACH bug = bugs %] +
  • + + + + [% bug.bug_id %] + + [% FOREACH column = displaycolumns %] + [% bug.$column FILTER html %] + [% END %] + + + +
  • + + [% END %] + +
    + +
    + +
    + +
    diff --git a/template/en/default/list/quips.html.tmpl b/template/en/default/list/quips.html.tmpl new file mode 100644 index 0000000..1404b2e --- /dev/null +++ b/template/en/default/list/quips.html.tmpl @@ -0,0 +1,168 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # added_quip: string. Defined if the CGI added a quip data before + # displaying anything; if defined, its value is that quip. + # show_quips: boolean. True if we are showing the entire quip list. + # quips: list of strings. Defined if and only if show_quips is true. + # List of all quips. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "$terms.Bugzilla Quip System" + header = "Add your own clever headline" + %] + +[% IF added_quip %] +

    + + Your quip '[% added_quip FILTER html %]' has been added. + [% IF Param("quip_list_entry_control") == "moderated" AND !user.in_group('admin') %] + It will be used as soon as it gets approved. + [% END %] + +

    +[% END %] + +[% IF deleted_quip %] +

    + + The quip '[% deleted_quip FILTER html %]' has been deleted. + +

    +[% END %] + +[% IF approved or unapproved %] +

    [% approved.size %] quips approved and [% unapproved.size %] quips unapproved

    +[% END %] + + +

    + [% terms.Bugzilla %] will pick a random quip for the headline on each + [% terms.bug %] list. +

    + +[% IF Param("quip_list_entry_control") != "closed" %] +

    + You can extend the quip list. Type in something clever or funny or boring + (but not obscene or offensive, please) and bonk on the button. + [% IF Param("quip_list_entry_control") == "moderated" AND !user.in_group('admin') %] + Note that your quip has to be approved before it is used. + [% END %] +

    + +
    + + +

    + +

    +
    +[% ELSE %] +

    No new entries may be submitted at this time. +

    +[% END %] + +[% IF show_quips %] + [% IF !user.in_group('admin') %] +

    + Existing quips: +

    +
      + [% FOREACH quipid = quipids %] + [% NEXT IF NOT quips.$quipid.approved %] +
    • [% quips.$quipid.quip FILTER html %]
    • + [% END %] +
    + [% ELSE %] +

    Edit existing quips:

    +

    + Note: Only approved quips will be shown. + If the parameter 'quip_list_entry_control' is set to open, + entered quips are automatically approved. +

    +
    + + + + + + + + + [% FOREACH quipid = quipids %] + + + + + + + [% END %] + +
    QuipAuthorActionApproved
    [% quips.$quipid.quip FILTER html %] + [% userid = quips.$quipid.userid %] + [% users.$userid FILTER html %] + [% "Unknown" IF NOT users.$userid %] + + + Delete + + + + +
    + + + +
    +
    + [% END %] +[% ELSE %] +

    + Those who like their wisdom in large doses can + view + [% IF user.in_group('admin') %] + and edit + [% END %] + the whole quip list. +

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/list/server-push.html.tmpl b/template/en/default/list/server-push.html.tmpl new file mode 100644 index 0000000..d1c157f --- /dev/null +++ b/template/en/default/list/server-push.html.tmpl @@ -0,0 +1,47 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[%# INTERFACE: + # debug: boolean. True if we want the search displayed while we wait. + # query: string. The SQL query which makes the buglist. + #%] + +[% PROCESS global/variables.none.tmpl %] + + + + [% terms.Bugzilla %] is pondering your search + + +

    Please stand by ...

    + + [% IF debug %] +

    + [% FOREACH debugline = debugdata %] + [% debugline FILTER html %]
    + [% END %] +

    +

    + [% query FILTER html %] +

    + [% END %] + + + diff --git a/template/en/default/list/table.html.tmpl b/template/en/default/list/table.html.tmpl new file mode 100644 index 0000000..282ea51 --- /dev/null +++ b/template/en/default/list/table.html.tmpl @@ -0,0 +1,260 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Jesse Clark + #%] + +[%############################################################################%] +[%# Initialization #%] +[%############################################################################%] + +[%# Don't display the table or do any processing if there are no bugs + # to display %] +[% RETURN IF !bugs.size %] + +[%# Columns whose titles or values should be abbreviated to make the list + # more compact. For columns whose titles should be abbreviated, + # the shortened title is included. For columns whose values should be + # abbreviated, a maximum length is provided along with the ellipsis that + # should be added to an abbreviated value, if any. + # wrap is set if a column's contents should be allowed to be word-wrapped + # by the browser. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] +[% field_descs.short_short_desc = field_descs.short_desc %] +[% field_descs.assigned_to_realname = field_descs.assigned_to %] +[% field_descs.reporter_realname = field_descs.reporter %] +[% field_descs.qa_contact_realname = field_descs.qa_contact %] + +[% abbrev = + { + "bug_severity" => { maxlength => 3 , title => "Sev" } , + "priority" => { maxlength => 3 , title => "Pri" } , + "rep_platform" => { maxlength => 3 , title => "Plt" } , + "bug_status" => { maxlength => 4 } , + "assigned_to" => { maxlength => 30 , ellipsis => "..." } , + "assigned_to_realname" => { maxlength => 20 , ellipsis => "..." } , + "reporter" => { maxlength => 30 , ellipsis => "..." } , + "reporter_realname" => { maxlength => 20 , ellipsis => "..." } , + "qa_contact" => { maxlength => 30 , ellipsis => "..." , title => "QAContact" } , + "qa_contact_realname" => { maxlength => 20 , ellipsis => "..." , title => "QAContact" } , + "resolution" => { maxlength => 4 } , + "short_desc" => { wrap => 1 } , + "short_short_desc" => { maxlength => 60 , ellipsis => "..." , wrap => 1 } , + "status_whiteboard" => { title => "Whiteboard" , wrap => 1 } , + "keywords" => { wrap => 1 } , + "flagtypes.name" => { wrap => 1 } , + "component" => { maxlength => 8 , title => "Comp" } , + "product" => { maxlength => 8 } , + "version" => { maxlength => 5 , title => "Vers" } , + "op_sys" => { maxlength => 4 } , + "target_milestone" => { title => "TargetM" } , + "percentage_complete" => { format_value => "%d %%" } , + } +%] + +[% PROCESS bug/time.html.tmpl %] + +[%############################################################################%] +[%# Table Header #%] +[%############################################################################%] + +[% tableheader = BLOCK %] + + + [% IF dotweak %] + + [% END %] + + + [% IF splitheader %] + + [% FOREACH id = displaycolumns %] + [% NEXT UNLESS loop.count() % 2 == 0 %] + [% column = columns.$id %] + [% PROCESS columnheader %] + [% END %] + + + [% IF dotweak %] + + [% END %] + + + [% FOREACH id = displaycolumns %] + [% NEXT IF loop.count() % 2 == 0 %] + [% column = columns.$id %] + [% PROCESS columnheader %] + [% END %] + + [% ELSE %] + + [% FOREACH id = displaycolumns %] + [% column = columns.$id %] + [% PROCESS columnheader %] + [% END %] + + [% END %] + + +[% END %] + +[% BLOCK columnheader %] + +[% END %] + +[% BLOCK new_order %] + [% desc = '' %] + [% IF (om = order.match("\\b$id( DESC)?")) %] + [% desc = ' DESC' IF NOT om.0 %] + [% END %] + [% id _ desc FILTER url_quote %] + [% IF id != 'bug_id' AND order %] + [% ',' _ order.remove("\\b$id( DESC)?(,\\s*|\$)") FILTER url_quote %] + [% END %] +[% END %] + +[% BLOCK order_arrow %] + [% IF order.match("^$id DESC") %] + + [% ELSIF order.match("^$id(,\\s*|\$)") %] + + [% ELSIF order.match("\\b$id DESC") %] + + [% ELSIF order.match("\\b$id(,\\s*|\$)") %] + + [% END %] +[% END %] + +[%############################################################################%] +[%# Bug Table #%] +[%############################################################################%] + +[% Hook.process("before_table") %] + +[% tableheader %] + +[% FOREACH bug = bugs %] + [% count = loop.count() %] + + + + [% IF dotweak %] + + [% END %] + + + [% FOREACH column = displaycolumns %] + + [% END %] + + + + [% IF loop.last() && time_info.time_present == 1 %] + [% PROCESS time_summary_line %] + [% END %] + +[% END %] + +
      + ID + [% PROCESS order_arrow id='bug_id' ~%] + +
      
    + + [%- abbrev.$id.title || field_descs.$id || column.title -%] + [% PROCESS order_arrow ~%] + +
    + + + [% bug.bug_id %] + [%+ '[SEC]' IF bug.secure_mode %] + + [% IF abbrev.$column.maxlength %] + + [% END %] + [% IF abbrev.$column.format_value %] + [%- bug.$column FILTER format(abbrev.$column.format_value) FILTER html -%] + [% ELSIF column == 'actual_time' || + column == 'remaining_time' || + column == 'estimated_time' %] + [% PROCESS formattimeunit time_unit=bug.$column %] + [%# Display the login name of the user if their real name is empty. %] + [% ELSIF column.match('_realname$') && bug.$column == '' %] + [% SET login_column = column.remove('_realname$') %] + [% bug.${login_column}.truncate(abbrev.$column.maxlength, + abbrev.$column.ellipsis) FILTER html %] + + [% ELSE %] + [%- display_value(column, bug.$column).truncate(abbrev.$column.maxlength, abbrev.$column.ellipsis) FILTER html -%] + [% END %] + [% IF abbrev.$column.maxlength %] + + [% END %] +
    + +[% BLOCK time_summary_line %] + + [% columns_to_span = 1 %] [%# bugID %] + [% IF dotweak %] + [% columns_to_span = columns_to_span + 1 %] + [% END %] + [% FOREACH column = displaycolumns %] + [% IF column == 'actual_time' || + column == 'remaining_time' || + column == 'estimated_time' || + column == 'percentage_complete' %] + [% IF columns_to_span > 0 %] + Totals + [% columns_to_span = 0 %] + [% END %] + [% IF column == 'percentage_complete' %] + [% time_info.percentage_complete + FILTER format(abbrev.$column.format_value) FILTER html %] + [% ELSE %] + + [%- PROCESS formattimeunit time_unit=time_info.$column %] + [% END %] + [% ELSIF columns_to_span == 0 %] [%# A column following the first total %] +   + [% ELSE %] [%# We haven't gotten to a time column yet, keep computing span %] + [% columns_to_span = columns_to_span + 1 %] + [% END %] + [% END %] + +[% END %] diff --git a/template/en/default/pages/bug-writing.html.tmpl b/template/en/default/pages/bug-writing.html.tmpl new file mode 100644 index 0000000..ec997be --- /dev/null +++ b/template/en/default/pages/bug-writing.html.tmpl @@ -0,0 +1,181 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Eli Goldberg + # Gervase Markham + # Vera Horiuchi + # Claudius Gayle + # Peter Mock + # Chris Pratt + # Tom Schutter + # Chris Yeh + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% INCLUDE global/header.html.tmpl title = "$terms.Bug Writing Guidelines" %] + +

    Effective [% terms.bug %] reports are the most likely to be fixed. + These guidelines explain how to write such reports. + +

    Principles

    + +
      +
    • Be precise
    • +
    • Be clear - explain it so others can reproduce the [% terms.bug %]
    • +
    • One [% terms.bug %] per report
    • +
    • No [% terms.bug %] is too trivial to report - + small [% terms.bugs %] may hide big [% terms.bugs %]
    • +
    • Clearly separate fact from speculation
    • +
    + +

    Preliminaries

    + +
      +
    1. Reproduce your [% terms.bug %] using a recent build of the + software, to see whether it has already been fixed. +
    2. + +
    3. Search + [% terms.Bugzilla %], to see whether your [% terms.bug %] has + already been reported.
    4. +
    + +

    Reporting a New [% terms.Bug %]

    + +

    If you have reproduced the [% terms.bug %] in a recent build and +no-one else appears to have reported it, then:

    + +
      +
    1. Choose + "Enter a new [% terms.bug %]"
    2. +
    3. Select the product in which you've found the [% terms.bug %]
    4. +
    5. Fill out the form. Here is some help understanding it:
    6. +
    + +
    +

    Component: In which sub-part of the software does it + exist?
    + This field is required. + Click the word "Component" to see a description of each + component. If none seems appropriate, look for a "General" component.

    + +

    OS: On which operating system (OS) did you find + it? + (e.g. Linux, Windows XP, Mac OS X.)
    + If you know the [% terms.bug %] happens on more than one type of + operating system, choose [% display_value("op_sys", "All") FILTER html %]. + If your OS isn't listed, choose [% display_value("op_sys", "Other") FILTER html %].

    + +

    Summary: How would you describe the [% terms.bug %], in + approximately 60 or fewer characters?
    + A good summary should quickly and uniquely identify [% terms.abug %] + report. It should explain the problem, not your suggested solution.
    +

      +
    • Good: "Cancelling a File Copy dialog crashes + File Manager"
    • +
    • Bad: "Software crashes"
    • +
    • Bad: "Browser should work with my web site"
    • +
    + + Description: + The details of your problem report, including:

    + +
    +

    Overview: More detailed restatement of + summary.

    + +
    +
    +Drag-selecting any page crashes Mac builds in the NSGetFactory function.
    +
    +
    + +

    Steps to Reproduce: Minimized, easy-to-follow steps that + will trigger the [% terms.bug %]. Include any special setup steps.

    + +
    +
    +1) View any web page. (I used the default sample page, 
    +resource:/res/samples/test0.html)
    +
    +2) Drag-select the page. (Specifically, while holding down 
    +the mouse button, drag the mouse pointer downwards from any 
    +point in the browser's content region to the bottom of the 
    +browser's content region.)
    +
    +
    + +

    Actual Results: What the application did after performing + the above steps.

    + +
    +
    +The application crashed.
    +
    +
    + +

    Expected Results: What the application should have done, + were the [% terms.bug %] not present.

    + +
    +
    +The window should scroll downwards. Scrolled content should be selected. 
    +(Or, at least, the application should not crash.)
    +
    +
    + +

    Build Date & Platform: Date and platform of the build + in which you first encountered the [% terms.bug %].

    + +
    +
    +Build 2006-08-10 on Mac OS 10.4.3
    +
    +
    + +

    Additional Builds and Platforms: Whether or not + the [% terms.bug %] takes place on other platforms (or browsers, + if applicable).

    + +
    +
    +Doesn't Occur On Build 2006-08-10 on Windows XP Home (Service Pack 2)
    +
    +
    + +

    Additional Information: Any other useful information. +

    For crashing [% terms.bugs %]:

    + +
      +
    • Windows: Note the type of the crash, and the module that the + application crashed in (e.g. access violation in apprunner.exe).
    • + +
    • Mac OS X: Attach the "Crash Reporter" log that appears + upon crash. + Only include the section directly below the crashing thread, usually + titled "Thread 0 Crashed". Please do not paste the entire log!
    • +
    +
    + +

    Double-check your report for errors and omissions, then press "Commit". + Your [% terms.bug %] report will now be in + the [% terms.Bugzilla %] database.
    +

    +
    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/pages/fields.html.tmpl b/template/en/default/pages/fields.html.tmpl new file mode 100644 index 0000000..282b7b6 --- /dev/null +++ b/template/en/default/pages/fields.html.tmpl @@ -0,0 +1,331 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] +[% INCLUDE global/header.html.tmpl title = "A $terms.Bug's Life Cycle" %] + +

    +The status and resolution fields define and track the life +cycle of [% terms.abug %]. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    STATUS

    +
    +

    RESOLUTION

    +
    The status field indicates the general health of a + [% terms.bug %]. Only certain status transitions are allowed.The resolution field indicates what happened to this + [%+ terms.bug %].
    +
    +
    + [% display_value("bug_status", "UNCONFIRMED") FILTER html %] +
    +
    + This [% terms.bug %] has recently been added to the database. + Nobody has validated that this [% terms.bug %] is true. Users + who have the "canconfirm" permission set may confirm + this [% terms.bug %], changing its state to [% display_value("bug_status", "NEW") FILTER html %]. Or, it may be + directly resolved and marked [% display_value("bug_status", "RESOLVED") FILTER html %]. +
    + +
    + [% display_value("bug_status", "NEW") FILTER html %] +
    +
    + This [% terms.bug %] has recently been added to the assignee's + list of [% terms.bugs %] and must be processed. [% terms.Bugs %] in + this state may be accepted, and become [% display_value("bug_status", "ASSIGNED") FILTER html %], passed + on to someone else, and remain [% display_value("bug_status", "NEW") FILTER html %], or resolved and marked + [% display_value("bug_status", "RESOLVED") FILTER html %]. +
    + +
    + [% display_value("bug_status", "ASSIGNED") FILTER html %] +
    +
    + This [% terms.bug %] is not yet resolved, but is assigned to the + proper person. From here [% terms.bugs %] can be given to another + person and become [% display_value("bug_status", "NEW") FILTER html %], or + resolved and become [% display_value("bug_status", "RESOLVED") FILTER html %]. +
    + +
    + [% display_value("bug_status", "REOPENED") FILTER html %] +
    +
    + This [% terms.bug %] was once resolved, but the resolution was + deemed incorrect. For example, a [% display_value("resolution", "WORKSFORME") FILTER html %] [% terms.bug %] is + [% display_value("bug_status", "REOPENED") FILTER html %] when more information shows up and + the [% terms.bug %] is now reproducible. From here [% terms.bugs %] are + either marked [% display_value("bug_status", "ASSIGNED") FILTER html %] or + [% display_value("bug_status", "RESOLVED") FILTER html %]. +
    +
    +
    +
    +
    + No resolution yet. All [% terms.bugs %] which are in one of + these "open" states have the resolution set to blank. All + other [% terms.bugs %] will be marked with one of the following + resolutions. +
    +
    +
    +
    +
    + [% display_value("bug_status", "RESOLVED") FILTER html %] +
    +
    + A resolution has been taken, and it is awaiting verification by + QA. From here [% terms.bugs %] are either re-opened and become + [% display_value("bug_status", "REOPENED") FILTER html %], are marked + [% display_value("bug_status", "VERIFIED") FILTER html %], or are closed for + good and marked [% display_value("bug_status", "CLOSED") FILTER html %]. +
    + +
    + [% display_value("bug_status", "VERIFIED") FILTER html %] +
    +
    + QA has looked at the [% terms.bug %] and the resolution and + agrees that the appropriate resolution has been taken. [% terms.Bugs %] remain + in this state until the product they were reported + against actually ships, at which point they become + [% display_value("bug_status", "CLOSED") FILTER html %]. +
    + +
    + [% display_value("bug_status", "CLOSED") FILTER html %] +
    +
    + The [% terms.bug %] is considered dead, the resolution is correct. + Any zombie [% terms.bugs %] who choose to walk the earth again must + do so by becoming [% display_value("bug_status", "REOPENED") FILTER html %]. +
    +
    +
    +
    +
    + [% display_value("resolution", "FIXED") FILTER html %] +
    +
    + A fix for this [% terms.bug %] is checked into the tree and + tested. +
    + +
    + [% display_value("resolution", "INVALID") FILTER html %] +
    +
    + The problem described is not [% terms.abug %]. +
    + +
    + [% display_value("resolution", "WONTFIX") FILTER html %] +
    +
    + The problem described is [% terms.abug %] which will never be + fixed. +
    + +
    + [% display_value("resolution", "DUPLICATE") FILTER html %] +
    +
    + The problem is a duplicate of an existing [% terms.bug %]. + Marking [% terms.abug %] duplicate requires the [% terms.bug %]# + of the duplicating [% terms.bug %] and will at least put + that [% terms.bug %] number in the description field. +
    + +
    + [% display_value("resolution", "WORKSFORME") FILTER html %] +
    +
    + All attempts at reproducing this [% terms.bug %] were futile, + and reading the code produces no clues as to why the described + behavior would occur. If more information appears later, + the [% terms.bug %] can be reopened. +
    + +
    + [% display_value("resolution", "MOVED") FILTER html %] +
    +
    + The problem was specific to a related product + whose [% terms.bugs %] are tracked in + another [% terms.bug %] database. + The [% terms.bug %] has been moved to that database. +
    +
    +
    + +

    Importance

    +The importance of [% terms.abug %] is described as the combination of +its priority and severity, +as described below. + +

    Priority

    +This field describes the importance and order in which [% terms.abug %] +should be fixed compared to other [% terms.bugs %]. This field is utilized +by the programmers/engineers to prioritize their work to be done. + +

    Severity

    +This field describes the impact of [% terms.abug %]. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    [% display_value("bug_severity", "blocker") FILTER html %]Blocks development and/or testing work
    [% display_value("bug_severity", "critical") FILTER html %]crashes, loss of data, severe memory leak
    [% display_value("bug_severity", "major") FILTER html %]major loss of function
    [% display_value("bug_severity", "normal") FILTER html %]regular issue, some loss of functionality under specific circumstances
    [% display_value("bug_severity", "minor") FILTER html %]minor loss of function, or other problem where easy + workaround is present
    [% display_value("bug_severity", "trivial") FILTER html %]cosmetic problem like misspelled words or misaligned + text
    [% display_value("bug_severity", "enhancement") FILTER html %]Request for enhancement
    + +

    Platform

    +This is the hardware platform against which the [% terms.bug %] was +reported. Legal platforms include: + +
      +
    • [% display_value("rep_platform", "All") FILTER html %] (happens on all platforms; cross-platform [% terms.bug %])
    • + +
    • [% display_value("rep_platform", "Macintosh") FILTER html %]
    • + +
    • [% display_value("rep_platform", "PC") FILTER html %]
    • +
    +Note: When searching, selecting the option +[% display_value("rep_platform", "All") FILTER html %] does not +select [% terms.bugs %] +assigned against any platform. It merely selects [% terms.bugs %] that are +marked as occurring on all platforms, i.e. are designated +[% display_value("rep_platform", "All") FILTER html %]. + +

    Operating System

    +This is the operating system against which the [% terms.bug %] was +reported. Legal operating systems include: + +
      +
    • [% display_value("op_sys", "All") FILTER html %] (happens on all operating systems; cross-platform + [% terms.bug %])
    • + +
    • Windows
    • + +
    • Mac OS
    • + +
    • Linux
    • +
    +Sometimes the operating system implies the platform, but not +always. For example, Linux can run on PC and Macintosh and +others. + +

    Assigned To

    + +

    +This is the person in charge of resolving the [% terms.bug %]. Every time +this field changes, the status changes to [% display_value("bug_status", "NEW") FILTER html %] to make it +easy to see which new [% terms.bugs %] have appeared on a person's list.

    + +

    +The default status for queries is set to [% display_value("bug_status", "NEW") FILTER html %], +[%+ display_value("bug_status", "ASSIGNED") FILTER html %] and [% display_value("bug_status", "REOPENED") FILTER html %]. +When searching for [% terms.bugs %] that have been resolved or +verified, remember to set the status field appropriately. +

    + +[% IF Param("use_see_also") %] +

    See Also

    + +

    This allows you to refer to [% terms.bugs %] in other installations. + You can enter a URL to a [%+ terms.bug %] in the "Add [% terms.Bug %] URLs" + field to note that that [% terms.bug %] is related to this one. You can + enter multiple URLs at once by separating them with a comma.

    + +

    You should normally use this field to refer to [% terms.bugs %] in + other installations. For [% terms.bugs %] in this + installation, it is better to use the "Depends On" and "Blocks" + fields.

    +[% END %] + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/pages/linked.html.tmpl b/template/en/default/pages/linked.html.tmpl new file mode 100644 index 0000000..52b1735 --- /dev/null +++ b/template/en/default/pages/linked.html.tmpl @@ -0,0 +1,55 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Stefan Seifert + # Gervase Markham + #%] + +[% INCLUDE global/header.html.tmpl title = "Your Linkified Text" %] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +

    + Copy and paste the text below: +

    + +
    + +

    +

    +[%- cgi.param("text") FILTER wrap_comment FILTER quoteUrls FILTER html -%]
    +
    +

    + +
    + +

    + If you place it in <pre> tags, + the text will end up looking like this: +

    + +
    + +

    +

    +[%- cgi.param("text") FILTER wrap_comment FILTER quoteUrls -%]
    +
    +

    + +
    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/pages/linkify.html.tmpl b/template/en/default/pages/linkify.html.tmpl new file mode 100644 index 0000000..b936e86 --- /dev/null +++ b/template/en/default/pages/linkify.html.tmpl @@ -0,0 +1,42 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Stefan Seifert + # Gervase Markham + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl title = "Linkify Text" %] + +

    + If you enter some text, this form will return it marked up like a + standard [% terms.Bugzilla %] comment. That is, valid [% terms.bug %] numbers, + URLs, email addresses and so on will be replaced with appropriate HTML links. +

    + +
    + [% INCLUDE global/textarea.html.tmpl + name = 'text' + minrows = 20 + cols = constants.COMMENT_COLS + %] +
    + + +
    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/pages/quicksearch.html.tmpl b/template/en/default/pages/quicksearch.html.tmpl new file mode 100644 index 0000000..1f2d21b --- /dev/null +++ b/template/en/default/pages/quicksearch.html.tmpl @@ -0,0 +1,274 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2009 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% INCLUDE global/header.html.tmpl + title = "$terms.Bugzilla QuickSearch", + style_urls = ['skins/standard/page.css'] + onload = 'document.forms[\'f\'].quicksearch.focus()' + %] + +[% USE Bugzilla %] + +

    Type in one or more words (or pieces of words) to search for:

    + +
    + + +
    + +

    The Basics

    + +
      +
    • If you just put a word or series of words in the search box, + [%+ terms.Bugzilla %] will search the + [%+ field_descs.product FILTER html %], + [%+ field_descs.component FILTER html %], + [%+ IF use_keywords %][%+ field_descs.keywords FILTER html %],[% END %] + [%+ IF Param('usebugaliases') %][% field_descs.alias FILTER html %],[% END %] + [%+ field_descs.short_desc FILTER html %], + [%+ IF Param('usestatuswhiteboard') %][% field_descs.status_whiteboard FILTER html %],[% END %] + and [% field_descs.longdesc FILTER html %] fields for your word or words.
    • + +
    • Typing just a number in the search box will take + you directly to the [% terms.bug %] with that ID. + [% IF Param('usebugaliases') %] + Also, just typing the alias of [% terms.abug %] + will take you to that [% terms.bug %]. + [% END %] +
    • + +
    • Adding more terms narrows down the search, it does not + expand it. (In other words, [% terms.Bugzilla %] searches for + [%+ terms.bugs %] that match all your criteria, not + [%+ terms.bugs %] that match any of your criteria.)
    • + +
    • Searching is case-insensitive. So table, + Table, and TABLE are all the same.
    • + +
    • [% terms.Bugzilla %] does not just search for the exact word you put in, + but also for any word that contains that word. + So, for example, searching for "cat" would also find [% terms.bugs %] + that contain it as part of other words—for example, [% terms.abug %] + mentioning "catch" or "certificate". It + will not find partial words in the [% field_descs.longdesc FILTER html %] + or [% field_descs.keywords FILTER html %] fields, + though—only full words are matched, there.
    • + +
    • By default, only open [% terms.bugs %] are + searched. If you want to know how to also search closed [% terms.bugs %], + see the Advanced Shortcuts section.
    • + +
    • If you want to search specific fields, you do it like + field:value, where field is one of the + field names lower down in this + document and value is the value you want to search for + in that field. If you put commas in the value, then it is + interpreted as a list of values, and [% terms.bugs %] that match + any of those values will be searched for.
    • +
    + +

    You may also want to read up on the Advanced + Features.

    + +

    Fields You Can Search On

    + +

    You can specify any of these fields like field:value + in the search box, to search on them. You can also abbreviate + the field name, as long as your abbreviation matches only one field name. + So, for example, searching on stat:NEW will find all + [%+ terms.bugs %] in the NEW status. Some fields have + multiple names, and you can use any of those names to search for them.

    + +[% IF Bugzilla.active_custom_fields.size %] + [% SET first_field = Bugzilla.active_custom_fields.0 %] +

    For custom fields, they can be used and abbreviated + based on the part of their name after the cf_ + if you'd like, in addition to their standard name starting with + cf_. So for example, + [% first_field.name FILTER html %] can be + referred to as + [% first_field.name.replace('^cf_') FILTER html %], + also. However, if this causes a conflict between the standard + [%+ terms.Bugzilla %] field names and the custom field names, the + standard field names always take precedence.

    +[% END %] + +[% SET field_table = {} %] +[% FOREACH field = quicksearch_field_names.keys %] + [% description = field_descs.$field %] + [% field_table.$description = quicksearch_field_names.${field} %] +[% END %] + + + + + + + + + + + [% FOREACH desc = field_table.keys.sort %] + + + + [% END %] + +
    FieldField Name(s) For Search
    [% desc FILTER html %] + [% FOREACH nickname = field_table.$desc %] + [% nickname FILTER html %] + [% ",  " UNLESS loop.last %] + [% END %] +
    + +

    Advanced Features

    + +
      +
    • If you want to search for a phrase or something that + contains spaces, you can put it in quotes, like: + "this is a phrase". You can also use quotes to search for + characters that would otherwise be interpreted specially by quicksearch. + For example, "this|thing" would search for the literal phrase + this|thing.
    • + +
    • You can use AND, NOT, + and OR in searches. + + You can also use - to mean "NOT", and | to mean "OR". + There is no special character for "AND", because by default any search + terms that are separated by a space are joined by an "AND". + Examples: +
        +
      • + NOT:
        + Use -summary:foo to exclude + [%+ terms.bugs %] with foo in the summary.
        + NOT summary:foo would have the same effect. +
      • +
      • + AND:
        + foo bar searches for [% terms.bugs %] that contains + both foo and bar.
        + foo AND bar would have the same effect. +
      • +
      • + OR:
        + foo|bar would search + for [% terms.bugs %] that contain foo OR bar.
        + foo OR bar would have the same effect.
        +
      • +
      + +

      OR has higher precedence than AND; AND is the top level operation. + For example:

      +

      Searching for url|location bar|field -focus means + (url OR location) AND (bar OR + field) AND (NOT focus)

      +
    • +
    + +

    Advanced Shortcuts

    + +

    In addition to using field names to search + specific fields, there are certain characters or words that you can + use as a "shortcut" for searching certain fields:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF use_keywords %] + + + + + [% END %] + + [% SET key = "flagtypes.name" %] + + + + + + + + [% IF Param('usestatuswhiteboard') %] + + + + + [% END %] + +
    FieldShortcut(s)
    [% field_descs.bug_status FILTER html %] + Make the first word of your search the name of any + status, or even an abbreviation of any status, and [% terms.bugs %] + in that status will be searched. ALL + is a special shortcut that means "all statuses". + OPEN is a special shortcut that means + "all open statuses". +
    [% field_descs.resolution FILTER html %] + Make the first word of your search the name of any + resolution, or even an abbreviation of any resolution, and + [%+ terms.bugs %] with that resolution will be searched. For example, + making FIX the first word of your search will find all + [%+ terms.bugs %] with a resolution of FIXED . +
    [% field_descs.priority FILTER html %]"P1" (as a word anywhere in + the search) means "find [% terms.bugs %] with the highest priority. + "P2" means the second-highest priority, and so on. +

    Searching for "P1-P3" will find [% terms.bugs %] in + any of the three highest priorities, and so on.

    +
    [% field_descs.assigned_to FILTER html %]@value
    [% field_descs.product FILTER html %] or + [%+ field_descs.component FILTER html %]:value
    [% field_descs.keywords FILTER html %]!value
    [% field_descs.$key FILTER html %] + flag?requestee +
    [% field_descs.longdesc FILTER html %] + or [% field_descs.short_desc FILTER html %] + #value +
    [% field_descs.short_desc FILTER html %] + or [% field_descs.status_whiteboard FILTER html %][value
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl new file mode 100644 index 0000000..92357df --- /dev/null +++ b/template/en/default/pages/release-notes.html.tmpl @@ -0,0 +1,3240 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved. + # Portions created by Everything Solved are Copyright (C) 2006 + # Everything Solved. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl + title = "$terms.Bugzilla 3.6 Release Notes" + style_urls = ['skins/standard/page.css'] +%] + +

    Table of Contents

    + + + +

    Introduction

    + +

    Welcome to [% terms.Bugzilla %] 3.6! The focus of the 3.6 release is + on improving usability and "polishing up" all our features (by adding + some pieces that were "missing" or always wanted), although we + also have a few great new features for you, as well!

    + +

    If you're upgrading, make sure to read Notes + On Upgrading From a Previous Version. If you are upgrading from a release + before 3.4, make sure to read the release notes for all the + previous versions in between your version + and this one, particularly the Upgrading section of each + version's release notes.

    + +

    We would like to thank Canonical + Ltd., ITA Software, + the IBM Linux Technology Center, + Red Hat, and + Novell for funding the development + of various features and improvements in this release of + [%+ terms.Bugzilla %].

    + +

    Updates in this 3.6.x Release

    + +

    3.6.2

    + +

    This release fixes various security issues. See the + Security Advisory + for details.

    + +

    In addition, the following important fixes/changes have been made in + this release:

    + +
      +
    • [% terms.Bugzilla %] installations running on older versions of IIS + will no longer experience the "Undef to trick_taint" errors that would + sometimes occur. + ([% terms.Bug %] 521416) +
    • +
    • Email notifications where missing the dates that comments were made. + ([% terms.Bug %] 578003) +
    • +
    • Putting a phrase in quotes in the Quicksearch box now works properly, + again. + ([% terms.Bug %] 578494 + and [% terms.Bug %] 553884) +
    • +
    • Quicksearch was usually (incorrectly) being limited to 200 results. + ([% terms.Bug %] 581622) +
    • +
    • On Windows, install-module.pl can now properly install + DateTime and certain other Perl modules that didn't install properly + before. + ([% terms.Bug %] 576105) +
    • +
    • Searching "keywords" for "contains none of the words" or "does not + match regular expression" now works properly. + ([% terms.Bug %] 562014) +
    • +
    • Doing collectstats.pl --regenerate now works on installations + using PostgreSQL. + ([% terms.Bug %] 577058) +
    • +
    • The "Field Values" administrative control panel was sometimes denying + admins the ability to delete field values when there was no reason + to deny the deletion. + ([% terms.Bug %] 577054) +
    • +
    • Eliminate the "uninitialized value" warnings that would happen when + editing a product's components. + ([% terms.Bug %] 576911) +
    • +
    • The updating of bugs_fulltext that happens during + checksetup.pl for upgrades to 3.6 should now be MUCH faster. + ([% terms.Bug %] 577754) +
    • +
    • email_in.pl was not allowing the setting of time-tracking + fields via inbound emails. + ([% terms.Bug %] 583622) +
    • +
    + +

    3.6.1

    + +

    This release fixes two security issues. See the + Security Advisory + for details.

    + +

    In addition, the following important fixes/changes have been made in + this release:

    + +
      +
    • Using the "Change Columns" page would sometimes result in a + plain-text page instead of HTML. + ([% terms.Bug %] 376044) +
    • +
    • Extensions that have only templates and no code are now working. + ([% terms.Bug %] 562551) +
    • +
    • install-module.pl has been fixed so that it installs + modules properly on both new and old versions of Perl. + ([% terms.Bug %] 560318 + and [% terms.Bug %] 560330) +
    • +
    • It is now possible to upgrade from 3.4 to 3.6 when using Oracle. + ([% terms.Bug %] 561379) +
    • +
    • Editing a field value's name (using the Field Values admin control + panel) wasn't working if the value was set as the default for that + field. + ([% terms.Bug %] 561296) +
    • +
    • If you had the noresolveonopenblockers parameter set, + [%+ terms.bugs %] couldn't be edited at all if they were marked FIXED + and had any open blockers. (The parameter is only supposed to prevent + changing [% terms.bugs %] to FIXED, not modifying already-FIXED + [%+ terms.bugs %].) + ([% terms.Bug %] 565314) +
    • +
    • Some minor issues with Perl 5.12 were fixed (mostly warnings that Perl + 5.12 was throwing). [% terms.Bugzilla %] now supports Perl 5.12.
    • +
    + +

    Minimum Requirements

    + +

    Any requirements that are new since 3.4.5 will look like + this.

    + + + + +

    Perl

    + +

    Perl v5.8.1

    + +[% INCLUDE db_req db='mysql' %] + +[% INCLUDE db_req db='pg' %] + +[% INCLUDE db_req db='oracle' %] + +

    Required Perl Modules

    + +[% INCLUDE req_table reqs = REQUIRED_MODULES + new = [] updated = [] %] + +

    Optional Perl Modules

    + +

    The following perl modules, if installed, enable various + features of [% terms.Bugzilla %]:

    + +[% INCLUDE req_table reqs = OPTIONAL_MODULES + new = ['JSON-RPC', 'Test-Taint'] + updated = ['Chart'] + include_feature = 1 %] + +

    New Features and Improvements

    + + + +

    General Usability Improvements

    + +

    A scientific + usability study was done on [% terms.Bugzilla %] by researchers + from Carnegie-Mellon University. As a result of this study, + several + usability issues were prioritized to be fixed, based on specific data + from the study.

    + +

    As a result, you will see many small improvements in [% terms.Bugzilla %]'s + usability, such as using Javascript to validate certain forms before + they are submitted, standardizing the words that we use in the user interface, + being clearer about what [% terms.Bugzilla %] needs from the user, + and other changes, all of which are also listed individually in this New + Features section.

    + +

    Work continues on improving usability for the next release of + [%+ terms.Bugzilla %], but the results of the research have already + had an impact on this 3.6 release.

    + +

    New Extensions System

    + +

    [% terms.Bugzilla %] has a brand-new Extensions system. The system is + consistent, fast, and + fully + documented. It makes it possible to easily extend [% terms.Bugzilla %]'s + code and user interface to add new features or change existing features. + There's even + a + script that will create the basic layout of an extension for you, to + help you get started. For more information about the new system, see the + Extensions + documentation.

    + +

    If you had written any extensions using [% terms.Bugzilla %]'s previous + extensions system, there is + a + script to help convert old extensions into the new format.

    + +

    Improved Quicksearch

    + +

    The "quicksearch" box that appears on the front page of + [%+ terms.Bugzilla %] and in the header/footer of every page + is now simplified and made more powerful. There is a + [?] link next to the box that will take you to + the simplified Quicksearch Help, + which describes every single feature of the system in a simple layout, + including new features such as the ability to use partial field names + when searching.

    + +

    Quicksearch should also be much faster than it was before, particularly + on large installations.

    + +

    Note that in order to implement the new quicksearch, certain old + and rarely-used features had to be removed: + +

      +
    • + as a prefix to mean "search additional resolutions", and + + as a prefix to mean "search just the summary". You can + instead use summary: to explicitly search summaries.
    • +
    • Searching the Severity field if you type something that matches + the first few characters of a severity. You can explicitly search + the Severity field if you want to find [% terms.bugs %] by severity.
    • +
    • Searching the Priority field if you typed something that exactly + matched the name of a priority. You can explicitly search the + Priority field if you want to find [% terms.bugs %] by priority.
    • +
    • Searching the Platform and OS fields if you typed in one of a + certain hard-coded list of strings (like "pc", "windows", etc.). + You can explicitly search these fields, instead, if you want to + find [% terms.bugs %] with a specific Platform or OS set.
    • +
    + +

    Simple "Browse" Interface

    + +

    There is now a "Browse" link in the header of each [% terms.Bugzilla %] + page that presents a very basic interface that allows users to simply + browse through all open [% terms.bugs %] in particular components.

    + +

    SUExec Support

    + +

    [% terms.Bugzilla %] can now be run in Apache's "SUExec" mode, + which is what control panel software like cPanel and Plesk use + (so [% terms.Bugzilla %] should now be much easier to install + on shared hosting). SUExec support shows up as an option + in the localconfig file during installation.

    + +

    Experimental mod_perl Support on Windows

    + +

    There is now experimental support for running [% terms.Bugzilla %] + under mod_perl on Windows, for a significant performance enhancement + (in exchange for using more memory).

    + +

    Send Attachments by Email

    + +

    The email_in + script now supports attaching multiple attachments to [% terms.abug %] + by email, both when filing and when updating [% terms.abug %].

    + +

    JSON-RPC Interface

    + +

    [% terms.Bugzilla %] now has support for the + JSON-RPC WebServices protocol via + jsonrpc.cgi. + The JSON-RPC interface is experimental in this release--if you want any + fundamental changes in how it works, + let us + know, for the next release of [% terms.Bugzilla %].

    + +

    Migration From Other [% terms.Bug %]-Trackers

    + +

    [% terms.Bugzilla %] 3.6 comes with a new script, + migrate.pl, + which allows migration from other [% terms.bug %]-tracking systems. + Among the various features of the migration system are:

    + +
      +
    • It is non-destructive--you can migrate into an existing + [%+ terms.Bugzilla %] installation without destroying any data + in the installation.
    • +
    • It has a "dry-run" mode so you can test your migration + before actually running it.
    • +
    • It is relatively easy to write new migrators for new systems, + if you know Perl. The basic migration framework does most of the work + for you, you just have to provide it with the data from your + [%+ terms.bug %]-tracker. See the + Bugzilla::Migrate + documentation and see our current migrator, + Bugzilla/Migrate/GNATS.pm for information on how to make your + own migrator.
    • +
    + +

    The first migrator that has been implemented is for the GNATS + [%+ terms.bug %]-tracking system. We'd love to see migrators for + other systems! If you want to contribute a new migrator, see our + development + process for details on how to get code into [% terms.Bugzilla %].

    + +

    Thanks to Lambda Research for + funding the initial development of this feature.

    + +

    Other Enhancements and Changes

    + +

    Enhancements for Users

    + +
      +
    • [% terms.Bug %] Filing: When filing [% terms.abug %], + [%+ terms.Bugzilla %] now visually indicates which fields are + mandatory.
    • +
    • [% terms.Bug %] Filing: "Bookmarkable templates" now + support the "alias" and "estimated hours" fields.
    • + +
    • [% terms.Bug %] Editing: In previous versions of + [%+ terms.Bugzilla %], if you added a private comment to [% terms.abug %], + then none of the changes that you made at that time were + sent to users who couldn't see the private comment. Now, for users + who can't see private comments, public changes are sent, but the private + comment is excluded from their email notification.
    • +
    • [% terms.Bug %] Editing: The controls for groups now + appear to the right of the attachment and time-tracking tables, + when editing [% terms.abug %].
    • +
    • [% terms.Bug %] Editing: The "Collapse All Comments" + and "Expand All Comments" links now appear to the right of the + comment list instead of above it.
    • +
    • [% terms.Bug %] Editing: The See Also field now supports + URLs for Google Code Issues and the Debian B[% %]ug-Tracking System.
    • +
    • [% terms.Bug %] Editing: There have been significant performance + improvements in show_bug.cgi (the script that displays the + [% terms.bug %]-editing form), particularly for [% terms.bugs %] that + have lots of comments or attachments.
    • + +
    • Attachments: The "Details" page of an attachment + now displays itself as uneditable if you can't edit the fields + there.
    • +
    • Attachments: We now make sure that there is + a Description specified for an attachment, using JavaScript, before + the form is submitted.
    • +
    • Attachments: There is now a link back to the [% terms.bug %] + at the bottom of the "Details" page for an attachment.
    • +
    • Attachments: When you click on an "attachment 12345" link + in a comment, if the attachment is a patch, you will now see the + formatted "Diff" view instead of the raw patch.
    • +
    • Attachments: For text attachments, we now let the browser + auto-detect the character encoding, instead of forcing the browser to + always assume the attachment is in UTF-8.
    • + +
    • Search: You can now display [% terms.bug %] flags as a column + in search results.
    • +
    • Search: When viewing search results, you can see which columns are + being sorted on, and which direction the sort is on, as indicated + by arrows next to the column headers.
    • +
    • Search: You can now search the Deadline field using relative + dates (like "1d", "2w", etc.).
    • +
    • Search: The iCalendar format of search results now includes + a PRIORITY field.
    • +
    • Search: It is no longer an error to enter an invalid search + order in a search URL--[% terms.Bugzilla %] will simply warn you that + some of your order options are invalid.
    • +
    • Search: When there are no search results, some helpful + links are displayed, offering actions you might want to take.
    • +
    • Search: For those who like to make their own + buglist.cgi URLs (and for people working on customizations), + buglist.cgi now accepts nearly every valid field in + [%+ terms.Bugzilla %] as a direct URL parameter, like + &field=value.
    • + +
    • Requests: When viewing the "My Requests" page, you can now + see the lists as a normal search result by clicking a link at the + bottom of each table.
    • +
    • Requests: When viewing the "My Requests" page, if you are + using Classifications, the Product drop-down will be grouped by + Classification.
    • + +
    • Inbound Email: When filing [% terms.abug %] by email, if the + product that you are filing the [% terms.bug %] into has some groups + set as Default for you, the [% terms.bug %] will now be placed into those + groups automatically.
    • +
    • Inbound Email: The field names that can be used when creating + [%+ terms.bugs %] by email now exactly matches the set of valid parameters + to the + B[% %]ug.create + WebService function. You can still use most of the old field names + that 3.4 and earlier used for inbound emails, though, for + backwards-compatibility.
    • + +
    • If there are multiple languages available for your + [%+ terms.Bugzilla %], you can now select what language you want + [%+ terms.Bugzilla %] displayed in using links at the top of every + page.
    • +
    • When creating a new account, you will be automatically logged in + after setting your password.
    • +
    • There is no longer a maximum password length for accounts.
    • +
    • In the Dusk skin, it's now easier to see links.
    • +
    • In the Whining system, you can now choose to receive emails even + if there are no [% terms.bugs %] that match your searches.
    • +
    • The arrows in dependency graphs now point the other way, so that + [%+ terms.bugs %] point at their dependencies.
    • + +
    • New Charts: You can now convert an existing Saved Search + into a data series for New Charts.
    • +
    • New Charts: There is now an interface that allows you to + delete data series.
    • +
    • New Charts: When deleting a product, you now have the option + to delete the data series that are associated with that product.
    • +
    + +

    Enhancements for Administrators and Developers

    + +
      +
    • Depending on how your workflow is set up, it is now possible to + have both UNCONFIRMED and REOPENED show up as status choices for + a closed [% terms.bug %]. If you only want one or the other to + show up, you should edit your status workflow appropriately + (possibly by removing or disabling the REOPENED status).
    • +
    • You can now "disable" field values so that they don't show + up as choices on [% terms.abug %] unless they are already set as + the value for that [% terms.bug %]. This doesn't work for the + per-product field values (component, target_milestone, and version) + yet, though.
    • +
    • Users are now locked out of their accounts for 30 minutes after + trying five bad passwords in a row during login. Every time a + user is locked out like this, the user in the "maintainer" parameter + will get an email.
    • +
    • The minimum length allowed for a password is now 6 characters.
    • +
    • The UNCONFIRMED status being enabled in a product + is now unrelated to the voting parameters. Instead, there is a checkbox + to enable the UNCONFIRMED status in a product.
    • +
    • Information about duplicates is now stored in the database instead + of being stored in the data/ directory. On large installations + this could save several hundred megabytes of disk space.
    • + +
    • Installation: When installing [% terms.Bugzilla %], the + "maintainer" parameter will be automatically set to the administrator + that was created by checksetup.pl.
    • +
    • Installation: checksetup.pl now prints out + certain errors in a special color so that you know that something + needs to be done.
    • +
    • Installation: checksetup.pl is now much + faster at upgrading installations, particularly older installations. + Also, it's been made faster to run for the case where it's not + doing an upgrade.
    • +
    • Installation: If you install [% terms.Bugzilla %] using the + tarball, the CGI.pm module from CPAN is now included in + the lib/ dir. If you would rather use the CGI.pm from your + global Perl installation, you can delete CGI.pm and the + CGI directory from the lib/ directory.
    • + +
    • When editing a group, you can now specify that members of a group + are allowed to grant others membership in that group itself.
    • +
    • The ability to compress BMP attachments to PNGs is now an Extension. + To enable the feature, remove the file + extensions/BmpConvert/disabled and then run checksetup.pl.
    • +
    • The default list of values for the Priority field are now clear English + words instead of P1, P2, etc.
    • +
    • There is now a system in place so that all field values can be + localized. See the value_descs variable in + template/en/default/global/field-descs.none.tmpl.
    • +
    • config.cgi now returns an ETag header and understands + the If-None-Match header in HTTP requests.
    • +
    • The XML format of show_bug.cgi now returns more information: + the numeric id of each comment, whether an attachment is a URL, + the modification time of an attachment, the numeric id of a flag, + and the numeric id of a flag's type.
    • + +
    • Parameters: Parameters that aren't actually required are no longer + in the "Required" section of the Parameters page. Instead, some are in the + new "General" section, and some are in the new "Advanced" section.
    • +
    • Parameters: The old ssl parameter has been + changed to ssl_redirect, and can only be turned "on" or "off". + If "on", then all users will be forcibly redirected to SSL whenever + they access [% terms.Bugzilla %]. When the parameter is off, + no SSL-related redirects will occur (even if the user directly + accesses [% terms.Bugzilla %] via SSL, they will not be + redirected to a non-SSL page).
    • +
    • Parameters: In the Advanced parameters, there is a new parameter, + inbound_proxies. If your [% terms.Bugzilla %] is behind a + proxy, you should set this parameter to the IP address of that proxy. + Then, [% terms.Bugzilla %] will "believe" any "X-Forwarded-For" + header sent from that proxy, and correctly use the X-Forwarded-For + as the end user's IP, instead of believing that all traffic is coming + from the proxy.
    • + +
    • Removed Parameter: The loginnetmask parameter has + been removed. Since [% terms.Bugzilla %] sends secure cookies, it's no + longer necessary to always restrict logins to a specific IP or block + of addresses.
    • +
    • Removed Parameter: The quicksearch_comment_cutoff + parameter is gone. Quicksearch now always searches comments; however, it + uses a much faster algorithm to do it.
    • +
    • Removed Parameter: The usermatchmode parameter has + been removed. User-matching is now always done.
    • +
    • Removed Parameter: The useentrygroupdefault parameter + has been removed. [% terms.Bugzilla %] now always behaves as though + that parameter were off.
    • +
    • The t/001compile.t test should now always pass, no matter + what configuration of optional modules you do or don't have installed.
    • +
    • New script: contrib/console.pl, which allows you to have + a "command line" into [% terms.Bugzilla %] by inputting Perl code + or using a few custom commands.
    • +
    + +

    WebService Changes

    + +
      +
    • The WebService now returns all dates and times in the UTC timezone. + B[% %]ugzilla.time now acts as though the [% terms.Bugzilla %] + server were in the UTC timezone, always. If you want to write clients + that are compatible across all [% terms.Bugzilla %] versions, + check the timezone from B[% %]ugzilla.timezone or + B[% %]ugzilla.time, and always input times in that timezone + and expect times to be returned in that format.
    • +
    • You can now log in by passing Bugzilla_login and + Bugzilla_password as arguments to any WebService function. + See the + Bugzilla::WebService + documentation for details.
    • +
    • New Method: + B[% %]ug.attachments + which allows getting information about attachments.
    • +
    • New Method: + B[% %]ug.fields, + which gets information about all the fields that [% terms.abug %] can have + in [% terms.Bugzilla %], include custom fields and legal values for + all fields. The B[% %]ug.legal_values method is now deprecated.
    • +
    • In the B[% %]ug.add_comment method, the "private" parameter + has been renamed to "is_private" (for consistency with other methods). + You can still use "private", though, for backwards-compatibility.
    • +
    • The WebService now has Perl's "taint mode" turned on. This means that + it validates all data passed in before sending it to the database. + Also, all parameter names are validated, and if you pass in a parameter + whose name contains anything other than letters, numbers, or underscores, + that parameter will be ignored. Mostly this just affects + customizers--[% terms.Bugzilla %]'s WebService is not functionally + affected by these changes.
    • +
    • In previous versions of [% terms.Bugzilla %], error messages were + sent word-wrapped to the client, from the WebService. Error messages + are now sent as one unbroken line.
    • +
    + +

    Outstanding Issues

    + +
      +
    • + [%- terms.Bug %] 423439: Tabs in comments will be converted + to four spaces, due to a bug in Perl as of Perl 5.8.8.
    • +
    • + [%- terms.Bug %] 69621: If you rename or remove a keyword that is + in use on [% terms.bugs %], you will need to rebuild the "keyword cache" + by running sanitycheck.cgi and choosing + the option to rebuild the cache when it asks. Otherwise keywords may + not show up properly in search results.
    • +
    • + [%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at + the same time, there is no "mid-air collision" protection.
    • +
    • + [%- terms.Bug %] 276230: The support for restricting access to + particular Categories of New Charts is not complete. You should treat + the 'chartgroup' Param as the only access mechanism available.
      + However, charts migrated from Old Charts will be restricted to + the groups that are marked MANDATORY for the corresponding Product. + There is currently no way to change this restriction, and the + groupings will not be updated if the group configuration + for the Product changes.
    • +
    + +

    Notes On Upgrading From a Previous Version

    + +

    When upgrading to 3.6, checksetup.pl will create foreign keys + for many columns in the database. Before doing this, it will check the + database for consistency. If there are an unresolvable consistency + problems, it will tell you what table and column in the database contain + the bad values, and which values are bad. If you don't know what else to do, + you can always delete the database records which contain the bad values by + logging in to your database and running the following command:

    + +

    DELETE FROM table WHERE column IN + (1, 2, 3, 4)

    + +

    Just replace "table" and "column" with the name of the table + and column that checksetup.pl mentions, and "1, 2, 3, 4" + with the invalid values that checksetup.pl prints out.

    + +

    Remember that you should always back up your database before doing + an upgrade.

    + +

    Code Changes Which May Affect Customizations

    + +
      +
    • There is no longer a SendBugMail method in the templates, and bugmail + is no longer sent by processing a template. Instead, it is sent + by using Bugzilla::BugMail::Send.
    • +
    • Comments are now represented as a + Bugzilla::Comment + object instead of just being hashes.
    • +
    • In previous versions of [% terms.Bugzilla %], the template for displaying + [%+ terms.abug %] required a lot of extra variables that are now global + template variables instead.
    • +
    • You can now check if optional modules are installed by using + Bugzilla->feature in Perl code or + feature_enabled in template code.
    • +
    • All of the various template header information required to display + the [% terms.bug %] form is now in one template, + template/en/default/bug/show-header.html.tmpl.
    • +
    • You should now use display_value instead of + get_status or get_resolution in templates. + display_value should be used anywhere that a + <select>-type field has its values displayed.
    • +
    + + +

    [% terms.Bugzilla %] 3.4 Release Notes

    + + + +

    Introduction

    + +

    This is [% terms.Bugzilla %] 3.4! [% terms.Bugzilla %] 3.4 brings a lot + of great enhancements for [% terms.Bugzilla %] over previous versions, + with various improvements to the user interface, lots of interesting new + features, and many long-standing requests finally being addressed.

    + +

    If you're upgrading, make sure to read Notes + On Upgrading From a Previous Version. If you are upgrading from a release + before 3.2, make sure to read the release notes for all the + previous versions in between your version + and this one, particularly the Upgrading section of each + version's release notes.

    + +

    We would like to thank Canonical + Ltd. for funding development of one new feature, and NASA for funding + development of several new features through the + San Jose State University + Foundation.

    + +

    Updates In This 3.4.x Release

    + +

    3.4.6

    + +
      +
    • When doing a search that involves "not equals" or "does not contain the + string" or similar "negative" search types, the search description that + appears at the top of the resulting [% terms.bug %] list will indicate + that the search was of that type. + ([% terms.Bug %] 474738) +
    • +
    • In Internet Explorer, users couldn't easily mark a RESOLVED DUPLICATE + [%+ terms.bug %] as REOPENED, due to a JavaScript error. + ([% terms.Bug %] 546719) +
    • +
    • If you use a "bookmarkable template" to pre-fill forms on + the [% terms.bug %]-filing page, and you have custom fields + that are only supposed to appear (or only supposed to have certain + values) based on the values of other fields, those custom fields will + now work properly. + ([% terms.Bug %] 538211) +
    • +
    • If you have a custom field that's only supposed to appear when + a [% terms.bug %]'s resolution is FIXED, it will now behave properly + on the [% terms.bug %]-editing form when a user sets the [% terms.bug %]'s + status to RESOLVED. + ([% terms.Bug %] 520993) +
    • +
    • If you are logged-out and using request.cgi, the Requester + and Requestee fields no longer respect the usermatching + parameter--they always require full usernames. + ([% terms.Bug %] 533018) +
    • +
    • If you tried to do a search with too many terms (resulting in a URL + that was longer than about 7000 characters), Apache would return a + 500 error instead of your search results. + ([% terms.Bug %] 513989) +
    • +
    • [% terms.Bugzilla %] would sometimes lose fields from your sort order + when you added new fields to your sort order. + ([% terms.Bug %] 470214) +
    • +
    • The Atom format of search results would sometimes be missing the + Reporter or Assignee field for some [% terms.bugs %]. + ([% terms.Bug %] 537834) +
    • +
    + +

    3.4.5

    + +

    This release contains fixes for multiple security issues. See the + Security Advisory + for details.

    + +

    In addition, the following important fixes/changes have been made in + this release:

    + +
      +
    • Whining was failing if jobqueue.pl was enabled. + ([% terms.Bug %] 530270) +
    • +
    • The Assignee field was empty in Whine mails. + ([% terms.Bug %] 511216) +
    • +
    • Administrators can now successfully create user accounts using + editusers.cgi when using the "Env" authentication method. + ([% terms.Bug %] 483987) +
    • +
    • [% terms.Bug %]mail now uses the timezone of the recipient of the email, + when displaying the time a comment was made, instead of the timezone of the + person who made the change. + ([% terms.Bug %] 534587) +
    • +
    • "[% terms.bug %] 1234" in comments sometimes would not become a link if + word-wrapping happened between "[% terms.bug %]" and the number. + ([% terms.Bug %] 514703) +
    • +
    • Running checksetup.pl on Windows will no longer pop up an error box + about OCI.dll. + ([% terms.Bug %] 480968) +
    • +
    + +

    3.4.4

    + +

    This release contains a fix for a security issue. See the + Security Advisory + for details.

    + +

    Additionally, this release fixes a few minor [% terms.bugs %].

    + +

    3.4.3

    + +
      +
    • [% terms.Bugzilla %] installations running under mod_perl were leaking + about 512K of RAM per page load. + ([% terms.Bug %] 517793) +
    • +
    • Attachments with Unicode characters in their names were being downloaded + with mangled names. + ([% terms.Bug %] 328628) +
    • +
    • Creating custom fields with Unicode in their database column name + is now no longer allowed, as it would break [% terms.Bugzilla %]. If you + created such a custom field, you should delete it by first marking it + obsolete and then clicking "Delete" in the custom field list, using + editfields.cgi. + ([% terms.Bug %] 525025) +
    • +
    • Clicking "submit only my comment" on the "mid-air collisions" page + was leading to a "Suspicious Action" warning. + ([% terms.Bug %] 514378) +
    • +
    • The XML format of [% terms.abug %] accidentally contained the + word-wrapped content of comments instead of the unwrapped content. + ([% terms.Bug %] 509152) +
    • +
    • You can now do ./install-module.pl --shell to get a CPAN + shell using the configuration of + install-module.pl, + which allows you to do more advanced Perl module installation tasks. + ([% terms.Bug %] 445875) +
    • +
    + +

    3.4.2

    + +

    This release contains fixes for multiple security issues, one of which + is highly critical. See the + Security Advisory + for details.

    + +

    In addition, the following important fixes/changes have been made in + this release:

    + +
      +
    • Upgrades from older releases were sometimes failing during UTF-8 + conversion with a foreign key error. + ([% terms.Bug %] 508181) +
    • +
    • Sorting [% terms.bug %] lists on certain fields would result in an error. + ([% terms.Bug %] 510944) +
    • +
    • [% terms.Bug %] update emails had two or three blank lines at the top + and between the various sections of the email. There is now only one + blank line in each of those places, making these emails more compact. + ([% terms.Bug %] 73330) +
    • +
    • [% terms.Bug %] email notifications for new [% terms.bugs %] incorrectly + had a line saying that the description was "Comment 0". + ([% terms.Bug %] 510798) +
    • +
    • Running ./collectstats.pl --regenerate is now much faster, + on the order of 20x or 100x faster. + ([% terms.Bug %] 286625) +
    • +
    • For users of RHEL, CentOS, Fedora, etc. jobqueue.pl can now automatically + be installed as a daemon by running ./jobqueue.pl install + as root. + ([% terms.Bug %] 475403) +
    • +
    • XML-RPC interface responses had an incorrect Content-Length header + and would sometimes be truncated, if they contained certain UTF-8 + characters. + ([% terms.Bug %] 486306) +
    • +
    • Users who didn't have access to the time-tracking fields would get an + empty [% terms.bug %] update email when the time-tracking fields were + changed. + ([% terms.Bug %] 509035) +
    • +
    • In the New Charts, non-public series now no longer show up as selectable + if you cannot access them. + ([% terms.Bug %] 389396) +
    • +
    + +

    3.4.1

    + +

    This release contains an important security fix. See the + Security Advisory + for details.

    + +

    Minimum Requirements

    + +

    Any requirements that are new since 3.2.3 will look like + this.

    + + + +

    Perl

    + +

    Perl v5.8.1

    + +

    For MySQL Users

    + +
      +
    • MySQL v4.1.2
    • +
    • perl module: DBD::mysql v4.00
    • +
    + +

    For PostgreSQL Users

    + +
      +
    • PostgreSQL v8.00.0000
    • +
    • perl module: DBD::Pg v1.45
    • +
    + +

    For Oracle Users

    + +
      +
    • Oracle v10.02.0
    • +
    • perl module: DBD::Oracle v1.19
    • +
    + +

    Required Perl Modules

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Module Version
    CGI3.21
    Digest::SHA (Any)
    Date::Format2.21
    DateTime0.28
    DateTime::TimeZone0.71
    DBI1.41
    Template2.22
    Email::Send2.00
    Email::MIME1.861
    Email::MIME::Encodings1.313
    Email::MIME::Modifier1.442
    URI(Any)
    + +

    Optional Perl Modules

    + +

    The following perl modules, if installed, enable various + features of [% terms.Bugzilla %]:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ModuleVersionEnables Feature
    LWP::UserAgent(Any)Automatic Update Notifications
    Template::Plugin::GD::Image(Any)Graphical Reports
    GD::Text(Any)Graphical Reports
    GD::Graph(Any)Graphical Reports
    GD1.20Graphical Reports, New Charts, Old Charts
    Email::MIME::Attachment::Stripper(Any)Inbound Email
    Email::Reply(Any)Inbound Email
    Net::LDAP(Any)LDAP Authentication
    TheSchwartz(Any)Mail Queueing
    Daemon::Generic(Any)Mail Queueing
    HTML::Parser3.40More HTML in Product/Group Descriptions
    HTML::Scrubber(Any)More HTML in Product/Group Descriptions
    XML::Twig(Any)Move [% terms.Bugs %] Between Installations
    MIME::Parser5.406Move [% terms.Bugs %] Between Installations
    Chart::Base1.0New Charts, Old Charts
    Image::Magick(Any)Optionally Convert BMP Attachments to PNGs
    PatchReader0.9.4Patch Viewer
    Authen::Radius(Any)RADIUS Authentication
    Authen::SASL(Any)SMTP Authentication
    SOAP::Lite0.710.06XML-RPC Interface
    mod_perl21.999022mod_perl
    + +

    New Features and Improvements

    + + + +

    Simple [% terms.Bug %] Filing

    + +

    When entering a new [% terms.bug %], the vast majority of fields are + now hidden by default, which enormously simplifies the bug-filing form. + You can click "Show Advanced Fields" to show all the fields, if you want + them. [%+ terms.Bugzilla %] remembers whether you last used the "Advanced" + or "Simple" version of the [% terms.bug %]-entry form, and will display the + same version to you again next time you file [% terms.abug %].

    + +

    New Home Page

    + +

    [% terms.Bugzilla %]'s front page has been redesigned to be better at + guiding new users into the activities that they most commonly want to + do. Further enhancements to the home page are coming in future versions + of [% terms.Bugzilla %].

    + +

    Email Addresses Hidden From Logged-Out Users

    + +

    To help prevent spam to [% terms.Bugzilla %] users, all email addresses + stored in [% terms.Bugzilla %] are now displayed only if you are logged in. + If you are logged out, only the part before the "@" of the email address is + displayed. This includes [% terms.bug %] lists, viewing [% terms.bugs %], the + XML format of [% terms.abug %], and any other place in the web interface that + an email address could appear.

    + +

    Email addresses are not filtered out of [% terms.bug %] comments. + The WebService still returns full email addresses, even if you are logged + out.

    + +

    Shorter Search URLs

    + +

    When submitting a search, all the unused fields are now stripped from + the URL, so search URLs are much more meaningful, and much shorter.

    + +

    Asynchronous Email Sending

    + +

    The largest performance problem in former versions of [% terms.Bugzilla %] + was that when updating [% terms.bugs %], email would be sent immediately + to every user who needed to be notified, and process_bug.cgi + would wait for the emails to be sent before continuing.

    + +

    Now [% terms.Bugzilla %] is capable of queueing emails to be sent + while [% terms.abug %] is being updated, and sending them in the + background. This requires the administrator to run a daemon + that comes with [% terms.Bugzilla %], named + jobqueue.pl, + and to enable the + use_mailer_queue parameter.

    + +

    Using the background email-sending daemon instead of sending mail directly + should result in a very large speed-up for updating [% terms.bugs %], + particularly on larger installations.

    + +

    Dates and Times Displayed In User's Time Zone

    + +

    Users can now select what time zone they are in and [% terms.Bugzilla %] + will adjust displayed times to be correct for their time zone. However, + times the user inputs are unfortunately still in [% terms.Bugzilla %]'s + time zone.

    + +

    Custom Fields That Only Appear When Another Field + Has a Particular Value

    + +

    When creating a new custom field (or updating the definition of + an existing custom field), you can now say that "this field only + appears when field X has value Y". (In the future, you will be able + to select multiple values for "Y", so a field will appear when any + one of those values is selected.)

    + +

    This feature only hides fields--it doesn't make their values go away. + So [% terms.bugs %] will still show up in searches for that field's + value, but the field won't appear in the user interface.

    + +

    This is a good way of making Product-specific fields.

    + +

    Custom Fields Whose List of Values Change + Depending on the Value of Another Field

    + +

    When creating a drop-down or multiple-selection custom field, you can + now specify that another field "controls the values" of this field. + Then, when adding values to this field, you can say that a particular + value only appears when the other field is set to a particular + value.

    + +

    Here's an example: Let's say that we create a field called "Colors", + and we make the Product field "control the values" for Colors. Then we + add Blue, Red, Black, and Yellow as legal values for the "Colors" field. + Now we can say that "Blue" and "Red" only appear as valid choices in + Product A, "Yellow" only appears in Product B, but "Black" always + appears.

    + +

    One thing to note is that this feature only controls what values appear in + the user interface. [% terms.Bugzilla %] itself will still accept + any combination of values as valid, in the backend.

    + +

    New Custom Field Type: [% terms.Bug %] ID

    + +

    You can now create a custom field that holds a reference to a single + valid [% terms.bug %] ID. In the future this will be enhanced to allow + [%+ terms.bugs %] to refer to each other via this field.

    + +

    "See Also" Field

    + +

    We have added a new standard field called "See Also" to + [%+ terms.Bugzilla %]. In this field, you can put URLs to multiple + [%+ terms.bugs %] in any [% terms.Bugzilla %] installation, to indicate + that those [% terms.bugs %] are related to this one. It also supports + adding URLs to [% terms.bugs %] in + Launchpad.

    + +

    Right now, the field just validates the URLs and then displays them, but + in the future, it will grab information from the other installation about + the [% terms.bug %] and display it here, and possibly even update the + other installation.

    + +

    If your installation does not need this field, you can hide it by disabling + the use_see_also + parameter.

    + +

    Re-order Columns in Search Results

    + +

    There is a new interface for choosing what columns appear in search + results, which allows you to change the order in which columns appear + from left to right when viewing the [% terms.bug %] list.

    + +

    Search Descriptions

    + +

    When displaying search results, [% terms.Bugzilla %] will now show + a brief description of what you searched for, at the top of the + [%+ terms.bug %] list.

    + +

    Other Enhancements and Changes

    + +

    Enhancements for Users

    + +
      +
    • You can now log in from every page, using the login form that appears + in the header or footer when you click "Log In".
    • +
    • When viewing [% terms.abug %], obsolete attachments are now + hidden from the attachment list by default. You can show them + by clicking "Show Obsolete" at the bottom of the attachment list.
    • +
    • In the Email Preferences, you can now choose to get email when + a new [% terms.bug %] report is filed and you have a particular + role on it.
    • +
    • When resolving a mid-air collision, you can now choose to submit + only your comment.
    • +
    • You can now set the Blocks and Depends On field on the "Change + Several [% terms.Bugs %] At Once" page.
    • +
    • If your installation uses the "insidergroup" feature, you can now add + private comments on the "Change Several [% terms.Bugs %] At Once" + page.
    • +
    • When viewing a search result, you can now hover over any abbreviated + field to see its full value.
    • +
    • When logging out, users are now redirected to the main page of + [%+ terms.Bugzilla %] instead of an empty page.
    • +
    • When editing [% terms.abug %], text fields (except the comment box) now + grow longer when you widen your browser window.
    • +
    • When viewing [% terms.abug %], the Depends On and Blocks list will + display [% terms.abug %]'s alias if it has one, instead of its id. + Also, closed [% terms.bugs %] will be sorted to the end of the list.
    • + +
    • If you use the time-tracking features of [% terms.Bugzilla %], and + you enable the time-tracking related columns in a search result, + then you will see a summary of the time-tracking data at the + bottom of the search result.
    • +
    • For users of time-tracking, the summarize_time.cgi page + now contains more data.
    • + +
    • When viewing an attachment's details page while you are logged-out, + flags are no longer shown as editable.
    • +
    • Cloning [% terms.abug %] will now retain the "Blocks" and "Depends On" + fields from the [% terms.bug %] being cloned.
    • +
    • [% terms.Bug %]mail for new [% terms.bugs %] will now indicate + what security groups the [% terms.bug %] has been restricted to.
    • +
    • You can now use any custom drop-down field as an axis for a tabular + or graphical report.
    • +
    • The X-Bugzilla-Type header in emails sent by + [%+ terms.Bugzilla %] is now "new" for [% terms.bug %]mail sent for + newly-filed [% terms.bugs %], and "changed" for emails having to do + with updated [% terms.bugs %].
    • +
    • Mails sent by the "Whining" system now contain the header + X-Bugzilla-Type: whine.
    • +
    • [% terms.bug %]mail now contains a X-Bugzilla-URL header to uniquely + identify which [% terms.Bugzilla %] installation the email came from.
    • +
    • If you input an invalid regular expression anywhere in + [%+ terms.Bugzilla %], it will now tell you explicitly instead of failing + cryptically.
    • +
    • The duplicates.xul page (which wasn't used by very many + people) is now gone.
    • +
    + +

    Enhancements for Administrators and Developers

    + +
      +
    • [% terms.Bugzilla %] now uses the SHA-256 algorithm (a variant of + SHA-2) to encrypt passwords in the database, instead of using Unix's + "crypt" function. This allows passwords longer than eight characters + to actually be effective. Each user's password will be converted to + SHA-256 the first time they log in after you upgrade to + [%+ terms.Bugzilla %] 3.4 or later.
    • +
    • If you are using database replication with [% terms.Bugzilla %], + many more scripts now take advantage of the read-only slave (the + "shadowdb"). It may be safe to open up show_bug.cgi + to search-engine indexing by editing your robots.txt file, + now, if your [% terms.Bugzilla %] is on fast-enough hardware.
    • +
    • The database now uses foreign keys to enforce the validity of + relationships between tables. Not every single table has all its + foreign keys yet, but most do.
    • +
    • Various parameters have been removed, in an effort to de-clutter + the parameter interface and simplify [% terms.Bugzilla %]'s code. + The parameters that were removed were: timezone, supportwatchers, + maxpatchsize, commentonclearresolution, commentonreassignbycomponent, + showallproducts. They have all been replaced with sensible default + behaviors. (For example, user watching is now always enabled.)
    • +
    • When adding &debug=1 to the end of a + buglist.cgi URL, [% terms.Bugzilla %] will now also do an + EXPLAIN on the query, to help debug performance issues.
    • +
    • When editing flag types in the administrative interface, you can now + see how many flags of each type have been set.
    • +
    + +

    WebService Changes

    + +
      +
    • Various functions have been added to the WebService: + B[% %]ug.history, + B[% %]ug.search, + B[% %]ug.comments, + B[% %]ug.update_see_also, + User.get, + and B[% %]ugzilla.time + (B[% %]ugzilla.timezone is now deprecated). +
    • +
    • For network efficiency, you can now limit which fields are returned + from certain WebService functions, like User.get.
    • +
    • There is now a "permissive" argument for the B[% %]ug.get + WebService function, which causes it not to throw an error when you + ask for [% terms.bugs %] you can't see.
    • + +
    • The B[% %]ug.get method now returns many more fields.
    • +
    • The B[% %]ug.add_comment method now returns the ID of the comment + that was just added.
    • +
    • The B[% %]ug.add_comment method will now throw an error if you + try to add a private comment but do not have the correct permissions. + (In previous versions, it would just silently ignore the private + argument if you didn't have the correct permissions.)
    • +
    • Many WebService function parameters now take individual values in + addition to arrays.
    • +
    • The WebService now validates input types--it makes sure that dates + are in the right format, that ints are actually ints, etc. It will throw + an error if you send it invalid data. It also accepts empty ints, doubles, + and dateTimes, and translates them to undef.
    • +
    + +

    Outstanding Issues

    + +
      +
    • + [%- terms.Bug %] 423439: Tabs in comments will be converted + to four spaces, due to a bug in Perl as of Perl 5.8.8.
    • +
    • + [%- terms.Bug %] 69621: If you rename or remove a keyword that is + in use on [% terms.bugs %], you will need to rebuild the "keyword cache" + by running sanitycheck.cgi and choosing + the option to rebuild the cache when it asks. Otherwise keywords may + not show up properly in search results.
    • +
    • + [%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at + the same time, there is no "mid-air collision" protection.
    • +
    • + [%- terms.Bug %] 276230: The support for restricting access to + particular Categories of New Charts is not complete. You should treat + the 'chartgroup' Param as the only access mechanism available.
      + However, charts migrated from Old Charts will be restricted to + the groups that are marked MANDATORY for the corresponding Product. + There is currently no way to change this restriction, and the + groupings will not be updated if the group configuration + for the Product changes.
    • +
    • + [%- terms.Bug %] 370370: mod_perl support is currently not + working on Windows machines.
    • +
    + +

    Notes On Upgrading From a Previous Version

    + +

    When upgrading to 3.4, checksetup.pl will create foreign keys + for many columns in the database. Before doing this, it will check the + database for consistency. If there are an unresolvable consistency + problems, it will tell you what table and column in the database contain + the bad values, and which values are bad. If you don't know what else to do, + you can always delete the database records which contain the bad values by + logging in to your database and running the following command:

    + +

    DELETE FROM table WHERE column IN + (1, 2, 3, 4)

    + +

    Just replace "table" and "column" with the name of the table + and column that checksetup.pl mentions, and "1, 2, 3, 4" + with the invalid values that checksetup.pl prints out.

    + +

    Remember that you should always back up your database before doing + an upgrade.

    + +

    Code Changes Which May Affect Customizations

    + +
      +
    • checksetup.pl now re-writes the localconfig + file every time it runs, keeping the current values set (if there + are any), but moving any unexpected variables into a file called + localconfig.old. If you want to continue having custom + varibles in localconfig, you will have to add them to + the LOCALCONFIG_VARS constant in + Bugzilla::Install::Localconfig.
    • +
    • Bugzilla::Object->update() now returns something different + in list context than it does in scalar context.
    • +
    • Bugzilla::Object->check() now can take object + ids in addition to names. Just pass in { id => $some_value + }.
    • +
    • Instead of being defined in buglist.cgi, columns for + search results are now defined in a subroutine called COLUMNS + in Bugzilla::Search. The data now mostly comes from the + fielddefs table in the database. Search.pm now takes a list + of column names from fielddefs for its fields argument instead + of literal SQL columns.
    • +
    • Bugzilla::Field->legal_values now returns an array of + Bugzilla::Field::Choice + objects instead of an array of strings. Bugzilla::Field::Choice will be used + in more places, in the future.
    • +
    • We now use Bugzilla::Bug->check() instead of + ValidateBugId.
    • +
    • The groups and bless_groups methods in + Bugzilla::User now return an arrayref of + Bugzilla::Group objects instead of a hashref with + group ids and group names.
    • +
    • Standard [% terms.Bugzilla %] drop-down fields now have their type + set to FIELD_TYPE_SINGLE_SELECT in the fielddefs table.
    • +
    • Bugzilla->usage_mode now defaults to + USAGE_MODE_CMDLINE if we are not running inside a web + server.
    • +
    • We no longer delete environment variables like $ENV{PATH} + automatically unless we're actually running in taint mode.
    • +
    • We are now using YUI 2.6.0.
    • +
    • In the RDF format of config.cgi, + the "resource" attribute for flags now contains "flag.cgi" instead + of "flags.cgi".
    • +
    + + + + + + + +

    [% terms.Bugzilla %] 3.2 Release Notes

    + +

    Table of Contents

    + + + +

    Introduction

    + +

    Welcome to [% terms.Bugzilla %] 3.2! This is our first major feature + release since [% terms.Bugzilla %] 3.0, and it brings a lot of great + improvements and polish to the [% terms.Bugzilla %] experience.

    + +

    If you're upgrading, make sure to read How to + Upgrade From An Older Version. If you are upgrading from a release + before 3.0, make sure to read the release notes for all the + previous versions in between your version + and this one, particularly the "Notes For Upgraders" section of each + version's release notes.

    + +

    Updates in this 3.2.x Release

    + +

    This section describes what's changed in the most recent bug-fix + releases of [% terms.Bugzilla %] after 3.2. We only list the + most important fixes in each release. If you want a detailed list of + everything that's changed in each version, you should use our + Change Log + Page.

    + +

    3.2.3

    + +
      +
    • [% terms.Bugzilla %] is now compatible with MySQL 5.1.x versions 5.1.31 + and greater. + ([% terms.Bug %] 480001)
    • +
    • On Windows, [% terms.Bugzilla %] sometimes would send mangled emails + (that would often fail to send). + ([% terms.Bug %] 467920)
    • +
    • recode.pl would sometimes crash when trying to convert + databases from older versions of [% terms.Bugzilla %]. + ([% terms.Bug %] 431201)
    • +
    • Running a saved search with Unicode characters in its name would + cause [% terms.Bugzilla %] to crash. + ([% terms.Bug %] 477513)
    • +
    • [% terms.Bugzilla %] clients like Mylyn can now update [% terms.bugs %] + again (the [% terms.bug %] XML format now contains a "token" element that + can be used when updating [% terms.abug %]). + ([% terms.Bug %] 476678)
    • +
    • For installations using the shadowdb parameter, + [%+ terms.Bugzilla %] was accidentally writing to the "tokens" table + in the shadow database (instead of the master database) when using the + "Change Several [% terms.Bugs %] at Once" page. + ([% terms.Bug %] 476943)
    • +
    + +

    This release also contains a security fix. See the + Security Fixes Section for details.

    + +

    3.2.2

    + +

    This release fixes one security issue that is critical for installations + running 3.2.1 under mod_perl. See the + Security Advisory + for details.

    + +

    3.2.1

    + +
      +
    • Attachments, charts, and graphs would sometimes be garbled on Windows. + ([% terms.Bug %] 464992)
    • + +
    • Saving changes to parameters would sometimes fail silently (particularly + on Windows when the web server didn't have the right permissions to + update the params file). [% terms.Bugzilla %] will now + throw an error in this case, telling you what is wrong. + ([% terms.Bug %] 347707)
    • + +
    • If you were using the usemenuforusers parameter, + and [% terms.abug %] was assigned to (or had a QA Contact of) a disabled + user, that field would be reset to the first user in the list when + updating [% terms.abug %]. + ([% terms.Bug %] 465589)
    • + +
    • If you were using the PROJECT environment variable + to have multiple [% terms.Bugzilla %] installations using one codebase, + project-specific templates were being ignored. + ([% terms.Bug %] 467324)
    • + +
    • Some versions of the SOAP::Lite Perl module had a b[% %]ug that caused + [%+ terms.Bugzilla %]'s XML-RPC service to break. + checksetup.pl now checks for these bad versions and + will reject them. + ([% terms.Bug %] 468009)
    • + +
    • The font sizes in various places were too small, when using the + Classic skin. + ([% terms.Bug %] 469136)
    • +
    + +

    Security Fixes In This 3.2.x Release

    + +

    3.2.3

    + +

    This release fixes one security issue related to attachments. See the + Security Advisory + for details.

    + +

    3.2.2

    + +

    This release fixes one security issue that is critical for installations + running 3.2.1 under mod_perl. See the + Security Advisory + for details.

    + +

    3.2.1

    + +

    This release contains several security fixes. One fix may break any + automated scripts you have that are loading process_bug.cgi + directly. We recommend that you read the entire + Security Advisory + for this release.

    + +

    Minimum Requirements

    + +

    Any requirements that are new since 3.0.5 will look like + this.

    + + + +

    Perl

    + +

    Perl v5.8.1

    + +

    For MySQL Users

    + +
      +
    • MySQL v4.1.2
    • +
    • perl module: + DBD::mysql v4.00
    • +
    + +

    For PostgreSQL Users

    + +
      +
    • PostgreSQL v8.00.0000
    • +
    • perl module: DBD::Pg v1.45
    • +
    + +

    Email Addresses Hidden From Logged-Out Users + For Oracle Users

    + +
      +
    • Oracle v10.02.0
    • +
    • perl module: DBD::Oracle v1.19
    • +
    + +

    Required Perl Modules

    + + + + + + + + + + + + + + + + + + +
    Module Version
    CGI 3.21 (on Perl 5.8.x) + or 3.33 (on Perl 5.10.x)
    Date::Format 2.21
    File::Spec 0.84
    DBI 1.41
    Template 2.15
    Email::Send 2.00
    Email::MIME 1.861
    Email::MIME::Encodings1.313
    Email::MIME::Modifier1.442
    + +

    Optional Perl Modules

    + +

    The following perl modules, if installed, enable various + features of [% terms.Bugzilla %]:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ModuleVersionEnables Feature
    LWP::UserAgent(Any)Automatic Update Notifications
    Template::Plugin::GD::Image(Any)Graphical Reports
    GD::Text(Any)Graphical Reports
    GD::Graph(Any)Graphical Reports
    GD1.20Graphical Reports, New Charts, Old Charts
    Email::MIME::Attachment::Stripper(Any)Inbound Email
    Email::Reply(Any)Inbound Email
    Net::LDAP(Any)LDAP Authentication
    HTML::Parser3.40More HTML in Product/Group Descriptions
    HTML::Scrubber(Any)More HTML in Product/Group Descriptions
    XML::Twig(Any)Move [% terms.Bugs %] Between Installations
    MIME::Parser5.406Move [% terms.Bugs %] Between Installations
    Chart::Base1.0New Charts, Old Charts
    Image::Magick(Any)Optionally Convert BMP Attachments to PNGs
    PatchReader0.9.4Patch Viewer
    Authen::Radius(Any)RADIUS Authentication
    Authen::SASL(Any)SMTP Authentication
    SOAP::Lite(Any)XML-RPC Interface
    mod_perl21.999022mod_perl
    + +

    New Features and Improvements

    + + + +

    Major UI Improvements

    + +

    [% terms.Bugzilla %] 3.2 has had some UI assistance from the NASA + Human-Computer Interaction department and the new + [% terms.Bugzilla %] + User Interface Team.

    + +

    In particular, you will notice a massively redesigned [% terms.bug %] + editing form, in addition to our new skin.

    + +

    New Default Skin: Dusk

    + +

    [% terms.Bugzilla %] 3.2 now ships with a skin called "Dusk" that is + a bit more colorful than old default "Classic" skin.

    + +

    Upgrading installations will still default to the "Classic" + skin--administrators can change the default in the Default Preferences + control panel. Users can also choose to use the old skin in their + Preferences (or using the View :: Page Style menu in Firefox).

    + +

    The changes that [% terms.Bugzilla %] required for Dusk made + [%+ terms.Bugzilla %] much easier to skin. See the + Addons page + for additional skins, or try making your own!

    + +

    Custom Status Workflow

    + +

    You can now customize the list of statuses in [% terms.Bugzilla %], + and transitions between them.

    + +

    You can also specify that a comment must be made on certain transitions.

    + +

    New Custom Field Types

    + +

    [% terms.Bugzilla %] 3.2 has support for three new types of + custom fields:

    + +
      +
    • Large Text: Adds a multi-line textbox to your [% terms.bugs %].
    • +
    • Multiple Selection Box: Adds a box that allows you to choose + multiple items from a list.
    • +
    • Date/Time: Displays a date and time, along with a JavaScript + calendar popup to make picking a date easier.
    • +
    + +

    Easier Installation

    + +

    [% terms.Bugzilla %] now comes with a script called + install-module.pl that can automatically download + and install all of the required Perl modules for [% terms.Bugzilla %]. + It stores them in a directory inside your [% terms.Bugzilla %] + installation, so you can use it even if you don't have administrator-level + access to your machine, and without modifying your main Perl install.

    + +

    checksetup.pl will print out instructions for using + install-module.pl, or you can read its + documentation.

    + +

    Experimental Oracle Support

    + +

    [% terms.Bugzilla %] 3.2 contains experimental support for using + Oracle as its database. Some features of [% terms.Bugzilla %] are known + to be broken on Oracle, but hopefully will be working by our next major + release.

    + +

    The [% terms.Bugzilla %] Project, as an open-source project, of course + does not recommend the use of proprietary database solutions. However, + if your organization requires that you use Oracle, this will allow + you to use [% terms.Bugzilla %]!

    + +

    The [% terms.Bugzilla %] Project thanks Oracle Corp. for their extensive + development contributions to [% terms.Bugzilla %] which allowed this to + happen!

    + +

    Improved UTF-8 Support

    + +

    [% terms.Bugzilla %] 3.2 now has advanced UTF-8 support in its code, + including correct handling for truncating and wrapping multi-byte + languages. Major issues with multi-byte or unusual languages + are now resolved, and [% terms.Bugzilla %] should now be usable + by users in every country with little (or at least much less) + customization.

    + +

    Group Icons

    + +

    Administrators can now specify that users who are in certain groups + should have an icon appear next to their name whenever they comment. + This is particularly useful for distinguishing developers from + [%+ terms.bug %] reporters.

    + +

    Other Enhancements and Changes

    + +

    These are either minor enhancements, or enhancements that have + very short descriptions. Some of these are very useful, though!

    + +

    Enhancements For Users

    + +
      +
    • [% terms.Bugs %]: You can now reassign + [%+ terms.abug %] at the same time as you are changing its status.
    • +
    • [% terms.Bugs %]: When entering [% terms.abug %], + you will now see the description of a component when you select it.
    • +
    • [% terms.Bugs %]: The [% terms.bug %] view now + contains some Microformats, + most notably for users' names and email addresses.
    • +
    • [% terms.Bugs %]: You can now remove a QA Contact + from [% terms.abug %] simply by clearing the QA Contact field.
    • +
    • [% terms.Bugs %]: There is now a user preference + that will allow you to exclude the quoted text when replying + to comments.
    • +
    • [% terms.Bugs %]: You can now expand or collapse + individual comments in the [% terms.bug %] view.
    • + +
    • Attachments: There is now "mid-air collision" + protection when editing attachments.
    • +
    • Attachments: Patches in the Diff Viewer now show + line numbers (Example).
    • +
    • Attachments: After creating or updating an attachment, + you will be immediately shown the [% terms.bug %] that the attachment + is on.
    • + +
    • Search: You can now reverse the sort of + [%+ terms.abug %] list by clicking on a column header again.
    • +
    • Search: Atom feeds of [% terms.bug %] lists now + contain more fields.
    • +
    • Search: QuickSearch now supports searching flags + and groups. It also now includes the OS field in the list of fields + it searches by default.
    • +
    • Search: "Help" text can now appear on query.cgi + for Internet Explorer and other non-Firefox browsers. (It always + could appear for Firefox.)
    • + +
    • [% terms.Bugzilla %] now ships with an icon that will show + up next to the URL in most browsers. If you want to replace it, + it's in images/favicon.ico.
    • + +
    • You can now set the Deadline when using "Change Several + [%+ terms.Bugs %] At Once"
    • +
    • Saved Searches now save their column list, so if + you customize the list of columns and save your search, it will + always contain those columns.
    • +
    • Saved Searches: When you share a search, you can + now see how many users have subscribed to it, on + userprefs.cgi.
    • +
    • Saved Searches: You can now see what group a + shared search was shared to, on the list of available shared searches + in userprefs.cgi.
    • +
    • Flags: If your installation uses drop-down user + lists, the flag requestee box will now contain only users who are + actually allowed to take requests.
    • +
    • Flags: If somebody makes a request to you, and you + change the requestee to somebody else, the requester is no longer set + to you. In other words, you can "redirect" requests and maintain the + original requester.
    • +
    • Flags: Emails about flags now will thread properly + in email clients to be a part of [% terms.abug %]'s thread.
    • +
    • When using email_in.pl, you can now add users to the CC + list by just using @cc as the field name.
    • +
    • Many pages (particularly administrative pages) now contain links to + the relevant section of the [% terms.Bugzilla %] Guide, so you can read + the documentation for that page.
    • +
    • Dependency Graphs should render more quickly, as they now (by default) + only include the same [% terms.bugs %] that you'd see in the dependency + tree.
    • +
    + +

    Enhancements For Administrators

    + +
      +
    • Admin UI: Instead of having the Administration + Control Panel links in the footer, there is now just one link called + "Administration" that takes you to a page that links to all the + administrative controls for [% terms.Bugzilla %].
    • +
    • Admin UI: Administrative pages no longer display + confirmation pages, instead they redirect you to some useful page + and display a message about what changed.
    • +
    • Admin UI: The interface for editing group + inheritance in editgroups.cgi is much clearer now.
    • +
    • Admin UI: When editing a user, you can now see + all the components where that user is the Default Assignee or Default + QA Contact.
    • + +
    • Email: For installations that use SMTP to send + mail (as opposed to Sendmail), [%+ terms.Bugzilla %] now supports + SMTP Authentication, so that it can log in to your mail server + before sending messages.
    • +
    • Email: Using the "Test" mail delivery method now + creates a valid mbox file to make testing easier.
    • + +
    • Authentication: [% terms.Bugzilla %] now correctly + handles LDAP records which contain multiple email addresses. (The first + email address in the list that is a valid [% terms.Bugzilla %] account + will be used, or if this is a new user, the first email address in + the list will be used.)
    • +
    • Authentication: [% terms.Bugzilla %] can now take + a list of LDAP servers to try in order until it gets a successful + connection.
    • +
    • Authentication: [% terms.Bugzilla %] now supports + RADIUS authentication.
    • + +
    • Security: The login cookie is now created as + "HTTPOnly" so that it can't be read by possibly malicious scripts. + Also, if SSL is enabled on your installation, the login cookie is + now only sent over SSL connections.
    • +
    • Security: The ssl parameter now protects + every page a logged-in user accesses, when set to "authenticated sessions." + Also, SSL is now enforced appropriately in the WebServices interface when + the parameter is set.
    • + +
    • Database: [% terms.Bugzilla %] now uses transactions in + the database instead of table locks. This should generally improve + performance with many concurrent users. It also means if there is + an unexpected error in the middle of a page, all database changes made + during that page will be rolled back.
    • +
    • Database: You no longer have to set + max_packet_size in MySQL to add large attachments. However, + you may need to set it manually if you restore a mysqldump into your + database.
    • + +
    • New WebService functions: + Bug.add_comment + and Bugzilla.extensions.
    • + +
    • You can now delete custom fields, but only if they have never been + set on any [% terms.bug %].
    • +
    • There is now a --reset-password argument to + checksetup.pl that allows you to reset a user's password + from the command line.
    • +
    • There is now a script called sanitycheck.pl that you can + run from the command line. It works just like sanitycheck.cgi. + By default, it only outputs anything if there's an error, so it's + ideal for administrators who want to run it nightly in a cron job.
    • +
    • The strict_isolation parameter now prevents you from setting + users who cannot see [% terms.abug %] as a CC, Assignee, or QA + Contact. Previously it only prevented you from adding users who + could not edit the [% terms.bug %].
    • +
    • Extensions can now add their own headers to the HTML <head> + for things like custom CSS and so on.
    • +
    • sanitycheck.cgi has been templatized, meaning that the + entire [% terms.Bugzilla %] UI is now contained in templates.
    • +
    • When setting the sslbase parameter, you can now specify + a port number in the URL.
    • +
    • When importing [% terms.bugs %] using importxml.pl, + attachments will have their actual creator set as their creator, + instead of the person who exported the [% terms.bug %] from the other + system.
    • +
    • The voting system is off by default in new installs. This is to + prepare for the fact that it will be moved into an extension at + some point in the future.
    • +
    • The shutdownhtml parameter now works even when + [%+ terms.Bugzilla %]'s database server is down.
    • +
    + +

    Enhancements for Localizers (or Localized Installations)

    + +
      +
    • The documentation can now be localized--in other words, you can have + documentation installed for multiple languages at once and + [%+ terms.Bugzilla %] will link to the correct language in its internal + documentation links.
    • +
    • [% terms.Bugzilla %] no longer uses the languages parameter. + Instead it reads the template/ directory to see which + languages are available.
    • +
    • Some of the messages printed by checksetup.pl can now + be localized. See template/en/default/setup/strings.txt.pl. +
    + +

    Outstanding Issues

    + +
      +
    • + [%- terms.Bug %] 423439: Tabs in comments will be converted + to four spaces, due to a bug in Perl as of Perl 5.8.8.
    • +
    • + [%- terms.Bug %] 69621: If you rename or remove a keyword that is + in use on [% terms.bugs %], you will need to rebuild the "keyword cache" + by running sanitycheck.cgi and choosing + the option to rebuild the cache when it asks. Otherwise keywords may + not show up properly in search results.
    • +
    • + [%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at + the same time, there is no "mid-air collision" protection.
    • +
    • + [%- terms.Bug %] 276230: The support for restricting access to + particular Categories of New Charts is not complete. You should treat + the 'chartgroup' Param as the only access mechanism available.
      + However, charts migrated from Old Charts will be restricted to + the groups that are marked MANDATORY for the corresponding Product. + There is currently no way to change this restriction, and the + groupings will not be updated if the group configuration + for the Product changes.
    • +
    • + [%- terms.Bug %] 370370: mod_perl support is currently not + working on Windows machines.
    • +
    + +

    How to Upgrade From An Older Version

    + +

    Notes For Upgraders

    + +
      +
    • If you upgrade by CVS, the extensions and + skins/contrib directories are now in CVS instead of + being created by checksetup.pl If you do a cvs update + from 3.0, you will be told that your directories are "in the way" and + you should delete (or move) them and then do cvs update + again. Also, the docs directory has been restructured + and after you cvs update you can delete the docs/html, + docs/pdf, docs/txt, and docs/xml + directories.
    • +
    • If you are using MySQL, you should know that [% terms.Bugzilla %] + now uses InnoDB for all tables. checksetup.pl will convert + your tables automatically, but if you have InnoDB disabled, + the upgrade will not be able to complete (and checksetup.pl + will tell you so).
    • + +
    • You should also read the + [% terms.Bugzilla %] 3.0 Notes For Upgraders + section of the + previous release notes if you are upgrading + from a version before 3.0.
    • +
    + +

    Steps For Upgrading

    + +

    Once you have read the notes above, see the + Upgrading + documentation for instructions on how to upgrade.

    + +

    Code Changes Which May Affect Customizations

    + + + +

    More Hooks!

    + +

    There are more code hooks in 3.2 than there were in 3.0. See the + documentation of Bugzilla::Hook + for more details.

    + + + +

    Bugzilla/Search.pm has been heavily modified, to be much + easier to read and use. It contains mostly the same code as it did in + 3.0, but it has been moved around and reorganized significantly.

    + +

    lib Directory

    + +

    As part of implementing install-module.pl, + [%+ terms.Bugzilla %] was given a local lib directory which + it searches for modules, in addition to the standard system path.

    + +

    This means that all [% terms.Bugzilla %] scripts now start with + use lib qw(. lib); as one of the first lines.

    + +

    Other Changes

    + +
      +
    • You should now be using get_status('NEW') instead of + status_descs.NEW in templates.
    • +
    • The [%# version = 1.0 %] comment at the top of every + template file has been removed.
    • +
    + +

    [% terms.Bugzilla %] 3.0.x Release Notes

    + +

    Table of Contents

    + + + +

    Introduction

    + +

    Welcome to [% terms.Bugzilla %] 3.0! It's been over eight years since + we released [% terms.Bugzilla %] 2.0, and everything has changed since + then. Even just since our previous release, [% terms.Bugzilla %] 2.22, + we've added a lot of new features. So enjoy the release, we're + happy to bring it to you.

    + +

    If you're upgrading, make sure to read How to + Upgrade From An Older Version. If you are upgrading from a release + before 2.22, make sure to read the release notes for all the + previous versions in between your version + and this one.

    + +

    Updates in this 3.0.x Release

    + +

    This section describes what's changed in the most recent bug-fix + releases of [% terms.Bugzilla %] after 3.0. We only list the + most important fixes in each release. If you want a detailed list of + everything that's changed in each version, you should use our + Change Log Page.

    + +

    3.0.6

    + +
      +
    • Before 3.0.6, unexpected fatal WebService errors would result in + a faultCode that was a string instead of a number. + ([% terms.Bug %] 446327)
    • +
    • If you created a product or component with the same name as one you + previously deleted, it would fail with an error about the series table. + ([% terms.Bug %] 247936)
    • +
    + +

    See also the Security Advisory section for + information about a security issue fixed in this release.

    + +

    3.0.5

    + +
      +
    • If you don't have permission to set a flag, it will now appear + unchangeable in the UI. + ([% terms.Bug %] 433851)
    • +
    • If you were running mod_perl, [% terms.Bugzilla %] was not correctly + closing its connections to the database since 3.0.3, and so sometimes + the DB would run out of connections. + ([% terms.Bug %] 441592)
    • +
    • The installation script is now clear about exactly which + Email:: modules are required in Perl, thus avoiding the + problem where emails show up with a body like + SCALAR(0xBF126795). + ([% terms.Bug %] 441541)
    • +
    • email_in.pl + is no longer case-sensitive for values of @product. + ([% terms.Bug %] 365697)
    • +
    + +

    See also the Security Advisory section for + information about security issues fixed in this release.

    + +

    3.0.4

    + + + +

    See also the Security Advisory section for + information about security issues fixed in this release.

    + +

    3.0.3

    + +
      +
    • mod_perl no longer compiles [% terms.Bugzilla %]'s code for each Apache + process individually. It now compiles code only once and shares it among + each Apache process. This greatly improves performance and highly + decreases the memory footprint. + ([% terms.Bug %] 398241)
    • + +
    • You can now search for '---' (without quotes) in versions and milestones. + ([% terms.Bug %] 362436)
    • + +
    • [% terms.Bugzilla %] should no longer break lines unnecessarily in + email subjects. This was causing trouble with some email clients. + ([% terms.Bug %] 374424)
    • + +
    • If you had selected "I'm added to or removed from this capacity" option + for the "CC" role in your email preferences, you wouldn't get mail when + more than one person was added to the CC list at once. + ([% terms.Bug %] 394796)
    • + +
    • Deleting a user account no longer deletes whines from another user who + has the deleted account as addressee. The schedule is simply removed, + but the whine itself is left intact. + ([% terms.Bug %] 395924)
    • + +
    • contrib/merge-users.pl now correctly merges all required + fields when merging two user accounts. + ([% terms.Bug %] 400160)
    • + +
    • [% terms.Bugzilla %] no longer requires Apache::DBI to run under + mod_perl. It caused troubles such as lost connections with the DB and + didn't give any important performance gain. + ([% terms.Bug %] 408766)
    • +
    + +

    3.0.2

    + +
      +
    • [% terms.Bugzilla %] should now work on Perl 5.9.5 (and thus the + upcoming Perl 5.10.0). + ([% terms.Bug %] 390442)
    • +
    + +

    See also the Security Advisory section for + information about an important security issue fixed in this release.

    + +

    3.0.1

    + +
      +
    • For users of Firefox 2, the show_bug.cgi user interface + should no longer "collapse" after you modify [% terms.abug %]. + ([% terms.Bug %] 370739)
    • +
    • If you can bless a group, and you share a saved search with that + group, it will no longer automatically appear in all of that group's + footers unless you specifically request that it automatically appear + in their footers. + ([% terms.Bug %] 365890)
    • +
    • There is now a parameter to allow users to perform searches without + any search terms. (In other words, to search for just a Product + and Status on the Simple Search page.) The parameter is called + specific_search_allow_empty_words. + ([% terms.Bug %] 385910)
    • +
    • If you attach a file that has a MIME-type of text/x-patch + or text/x-diff, it will automatically be treated as a + patch by [% terms.Bugzilla %]. + ([% terms.Bug %] 365756)
    • +
    • Dependency Graphs now work correctly on all mod_perl installations. + There should now be no remaining signficant problems with running + [%+ terms.Bugzilla %] under mod_perl. + ([% terms.Bug %] 370398)
    • +
    • If moving [% terms.abug %] between products would remove groups + from the [% terms.bug %], you are now warned. + ([% terms.Bug %] 303183)
    • +
    • On IIS, whenever [% terms.Bugzilla %] threw a warning, it would + actually appear on the web page. Now warnings are suppressed, + unless you have a file in the data directory called + errorlog, in which case warnings will be printed there. + ([% terms.Bug %] 390148)
    • +
    • If you used email_in.pl to edit [% terms.abug %] that was + protected by groups, all of the groups would be cleared. + ([% terms.Bug %] 385453)
    • +
    • PostgreSQL users: New Charts were failing to collect data over time. + They will now start collecting data correctly. + ([% terms.Bug %] 257351)
    • +
    • Some flag mails didn't specify who the requestee was. + ([% terms.Bug %] 379787)
    • +
    • Instead of throwing real errors, collectstats.pl would + just say that it couldn't find ThrowUserError. + ([% terms.Bug %] 380709)
    • +
    • Logging into [% terms.Bugzilla %] from the home page works again + with IIS5. + ([% terms.Bug %] 364008)
    • +
    • If you were using SMTP for sending email, sometimes emails would + be missing the Date header. + ([% terms.Bug %] 304999).
    • +
    • In the XML-RPC WebService, Bug.legal_values now + correctly returns values for custom fields if you request values + for custom fields. + ([% terms.Bug %] 381737)
    • +
    • The "[% terms.Bug %]-Writing Guidelines" page has been shortened + and re-written. + ([% terms.Bug %] 378590)
    • +
    • If your urlbase parameter included a port number, + like www.domain.com:8080, SMTP might have failed. + ([% terms.Bug %] 384501)
    • +
    • For SMTP users, there is a new parameter, smtp_debug. + Turning on this parameter will log the full information about + every SMTP session to your web server's error log, to help with + debugging issues with SMTP. + ([% terms.Bug %] 384497)
    • +
    • If you are a "global watcher" (you get all mails from every + [%+ terms.bug %]), you can now see that in your Email Preferences. + ([% terms.Bug %] 365302)
    • +
    • The Status and Resolution of [% terms.bugs %] are now correctly + localized in CSV search results. + ([% terms.Bug %] 389517)
    • +
    • The "Subject" line of an email was being mangled if it contained + non-Latin characters. + ([% terms.Bug %] 387860)
    • +
    • Editing the "languages" parameter using editparams.cgi would + sometimes fail, causing [% terms.Bugzilla %] to throw an error. + ([% terms.Bug %] 335354)
    • +
    + +

    Minimum Requirements

    + +

    Any requirements that are new since 2.22 will look like + this.

    + + + + +

    Perl

    + +
      +
    • Perl v5.8.0 (non-Windows + platforms)
    • +
    • Perl v5.8.1 (Windows platforms)
    • +
    + +

    For MySQL Users

    + +
      +
    • MySQL v4.1.2
    • +
    • perl module: DBD::mysql v2.9003
    • +
    + +

    For PostgreSQL Users

    + +
      +
    • PostgreSQL v8.00.0000
    • +
    • perl module: DBD::Pg v1.45
    • +
    + +

    Required Perl Modules

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Module Version
    CGI 2.93
    Date::Format 2.21
    DBI1.41
    File::Spec 0.84
    Template 2.12
    Email::Send2.00
    Email::MIME1.861
    Email::MIME::Modifier1.442
    + +

    Optional Perl Modules

    + +

    The following perl modules, if installed, enable various + features of [% terms.Bugzilla %]:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Module VersionEnables Feature
    LWP::UserAgent(Any)Automatic Update Notifications
    Template::Plugin::GD::Image(Any)Graphical Reports
    GD::Graph(Any)Graphical Reports
    GD::Text(Any)Graphical Reports
    GD1.20Graphical Reports, New Charts, Old Charts
    Email::MIME::Attachment::Stripper(Any)Inbound Email
    Email::Reply(Any)Inbound Email
    Net::LDAP(Any)LDAP Authentication
    HTML::Parser3.40More HTML in Product/Group Descriptions
    HTML::Scrubber(Any)More HTML in Product/Group Descriptions
    XML::Twig(Any)Move [% terms.Bugs %] Between Installations
    MIME::Parser5.406Move [% terms.Bugs %] Between Installations
    Chart::Base1.0New Charts, Old Charts
    Image::Magick(Any)Optionally Convert BMP Attachments to PNGs
    PatchReader0.9.4Patch Viewer
    SOAP::Lite(Any)XML-RPC Interface
    mod_perl21.999022mod_perl
    CGI3.11mod_perl
    + +

    New Features and Improvements

    + + + +

    Custom Fields

    + +

    [% terms.Bugzilla %] now includes very basic support for custom fields.

    + +

    Users in the admin group can add plain-text or drop-down + custom fields. You can edit the values available for drop-down fields + using the "Field Values" control panel.

    + +

    Don't add too many custom fields! It can make [% terms.Bugzilla %] + very difficult to use. Try your best to get along with the default + fields, and then if you find that you can't live without custom fields + after a few weeks of using [% terms.Bugzilla %], only then should you + start your custom fields.

    + +

    mod_perl Support

    + +

    [% terms.Bugzilla %] 3.0 supports mod_perl, which allows for extremely + enhanced page-load performance. mod_perl trades memory usage for performance, + allowing near-instantaneous page loads, but using much more memory.

    + +

    If you want to enable mod_perl for your [% terms.Bugzilla %], we recommend + a minimum of 1.5GB of RAM, and for a site with heavy traffic, 4GB to 8GB.

    + +

    If performance isn't that critical on your installation, you don't + have the memory, or you are running some other web server than + Apache, [% terms.Bugzilla %] still runs perfectly as a normal CGI + application, as well.

    + +

    Shared Saved Searches

    + +

    Users can now choose to "share" their saved searches + with a certain group. That group will then be able to + "subscribe" to those searches, and have them appear + in their footer.

    + +

    If the sharer can "bless" the group he's sharing to, + (that is, if he can add users to that group), it's considered + that he's a manager of that group, and his queries show up + automatically in that group's footer (although they can + unsubscribe from any particular search, if they want.)

    + +

    In order to allow a user to share their queries, they also + have to be a member of the group specified in the + querysharegroup parameter.

    + +

    Users can control their shared and subscribed queries from + the "Preferences" screen.

    + +

    Attachments and Flags on New [% terms.Bugs %]

    + +

    You can now add an attachment while you are filing a new + [%+ terms.bug %].

    + +

    You can also set flags on the [% terms.bug %] and on attachments, while + filing a new [% terms.bug %].

    + +

    Custom Resolutions

    + +

    You can now customize the list of resolutions available + in [% terms.Bugzilla %], including renaming the default resolutions.

    + +

    The resolutions FIXED, DUPLICATE + and MOVED have a special meaning to [% terms.Bugzilla %], + though, and cannot be renamed or deleted.

    + +

    Per-Product Permissions

    + +

    You can now grant users editbugs and canconfirm + for only certain products. You can also grant users editcomponents + on a product, which means they will be able to edit that product + including adding/removing components and other product-specific + controls.

    + +

    User Interface Improvements

    + +

    There has been some work on the user interface for [% terms.Bugzilla %] 3.0, + including:

    + +
      +
    • There is now navigation and a search box a the top of + each page, in addition to the bar at the bottom of the page.
    • +
    • A re-designed "Format for Printing" page for + [%+ terms.bugs %].
    • +
    • The layout of show_bug.cgi (the [% terms.bug %] editing + page) has been changed, and the attachment table has been redesigned.
    • +
    + +

    XML-RPC Interface

    + +

    [% terms.Bugzilla %] now has a Web Services interface using the XML-RPC + protocol. It can be accessed by external applications by going + to the xmlrpc.cgi on your installation.

    + +

    Documentation can be found in the + [% terms.Bugzilla %] + API Docs, in the various Bugzilla::WebService modules.

    + +

    Skins

    + +

    [% terms.Bugzilla %] can have multiple "skins" installed, + and users can pick between them. To write a skin, you just have to + write several CSS files. See the Custom + Skins Documentation for more details.

    + +

    We currently don't have any alternate skins shipping with + [%+ terms.Bugzilla %]. If you write an alternate skin, please + let us know!

    + +

    Unchangeable Fields Appear Unchangeable

    + +

    As long as you are logged in, when viewing [% terms.abug %], if you + cannot change a field, it will not look like you can change it. That + is, the value will just appear as plain text.

    + +

    All Emails in Templates

    + +

    All outbound emails are now controlled by the templating system. + What used to be the passwordmail, whinemail, + newchangedmail and voteremovedmail + parameters are now all templates in the template/ directory.

    + +

    This means that it's now much easier to customize your outbound + emails, and it's also possible for localizers to have more + localized emails as part of their language packs, if they want.

    + +

    We also added a mailfrom parameter to let you set + who shows up in the From field on all emails that + [%+ terms.Bugzilla %] sends.

    + +

    No More Double-Filed [% terms.Bugs %]

    + +

    Users of [% terms.Bugzilla %] will sometimes accidentally submit + [%+ terms.abug %] twice, either by going back in their web browser, + or just by refreshing a page. In the past, this could file the same + [%+ terms.bug %] twice (or even three times) in a row, irritating + developers and confusing users.

    + +

    Now, if you try to submit [% terms.abug %] twice from the same screen + (by going back or by refreshing the page), [% terms.Bugzilla %] will warn + you about what you're doing, before it actually submits the duplicate + [%+ terms.bug %].

    + +

    Default CC List for Components

    + +

    You can specify a list of users who will always be added to + the CC list of new [% terms.bugs %] in a component.

    + +

    File/Modify [% terms.Bugs %] By Email

    + +

    You can now file or modify [% terms.bugs %] via email. Previous versions + of [% terms.Bugzilla %] included this feature only as an + unsupported add-on, but it is now an official interface to + [%+ terms.Bugzilla %].

    + +

    For more details see the documentation + for email_in.pl.

    + +

    Users Who Get All [% terms.Bug %] Notifications

    + +

    There is now a parameter called globalwatchers. This + is a comma-separated list of [% terms.Bugzilla %] users who will + get all [% terms.bug %] notifications generated by [% terms.Bugzilla %].

    + +

    Group controls still apply, though, so users who can't see [% terms.abug %] + still won't get notifications about that [% terms.bug %].

    + +

    Improved UTF-8 Support

    + +

    [% terms.Bugzilla %] users running MySQL should now have excellent + UTF-8 support if they turn on the utf8 parameter. (New + installs have this parameter on by default.) [% terms.Bugzilla %] + now correctly supports searching and sorting in non-English languages, + including multi-bytes languages such as Chinese.

    + +

    Automatic Update Notification

    + +

    If you belong to the admin group, you will be notified + when you log in if there is a new release of [% terms.Bugzilla %] + available to download.

    + +

    You can control these notifications by changing the + upgrade_notification parameter.

    + +

    If your [% terms.Bugzilla %] installation is on a machine that needs to go + through a proxy to access the web, you may also have to set the + proxy_url parameter.

    + +

    Welcome Page for New Installs

    + +

    When you log in for the first time on a brand-new [% terms.Bugzilla %] + installation, you will be presented with a page that describes + where you should go from here, and what parameters you should set.

    + +

    QuickSearch Plugin for IE7 and Firefox 2

    + +

    Firefox 2 users and Internet Explorer 7 users will be presented + with the option to add [% terms.Bugzilla %] to their search bar. + This uses the + QuickSearch syntax.

    + +

    Other Enhancements and Changes

    + +

    These are either minor enhancements, or enhancements that have + very short descriptions. Some of these are very useful, though!

    + +

    Enhancements That Affect [% terms.Bugzilla %] Users

    + +
      +
    • In comments, quoted text (lines that start with >) + will be a different color from normal text.
    • +
    • There is now a user preference that will add you to the CC list + of any [% terms.bug %] you modify. Note that it's on + by default.
    • +
    • [% terms.Bugs %] can now be filed with an initial state of + ASSIGNED, if you are in the editbugs group.
    • +
    • By default, comment fields will zoom large when you are typing in them, + and become small when you move out of them. You can disable this + in your user preferences.
    • +
    • You can hide obsolete attachments on [% terms.abug %] by clicking + "Hide Obsolete" at the bottom of the attachment table.
    • +
    • If [% terms.abug %] has flags set, and you move it to a different + product that has flags with the same name, the flags will be + preserved.
    • +
    • You now can't request a flag to be set by somebody who can't set it + ([% terms.Bugzilla %] will throw an error if you try).
    • +
    • Many new headers have been added to outbound [% terms.Bugzilla %] + [%+ terms.bug %] emails: X-Bugzilla-Status, + X-Bugzilla-Priority, X-Bugzilla-Assigned-To, + X-Bugzilla-Target-Milestone, and + X-Bugzilla-Changed-Fields, X-Bugzilla-Who. + You can look at an email to get an idea of what they contain.
    • +
    • In addition to the old X-Bugzilla-Reason email header + which tells you why you got an email, if you got an email because + you were watching somebody, there is now an + X-Bugzilla-Watch-Reason header that tells you who you + were watching and what role they had.
    • +
    • If you hover your mouse over a full URL (like + http://bugs.mycompany.com/show_bug.cgi?id=1212) that + links to [% terms.abug %], you will see the title of the + [%+ terms.bug %]. Of course, this only works for [% terms.bugs %] in your + [%+ terms.Bugzilla %] installation.
    • +
    • If your installation has user watching enabled, you will now see + the users that you can remove from your watch-list as a multi-select + box, much like the current CC list. (Previously it was just a text + box.)
    • +
    • When a user creates their own account in [% terms.Bugzilla %], the + account is now not actually created until they verify their email + address by clicking on a link that is emailed to them.
    • +
    • You can change [% terms.abug %]'s resolution without reopening it.
    • +
    • When you view the dependency tree on [% terms.abug %], resolved + [%+ terms.bugs %] will be hidden by default. (In previous versions, + resolved [% terms.bugs %] were shown by default.)
    • +
    • When viewing [% terms.bug %] activity, fields that hold [% terms.bug %] + numbers (such as "Blocks") will have the [% terms.bug %] numbers + displayed as links to those [% terms.bugs %].
    • +
    • When viewing the "Keywords" field in [% terms.abug %] list, + it will be sorted alphabetically, so you can sanely sort a list on + that field.
    • +
    • In most places, the Version field is now sorted using a version-sort + (so 1.10 is greater than 1.2) instead of an alphabetical sort.
    • +
    • Options for flags will only appear if you can set them. So, for + example, if you can't grant + on a flag, that option + won't appear for you.
    • +
    • You can limit the product-related output of config.cgi + by specifying a product= URL argument, containing the name + of a product. You can specify the argument more than once for multiple + products.
    • +
    • You can now search the boolean charts on whether or not a comment + is private.
    • +
    + +

    Enhancements For Administrators

    + +
      +
    • Administrators can now delete attachments, making them disappear + entirely from [% terms.Bugzilla %].
    • +
    • sanitycheck.cgi can now only be accessed by users + in the editcomponents group.
    • +
    • The "Field Values" control panel can now only be accessed + by users in the admin group. (Previously it was accessible + to anybody in the editcomponents group.)
    • +
    • There is a new parameter announcehtml, that will allow + you to enter some HTML that will be displayed at the top of every + page, as an announcement.
    • +
    • The loginnetmask parameter now defaults to 0 for new + installations, meaning that as long as somebody has the right + login cookie, they can log in from any IP address. This makes + life a lot easier for dial-up users or other users whose IP + changes a lot. This could be done because the login cookie is now + very random, and thus secure.
    • +
    • Classifications now have sortkeys, so they can be sorted in an + order that isn't alphabetical.
    • +
    • Authentication now supports LDAP over SSL (LDAPS) or TLS (using + the STARTLS command) in addition to plain LDAP.
    • +
    • LDAP users can have their LDAP username be their email address, + instead of having the LDAP mail attribute be their + email address. You may wish to set the emailsuffix + parameter if you do this.
    • +
    • Administrators can now see what has changed in a user account, + when using the "Users" control panel.
    • +
    • REMIND and LATER are no longer part + of the default list of resolutions. Upgrading installations will + not be affected--they will still have these resolutions.
    • +
    • editbugs is now the default for the timetrackinggroup + parameter, meaning that time-tracking will be on by default in a new + installation.
    • +
    + +

    Outstanding Issues

    + +
      +
    • + [%- terms.Bug %] 69621: If you rename or remove a keyword that is + in use on [% terms.bugs %], you will need to rebuild the "keyword cache" + by running sanitycheck.cgi and choosing + the option to rebuild the cache when it asks. Otherwise keywords may + not show up properly in search results.
    • +
    • + [%- terms.Bug %] 99215: Flags are not protected by "mid-air + collision" detection. Nor are any attachment changes.
    • +
    • + [%- terms.Bug %] 89822: When changing multiple [% terms.bugs %] at + the same time, there is no "mid-air collision" protection.
    • +
    • + [%- terms.Bug %] 276230: The support for restricting access to + particular Categories of New Charts is not complete. You should treat + the 'chartgroup' Param as the only access mechanism available.
      + However, charts migrated from Old Charts will be restricted to + the groups that are marked MANDATORY for the corresponding Product. + There is currently no way to change this restriction, and the + groupings will not be updated if the group configuration + for the Product changes.
    • +
    • + [%- terms.Bug %] 370370: mod_perl support is currently not + working on Windows machines.
    • +
    • + [%- terms.Bug %] 361149: If you are using Perl 5.8.0, you may + get a lot of warnings in your Apache error_log about "deprecated + pseudo-hashes." These are harmless--they are a b[%# fool test %]ug in + Perl 5.8.0. Perl 5.8.1 and later do not have this problem.
    • +
    • [% terms.Bugzilla %] 3.0rc1 allowed custom field column names in + the database to be mixed-case. [% terms.Bugzilla %] 3.0 only allows + lowercase column names. It will fix any column names that you have + made mixed-case, but if you have custom fields that previously were + mixed-case in any Saved Search, you will have to re-create that Saved + Search yourself.
    • +
    + +

    Security Updates in This Release

    + +

    3.0.6

    + +

    [% terms.Bugzilla %] contains a minor security fix. For details, see the + Security Advisory.

    + +

    3.0.5

    + +

    [% terms.Bugzilla %] contains one security fix for + importxml.pl. + For details, see the + Security Advisory.

    + +

    3.0.4

    + +

    [% terms.Bugzilla %] 3.0.4 contains three security fixes. + For details, see the + Security Advisory.

    + +

    3.0.3

    + +

    No security fixes in this release.

    + +

    3.0.2

    + +

    [% terms.Bugzilla %] 3.0.1 had an important security fix that is + critical for public installations with "requirelogin" turned on. + For details, see the + Security Advisory

    + +

    3.0.1

    + +

    [% terms.Bugzilla %] 3.0 had three security issues that have been + fixed in this release: one minor information leak, one hole only + exploitable by an admin or using email_in.pl, and one in an + uncommonly-used template. For details, see the + Security Advisory.

    + +

    How to Upgrade From An Older Version

    + +

    Notes For Upgraders

    + +
      +
    • If you upgrade by CVS, there are several .cvsignore files + that are now in CVS instead of being locally created by + checksetup.pl. This means that you will have to + delete those files when CVS tells you there's a conflict, and + then run cvs update again.
    • +
    • In this version of [% terms.Bugzilla %], the Summary field + is now limited to 255 characters. When you upgrade, any Summary + longer than that will be truncated, and the old summary will be + preserved in a comment.
    • +
    • If you have the utf8 parameter turned on, at some + point you will have to convert your database. checksetup.pl + will tell you when this is, and it will give you certain instructions + at that time, that you have to follow before you can complete + the upgrade. Don't do the conversion yourself manually--follow + the instructions of checksetup.pl.
    • +
    • If you ever ran 2.23.3, 2.23.4, or 3.0rc1, you will have to run + ./collectstats.pl --regenerate at the command line, because + the data for your Old Charts is corrupted. This can take several days, + so you may only want to run it if you use Old Charts.
    • +
    • You should also read the Outstanding Issues sections of + older release notes if you are upgrading + from a version lower than 2.22.
    • +
    + +

    Steps For Upgrading

    + +

    Once you have read the notes above, see the + Upgrading + documentation for instructions on how to upgrade.

    + +

    Code Changes Which May Affect Customizations

    + + + +

    Packagers: Location Variables + Have Moved

    + +

    In previous versions of [% terms.Bugzilla %], Bugzilla::Config + held all the paths for different things, such as the path to localconfig + and the path to the data/ directory.

    + +

    Now, all of this data is stored in a subroutine, + Bugzilla::Constants::bz_locations.

    + +

    Also, note that for mod_perl, bz_locations must return + absolute (not relative) paths. There is already code in that + subroutine to help you with this.

    + +

    Hooks!

    + +

    [% terms.Bugzilla %] now supports a code hook mechanism. See the + documentation for + Bugzilla::Hook + for more details.

    + +

    This gives [% terms.Bugzilla %] very advanced plugin support. You can + hook templates, hook code, add new parameters, and use the XML-RPC + interface. So we'd like to see some [% terms.Bugzilla %] plugins + written! Let us know on the developers@bugzilla.org + mailing list if you write a plugin.

    + +

    If you need more hooks, please + File a bug!

    + +

    API Documentation

    + +

    [% terms.Bugzilla %] now ships with all of its perldoc built + as HTML. Go ahead and read the + API Documentation + for all of the [% terms.Bugzilla %] modules now! Even scripts like + checksetup.pl have HTML documentation.

    + +

    Elimination of globals.pl

    + +

    The old file globals.pl has been eliminated. + Its code is now in various modules. Each function went to the module + that was appropriate for it.

    + +

    Usually we filed [% terms.abug %] in + bugzilla.mozilla.org for + each function we moved. You can search there for the old name of + the function, and that should get you the information about what + it's called now and where it lives.

    + +

    Cleaned Up Variable Scoping Issues

    + +

    In normal perl, you can have code like this:

    +
    my $var = 0;
    +sub y { $var++ }
    + +

    However, under mod_perl that doesn't work. So variables are no + longer "shared" with subroutines--instead all variables + that a subroutine needs must be declared inside the subroutine itself.

    + +

    No More SendSQL

    + +

    The old SendSQL function and all of its companions are + gone. Instead, we now use DBI for all database + interaction.

    + +

    For more information about how to use + DBI with + [%+ terms.Bugzilla %], see the + Developer's + Guide Section About DBI

    + +

    Auth Re-write

    + +

    The Bugzilla::Auth family of modules have been completely + re-written. For details on how the new structure of authentication, + read the + Bugzilla::Auth + API docs.

    + +

    It should be very easy to write new authentication plugins, now.

    + +

    Bugzilla::Object

    + +

    There is a new base class for most of our objects, + Bugzilla::Object. + It makes it really easy to create new objects based on things that are + in the database.

    + +

    Bugzilla->request-cache

    + +

    Bugzilla.pm used to cache things like the database + connection in package-global variables (like $_dbh). + That doesn't work in mod_perl, so instead now there's a hash + that can be accessed through Bugzilla->request_cache + to store things for the rest of the current page request.

    + +

    You shouldn't access Bugzilla->request_cache directly, + but you should use it inside of Bugzilla.pm if you modify + that. The only time you should be accessing it directly is if you need + to reset one of the caches. Hash keys are always named after the function + that they cache, so to reset the template object, you'd do: + delete Bugzilla->request_cache->{template};.

    + +

    Other Changes

    + +
      +
    • checksetup.pl has been completely re-written, and most + of its code moved into modules in the Bugzilla::Install + namespace. See the + checksetup + documentation and [% terms.Bugzilla %] + [%+ terms.bug %] 277502 for details.
    • +
    • Instead of UserInGroup(), all of [% terms.Bugzilla %] now + uses Bugzilla->user->in_group
    • +
    • mod_perl doesn't like dependency loops in modules, so we now have + a test for that detects dependency loops in modules when you run + runtests.pl.
    • +
    • globals.pl used to modify the environment variables, + like PATH. That now happens in Bugzilla.pm.
    • +
    • Templates can now link to the documentation more easily. + See the global/code-error.html.tmpl and + global/user-error.html.tmpl templates for examples. + (Search for "docslinks.")
    • +
    • Parameters are accessed through Bugzilla->params + instead of using the Param() function, now.
    • +
    • The variables from the localconfig file are accessed + through the Bugzilla->localconfig hash instead of through + Bugzilla::Config.
    • +
    • Bugzilla::BugMail::MessageToMTA() has moved into its + own module, along with other mail-handling code, called + Bugzilla::Mailer
    • +
    • The CheckCanChangeField() subroutine in + process_bug.cgi has been moved to Bugzilla::Bug, + and is now a method of [% terms.abug %] object.
    • +
    • The code that used to be in the global/banner.html.tmpl + template is now in global/header.html.tmpl. The banner + still exists, but the file is empty.
    • +
    + +

    Release Notes For Previous Versions

    + +

    Release notes for versions of [% terms.Bugzilla %] for versions + prior to 3.0 are only available in text format: + Release Notes for [% terms.Bugzilla %] 2.22 + and Earlier.

    + +[% INCLUDE global/footer.html.tmpl %] + +[% BLOCK db_req %] + [% SET m = DB_MODULE.$db %] +

    For [% m.name FILTER html %] Users

    + +
      +
    • [% m.name FILTER html %] + [%+ '' IF db_new %]v[% m.db_version FILTER html %] + [% '' IF db_new %] +
    • +
    • perl module: + [%+ m.dbd.module FILTER html %] + [% '' IF dbd_new %]v[% m.dbd.version FILTER html %] + [% '' IF dbd_new %]
    • +
    +[% END %] + + +[% BLOCK req_table %] + + + + [% IF include_feature %] + + [% END %] + + [% FOREACH req = reqs %] + + + + [% IF include_feature %] + + [% END %] + + [% END %] +
    Module VersionEnables Feature
    + [%- req.module FILTER html %] + [%- IF req.version == 0 %] + (Any) + [% ELSE %] + [%- req.version FILTER html %] + [% END %] + [% req.feature.join(', ') FILTER html %]
    +[% END %] diff --git a/template/en/default/pages/sudo.html.tmpl b/template/en/default/pages/sudo.html.tmpl new file mode 100644 index 0000000..c790ff1 --- /dev/null +++ b/template/en/default/pages/sudo.html.tmpl @@ -0,0 +1,68 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 2005 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): A. Karl Kornel + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl title = "sudo: User Impersonation" %] + +

    + [%+ terms.Bugzilla %] includes the ability to have one user impersonate +another, in something called a sudo session, so long as the person +doing the impersonating has the appropriate privileges. +

    + +

    + While a session is in progress, [% terms.Bugzilla %] will act as if the + impersonated user is doing everything. This is especially useful for testing, + and for doing critical work when the impersonated user is unavailable. The + impersonated user will receive an email from [% terms.Bugzilla %] when the + session begins; they will not be told anything else. +

    + +

    + To use this feature, you must be a member of the appropriate group. The group + includes all administrators by default. Other users, and members of other + groups, can be given access to this feature on a case-by-case basis. To + request access, contact the maintainer of this installation: + + [%- Param("maintainer") %]. +

    + +

    + If you would like to be protected from impersonation, you should contact the + maintainer of this installation to see if that is possible. People with + access to this feature are protected automatically. +

    + +

    + [% IF user.in_group('bz_sudoers') %] + You are a member of the bz_sudoers group. You may use this + feature to impersonate others. + [% ELSE %] + You are not a member of an appropriate group. You may not use this + feature. + [% END %] + [% IF user.in_group('bz_sudo_protect') %] +
    + You are a member of the bz_sudo_protect group. Other people will + not be able to use this feature to impersonate you. + [% END %] +

    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/pages/voting.html.tmpl b/template/en/default/pages/voting.html.tmpl new file mode 100644 index 0000000..4e6fb47 --- /dev/null +++ b/template/en/default/pages/voting.html.tmpl @@ -0,0 +1,69 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman + # Gervase Markham + #%] + +[% PROCESS global/variables.none.tmpl %] +[% INCLUDE global/header.html.tmpl title = "Voting" %] + +

    [% terms.Bugzilla %] has a "voting" feature. Each product allows users to +have a certain number of votes. (Some products may not allow any, which means +you can't vote on things in those products at all.) With your vote, you +indicate which [% terms.bugs %] you think are the most important and +would like to see fixed. Note that voting is nowhere near as effective +as providing a fix yourself.

    + +

    Depending on how the administrator has configured the relevant product, +you may be able to vote for the same [% terms.bug %] more than once. +Remember that you have a limited number of votes. When weighted voting +is allowed and a limited number of votes are available to you, you will +have to decide whether you want to distribute your votes among a large +number of [% terms.bugs %] indicating your minimal interest or focus on +a few [% terms.bugs %] indicating your strong support for them. +

    + +

    To look at votes:

    + +
      +
    • Go to the query page. Do a normal query, but enter 1 in the "At least + ___ votes" field. This will show you items that match your query that + have at least one vote.
    • +
    + +

    To vote for [% terms.abug %]:

    + +
      +
    • Bring up the [% terms.bug %] in question.
    • + +
    • Click on the "(vote)" link that appears on the right of the "Importance" + fields. (If no such link appears, then voting may not be allowed in + this [% terms.bug %]'s product.)
    • + +
    • Indicate how many votes you want to give this [% terms.bug %]. This page + also displays how many votes you've given to other [% terms.bugs %], so you + may rebalance your votes as necessary.
    • +
    + +

    You will automatically get email notifying you of any changes that occur +on [% terms.bugs %] you vote for.

    + +

    You may review your votes at any time by clicking on the "My Votes" link in the page footer.

    + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/reports/chart.csv.tmpl b/template/en/default/reports/chart.csv.tmpl new file mode 100644 index 0000000..f9e2f2b --- /dev/null +++ b/template/en/default/reports/chart.csv.tmpl @@ -0,0 +1,44 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% colsepchar = user.settings.csv_colsepchar.value %] + +[% data = chart.data %] +Date\Series +[% FOREACH label = chart.labels %] + [% colsepchar %][% label FILTER csv %] +[% END %] +[%# The data, which is in the correct format for GD, is conceptually the wrong + # way round for CSV output. So, we need to invert it here, which is why + # these loops aren't just plain FOREACH. + #%] +[% i = 0 %] +[% WHILE i < data.0.size %] + [% j = 0 %] + [% WHILE j < data.size %] + [% IF j > 0 %] + [% colsepchar %] + [% END %] + [% data.$j.$i %] + [% j = j + 1 %] + [% END %] + [% i = i + 1 %] + +[% END %] diff --git a/template/en/default/reports/chart.html.tmpl b/template/en/default/reports/chart.html.tmpl new file mode 100644 index 0000000..e14744d --- /dev/null +++ b/template/en/default/reports/chart.html.tmpl @@ -0,0 +1,67 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + #%] + +[% DEFAULT width = 600 + height = 350 +%] + +[% time = time FILTER time('%Y-%m-%d %H:%M:%S') FILTER html %] + +[% PROCESS global/header.html.tmpl + title = "Chart" + header_addl_info = time +%] + +
    + + [% imageurl = BLOCK %]chart.cgi? + [% imagebase FILTER html %]&ctype=png&action=plot&width= + [% width %]&height=[% height -%] + [% END %] + + Graphical report results +

    + [% sizeurl = BLOCK %]chart.cgi? + [% imagebase FILTER html %]&action=wrap + [% END %] + Taller
    + Thinner * + Fatter    
    + Shorter
    +

    + +

    + CSV | + Edit + this chart +

    + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/chart.png.tmpl b/template/en/default/reports/chart.png.tmpl new file mode 100644 index 0000000..c4fa04f --- /dev/null +++ b/template/en/default/reports/chart.png.tmpl @@ -0,0 +1,60 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% y_label = "$terms.Bugs" %] +[% x_label = "Time" %] + +[% IF chart.cumulate %] + [% USE graph = GD.Graph.area(width, height) %] + [% graph.set(cumulate => "true") %] +[% ELSE %] + [% USE graph = GD.Graph.lines(width, height) %] +[% END %] + +[% FILTER null; + x_label_skip = (30 * chart.data.0.size / width); + + graph.set(x_label => x_label, + y_label => y_label, + y_tick_number => 8, + y_max_value => chart.y_max_value, + x_label_position => 0.5, + x_labels_vertical => 1, + x_label_skip => x_label_skip, + legend_placement => "RT", + line_width => 2, + dclrs => ["lred", "lgreen", "lblue", "lyellow", + "lpurple", "lorange", "black", "green", + "blue", "dpink", "lbrown", "gray", + "red", "dpurple", "gold", "marine"]); + + # Workaround for the fact that set_legend won't take chart.labels directly, + # because chart.labels is an array reference rather than an array. + graph.set_legend(chart.labels.0, chart.labels.1, chart.labels.2, + chart.labels.3, chart.labels.4, chart.labels.5, + chart.labels.6, chart.labels.7, chart.labels.8, + chart.labels.9, chart.labels.10, chart.labels.11, + chart.labels.12, chart.labels.13, chart.labels.14, + chart.labels.15); + + graph.plot(chart.data).png | stdout(1); + END; +-%] + diff --git a/template/en/default/reports/components.html.tmpl b/template/en/default/reports/components.html.tmpl new file mode 100644 index 0000000..35f656a --- /dev/null +++ b/template/en/default/reports/components.html.tmpl @@ -0,0 +1,105 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Bradley Baetz + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # product: object. The product for which we want to display component + # descriptions. + #%] + +[% title = BLOCK %] + Components for [% product.name FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl + style_urls = [ "skins/standard/reports.css" ] + title = title +%] + +[% IF Param("useqacontact") %] + [% numcols = 3 %] +[% ELSE %] + [% numcols = 2 %] +[% END %] + + + + + + +
    + Select a component to see open [% terms.bugs %] in that component: + +

    [% product.name FILTER html %]

    +
    + [% product.description FILTER html_light %] +
    +
    + +

    Components

    + + + + + + + [% IF Param("useqacontact") %] + + [% END %] + + + + + [% FOREACH comp = product.components %] + [% INCLUDE describe_comp %] + [% END %] + +
     Default AssigneeDefault QA Contact
    + +[% PROCESS global/footer.html.tmpl %] + +[%############################################################################%] +[%# BLOCK for components %] +[%############################################################################%] + +[% BLOCK describe_comp %] + + + + [% comp.name FILTER html %] + + + [% INCLUDE global/user.html.tmpl who = comp.default_assignee %] + + [% IF Param("useqacontact") %] + + [% INCLUDE global/user.html.tmpl who = comp.default_qa_contact %] + + [% END %] + + + + [% comp.description FILTER html_light %] + + +[% END %] diff --git a/template/en/default/reports/create-chart.html.tmpl b/template/en/default/reports/create-chart.html.tmpl new file mode 100644 index 0000000..e2b6090 --- /dev/null +++ b/template/en/default/reports/create-chart.html.tmpl @@ -0,0 +1,271 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # chart: Chart object representing the currently assembled chart. + # category: hash (keyed by category) of hashes (keyed by subcategory) of + # hashes (keyed by name), with value being the series_id of the + # series. Contains details of all series the user can see. + #%] + +[% PROCESS global/header.html.tmpl + title = "Create Chart" +%] + +[% PROCESS "reports/series-common.html.tmpl" + donames = 1 +%] + + + +[% gttext = "Grand Total" %] + +
    + + + [% IF NOT category OR category.size == 0 %] + + + + [% ELSE %] + + + + + + + + + + + [% PROCESS series_select sel = { name => 'category', + size => 5, + onchange = "catSelected(); + subcatSelected();" } %] + + + + [% PROCESS series_select sel = { name => 'subcategory', + size => 5, + onchange = "subcatSelected()" } %] + + + + [% PROCESS series_select sel = { name => 'name', + size => 5, + multiple => 1, + # We want to use the series ID as value, + # not its name. + value_in_hash => 1 } %] + + + + [% END %] +
    + No data sets exist, or none are visible to you. +
    :::
    +
    + + + + +
    +
    + +

    List Of Data Sets To Plot

    + + [% IF chart.lines.size %] + + + + + + + + + + [%# The external loop has two counters; one which keeps track of where we + # are in the old labels array, and one which keeps track of the new + # indexes for the form elements. They are different if chart.lines has + # empty slots in it. + #%] + [% labelidx = 0 %] + [% newidx = 0 %] + + [% FOREACH line = chart.lines %] + [% IF NOT line %] + [%# chart.lines has an empty slot, so chart.labels will too. We + # increment labelidx only to keep the labels in sync with the data. + #%] + [% labelidx = labelidx + 1 %] + [% NEXT %] + [% END %] + + [% FOREACH series = line %] + + [% IF loop.first %] + + + [% END %] + + + + + + + + [% END %] + [% labelidx = labelidx + 1 %] + [% newidx = newidx + 1 %] + [% END %] + + [% IF chart.gt %] + + + + + + + + [% END %] + + + + + + + + + + + + + + +
    SelectLabelData Set
    + + + + + [% "{" IF line.size > 1 %] + + [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %] + + + [% IF user.id == series.creator_id OR user.in_group("admin") %] + Edit | + Delete | + [% END %] + Run Search +
    + + + + + + [% gttext FILTER html %] +
     
    +
    + +
    + : + + + : + + + + + +
    + [% ELSE %] +

    None

    + [% END %] +
    + +[% IF user.in_group('editbugs') %] +

    Create New Data Set

    +

    + You can either create a new data set based on one of your saved searches + or start with a clean slate. +

    + +
    + + + + +
    +[% END %] + +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/reports/delete-series.html.tmpl b/template/en/default/reports/delete-series.html.tmpl new file mode 100644 index 0000000..5003551 --- /dev/null +++ b/template/en/default/reports/delete-series.html.tmpl @@ -0,0 +1,59 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # Portions created by the Initial Developer are Copyright (C) 2009 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Frédéric Buclin + #%] + +[% series_name = BLOCK %] + [% series.category FILTER html %] / + [%+ series.subcategory FILTER html %] / + [%+ series.name FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl title = "Delete Series" + style_urls = ['skins/standard/admin.css'] %] + +

    + You are going to completely remove the [% series_name FILTER none %] series + from the database. All data related to this series will be permanently deleted. +

    +

    + [% IF series.creator %] + This series has been created by + [% series.creator.email FILTER html %] + [% ELSE %] + This series has been automatically created by [% terms.Bugzilla %] + [% END %] + + [% IF series.public %] + and is public. + [% ELSIF series.creator %] + and is only visible by this user. + [% ELSE %] + and cannot be displayed by anybody. + [% END %] +

    + +

    Are you sure you want to delete this series?

    + +

    + Yes, delete | + No, go back to the charts page +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/duplicates-simple.html.tmpl b/template/en/default/reports/duplicates-simple.html.tmpl new file mode 100644 index 0000000..62795af --- /dev/null +++ b/template/en/default/reports/duplicates-simple.html.tmpl @@ -0,0 +1,47 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): + # Gervase Markham + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # You need to fulfill the interface to duplicates-table.html.tmpl. + #%] + +[% PROCESS global/variables.none.tmpl %] + + + + [% IF product.size %] + [% title = BLOCK %] + Most Frequently Reported [% terms.Bugs %] for [% product.join(', ') FILTER html %] + [% END %] + [% ELSE %] + [% title = "Most Frequently Reported $terms.Bugs" %] + [% END%] + + + [% title FILTER html %] + + + + [% PROCESS "reports/duplicates-table.html.tmpl" %] + + diff --git a/template/en/default/reports/duplicates-table.html.tmpl b/template/en/default/reports/duplicates-table.html.tmpl new file mode 100644 index 0000000..38ab2d5 --- /dev/null +++ b/template/en/default/reports/duplicates-table.html.tmpl @@ -0,0 +1,125 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): + # Gervase Markham + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # bugs: list of hashes. May be empty. Each hash has three members: + # bug: A Bugzilla::Bug object + # count: integer. The number of dupes + # delta: integer. The change in count in the last $changedsince days + # + # bug_ids: list of integers. May be empty. The IDs of the bugs in $bugs. + # + # sortby: string. the column on which we are sorting the buglist. + # reverse: boolean. True if we are reversing the current sort. + # maxrows: integer. Max number of rows to display. + # changedsince: integer. The number of days ago for the changedsince column. + # openonly: boolean. True if we are only showing open bugs. + # product: array of strings. Restrict to these products only. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[%# *** Column Headers *** %] + +[% SET columns = [ + { name => "id", description => "$terms.Bug #" }, + { name => "count", description => "Dupe
    Count" }, + { name => "delta", + description => "Change in last
    $changedsince day(s)" }, + { name => "component", description => field_descs.component }, + { name => "bug_severity", description => field_descs.bug_severity }, + { name => "op_sys", description => field_descs.op_sys }, + { name => "target_milestone", description => field_descs.target_milestone }, + { name => "short_desc", description => field_descs.short_desc }, +] %] + +[% SET base_args = [] %] +[% FOREACH param = ['maxrows', 'openonly', 'format', 'sortvisible', + 'changedsince', 'product'] +%] + [% NEXT IF NOT ${param}.defined %] + [% FOREACH value = ${param} %] + [% filtered_value = value FILTER url_quote %] + [% base_args.push("$param=$filtered_value") %] + [% END %] +[% END %] +[% IF sortvisible %] + [% bug_ids_string = bug_ids.nsort.join(',') FILTER url_quote %] + [% base_args.push("bug_id=$bug_ids_string") %] +[% END %] +[% base_args_string = base_args.join('&') %] + +[% IF bugs.size %] + + + + [% FOREACH column = columns %] + [% IF column.name == sortby %] + [%# We add this to the column object so it doesn't affect future + # iterations of the loop. + #%] + [% column.reverse_sort = reverse ? 0 : 1 %] + [% END %] + + [% END %] + + + + [%# *** Buglist *** %] + + + [% FOREACH item = bugs %] + [% SET bug = item.bug %] + + + + + + + + + + + [% END %] + +
    + [% column.description FILTER none %] +
    + [% bug.id FILTER bug_link(bug) FILTER none %] + [% item.count FILTER html %][% item.delta FILTER html %][% bug.component FILTER html %] + [%- display_value('bug_severity', bug.bug_severity) FILTER html %] + + [%- display_value('op_sys', bug.op_sys) FILTER html %] + + [% display_value('target_milestone', + bug.target_milestone) FILTER html %] + [% bug.short_desc FILTER html %]
    +[% ELSE %] +

    No duplicate [% terms.bugs %] found.

    +[% END %] diff --git a/template/en/default/reports/duplicates.html.tmpl b/template/en/default/reports/duplicates.html.tmpl new file mode 100644 index 0000000..6b49a23 --- /dev/null +++ b/template/en/default/reports/duplicates.html.tmpl @@ -0,0 +1,179 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # sortby: string. the column on which we are sorting the buglist. + # reverse: boolean. True if we are reversing the current sort. + # maxrows: integer. Max number of rows to display. + # changedsince: integer. The number of days ago for the changedsince column. + # openonly: boolean. True if we are only showing open bugs. + # product: array of strings. The set of products we check for dups. + # + # Additionally, you need to fulfill the interface to + # duplicates-table.html.tmpl. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% IF product.size %] + [% title = BLOCK %] + Most Frequently Reported [% terms.Bugs %] for + [%+ product.join(', ') FILTER html %] + [% END %] +[% ELSE %] + [% title = "Most Frequently Reported $terms.Bugs" %] +[% END%] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/duplicates.css'] +%] + +

    + What is this data? +
    + Change parameters +

    + +[% PROCESS "reports/duplicates-table.html.tmpl" %] + +[%# *** Parameters *** %] + +[% bug_ids_string = bug_ids.join(',') %] + +

    Change Parameters

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    When sorting or restricting, work with: + + +
    + + +
    Restrict to products: + +
    + +
    + + + days +
    + + + +
    + + +
    + +
    + + Or just give this to me as a . + (Note: the order may not be the same.) +
    + +
    + + + What are "Most Frequently Reported [% terms.Bugs %]"? + + +

    + The Most Frequent [% terms.Bugs %] page lists the known open + [%+ terms.bugs %] which are reported most frequently, + counting the number of direct and indirect duplicates of [% terms.bugs %]. + This information is provided in order to assist in minimizing + the amount of duplicate [% terms.bugs %] entered into [% terms.Bugzilla %], + which saves time for Quality Assurance engineers who have to triage + the [% terms.bugs %]. +

    + +How do I use this list? + +
      +
    • Review the most frequent [% terms.bugs %] list.
    • +
    • If your problem is listed:
    • + +
        +
      • Click on the [% terms.bug %] number to confirm that you have found the + same [% terms.bug %], and comment if you have additional information + or move on with your testing of the product. +
      • +
      + +
    • If your problem not listed:
    • + + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/edit-series.html.tmpl b/template/en/default/reports/edit-series.html.tmpl new file mode 100644 index 0000000..214bbcd --- /dev/null +++ b/template/en/default/reports/edit-series.html.tmpl @@ -0,0 +1,73 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% title = "Edit Series" %] +[% subheader = BLOCK %] + [% default.category FILTER html %] / + [%+ default.subcategory FILTER html %] / + [%+ default.name FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl %] + +[% IF changes_saved %] +

    + + Series updated. + +

    +[% END %] + +
    + + [% PROCESS reports/series.html.tmpl + button_name = "Change Data Set" %] + + + [% IF default.series_id %] + + [% END %] +
    + +

    + Creator: + [% IF default.creator %] + + [% default.creator.email FILTER html %] + [% ELSE %] + (automatically created by [% terms.Bugzilla %]) + [% END %] +

    + +

    Note: it is not yet possible to edit the search associated with this data +set. +

    + +

    + View + series search parameters | + Run series search +

    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/keywords.html.tmpl b/template/en/default/reports/keywords.html.tmpl new file mode 100644 index 0000000..10e6573 --- /dev/null +++ b/template/en/default/reports/keywords.html.tmpl @@ -0,0 +1,87 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Contributor(s): David D. Kilzer + #%] + +[%# INTERFACE: + # keywords: array keyword objects. May be empty. Each has has four members: + # id: id of the keyword + # name: the name of the keyword + # description: keyword description. Can contain some limited HTML code. + # bug_count: number of bugs with that keyword + # caneditkeywords: boolean. True if this user can edit keywords + %] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "$terms.Bugzilla Keyword Descriptions" +%] + +[% FOREACH keyword = keywords %] + [% IF loop.index % 50 == 0 %] + [% IF loop.index != 0 %] + + [% END %] + + + + + + + + + [% END %] + + + + + + + +[% END %] + +[% IF keywords.size > 0 %] +
    NameDescriptionOpen [% terms.Bugs %]Total [% terms.Bugs %]
    + + [% keyword.name FILTER html %] + [% keyword.description FILTER html_light %] + [% IF keyword.bug_count > 0 %] + + Search + [% ELSE %] + none + [% END %] + + [% IF keyword.bug_count > 0 %] + + [% keyword.bug_count %] + [% ELSE %] + none + [% END %] +
    +[% END %] + +[% IF caneditkeywords %] +

    + Edit keywords. +

    +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/menu.html.tmpl b/template/en/default/reports/menu.html.tmpl new file mode 100644 index 0000000..5f26ac3 --- /dev/null +++ b/template/en/default/reports/menu.html.tmpl @@ -0,0 +1,85 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # This template has no interface. It's a list of the available report + # types in Bugzilla. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Reporting and Charting Kitchen" + doc_section = "reporting.html" + style_urls = ['skins/standard/reports.css'] +%] + +

    + [% terms.Bugzilla %] allows you to view and track the state of the [% terms.bug %] database in + all manner of exciting ways. +

    + +

    Current State

    + +
      + +
    • + + Tabular reports + - + tables of [% terms.bug %] counts in 1, 2 or 3 dimensions, as HTML or CSV. +
    • + [% IF feature_enabled('graphical_reports') %] +
    • + + Graphical reports + - + line graphs, bar and pie charts. +
    • + [% END %] + [% Hook.process('current_state') %] +
    + +[% IF feature_enabled('new_charts') OR feature_enabled('old_charts') %] +

    Change Over Time

    + +
      + [% IF feature_enabled('old_charts') %] +
    • + Old Charts - + plot the status and/or resolution of [% terms.bugs %] against + time, for each product in your database. +
    • + [% END %] + [% IF feature_enabled('new_charts') AND user.in_group(Param("chartgroup")) %] +
    • + New Charts - + plot any arbitrary search against time. Far more powerful. +
    • + [% END %] +
    +[% END %] + +[% Hook.process('end') %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/old-charts.html.tmpl b/template/en/default/reports/old-charts.html.tmpl new file mode 100644 index 0000000..ca3ba6c --- /dev/null +++ b/template/en/default/reports/old-charts.html.tmpl @@ -0,0 +1,71 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # products: an array of product names the user is allowed to view. + # datasets: an array of hashes with available statuses and resolutions. + # url_image: URL of the generated graph. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "$terms.Bug Charts" + h1 = "Welcome to the $terms.Bugzilla Charting Kitchen" + doc_section = "reporting.html#charts" +%] + +
    + [% IF url_image %] + +
    + [% ELSE %] +
    + + + + + + + + + + + + +
    Product: + +
    Chart datasets: + +
    + +
    +
    + [% END %] +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/report-bar.png.tmpl b/template/en/default/reports/report-bar.png.tmpl new file mode 100644 index 0000000..649fba4 --- /dev/null +++ b/template/en/default/reports/report-bar.png.tmpl @@ -0,0 +1,64 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% y_label = "$terms.Bugs" %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% col_field_disp = field_descs.$col_field || col_field %] + +[% FOR i IN [ 0 .. data.0.0.max ] %] + [% data.0.0.$i = display_value(col_field, data.0.0.$i) %] +[% END %] + +[% FOR i IN [ 0 .. row_names.max ] %] + [% row_names.$i = display_value(row_field, row_names.$i) %] +[% END %] + +[% FILTER null; + USE graph = GD.Graph.bars(width, height); + + graph.set(x_label => col_field_disp, + y_label => y_label, + y_tick_number => 8, + y_number_format => "%d", + x_label_position => 0.5, + x_labels_vertical => x_labels_vertical, + bar_spacing => 8, + shadow_depth => 4, + shadowclr => 'dred', + show_values => 1, + legend_placement => "RT"); + + graph.set(cumulate => "true", + show_values => 0) IF cumulate; + + # Workaround for the fact that set_legend won't take row_names directly, + # because row_names is an array reference rather than an array. + graph.set_legend(row_names.0, row_names.1, row_names.2, row_names.3, + row_names.4, row_names.5, row_names.6, row_names.7, + row_names.8, row_names.9, row_names.10, row_names.11, + row_names.12, row_names.13, row_names.14, row_names.15); + + graph.plot(data.0).png | stdout(1); + END; +-%] diff --git a/template/en/default/reports/report-line.png.tmpl b/template/en/default/reports/report-line.png.tmpl new file mode 100644 index 0000000..0edc0fe --- /dev/null +++ b/template/en/default/reports/report-line.png.tmpl @@ -0,0 +1,67 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% y_label = "$terms.Bugs" %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% col_field_disp = field_descs.$col_field || col_field %] + +[% FOR i IN [ 0 .. data.0.0.max ] %] + [% data.0.0.$i = display_value(col_field, data.0.0.$i) %] +[% END %] + +[% FOR i IN [ 0 .. row_names.max ] %] + [% row_names.$i = display_value(row_field, row_names.$i) %] +[% END %] + +[% IF cumulate %] + [% USE graph = GD.Graph.area(width, height) %] + [% graph.set(cumulate => "true") %] +[% ELSE %] + [% USE graph = GD.Graph.lines(width, height) %] +[% END %] + +[% FILTER null; + graph.set(x_label => col_field_disp, + y_label => y_label, + y_tick_number => 8, + x_label_position => 0.5, + x_labels_vertical => x_labels_vertical, + legend_placement => "RT", + line_width => 2, + dclrs => ["lred", "lgreen", "lblue", "lyellow", + "lpurple", "lorange", "black", "green", + "blue", "dpink", "lbrown", "gray", + "red", "dpurple", "gold", "marine"]); + + # Workaround for the fact that set_legend won't take row_names directly, + # because row_names is an array reference rather than an array. + graph.set_legend(row_names.0, row_names.1, row_names.2, row_names.3, + row_names.4, row_names.5, row_names.6, row_names.7, + row_names.8, row_names.9, row_names.10, row_names.11, + row_names.12, row_names.13, row_names.14, row_names.15); + + graph.plot(data.0).png | stdout(1); + END; +-%] + diff --git a/template/en/default/reports/report-pie.png.tmpl b/template/en/default/reports/report-pie.png.tmpl new file mode 100644 index 0000000..27f5525 --- /dev/null +++ b/template/en/default/reports/report-pie.png.tmpl @@ -0,0 +1,39 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% col_field_disp = field_descs.$col_field || col_field %] + +[% FOR i IN [ 0 .. data.0.0.max ] %] + [% data.0.0.$i = display_value(col_field, data.0.0.$i) %] +[% END %] + +[% FILTER null; + USE graph = GD.Graph.pie(width, height); + + graph.set(title => col_field_disp, + pie_height => 20, + suppress_angle => 2, + start_angle => 180); + + graph.plot(data.0).png | stdout(1); + END; +-%] diff --git a/template/en/default/reports/report-simple.html.tmpl b/template/en/default/reports/report-simple.html.tmpl new file mode 100644 index 0000000..d358109 --- /dev/null +++ b/template/en/default/reports/report-simple.html.tmpl @@ -0,0 +1,35 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Alan Starr (alanjstr) + #%] + +[%# INTERFACE: + # You need to fulfill the interface to report-table.html.tmpl. + #%] + +[% PROCESS global/variables.none.tmpl %] + + + + [% title = "$terms.Bug List" %] + + + [% title FILTER html %] + + + + [% PROCESS "reports/report-table.html.tmpl" %] + + + + diff --git a/template/en/default/reports/report-table.csv.tmpl b/template/en/default/reports/report-table.csv.tmpl new file mode 100644 index 0000000..4d8b50a --- /dev/null +++ b/template/en/default/reports/report-table.csv.tmpl @@ -0,0 +1,77 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] +[%# INTERFACE: + # See report-table.html.tmpl. + #%] +[% PROCESS global/variables.none.tmpl %] + +[% colsepchar = user.settings.csv_colsepchar.value %] + +[% num_bugs = BLOCK %]Number of [% terms.bugs %][% END %] +[% tbl_field_disp = field_descs.$tbl_field || tbl_field %] +[% col_field_disp = field_descs.$col_field || col_field %] +[% row_field_disp = field_descs.$row_field || row_field %] + +[% IF tbl_field %] + [% IF tbl_field == 'assigned_to' OR tbl_field == 'reporter' + OR tbl_field == 'qa_contact' + %] + [% tbl_disp = tbl FILTER email %] + [% ELSE %] + [% tbl_disp = tbl %] + [% END %] + [% tbl_field_disp FILTER csv %]: [% tbl_disp FILTER csv %] +[% END %] +[% IF row_field %] + [% row_field_disp FILTER csv %] +[% END %] +[% " / " IF col_field AND row_field %] +[% col_field_disp FILTER csv %] +[% IF col_field -%] + [% FOREACH col = col_names -%] + [% colsepchar %] + [% PROCESS value_display value = col field = col_field %] + [% END -%] +[% ELSE -%] + [% colsepchar %][% num_bugs FILTER csv %] +[% END %] + +[% FOREACH row = row_names %] + [% PROCESS value_display value = row field = row_field %] + [% FOREACH col = col_names %] + [% colsepchar %] + [% IF data.$tbl AND data.$tbl.$col AND data.$tbl.$col.$row %] + [% data.$tbl.$col.$row -%] + [% ELSE %] + [% -%]0 + [% END %] + [% END %] + +[% END %] + +[% BLOCK value_display %] + [% SET disp_value = display_value(field, value) %] + [% IF field == 'assigned_to' OR field == 'reporter' + OR field == 'qa_contact' + %] + [% disp_value = value FILTER email %] + [% END %] + [% disp_value FILTER csv %] +[% END %] diff --git a/template/en/default/reports/report-table.html.tmpl b/template/en/default/reports/report-table.html.tmpl new file mode 100644 index 0000000..76b80f8 --- /dev/null +++ b/template/en/default/reports/report-table.html.tmpl @@ -0,0 +1,164 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # + #%] + +[%# INTERFACE: + # buglistbase: The base query for this table, in URL form + # col_field: string. Name of the field being plotted as columns. + # row_field: string. Name of the field being plotted as rows. + # tbl_field: string. Name of the field being plotted as tables. + # col_names: array. List of values for the field being plotted as columns. + # row_names: array. List of values for the field being plotted as rows. + # data: . Data to plot. Only data.$tbl is accessed. + # tbl: Name of a hash in data which is the table to be plotted. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% col_field_disp = field_descs.$col_field || col_field %] +[% row_field_disp = field_descs.$row_field || row_field %] + +[% IF tbl == "-total-" %] + [% urlbase = BLOCK %]buglist.cgi?[% buglistbase FILTER html %] + [% "&$tbl_vals" IF tbl_vals %][% END %] +[% ELSE %] + [% urlbase = BLOCK %]buglist.cgi?[% buglistbase FILTER html %]& + [% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %][% END %] +[% END %] + +[% IF tbl_field %] +

    [% tbl_disp FILTER email FILTER html %]

    +[% END %] + + + + + + + + + + + +
    + + [% col_field_disp FILTER html %] +
    + [% row_field_disp FILTER html %] + + + +[% classes = [ [ "t1", "t2" ] , [ "t3", "t4" ] ] %] +[% col_idx = 0 %] +[% row_idx = 0 %] +[% grand_total = 0 %] + + + [% IF col_field %] + + + [% FOREACH col = col_names %] + [% col_totals.$col = 0 %] + [% NEXT IF col == "" %] + + [% col_idx = 1 - col_idx %] + + [% END %] + + + [% END %] + + [% FOREACH row = row_names %] + [% row_total = 0 %] + + [% row_idx = 1 - row_idx %] + + + [% FOREACH col = col_names %] + [% row_total = row_total + data.$tbl.$col.$row %] + [% NEXT IF col == "" %] + [% col_totals.$col = col_totals.$col + data.$tbl.$col.$row %] + + [% col_idx = 1 - col_idx %] + + [% END %] + + + [% END %] + + + [% row_idx = 1 - row_idx %] + + [% FOREACH col = col_names %] + [% NEXT IF col == "" %] + + + [% END %] + + +
    + + [% PROCESS value_display value = col field = col_field %] + + Total +
    + [% PROCESS value_display value = row field = row_field %] + + [% IF data.$tbl.$col.$row AND data.$tbl.$col.$row > 0 %] + + [% data.$tbl.$col.$row %] + [% ELSE %] + . + [% END %] + + + [% row_total %] + [% grand_total = grand_total + row_total %] +
    + Total + + + [% col_totals.$col %] + + + [% grand_total %] + +
    + + +
    + +[% BLOCK value_display %] + [% SET disp_value = display_value(field, value) %] + [% IF field == 'assigned_to' OR field == 'reporter' + OR field == 'qa_contact' + %] + [% disp_value = value FILTER email %] + [% END %] + [% disp_value FILTER html FILTER replace('^ $',' ') %] +[% END %] diff --git a/template/en/default/reports/report.csv.tmpl b/template/en/default/reports/report.csv.tmpl new file mode 100644 index 0000000..f26bc1f --- /dev/null +++ b/template/en/default/reports/report.csv.tmpl @@ -0,0 +1,25 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] +[% PROCESS "global/field-descs.none.tmpl" %] +[% FOREACH tbl = tbl_names %] + [% PROCESS "reports/report-table.csv.tmpl" %] + + +[% END %] diff --git a/template/en/default/reports/report.html.tmpl b/template/en/default/reports/report.html.tmpl new file mode 100644 index 0000000..4f7ee49 --- /dev/null +++ b/template/en/default/reports/report.html.tmpl @@ -0,0 +1,180 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # col_field: string. Name of the field being plotted as columns. + # row_field: string. Name of the field being plotted as rows. + # tbl_field: string. Name of the field being plotted as tables. + # tbl_names: array. List of values for the field being plotted as tables. + # time: integer. Seconds since the epoch. + # data: . Data to plot. + # format: string. Format of the individual reports. + # width: integer. For image charts, height of the image. + # height: integer. For image charts, width of the image. + # imagebase: string. Base URL for chart image. + # switchbase: string. Base URL for format switching. + # cumulate: boolean. For bar/line charts, whether to cumulate data sets. + #%] + +[% DEFAULT width = 600 + height = 350 +%] + +[% IF min_width AND width < min_width %] + [% width = min_width %] +[% END %] + +[%# We ignore row_field for pie charts %] +[% IF format == "pie" %] + [% row_field = "" %] +[% END %] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% tbl_field_disp = field_descs.$tbl_field || tbl_field %] +[% col_field_disp = field_descs.$col_field || col_field %] +[% row_field_disp = field_descs.$row_field || row_field %] +[% switchbase = switchbase FILTER html %] + +[% title = BLOCK %] + Report: + [% IF tbl_field %] + [% tbl_field_disp FILTER html %] + [% END %] + [% " / " IF tbl_field AND (col_field OR row_field) %] + [% IF row_field %] + [% row_field_disp FILTER html %] + [% END %] + [% " / " IF col_field AND row_field %] + [% col_field_disp FILTER html %] +[% END %] + +[% time = time FILTER time('%Y-%m-%d %H:%M:%S') FILTER html %] + +[% PROCESS global/header.html.tmpl + style = " + .t1 { background-color: #ffffff } /* white */ + .t2 { background-color: #dfefff } /* light blue */ + .t3 { background-color: #dddddd } /* grey */ + .t4 { background-color: #c3d3ed } /* darker blue */ + .ttotal { background-color: #cfffdf } /* light green */ + " + header_addl_info = time +%] + +[% IF debug %] +

    [% query FILTER html %]

    +[% END %] + +
    + + [% FOREACH tbl = tbl_names %] + [% IF tbl == "-total-" %] + [% tbl_disp = "Total" %] + [% ELSE %] + [% tbl_disp = tbl %] + [% END %] + + [% IF format == "table" %] + [% PROCESS "reports/report-table.html.tmpl" %] + [% ELSE %] + [% IF tbl %] +

    [% tbl_disp FILTER email FILTER html %]

    + [% END %] + + [% imageurl = BLOCK %]report.cgi?[% imagebase FILTER html %]&format= + [% format FILTER url_quote %]&ctype=png&action=plot& + [% IF tbl_field %] + [% IF tbl != "-total-" %] + [% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %]& + [% ELSE %] + [% FOREACH tblname = tbl_names %] + [% IF tblname != "-total-" %] + [% tbl_field FILTER url_quote %]=[% tblname FILTER url_quote %]& + [% END %] + [% END %] + [% END %] + [% END %]width=[% width %]&height=[% height %] + [% END %] + + Graphical report results + [% END %] +
    + [% END %] + + + + + + [% IF format != "table" %] + + + [% sizeurl = BLOCK %]report.cgi? + [% switchbase %]&action=wrap&format= + [% format FILTER html %][% END %] + + [% END %] + +
    + [% formats = [ { name => "pie", description => "Pie" }, + { name => "bar", description => "Bar" }, + { name => "line", description => "Line" }, + { name => "table", description => "Table" } ] %] + + [% formaturl = "report.cgi?$switchbase&width=$width" _ + "&height=$height&action=wrap" %] + [% FOREACH other_format = formats %] + [% NEXT IF other_format.name == "pie" AND row_field AND col_field %] + [% UNLESS other_format.name == format %] + + [% END %] + [% other_format.description FILTER html %] + [% "" UNLESS other_format.name == format %] | + [% END %] + CSV + +        + + Taller
    + Thinner * + Fatter    
    + Shorter
    +
    + +

    + [% IF format == "table" %] + Edit + this report + [% ELSE %] + + Edit this report + + [% END %] +

    + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/reports/series-common.html.tmpl b/template/en/default/reports/series-common.html.tmpl new file mode 100644 index 0000000..cecf288 --- /dev/null +++ b/template/en/default/reports/series-common.html.tmpl @@ -0,0 +1,119 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # donames: boolean. True if we have a multi-select for names as well as + # categories and subcategories. + # category: hash (keyed by category) of hashes (keyed by subcategory) of + # hashes (keyed by name), with value being the series_id of the + # series. Contains details of all series the user can see. + #%] + +[% subcategory = category.${default.category} %] +[% name = subcategory.${default.subcategory} %] + + + +[%###########################################################################%] +[%# Block for SELECT fields - pinched from search/form.html.tmpl #%] +[%###########################################################################%] + +[% BLOCK series_select %] + + + +[% END %] diff --git a/template/en/default/reports/series.html.tmpl b/template/en/default/reports/series.html.tmpl new file mode 100644 index 0000000..3cf9390 --- /dev/null +++ b/template/en/default/reports/series.html.tmpl @@ -0,0 +1,97 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # default: hash. Defaults for category, subcategory, name etc. + # button_name: string. What the button will say. + # category: hash (keyed by category) of hashes (keyed by subcategory) of + # hashes (keyed by name), with value being the series_id of the + # series. Contains details of all series the user can see. + #%] + +[% PROCESS "reports/series-common.html.tmpl" + newtext = "New (name below)" + %] + + + + + + + + + + + + [% PROCESS series_select sel = { name => 'category', + size => 5, + onchange => "catSelected()" } %] + + + [% PROCESS series_select sel = { name => 'subcategory', + size => 5, + onchange => "checkNewState()" } %] + + + + + + + + + + + + + + +
    Category:Sub-category:Name:
    + + + + + Run every   + +  day(s)
    + [%# Change 'admin' here and in Series.pm, or remove the check + completely, if you want to change who can make series public. %] + [% IF user.in_group('admin') %] + + Visible to all
    + (within group restrictions)
    + [% END %] +
    + + + + + +
    diff --git a/template/en/default/request/email.txt.tmpl b/template/en/default/request/email.txt.tmpl new file mode 100644 index 0000000..e48b2fc --- /dev/null +++ b/template/en/default/request/email.txt.tmpl @@ -0,0 +1,86 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + # Jeff Hedlund + # Frédéric Buclin + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% bugidsummary = bug.bug_id _ ': ' _ bug.short_desc %] +[% attidsummary = attachment.id _ ': ' _ attachment.description %] +[% flagtype_name = flag ? flag.type.name : old_flag.type.name %] +[% statuses = { '+' => "granted" , '-' => 'denied' , 'X' => "canceled" , + '?' => "asked" } %] + +[% to_identity = "" %] +[% on_behalf_of = 0 %] +[% action = flag.status || 'X' %] + +[% IF flag && flag.status == '?' %] + [% subject_status = "requested" %] + [% IF flag.setter_id == user.id %] + [% to_identity = flag.requestee.identity _ " for" %] + [% ELSE %] + [% on_behalf_of = 1 %] + [% IF flag.requestee %][% to_identity = " to " _ flag.requestee.identity %][% END %] + [% END %] +[% ELSE %] + [% IF old_flag && old_flag.status == '?' %] + [% to_identity = old_flag.setter.identity _ "'s request for" %] + [% END %] + [% subject_status = statuses.$action %] +[% END %] +From: [% Param('mailfrom') %] +To: [% to %] +Subject: [% flagtype_name %] [%+ subject_status %]: [[% terms.Bug %] [%+ bug.bug_id %]] [% bug.short_desc %] +[%- IF attachment %] : + [Attachment [% attachment.id %]] [% attachment.description %][% END %] +X-Bugzilla-Type: request +[%+ threadingmarker %] + +[%+ USE wrap -%] +[%- FILTER bullet = wrap(80) -%] + +[% IF on_behalf_of %] +[% user.identity %] has reassigned [% flag.setter.identity %]'s request for [% flagtype_name %] +[% to_identity %]: +[% ELSE %] +[% user.identity %] has [% statuses.$action %] [%+ to_identity %] [%+ flagtype_name %]: +[% END %] + +[% terms.Bug %] [%+ bugidsummary %] +[% END %] +[%+ urlbase %]show_bug.cgi?id=[% bug.bug_id %] +[% IF attachment %] + +[% FILTER bullet = wrap(80) %] +Attachment [% attidsummary %] +[%- END %] +[%+ urlbase %]attachment.cgi?id=[% attachment.id %]&action=edit +[%- END %] +[%- FILTER bullet = wrap(80) %] + +[% USE Bugzilla %] +[%-# .defined is necessary to avoid a taint issue in Perl < 5.10.1, see bug 509794. %] +[% IF Bugzilla.cgi.param("comment").defined && Bugzilla.cgi.param("comment").length > 0 %] +------- Additional Comments from [% user.identity %] +[%+ Bugzilla.cgi.param("comment") %] +[% END %] + +[%- END %] diff --git a/template/en/default/request/queue.html.tmpl b/template/en/default/request/queue.html.tmpl new file mode 100644 index 0000000..471f9b9 --- /dev/null +++ b/template/en/default/request/queue.html.tmpl @@ -0,0 +1,248 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/header.html.tmpl + title="Request Queue" + style = " + table.requests th { text-align: left; } + table#filtering th { text-align: right; } + " + onload="var f = document.request_form; selectProduct(f.product, f.component, null, null, 'Any');" + javascript_urls=["js/productform.js"] +%] + + + +[% BLOCK js_comp %] + cpts['[% n %]'] = [ + [%- FOREACH comp = prod.components %]'[% comp.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%]]; + [% n = n+1 %] +[% END %] + +

    +When you are logged in, only requests made by you or addressed to you +are shown by default. You can change the criteria using the form below. +When you are logged out, all pending requests that are not restricted +to some group are shown by default. +

    + +
    + + + + + + + + + + + + [%# We could let people see a "queue" of non-pending requests. %] + + + + + + + + + + + + +
    Requester:Product: + + Flag: + [% PROCESS "global/select-menu.html.tmpl" + name="type" + options=types + default=cgi.param('type') %] +
    Requestee:Component: + + Group By: + [% groups = { + "Requester" => 'requester' , + "Requestee" => 'requestee', + "Flag" => 'type' , + "Product/Component" => 'category' + } %] + [% PROCESS "global/select-menu.html.tmpl" name="group" options=groups default=cgi.param('group') %] +
    + +
    + +[% column_headers = { + "type" => "Flag" , + "status" => "Status" , + "bug" => "$terms.Bug" , + "attachment" => "Attachment" , + "requester" => "Requester" , + "requestee" => "Requestee" , + "created" => "Created" , + "category" => "Product/Component" } %] + +[% DEFAULT display_columns = ["requester", "requestee", "type", "bug", "attachment", "created"] + group_field = "Requestee" + group_value = "" +%] + +[% IF debug %] +

    [% query FILTER html %]

    +[% END %] + +[% IF requests.size == 0 %] +

    + No requests. +

    +[% ELSE %] + [% FOREACH request = requests %] + [% IF request.$group_field != group_value || loop.first %] + [% group_value = request.$group_field %] + [% PROCESS display_buglist UNLESS loop.first %] + [% PROCESS start_new_table %] + [% END %] + [% buglist.${request.bug_id} = 1 %] + + [% FOREACH column = display_columns %] + [% NEXT IF column == group_field || excluded_columns.contains(column) %] + [% PROCESS "display_$column" %] + [% END %] + + [% END %] + [% PROCESS display_buglist %] +[% END %] + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK start_new_table %] + [% buglist = {} %] + +

    [% column_headers.$group_field %]: + [%+ (request.$group_field || "None") FILTER email FILTER html %]

    + + + [% FOREACH column = display_columns %] + [% NEXT IF column == group_field || excluded_columns.contains(column) %] + + [% END %] + +[% END %] + +[% BLOCK display_type %] + [% request.type FILTER html %] +[% END %] + +[% BLOCK display_status %] + [% request.status %] +[% END %] + +[% BLOCK display_bug %] + + [% request.bug_id %]: [%+ request.bug_summary FILTER html %] +[% END %] + +[% BLOCK display_attachment %] + [% IF request.attach_id %] + + [% request.attach_id %]: [%+ request.attach_summary FILTER html %] + [% ELSE %] + N/A + [% END %] +[% END %] + +[% BLOCK display_requestee %] + [% request.requestee FILTER email FILTER html %] +[% END %] + +[% BLOCK display_requester %] + [% request.requester FILTER email FILTER html %] +[% END %] + +[% BLOCK display_created %] + [% request.created FILTER time %] +[% END %] + +[% BLOCK display_buglist %] +
    [% column_headers.$column %]
    + [% NEXT UNLESS buglist.keys.size %] + (view as + [%+ terms.bug %] list) +[% END %] diff --git a/template/en/default/search/boolean-charts.html.tmpl b/template/en/default/search/boolean-charts.html.tmpl new file mode 100644 index 0000000..1b79a45 --- /dev/null +++ b/template/en/default/search/boolean-charts.html.tmpl @@ -0,0 +1,136 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% types = [ + "noop", + "equals", + "notequals", + "anyexact", + "substring", + "casesubstring", + "notsubstring", + "anywordssubstr", + "allwordssubstr", + "nowordssubstr", + "regexp", + "notregexp", + "lessthan", + "greaterthan", + "anywords", + "allwords", + "nowords", + "changedbefore", + "changedafter", + "changedfrom", + "changedto", + "changedby", + "matches", + "notmatches", +] %] + +

    + + Advanced Searching Using Boolean Charts: + +

    + +[%# Whoever wrote the original version of boolean charts had a seriously twisted mind %] + +[% jsmagic = "onclick=\"this.form.action='query.cgi#chart'; this.form.method='POST'; return 1;\"" %] + +[% FOREACH chart = default.charts %] + [% chartnum = loop.count - 1 %] + + + + + [% FOREACH row = chart.rows %] + [% rownum = loop.count - 1 %] + + [% FOREACH col = row %] + [% colnum = loop.count - 1 %] + + + [% UNLESS loop.last %] + + + + [% ELSE %] + + [% END %] + + [% END %] + + + [% UNLESS loop.last %] + + + + [% ELSE %] + + + + [% END %] + + [% END %] +
    + + +
    + + + [% INCLUDE "search/type-select.html.tmpl" + name = "type${chartnum}-${rownum}-${colnum}", + types = types, selected = col.type %] + + + + Or +
    + [% newor = colnum + 1 %] + +
    And
    + [% newand = rownum + 1; newchart = chartnum + 1 %] + +       + +       +
    +
    +[% END %] diff --git a/template/en/default/search/form.html.tmpl b/template/en/default/search/form.html.tmpl new file mode 100644 index 0000000..2e2ae73 --- /dev/null +++ b/template/en/default/search/form.html.tmpl @@ -0,0 +1,643 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Chris Lahey [javascript fixes] + # Christian Reis [javascript rewrite] + # Gervase Markham + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + + + +[% query_types = [ + "allwordssubstr", + "anywordssubstr", + "substring", + "casesubstring", + "allwords", + "anywords", + "regexp", + "notregexp", +] %] + +[%# If we resubmit to ourselves, we need to know if we are using a format. %] +[% thisformat = query_format != '' ? query_format : format %] + + +[%# *** Summary *** %] + + + + + + + + + +[%# *** Classification Product Component Version Target *** %] + + + + +[%# *** Comment URL Whiteboard Keywords *** %] + + [% SET freetext_fields = [ + { name => "longdesc", description => "A Comment", + accesskey => 'c' }, + { name => "bug_file_loc", description => "The URL", + accesskey => 'u' }, + { name => "status_whiteboard", description => "Whiteboard", + accesskey => 'w' } + ] %] + + [% Hook.process('before_freetext_fields') %] + [% FOREACH field = freetext_fields %] + [% NEXT IF field.name == 'status_whiteboard' + AND NOT Param('usestatuswhiteboard') + %] + + + + + + + [% END %] + + [% IF use_keywords %] + + + + + + [% END %] + + [%# Deadline %] + [% IF user.is_timetracker %] + + + + + + [% END %] + + [% Hook.process('after_freetext_fields') %] + +
    + : + + [% INCLUDE "search/type-select.html.tmpl" + name = "short_desc_type", + types = query_types, selected = default.short_desc_type.0 %] + + + + + [% IF button_name %] + + [% END %] +
    + + + [% Hook.process('before_selects_top') %] + [% IF Param('useclassification') %] + + [% END %] + + + + [% IF Param('usetargetmilestone') %] + + [% END %] + [% Hook.process('after_selects_top') %] + +
    + + + + + + + +
    + : +
    + +
    +
    + + + + + + [%# Can't use the select block here because of the onChange %] + + +
    + : +
    + +
    +
    + + + + + + [%# Can't use the select block here because 'component' is a toolkit + reserved word - we use 'component_' instead. %] + + +
    + : +
    + +
    +
    + + + + + + [% PROCESS select sel = { name => 'version', + size => 5 } %] + +
    + : +
    +
    + + + + + + [% PROCESS select sel = { name => 'target_milestone', + size => 5 } %] + +
    + : +
    +
    +
    + : + + [% type = field.name _ "_type" %] + [% INCLUDE "search/type-select.html.tmpl" + name = type, + types = query_types, selected = default.$type.0 %] + +
    + : + + [% INCLUDE "search/type-select.html.tmpl" + name = "keywords_type", + types = ['allwords', 'anywords', 'nowords', 'regexp', 'notregexp'], + selected = default.keywords_type.0 %] + + +
    + : + + from + to + + (YYYY-MM-DD or relative dates) +
    + +
    + +[%# *** Status Resolution Severity Priority Hardware OS *** %] + + + + [% Hook.process('before_selects_bottom') %] + + + + + + + [% Hook.process('after_selects_bottom') %] + +
    + + + + + + [% PROCESS select sel = { name => 'bug_status', + size => 7 } %] + +
    + : +
    +
    + + + + + + [% PROCESS select sel = { name => 'resolution', + size => 7 } %] + +
    + : +
    +
    + + + + + + [% PROCESS select sel = { name => 'bug_severity', + size => 7 }%] + +
    + : +
    +
    + + + + + + [% PROCESS select sel = { name => 'priority', + size => 7 } %] + +
    + : +
    +
    + + + + + + [% PROCESS select sel = { name => 'rep_platform', + size => 7 } %] + +
    + : +
    +
    + + + + + + [% PROCESS select sel = { name => 'op_sys', + size => 7 } %] + +
    + : +
    +
    + +[%# *** Email Numbering Votes *** %] + + + + + +[%# *** Bug Changes *** %] + + + +
    +
    + + + [% IF Param('usevotes') %] + Email Addresses, [% terms.Bug %] Numbers, and Votes + [% ELSE %] + Email Addresses and [% terms.Bug %] Numbers + [% END %] + + + + + + + [% FOREACH n = [1, 2] %] + + [% END %] + +
    + + + + + + + + + + + + + [% IF Param('useqacontact') %] + + + + [% END %] + + + + + + + + + + + + +
    + Any of: +
    + + +
    + + +
    + + +
    + + +
    + + +
    + +
    + +
    + + +
    +
    + + + + + + + + + + [% IF Param('usevotes') %] + + + + + [% END %] +
    + + : + + +
    (comma-separated list)
    + : + + + votes +
    + + +
    +
    +
    + [% terms.Bug %] Changes + + +
    +
    + : +
    +
    + + and +
    (YYYY-MM-DD or relative dates) +
    +
    + : +
    +
    + [%# Create array, so we can sort it by description #%] + [% chfields = [] %] + [% FOREACH field = chfield %] + [% chfields.push({value => field, desc => (field_descs.$field || field) }) %] + [% END %] + + +
    +
    and :
    +
    + +
    +
    + +
    +
    + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + + + +[% END %] diff --git a/template/en/default/search/knob.html.tmpl b/template/en/default/search/knob.html.tmpl new file mode 100644 index 0000000..17ff63a --- /dev/null +++ b/template/en/default/search/knob.html.tmpl @@ -0,0 +1,85 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Tobias Burnus + # Jouni Heikniemi + #%] + +[%# INTERFACE: + # (incomplete!) + # ... + # known_name: string. Possibly known stored name for the query being + # edited. This value is just passed through in a + # hidden field. + #%] + + +[% PROCESS global/variables.none.tmpl %] + +[%# This is not necessary for English templates, but useful for localizers. %] +[% ordersdesc = { + "Reuse same sort as last time" => "Reuse same sort as last time", + "Bug Number" => "$terms.Bug Number", + "Importance" => "Importance", + "Assignee" => "Assignee", + "Last Changed" => "Last Changed" } %] + + + +

    + : + +

    + +

    + + [% IF known_name %] + [%# We store known_name in case the user add a boolean chart. %] + + + [%# The name of the existing query will be passed to buglist.cgi. %] + + [% END %] + [%# Preserve any custom column list that might be set. %] + [% IF columnlist %] + + [% END %] +

    + +

    +     + + +

    + +[% IF userdefaultquery %] +

    + + Set my default search back to the system default. +

    +[% END %] diff --git a/template/en/default/search/search-advanced.html.tmpl b/template/en/default/search/search-advanced.html.tmpl new file mode 100644 index 0000000..cb0519a --- /dev/null +++ b/template/en/default/search/search-advanced.html.tmpl @@ -0,0 +1,82 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # This template has no interface. However, to use it, you need to fulfill + # the interfaces of search/form.html.tmpl, search/knob.html.tmpl and + # search/boolean-charts.html.tmpl. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + + +[% js_data = BLOCK %] +var queryform = "queryform" +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Search for $terms.bugs" + onload = "doOnSelectProduct(0); enableHelp();" + javascript = js_data + javascript_urls = [ "js/productform.js" "js/util.js" "js/help.js" ] + style_urls = [ "skins/standard/help.css" ] + doc_section = "query.html" + style = "dl.bug_changes dt { + margin-top: 15px; + }" +%] + +[% WRAPPER search/tabs.html.tmpl %] + +[% button_name = "Search" %] + +[%# The decent help requires Javascript %] + + +
    + +[% PROCESS search/form.html.tmpl %] + +[% PROCESS search/knob.html.tmpl %] + +
    + +[% PROCESS "search/boolean-charts.html.tmpl" %] + +
    + + +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/search/search-create-series.html.tmpl b/template/en/default/search/search-create-series.html.tmpl new file mode 100644 index 0000000..da1011e --- /dev/null +++ b/template/en/default/search/search-create-series.html.tmpl @@ -0,0 +1,68 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # This template has no interface. However, to use it, you need to fulfill + # the interfaces of search/form.html.tmpl, reports/series.html.tmpl and + # search/boolean-charts.html.tmpl. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% js_data = BLOCK %] + var queryform = "chartform"; +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Create New Data Set" + onload = "doOnSelectProduct(0);" + javascript = js_data + javascript_urls = [ "js/productform.js" ] + doc_section = "reporting.html#charts-new-series" +%] + +
    + +[% PROCESS search/form.html.tmpl %] + +

    + + to see which [% terms.bugs %] would be included in this data set. +

    + +

    Data Set Parameters

    + +[% PROCESS reports/series.html.tmpl + button_name = "Create Data Set" %] + + + + +
    + +[% PROCESS "search/boolean-charts.html.tmpl" %] + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/search/search-help.html.tmpl b/template/en/default/search/search-help.html.tmpl new file mode 100644 index 0000000..12e82ba --- /dev/null +++ b/template/en/default/search/search-help.html.tmpl @@ -0,0 +1,107 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[% help_html = [ +{ id => "short_desc_type", + html => "The type of summary search you would like" }, +{ id => "short_desc", + html => "The $terms.bug summary is a short sentence which succinctly + describes
    what the $terms.bug is about." }, +{ id => "classification", + html => "$terms.Bugs are categorised into Classifications, Products and Components. classifications is the
    + top-level categorisation." }, +{ id => "product", + html => Param('useclassification') ? + "$terms.Bugs are categorised into Products and Components. Select a Classification to narrow down this list" : + "$terms.Bugs are categorised into Products and Components. Product is + the
    top-level categorisation." }, +{ id => "component", + html => "Components are second-level categories; each belongs to a
    + particular Product. Select a Product to narrow down this list." }, +{ id => "version", + html => "The version field defines the version of the software the + $terms.bug
    was found in." }, +{ id => "target_milestone", + html => "The target_milestone field is used to define when the engineer
    + the $terms.bug is assigned to expects to fix it." }, +{ id => "longdesc", + html => "$terms.Bugs have comments added to them by $terms.Bugzilla users. + You can
    search for some text in those comments." }, +{ id => "longdesc_type", + html => "The type of comment search you would like" }, +{ id => "bug_file_loc", + html => "$terms.Bugs can have a URL associated with them - for example, a + pointer
    to a web site where the problem is seen." }, +{ id => "bug_file_loc_type", + html => "The type of URL search you would like" }, +{ id => "status_whiteboard", + html => "Each $terms.bug has a free-form single line text entry box for + adding
    tags and status information." }, +{ id => "status_whiteboard_type", + html => "The type of whiteboard search you would like" }, +{ id => "keywords", + html => "You can add keywords from a defined list to $terms.bugs, in order + to
    tag and group them." }, +{ id => "keywords_type", + html => "The type of keyword search you would like" }, +{ id => "bug_status", + html => "$terms.Abug may be in any of a number of states." }, +{ id => "resolution", + html => "If $terms.abug is in a resolved state, then one of these reasons + will
    be given for its resolution." }, +{ id => "bug_severity", + html => "How severe the $terms.bug is, or whether it's an enhancement." }, +{ id => "priority", + html => "Engineers prioritize their $terms.bugs using this field." }, +{ id => "rep_platform", + html => "The hardware platform the $terms.bug was observed on." }, +{ id => "op_sys", + html => "The operating system the $terms.bug was observed on." }, +{ id => "email1", + html => "Every $terms.bug has people associated with it in different + roles.
    Here, you can search on what people are in what role." }, +{ id => "email2", + html => "Every $terms.bug has people associated with it in different + roles.
    Here, you can search on what people are in what role." }, +{ id => "bug_id", + html => "You can limit your search to a specific set of $terms.bugs ." }, +{ id => "votes", + html => "Some $terms.bugs can be voted for, and you can limit your search to + $terms.bugs
    with more than a certain number of votes." }, +{ id => "chfield", + html => "You can search for specific types of change - this field define
    + which field you are interested in changes for." }, +{ id => "chfieldfrom", + html => "Specify the start and end dates either in YYYY-MM-DD format
    + (optionally followed by HH:mm, in 24 hour clock), or in relative
    + dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,
    + two days, three weeks, four months, or five years ago. 0d is last
    + midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,
    + month, or year." }, +{ id => "chfieldto", + html => "Specify the start and end dates either in YYYY-MM-DD format
    + (optionally followed by HH:mm, in 24 hour clock), or in relative
    + dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,
    + two days, three weeks, four months, or five years ago. 0d is last
    + midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,
    + month, or year." }, +{ id => "chfieldvalue", + html => "The value the field defined above changed to during that time." }, +] %] diff --git a/template/en/default/search/search-plugin.xml.tmpl b/template/en/default/search/search-plugin.xml.tmpl new file mode 100644 index 0000000..8564dca --- /dev/null +++ b/template/en/default/search/search-plugin.xml.tmpl @@ -0,0 +1,28 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + # + #%] +[% PROCESS global/variables.none.tmpl %] + + +[% terms.Bugzilla %] +[% terms.Bugzilla %] Quick Search +UTF-8 +[% IF favicon %] + data:image/x-icon;base64,[% favicon FILTER base64 %] +[% ELSE %] + data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALBSURBVHjaYnxckcEAA3%2F%2B%2FT%2F17LUcH%2Fevf%2F8U%2BHmYGBkZMABAALEgc%2B68%2F3T227cf2tJKKhJLt59n%2FfmbnYnZV1KEhYkJrgYggBghNrz78fPIi3d8uvKBIdb%2FOaWPnzitLc97%2Bc5rFXnhnVO3%2BslLwjUABBDIhnsfPl%2Fj53VO91FX4Gfgkjxw%2Fd%2F6Q49%2FWStqyAj%2B%2B88gZqn%2B9u5rYU52iAaAAGL69%2F%2F%2F2d9%2FYiMclGT4fv76%2BZ9DbO%2FeA39%2BfJHVcvj5l%2Bnh03e%2FWThOvnwLtwEgAAAxAM7%2FBPj8%2FRYkHQYHAf3%2F%2Fv%2F%2B%2Fv8BAVNTUPX18yorLNHE2S8mB%2FT2%2Bq7a4dvu8iUSDgAAAAKICRgUv3%2F8ZGKGeIvpz6eXBvq61lZWLMwMv%2F5zMP7%2FqSAjVFyZ%2FNvZftuT10DnAAQAMQDO%2FwQIBAPz5Or6%2Ff0CBQEAAgT99ubq38z2%2BwT18%2FAM%2F%2BkNDAv6%2FQMCAA1GVVrhMze5h4kCCORpkd9%2F3n74KiHO%2B%2BffX8b%2Ff7m%2BXWP985%2Bf5R%2BPLNdfoK%2F%2F%2Ffv39%2BePj2%2FkZYR0fe0BAgikQZGX%2B9b9FzLS%2FH%2F%2B%2FGVgYGRlZWNlA7nv7z9QuDP8%2B8nw%2FRXjn68Mv4Gu%2FAwQQCCni3FxPLn7nIGZGegfNhYmNjYWZnBMASOakZER6Eumf9%2FYGT4y%2FHx%2F%2BfBFgAAC2cDGzPT99WeGvwzvv%2Fx89vrr%2F39%2FJER4pcT5Gf4z%2FP37D2jtj9%2B%2FL918fmzrKSsWNoAAgiaN%2Fz9%2Fff%2F6S4CP8%2BWbz9vWHfv54aukpAAz0Og%2Ff%2F7%2F%2Bs36668cO3ugED9QJUAAQTUArf7%2F8x87D9vRjcejhPiZhAUYcACAAGI5%2FOHH9ddvXzAxmjz%2B8P8lw4fXn5l4eRlwA4AAYmaTkBFg%2FKvJwfbkwZuXN57y%2Fv%2F34stXGR4uRmxpGwgAAgwA4%2FkfrfCWvLQAAAAASUVORK5CYII%3D +[% END %] + + diff --git a/template/en/default/search/search-report-graph.html.tmpl b/template/en/default/search/search-report-graph.html.tmpl new file mode 100644 index 0000000..61dd3b5 --- /dev/null +++ b/template/en/default/search/search-report-graph.html.tmpl @@ -0,0 +1,141 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # This template has no interface. However, to use it, you need to fulfill + # the interfaces of the templates it contains. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% js_data = BLOCK %] +var queryform = "reportform" +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Generate Graphical Report" + onload = "doOnSelectProduct(0); chartTypeChanged()" + javascript = js_data + javascript_urls = [ "js/productform.js" ] + doc_section = "reporting.html#reports" +%] + +[% PROCESS "search/search-report-select.html.tmpl" %] + +

    + Choose one or more fields as your axes, and then refine your set of + [% terms.bugs %] using the rest of the form. +

    + + + +[% button_name = "Generate Report" %] + +
    + + + + + + + + + + + + + +
    + Vertical Axis:
    + + [% PROCESS select name = 'y_axis_field' %]
    +
    + Plot Data Sets:
    + + Individually
    + + Stacked +
    + + + + +
    + Multiple Images:
    + [% PROCESS select name = 'z_axis_field' %] +
    +
    + Format:
    + [% chart_formats = [ + { name => "line", description => "Line Graph" }, + { name => "bar", description => "Bar Chart" }, + { name => "pie", description => "Pie Chart" } ] %] + [% default.chart_format.0 = default.chart_format.0 || "bar" %] + + [% FOREACH chart_format = chart_formats %] + + [% chart_format.description FILTER html %]
    + [% END %] +
    + + Horizontal Axis: + [% PROCESS select name = 'x_axis_field' %]
    + + +
    +
    + +
    + +[% PROCESS search/form.html.tmpl %] + +
    + + +
    + +[% PROCESS "search/boolean-charts.html.tmpl" %] + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/search/search-report-select.html.tmpl b/template/en/default/search/search-report-select.html.tmpl new file mode 100644 index 0000000..de64787 --- /dev/null +++ b/template/en/default/search/search-report-select.html.tmpl @@ -0,0 +1,54 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # name: string. The name of the select block to output. + # default.$name.0: string. The default value for the block, if any. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% BLOCK select %] + [% rep_fields = ["classification", "product", "component", "version", "rep_platform", + "op_sys", "bug_status", "resolution", "bug_severity", + "priority", "target_milestone", "assigned_to", + "reporter", "qa_contact", "votes" ] %] + + +[% END %] diff --git a/template/en/default/search/search-report-table.html.tmpl b/template/en/default/search/search-report-table.html.tmpl new file mode 100644 index 0000000..55d62a1 --- /dev/null +++ b/template/en/default/search/search-report-table.html.tmpl @@ -0,0 +1,94 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + #%] + +[%# INTERFACE: + # This template has no interface. However, to use it, you need to fulfill + # the interfaces of the templates it contains. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% js_data = BLOCK %] +var queryform = "reportform" +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Generate Tabular Report" + onload = "doOnSelectProduct(0)" + javascript = js_data + javascript_urls = [ "js/productform.js" ] + doc_section = "reporting.html#reports" +%] + +[% PROCESS "search/search-report-select.html.tmpl" %] + +

    + Choose one or more fields as your axes, and then refine your set of + [% terms.bugs %] using the rest of the form. +

    + +[% button_name = "Generate Report" %] + +
    + + + + + + + + + + + +
    + + Horizontal Axis: + [% PROCESS select name = 'x_axis_field' %] +
    + Vertical Axis:
    + [% PROCESS select name = 'y_axis_field' %] +
    + + + + +
    + Multiple Tables:
    + [% PROCESS select name = 'z_axis_field' %] +
    +
    + +
    + +[% PROCESS search/form.html.tmpl %] + +
    + + + +
    + +[% PROCESS "search/boolean-charts.html.tmpl" %] + +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/search/search-specific.html.tmpl b/template/en/default/search/search-specific.html.tmpl new file mode 100644 index 0000000..78e5506 --- /dev/null +++ b/template/en/default/search/search-specific.html.tmpl @@ -0,0 +1,129 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Simple Search" +%] + +[% WRAPPER search/tabs.html.tmpl %] + +

    +Find a specific [% terms.bug %] by entering words that describe it. +[% terms.Bugzilla %] will search [% terms.bug %] descriptions and comments +for those words and return a list of matching [% terms.bugs %] sorted +by relevance. +

    + +

    +For example, if the [% terms.bug %] you are looking for is a browser crash when you go to a secure web site with an embedded Flash animation, you might search +for "crash secure SSL flash". +

    + +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + + +
    + + [% IF Param('specific_search_allow_empty_words') %] + + [% ELSE %] + + [% END %] +
    +
    + +[% END %] + +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/search/tabs.html.tmpl b/template/en/default/search/tabs.html.tmpl new file mode 100644 index 0000000..119b30f --- /dev/null +++ b/template/en/default/search/tabs.html.tmpl @@ -0,0 +1,36 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Myk Melez + #%] + +[%# INTERFACE: + # This template has no interface. + #%] + +[% WRAPPER global/tabs.html.tmpl + tabs = [ { name => 'specific', label => "Simple Search", + link => "query.cgi?format=specific" }, + { name => 'advanced', label => "Advanced Search", + link => "query.cgi?format=advanced" } ] + current_tab_name = query_format || format || "advanced" +%] + +[% content %] + +[% END %] diff --git a/template/en/default/search/type-select.html.tmpl b/template/en/default/search/type-select.html.tmpl new file mode 100644 index 0000000..043c419 --- /dev/null +++ b/template/en/default/search/type-select.html.tmpl @@ -0,0 +1,29 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is the San Jose State + # University Foundation. Portions created by the Initial Developer are + # Copyright (C) 2008 the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + + diff --git a/template/en/default/setup/strings.txt.pl b/template/en/default/setup/strings.txt.pl new file mode 100644 index 0000000..eec0bd9 --- /dev/null +++ b/template/en/default/setup/strings.txt.pl @@ -0,0 +1,160 @@ +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Initial Developer of the Original Code is Everything Solved. +# Portions created by Everything Solved are Copyright (C) 2007 +# Everything Solved. All Rights Reserved. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# Contributor(s): Max Kanat-Alexander + +# This file contains a single hash named %strings, which is used by the +# installation code to display strings before Template-Toolkit can safely +# be loaded. +# +# Each string supports a very simple substitution system, where you can +# have variables named like ##this## and they'll be replaced by the string +# variable with that name. +# +# Please keep the strings in alphabetical order by their name. + +%strings = ( + any => 'any', + blacklisted => '(blacklisted)', + checking_for => 'Checking for', + checking_dbd => 'Checking available perl DBD modules...', + checking_optional => 'The following Perl modules are optional:', + checking_modules => 'Checking perl modules...', + chmod_failed => '##path##: Failed to change permissions: ##error##', + chown_failed => '##path##: Failed to change ownership: ##error##', + commands_dbd => < 'COMMANDS TO INSTALL OPTIONAL MODULES:', + commands_required => < 'done.', + extension_must_return_name => <1 or a number. See +the documentation of Bugzilla::Extension for details. +END + feature_auth_ldap => 'LDAP Authentication', + feature_auth_radius => 'RADIUS Authentication', + feature_graphical_reports => 'Graphical Reports', + feature_html_desc => 'More HTML in Product/Group Descriptions', + feature_inbound_email => 'Inbound Email', + feature_jobqueue => 'Mail Queueing', + feature_jsonrpc => 'JSON-RPC Interface', + feature_new_charts => 'New Charts', + feature_old_charts => 'Old Charts', + feature_mod_perl => 'mod_perl', + feature_moving => 'Move Bugs Between Installations', + feature_patch_viewer => 'Patch Viewer', + feature_smtp_auth => 'SMTP Authentication', + feature_updates => 'Automatic Update Notifications', + feature_xmlrpc => 'XML-RPC Interface', + + header => "* This is Bugzilla ##bz_ver## on perl ##perl_ver##\n" + . "* Running on ##os_name## ##os_ver##", + install_all => < < 'Installing ##module## version ##version##...', + installation_failed => '*** Installation aborted. Read the messages above. ***', + max_allowed_packet => < "Minimum version required: ", + +# Note: When translating these "modules" messages, don't change the formatting +# if possible, because there is hardcoded formatting in +# Bugzilla::Install::Requirements to match the box formatting. + modules_message_db => < < < "found v##ver##", + module_not_found => "not found", + module_ok => 'ok', + module_unknown_version => "found unknown version", + ppm_repo_add => < < "Precompiling templates...", + template_removal_failed => < "Removing existing compiled templates...", +); + +1; diff --git a/template/en/default/sidebar.xul.tmpl b/template/en/default/sidebar.xul.tmpl new file mode 100644 index 0000000..3df943e --- /dev/null +++ b/template/en/default/sidebar.xul.tmpl @@ -0,0 +1,131 @@ +[%# -*- mode: sgml -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Jacob Steenhagen + # Scott Collins + # Christopher A. Aillon + #%] + +[% PROCESS global/variables.none.tmpl %] + + + + + + + + + + + + + + + + + + + +[% IF user.id %] + + [%- IF user.in_group('tweakparams') %] + + + [%- END %] + [%- IF user.in_group('editusers') || user.can_bless %] + + [%- END %] + [%- IF Param('useclassification') && user.in_group('editclassifications') %] + + [%- END %] + [%- IF user.in_group('editcomponents') %] + + + + [%- END %] + [%- IF user.in_group('creategroups') %] + + [%- END %] + [%- IF user.in_group('editkeywords') %] + + [%- END %] + [%- IF user.in_group('bz_canusewhines') %] + + [%- END %] + [%- IF user.in_group('editcomponents') %] + + [%- END %] + [%- IF user.authorizer.can_logout %] + + [%- END %] + + [%- IF user.showmybugslink %] + [% filtered_username = user.login FILTER url_quote %] + + [%- END %] + [%- IF Param('usevotes') %] + + [%- END %] + + [%- FOREACH q = user.queries %] + + [% END %] + +[% ELSE %] + + +[% END %] + + + + + + + + + reload + + + diff --git a/template/en/default/welcome-admin.html.tmpl b/template/en/default/welcome-admin.html.tmpl new file mode 100644 index 0000000..3c03fb2 --- /dev/null +++ b/template/en/default/welcome-admin.html.tmpl @@ -0,0 +1,86 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # Contributor(s): Frédéric Buclin + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Welcome to [% terms.Bugzilla %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + header_addl_info = "version $constants.BUGZILLA_VERSION" + style_urls = [ 'skins/standard/index.css' ] +%] + +
    +

    Welcome, [% user.identity FILTER html %].

    + +

    You are seeing this page because some of the core parameters have not been set up yet. + The goal of this page is to inform you about the last steps required to set up + your installation correctly.

    + +

    As an administrator, you have access to all administrative pages, accessible from + the Administration link visible at the bottom of this page. + This link will always be visible, on all pages. From there, you must visit at least + the Parameters page, from where you can set all important + parameters for this installation; among others:

    + +
      +
    • urlbase, which is the URL + pointing to this installation and which will be used in emails (which is also the + reason you see this page: as long as this parameter is not set, you will see this + page again and again).
    • + +
    • cookiepath is important + for your browser to manage your cookies correctly.
    • + +
    • maintainer, + the person responsible for this installation if something is + running wrongly.
    • +
    + +

    Also important are the following parameters:

    + +
      +
    • requirelogin, if turned + on, will protect your installation from users having no account on this installation. + In other words, users who are not explicitly authenticated with a valid account + cannot see any data. This is what you want if you want to keep your data private.
    • + +
    • createemailregexp + defines which users are allowed to create an account on this installation. If set + to ".*" (the default), everybody is free to create his own account. If set to + "@mycompany.com$", only users having an account @mycompany.com will be allowed to + create an account. If left blank, users will not be able to create accounts themselves; + only an administrator will be able to create one for them. If you want a private + installation, you must absolutely set this parameter to something different from + the default.
    • + +
    • mail_delivery_method + defines the method used to send emails, such as sendmail or SMTP. You have to set + it correctly to send emails.
    • +
    + +

    + After having set up all this, we recommend looking at [% terms.Bugzilla %]'s other + parameters as well at some time so that you understand what they do and whether you + want to modify their settings for your installation. +

    +
    + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/whine/mail.html.tmpl b/template/en/default/whine/mail.html.tmpl new file mode 100644 index 0000000..a4f0ede --- /dev/null +++ b/template/en/default/whine/mail.html.tmpl @@ -0,0 +1,92 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Erik Stambaugh + #%] + +[%# INTERFACE: + # subject: subject line of message + # body: message body, shown before the query tables + # queries: array of hashes containing: + # bugs: array containing hashes of fieldnames->values for each bug + # title: the title given in the whine scheduling mechanism + # author: user object for the person who scheduled this whine + # recipient: user object for the intended recipient of the message + #%] + +[% PROCESS global/variables.none.tmpl %] +[% PROCESS 'global/field-descs.none.tmpl' %] + + + + + + [[% terms.Bugzilla %]] [% subject FILTER html %] + + + + +

    + [% body FILTER html %] +

    + +

    + [% IF author.login == recipient.login %] + Click + here to edit your whine schedule + [% ELSE %] + This search was scheduled by [% author.login FILTER html %]. + [% END %] +

    + + +[% FOREACH query=queries %] + +

    [%+ query.title FILTER html %]

    + + + + + + + + + + + + + + [% FOREACH bug=query.bugs %] + + + + + + + + + + + [% END %] +
    IDSevPriPltAssigneeStatusResolutionSummary
    [% bug.bug_id %][% display_value("bug_severity", bug.bug_severity) FILTER html %][% display_value("priority", bug.priority) FILTER html %][% display_value("rep_platform", bug.rep_platform) FILTER html %][% bug.assigned_to FILTER html %][% display_value("bug_status", bug.bug_status) FILTER html %][% display_value("resolution", bug.resolution) FILTER html %][% bug.short_desc FILTER html %]
    +[% END %] + + + + + diff --git a/template/en/default/whine/mail.txt.tmpl b/template/en/default/whine/mail.txt.tmpl new file mode 100644 index 0000000..862ae26 --- /dev/null +++ b/template/en/default/whine/mail.txt.tmpl @@ -0,0 +1,65 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Erik Stambaugh + #%] + +[%# INTERFACE: + # subject: subject line of message + # body: message body, shown before the query tables + # queries: array of hashes containing: + # bugs: array containing hashes of fieldnames->values for each bug + # title: the title given in the whine scheduling mechanism + # author: user object for the person who scheduled this whine + # recipient: user object for the intended recipient of the message + #%] + +[% PROCESS global/variables.none.tmpl %] +[% PROCESS 'global/field-descs.none.tmpl' %] + +[% body %] + +[% IF author.login == recipient.login %] + To edit your whine schedule, visit the following URL: + [%+ urlbase %]editwhines.cgi +[% ELSE %] + This search was scheduled by [% author.login %]. +[% END %] + + +[% FOREACH query=queries %] + +[%+ query.title +%] +[%+ "-" FILTER repeat(query.title.length) %] + + [% FOREACH bug=query.bugs %] + [% terms.Bug +%] [%+ bug.bug_id %]: + [%+ urlbase %]show_bug.cgi?id=[% bug.bug_id +%] + Priority: [%+ display_value("priority", bug.priority) -%] + Severity: [%+ display_value("bug_severity", bug.bug_severity) -%] + Platform: [%+ display_value("rep_platform", bug.rep_platform) %] + Assignee: [%+ bug.assigned_to %] + Status: [%+ display_value("bug_status", bug.bug_status) %] + [%- IF bug.resolution -%] Resolution: [% display_value("resolution", bug.resolution) -%] + [%- END %] + Summary: [% bug.short_desc %] + + [% END %] + +[% END %] + + diff --git a/template/en/default/whine/multipart-mime.txt.tmpl b/template/en/default/whine/multipart-mime.txt.tmpl new file mode 100644 index 0000000..7fdfdb0 --- /dev/null +++ b/template/en/default/whine/multipart-mime.txt.tmpl @@ -0,0 +1,53 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Erik Stambaugh + #%] + +[%# INTERFACE: + # subject: subject line of message + # alternatives: array of hashes containing: + # type: MIME type + # content: verbatim content + # boundary: a string that has been generated to be a unique boundary + # recipient: user object for the intended recipient of the message + # from: Bugzilla system email address + #%] + +[% PROCESS global/variables.none.tmpl %] + +From: [% from %] +To: [% recipient.email %] +Subject: [[% terms.Bugzilla %]] [% subject %] +MIME-Version: 1.0 +Content-Type: multipart/alternative; boundary="[% boundary %]" +X-Bugzilla-Type: whine + + +This is a MIME multipart message. It is possible that your mail program +doesn't quite handle these properly. Some or all of the information in this +message may be unreadable. + + +[% FOREACH part=alternatives %] + +--[% boundary %] +Content-type: [% part.type +%] + +[%+ part.content %] +[%+ END %] +--[% boundary %]-- diff --git a/template/en/default/whine/schedule.html.tmpl b/template/en/default/whine/schedule.html.tmpl new file mode 100644 index 0000000..245a3e4 --- /dev/null +++ b/template/en/default/whine/schedule.html.tmpl @@ -0,0 +1,448 @@ +[%# -*- mode: html -*- %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Erik Stambaugh + #%] + +[%# INTERFACE: + # events: hash, keyed by event_id number. Values are anonymous hashes of: + # schedule: array of hashes containing schedule info: + # day: value in day column + # time: value selected in time column + # mailto_type: 0=user 1=group + # mailto: recipient's id (profile or group) + # queries: as with schedule, an anonymous array containing hashes of: + # name: the named query's name + # title: title to be displayed on the results + # sort: integer that sets execution order on named queries + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = "Set up whining" %] +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] + doc_section = "whining.html" +%] + +

    + "Whining" is when [% terms.Bugzilla %] executes a saved query at a regular interval + and sends the resulting list of [% terms.bugs %] via email. +

    + +

    + To set up a new whine event, click "Add a new event." Enter a subject line + for the message that will be sent, along with a block of text that will + accompany the [% terms.bug %] list in the body of the message. +

    + +

    + Schedules are added to an event by clicking on "Add a new schedule." A schedule + consists of a day, a time of day or interval of times + (e.g., every 15 minutes), and a target email address that may or may not be + alterable, depending on your privileges. Events may have more than one schedule + in order to run at multiple times or for different users. +

    + +

    + Searches come from saved searches, which are created by executing a search, then telling [% terms.Bugzilla %] to remember + the search under a particular name. Add a query by clicking "Add a new + query", and select the desired saved search name under "Search" and add a + title for the [% terms.bug %] table. The optional number entered under + "Sort" will determine the execution order (lowest to highest) if multiple + queries are listed. If you check "One message per [% terms.bug %]," each [% + terms.bug %] that matches the search will be sent in its own email message. +

    + +

    + All times are server local time ([% local_timezone FILTER html %]). +

    + +
    +[%# This hidden submit button must be here to set default behavior when + the user presses return on a form input field #%] + + + + +[% FOREACH event = events %] + + + + + + + + + + + + + + + + + + + + + + + [% IF event.value.schedule.size == 0 %] + + + + + + + [% ELSE %] + + + + + + + [% END %] + + [% IF event.value.queries.size == 0 %] + + + + + + + + [% ELSE %] + + + + + + + [% END %] + +
    + Event: + + +
    + Email subject line: + + +
    + Descriptive text sent within whine message: + + [% INCLUDE global/textarea.html.tmpl + name = "event_${event.key}_body" + minrows = 3 + maxrows = 10 + defaultrows = 5 + cols = 80 + defaultcontent = event.value.body + %] +
    + Send a message even if there are no [% terms.bugs %] in the search result: + + +
    + Schedule: + + Not scheduled to run
    + +
    + Schedule: + + + + + + + + + [% FOREACH schedule = event.value.schedule %] + + + + + + [% END %] + + + + +
    + Interval + + [% IF mail_others %] + Mail to + [% END %] + +
    + + [%# these hidden fields allow us to compare old values instead + of reading the database to tell if a field has changed %] + + + + [% PROCESS day_field val=schedule.day %] + [% PROCESS time_field val=schedule.time %] + + [% IF mail_others %] + + + + + [% END %] + + +
    + +
    + +
    + Searches: + + No searches
    + +
    + +
    + Searches: + + + + + + + + + + + + [% FOREACH query = event.value.queries %] + + + + + + + + + + [% END %] + + + + + +
    SortSearchTitle
    + + + + + [% PROCESS query_field thisquery=query.name %] + + + + + + + + + +
    + + + +
    + +
    + +[% END %] + +

    + +

    + +
    + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK query_field +%] + + [% IF available_queries.size > 0 %] + + + + [% ELSE %] + Please visit the Search page and save a query + [% END %] + +[%+ END %] + +[% BLOCK day_field +%] + +[%+ END %] + +[% BLOCK time_field +%] + + +[%+ END %] + -- cgit v1.2.1 From 35b43461c439f87dece54c5939d5ead0bc6603e7 Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Fri, 7 Jan 2011 21:07:48 +0000 Subject: Add templates for bug creation --- .../en/default/bug/create/create-guided.html.tmpl | 541 +++++++++++---------- 1 file changed, 275 insertions(+), 266 deletions(-) diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl index 9f2a21b..8b04e66 100644 --- a/template/en/default/bug/create/create-guided.html.tmpl +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -34,22 +34,11 @@ style = "#somebugs { width: 100%; height: 500px }" %] -

    - - This is a template used on mozilla.org. This template, and the - comment-guided.txt.tmpl template that formats the data submitted via - the form in this template, are included as a demo of what it's - possible to do with custom templates in general, and custom [% terms.bug %] - entry templates in particular. As much of the text will not apply, - you should alter it - if you want to use this form on your [% terms.Bugzilla %] installation. - -

    - -[% tablecolour = "#FFFFCC" %] +[% tablecolour = "#efefef" %] [%# This script displays the descriptions for selected components. %] - -

    Step 1 of 3 - has your [% terms.bug %] already been reported?

    +var initialowners = new Array([% product.components.size %]); +var last_initialowner; +var initialccs = new Array([% product.components.size %]); +var components = new Array([% product.components.size %]); +var flags = new Array([% product.components.size %]); +[% IF Param("useqacontact") %] + var initialqacontacts = new Array([% product.components.size %]); + var last_initialqacontact; +[% END %] +[% count = 0 %] +[%- FOREACH c = product.components %] + components[[% count %]] = "[% c.name FILTER js %]"; + initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]"; + [% flag_list = [] %] + [% FOREACH f = c.flag_types.bug %] + [% NEXT UNLESS f.is_active %] + [% flag_list.push(f.id) %] + [% END %] + [% FOREACH f = c.flag_types.attachment %] + [% NEXT UNLESS f.is_active %] + [% flag_list.push(f.id) %] + [% END %] + flags[[% count %]] = [[% flag_list.join(",") FILTER js %]]; + [% IF Param("useqacontact") %] + initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]"; + [% END %] -

    - Please don't skip this step - half of all - [% terms.bugs %] filed are - reported already. - Check the two lists of frequently-reported [% terms.bugs %]: -

    + [% SET initial_cc_list = [] %] + [% FOREACH cc_user = c.initial_cc %] + [% initial_cc_list.push(cc_user.login) %] + [% END %] + initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]"; + + [% count = count + 1 %] +[%- END %] -[%# Include other products if sensible %] -[% IF product.name == "Firefox" %] - [% productstring = "product=Mozilla%20Application%20Suite&product=Firefox" %] -[% ELSIF product.name == "Thunderbird" %] - [% productstring = "product=Mozilla%20Application%20Suite&product=Thunderbird" %] -[% ELSE %] - [% productstring = BLOCK %]product=[% product.name FILTER url_quote %][% END %] +function set_assign_to() { + // Based on the selected component, fill the "Assign To:" field + // with the default component owner, and the "QA Contact:" field + // with the default QA Contact. It also selectively enables flags. + var form = document.Create; + var assigned_to = form.assigned_to.value; + +[% IF Param("useqacontact") %] + var qa_contact = form.qa_contact.value; [% END %] -

    - All-time Top 100 (loaded initially) | - Hot in the last two weeks -

    + var index = -1; + if (form.component.type == 'select-one') { + index = form.component.selectedIndex; + } else if (form.component.type == 'hidden') { + // Assume there is only one component in the list + index = 0; + } + if (index != -1) { + var owner = initialowners[index]; + var component = components[index]; + if (assigned_to == last_initialowner + || assigned_to == owner + || assigned_to == '') { + form.assigned_to.value = owner; + last_initialowner = owner; + } - + document.getElementById('initial_cc').innerHTML = initialccs[index]; + + [% IF Param("useqacontact") %] + var contact = initialqacontacts[index]; + if (qa_contact == last_initialqacontact + || qa_contact == contact + || qa_contact == '') { + form.qa_contact.value = contact; + last_initialqacontact = contact; + } + [% END %] + + // First, we disable all flags. Then we re-enable those + // which are available for the selected component. + var inputElements = document.getElementsByTagName("select"); + var inputElement, flagField; + for ( var i=0 ; i 1) { + flagField.disabled = false; + // Re-enabling the requestee field depends on the status + // of the flag. + toggleRequesteeField(flagField, 1); + } + } + } + PutDescription(); +} -

    - If your [% terms.bug %] isn't there, search [% terms.Bugzilla %] by entering - a few key words having to do with your [% terms.bug %] in this box. - For example: pop3 mail or copy paste. - The results will appear above. -

    - -[%# All bugs opened inside the past six months %] -
    - - - - - [% IF product.name == "Firefox" OR - product.name == "Thunderbird" OR - product.name == "Mozilla Application Suite" OR - product.name == "Camino" %] - - - - - - [% END %] - - - - - -
    +function handleWantsAttachment(wants_attachment) { + if (wants_attachment) { + document.getElementById('attachment_false').style.display = 'none'; + document.getElementById('attachment_true').style.display = 'block'; + } + else { + document.getElementById('attachment_false').style.display = 'block'; + document.getElementById('attachment_true').style.display = 'none'; + clearAttachmentFields(); + } +} -

    - Look through the search results. If you get the - [% terms.zeroSearchResults %] message, [% terms.Bugzilla %] - found no [% terms.bugs %] that - match. Check for typing mistakes, or try fewer or different keywords. - If you find [% terms.abug %] that looks the same as yours, please add - any useful extra information you have to it, rather than opening a new one. -

    +// this is courtesy of John Keller + +var LOOKUP_ADDR = "/lookup.php?pkg="; +var ASSIGNEE_OBJ_NAME = "assigned_to"; +var NOT_FOUND = "NOT_FOUND"; + +var http_connection = null; + +// init XMLHttpRequest object, based on browser type +function initHttpConnection() { + http_connection = null; + + try { + // Firefox, Opera 8.0+, Safari + http_connection = new XMLHttpRequest(); + } catch (e) { + // Internet Explorer + try { + http_connection = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + http_connection = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) { + // browser does not support AJAX + } + } + } + + if (http_connection != null) { + http_connection.onreadystatechange = onLoadMaintainer; + } +} +// handler for data received +// text field to set should be similar to +// +function onLoadMaintainer() { + var field_obj; + + if ((http_connection.readyState == 4) && (http_connection.status == 200)) { + if ((http_connection.responseText != null) && (http_connection.responseText != NOT_FOUND)) { + if ((field_obj = document.getElementById(ASSIGNEE_OBJ_NAME)) != null) { + field_obj.value = http_connection.responseText; + } + } + } else { + // by default, we'll leave form value alone and don't do anything else + // this is a good place to set a default or show an error, though + } +} - -

    Step 2 of 3 - give information

    +// handler for when user enters a package +// text field to set should be similar to +// +function onChangePackage(input_obj) { + initHttpConnection(); + + if ((http_connection != null) && (input_obj.value != "")) { + http_connection.open("GET", LOOKUP_ADDR + encodeURIComponent(input_obj.value)); + http_connection.send(null); + } +}; + + +--> + + +

       Submit a bug using the expert bug form.

    -

    - If you've tried a few searches and your [% terms.bug %] really isn't in - there, tell us all about it. -

    - + - - + - - [%# We override rep_platform and op_sys for simplicity. The values chosen - are based on which are most common in the b.m.o database %] - [% rep_platform = [ "PC", "Macintosh", "All", "Other" ] %] - - - + - [% op_sys = [ "Windows 2000", "Windows XP", "Windows Vista", "Windows 7", - "Mac OS X", "Linux", "All", "Other" ] %] + [%# We override rep_platform and op_sys for simplicity. The values chosen + are based on which are most common in the b.m.o database %] + [% rep_platform = [ "All", "i586", "x86_64" ] %] - - + - [% IF product.name.match("Firefox|Camino|Mozilla Application Suite") %] - [% matches = cgi.user_agent('Gecko/(\d+)') %] - [% buildid = cgi.user_agent() IF matches %] - [% END %] - - [%# Accept URL parameter build ID for non-browser products %] - [% IF cgi.param("buildid") %] - [% buildid = cgi.param("buildid") %] - [% END %] - - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
    - Product +
    + Product: - [% product.name FILTER html %] + [% product.name FILTER html %]
    - Component + + Component:
    +

    Core packages are those packages found in the main and contrib repositories, and Other + packages are those found in non-free and commercial repositories; if you're unsure, choose Core.

    The area where the problem occurs. @@ -213,82 +312,74 @@ function PutDescription() {

    - Hardware Platform +
    + Version: - [% PROCESS select sel = 'rep_platform' %] +
    - Operating System +
    + Hardware Platform: - [% PROCESS select sel = 'op_sys' %] + [% PROCESS select sel = 'rep_platform' %]
    - Build Identifier +
    + Source RPM: - -

    - This should identify the exact version of the product you were using. - If the above field is blank or you know it is incorrect, copy the - version text from the product's Help | - About menu (for browsers this will begin with "Mozilla/5.0..."). - If the product won't start, instead paste the complete URL you downloaded - it from. + +

    + This is where you can identify exactly which RPM package is involved in this bug report. For instance, + if you know the problem you are having is with the program mysqld, then execute + rpm -qif /usr/sbin/mysqld. This will tell you the name and version of the RPM + package (i.e. MySQL-5.0.27-1mga1) as well as other information. In particular, you are looking for + the "Source RPM" field (i.e. MySQL-5.0.27-1mga1.src.rpm) -- this is the information you should + provide here. Alternatively, you may use rpm -qf /usr/sbin/mysqld --qf '%{SOURCERPM}\n' to + obtain the information. If you do not know the location of the program in question, use rpm -qf `which mysqld` + to obtain it. Please enter that information above.

    - URL + + URL:

    - URL that demonstrates the problem you are seeing (optional).
    - IMPORTANT: if the problem is with a broken web page, you need - to report it - a different way. + URL that demonstrates the problem you are submitting (optional).

    - Summary +
    + Summary:

    - A sentence which summarises the problem. + A sentence that summarizes the problem. Please be descriptive and use lots of keywords.

    @@ -298,149 +389,64 @@ function PutDescription() {
    Good example: - crash if I close the mail window while checking for new POP mail + crash in Evolution while checking for new POP mail

    - Details + + Details: [% INCLUDE global/textarea.html.tmpl name = 'comment' - minrows = 6 + minrows = 10 + maxrows = 25 cols = constants.COMMENT_COLS + defaultcontent = "Description of problem:\n\n\nVersion-Release number of selected component (if applicable):\n\n\nHow reproducible:\n\n\nSteps to Reproduce:\n1.\n2.\n3.\n" %] + [% IF Param("insidergroup") && user.in_group(Param("insidergroup")) %] +
       + + + [% END %] +

    Expand on the Summary. Please be as specific as possible about what is wrong.

    - Bad example: Mozilla crashed. - You suck! + Bad example: I can't seem to login to the system. Please help!
    - Good example: After a crash which - happened when I was sorting in the Bookmark Manager,
    all of my - top-level bookmark folders beginning with the letters Q to Z are - no longer present. + Good example:

    + Description of problem:

    + I'm unable to login to the system via ssh. The /var/log/messages + log indicates there is a problem with the pam module pam_ldap, but the /etc/pam.d/system-auth file doesn't + contain that module and I'm not using LDAP. I looked at /etc/pam.d/sshd and it does contain that module but I'm + not sure how it got there, unless it was due to the super-spiffy super-ldap-mojo package I installed yesterday.

    + Version-Release number of selected component (if applicable):

    + openldap-2.3.34-5mga1, pam-0.99.7.1-2mga1

    + How reproducible:

    + Every time I attempt to login.

    + Steps to Reproduce:
    + 1. ssh user@host
    + 2. see the rejection

    - Reproducibility - - -
    - Steps to Reproduce - - [% INCLUDE global/textarea.html.tmpl - name = 'reproduce_steps' - minrows = 4 - cols = constants.COMMENT_COLS - defaultcontent = "1.\n2.\n3." - %] -

    - Describe how to reproduce the problem, step by - step. Include any special setup steps. -

    -
    - Actual Results - - [% INCLUDE global/textarea.html.tmpl - name = 'actual_results' - minrows = 4 - cols = constants.COMMENT_COLS - %] -

    - What happened after you performed the steps above? -

    -
    - Expected Results - - [% INCLUDE global/textarea.html.tmpl - name = 'expected_results' - minrows = 4 - cols = constants.COMMENT_COLS - %] -

    - What should the software have done instead? -

    -
    - Additional Information - - [% INCLUDE global/textarea.html.tmpl - name = 'additional_info' - minrows = 8 - cols = constants.COMMENT_COLS - %] -

    - Add any additional information you feel may be - relevant to this [% terms.bug %], such as the theme you were - using (does the [% terms.bug %] still occur - with the default theme?), a - Talkback crash ID, or special - information about your computer's configuration. Any information - longer than a few lines, such as a stack trace or HTML - testcase, should be added - using the "Add an Attachment" link on the [% terms.bug %], after - it is filed. If you believe that it's relevant, please also include - your build configuration, obtained by typing about:buildconfig - into your URL bar. -
    -
    - If you are reporting a crash, note the module in - which the software crashed (e.g., Application Violation in - gkhtml.dll). -

    -
    - Severity + + Severity:

    - Say how serious the problem is, or if your [% terms.bug %] is a + Indicate how serious the problem is, or if your [% terms.bug %] is a request for a new feature.

    + Assign To: + + [% safe_assigned_to = FILTER js; bug.assigned_to.login; END %] + [% INCLUDE global/userselect.html.tmpl + id => "assigned_to" + name => "assigned_to" + value => bug.assigned_to.login + size => 32 + %] +

    Leave the above blank to assign to the default component owner.

    +
    - - -

    Step 3 of 3 - submit the [% terms.bug %] report

    -

    @@ -487,17 +504,9 @@ function PutDescription() {

    That's it! Thanks very much. You'll be notified by email about any - progress that is made on fixing your [% terms.bug %]. - -

    - Please be warned - that we get a lot of [% terms.bug %] reports filed - it may take quite a - while to get around to yours. You can help the process by making sure your - [%+ terms.bug %] is - complete and easy to understand, and by quickly replying to any questions - which may arrive by email. + progress that is made on fixing your [% terms.bug %]. + Thank you for choosing Mageia!

    -
    [% PROCESS global/footer.html.tmpl %] -- cgit v1.2.1 From d0bee010e64eb35c701b25ca3c94b7c1a342768c Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Mon, 10 Jan 2011 08:18:59 +0000 Subject: Use guided template to report bugs --- template/en/default/index.html.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/en/default/index.html.tmpl b/template/en/default/index.html.tmpl index a971b59..91903e7 100644 --- a/template/en/default/index.html.tmpl +++ b/template/en/default/index.html.tmpl @@ -126,7 +126,7 @@ YAHOO.util.Event.onDOMReady(onLoadActions);

    Welcome to [% terms.Bugzilla %]

    [% Hook.process('intro') %]
    File [% terms.aBug %] + href="enter_bug.cgi?format=guided&classification=__all">File [% terms.aBug %] Search -- cgit v1.2.1 From 460b67466f04eb141c0b07e8efe37364ae6a5ad2 Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Mon, 10 Jan 2011 08:19:30 +0000 Subject: Remove temp file --- template/en/default/index.html.tmpl~ | 182 ----------------------------------- 1 file changed, 182 deletions(-) delete mode 100644 template/en/default/index.html.tmpl~ diff --git a/template/en/default/index.html.tmpl~ b/template/en/default/index.html.tmpl~ deleted file mode 100644 index 41a46f4..0000000 --- a/template/en/default/index.html.tmpl~ +++ /dev/null @@ -1,182 +0,0 @@ -[%# -*- mode: html -*- %] -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): Terry Weissman - # Jacob Steenhagen - # Vitaly Harisov - # Guy Pyrzak - #%] - -[%# INTERFACE: - # release: a hash containing data about new releases, if any. - #%] - -[% PROCESS global/variables.none.tmpl %] - - -[% PROCESS global/header.html.tmpl - title = "$terms.Bugzilla Main Page" - header = "Main Page" - header_addl_info = "version $constants.BUGZILLA_VERSION" - style_urls = [ 'skins/standard/index.css' ] -%] - - - - -[% IF release %] -
    - [% IF release.data %] - [% IF release.deprecated %] -

    [% terms.Bugzilla %] [%+ release.deprecated FILTER html %] is no longer - supported. You are highly encouraged to upgrade in order to keep your - system secure.

    - [% END %] - -

    A new [% terms.Bugzilla %] version ([% release.data.latest_ver FILTER html %]) - is available at - [% release.data.url FILTER html %].
    - Release date: [% release.data.date FILTER html %]

    - -

    This message is only shown to logged in users with admin privs. - You can configure this notification from the - Parameters page.

    - [% ELSIF release.error == "cannot_download" %] -

    The local XML file '[% release.xml_file FILTER html %]' cannot be created. - Please make sure the web server can write in this directory and that you can access - the web. If you are behind a proxy, set the - proxy_url parameter correctly.

    - [% ELSIF release.error == "no_update" %] -

    The local XML file '[% release.xml_file FILTER html %]' cannot be updated. - Please make sure the web server can edit this file.

    - [% ELSIF release.error == "no_access" %] -

    The local XML file '[% release.xml_file FILTER html %]' cannot be read. - Please make sure this file has the correct rights set on it.

    - [% ELSIF release.error == "corrupted" %] -

    The local XML file '[% release.xml_file FILTER html %]' has an invalid XML format. - Please delete it and try accessing this page again.

    - [% ELSIF release.error == "unknown_parameter" %] -

    '[% Param("upgrade_notification") FILTER html %]' is not a valid notification - parameter. Please check this parameter in the - Parameters page.

    - [% END %] -
    -[% END %] - -
    - - - - -
    -

    Welcome to [% terms.Bugzilla %]

    -
    [% Hook.process('intro') %]
    - File [% terms.aBug %] - - Search - - User Preferences - [% ELSIF Param('createemailregexp') - && user.authorizer.user_can_create_account - %] - href="createaccount.cgi">Open a New Account - [% ELSE %] - href="?GoAheadAndLogIn=1">Log In - [% END %] - -
    - -
    -
    [% Hook.process('outro') %]
    -
    -
    - -[% PROCESS global/footer.html.tmpl %] -- cgit v1.2.1 From 9672a55fb940a3204320b34fecad10b30fce1dea Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Sat, 12 Feb 2011 11:02:09 +0000 Subject: Use guided bugreport page for new bugs --- template/en/default/global/common-links.html.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl index 6ad638f..c196c7d 100644 --- a/template/en/default/global/common-links.html.tmpl +++ b/template/en/default/global/common-links.html.tmpl @@ -24,7 +24,7 @@ [% END %] @@ -157,8 +102,10 @@ [% BLOCK a_comment %] [% RETURN IF comment.is_private AND ! user.is_insider %] + [% comment_text = comment.body_full({ wrap => 1 }) %] + [% RETURN IF comment_text == '' AND (comment.work_time - 0) != 0 AND !user.is_timetracker %] -
    [% IF count == description %] @@ -194,7 +141,7 @@ [% END %] - [%- comment_label FILTER html %] @@ -229,7 +176,7 @@ #%]
    -  [%- comment.body_full({ wrap => 1 }) FILTER quoteUrls(bug, comment) -%]
    +  [%- comment_text FILTER quoteUrls(bug, comment) -%]
     
    [% END %] diff --git a/template/en/default/bug/create/comment-guided.txt.tmpl b/template/en/default/bug/create/comment-guided.txt.tmpl index 0f68d28..66220ec 100644 --- a/template/en/default/bug/create/comment-guided.txt.tmpl +++ b/template/en/default/bug/create/comment-guided.txt.tmpl @@ -30,17 +30,13 @@ [%+ cgi.param("comment") IF cgi.param("comment") %] -[% IF cgi.param("reproducible") %] -[%+ IF cgi.param("reproducible") != "Choose one..." -%] +[%+ IF cgi.param("reproducible") != "Choose one..." -%] Reproducible: [%+ cgi.param("reproducible") %] -[% END %] [% END %] -[% IF cgi.param("reproduce_steps") %] -[% IF !(cgi.param("reproduce_steps").match('^1\.\s*2\.\s*3\.\s*$') || cgi.param("reproduce_steps").match('^\s*$')) %] +[% IF !(cgi.param("reproduce_steps").match('^1\.\s*2\.\s*3\.\s*$') || cgi.param("reproduce_steps").match('^\s*$')) %] Steps to Reproduce: [%+ cgi.param("reproduce_steps") %] -[% END %] [% END %] [% IF cgi.param("actual_results") -%] diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl index 0628a0e..bee5f01 100644 --- a/template/en/default/bug/create/create-guided.html.tmpl +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -34,6 +34,8 @@ style = "#somebugs { width: 100%; height: 500px }" %] +[% style = "" %] + [% tablecolour = "#efefef" %] [%# This script displays the descriptions for selected components. %] @@ -57,51 +59,20 @@ function PutDescription() { var initialowners = new Array([% product.components.size %]); var last_initialowner; -var initialccs = new Array([% product.components.size %]); var components = new Array([% product.components.size %]); -var flags = new Array([% product.components.size %]); -[% IF Param("useqacontact") %] - var initialqacontacts = new Array([% product.components.size %]); - var last_initialqacontact; -[% END %] [% count = 0 %] [%- FOREACH c = product.components %] components[[% count %]] = "[% c.name FILTER js %]"; initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]"; - [% flag_list = [] %] - [% FOREACH f = c.flag_types.bug %] - [% NEXT UNLESS f.is_active %] - [% flag_list.push(f.id) %] - [% END %] - [% FOREACH f = c.flag_types.attachment %] - [% NEXT UNLESS f.is_active %] - [% flag_list.push(f.id) %] - [% END %] - flags[[% count %]] = [[% flag_list.join(",") FILTER js %]]; - [% IF Param("useqacontact") %] - initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]"; - [% END %] - - [% SET initial_cc_list = [] %] - [% FOREACH cc_user = c.initial_cc %] - [% initial_cc_list.push(cc_user.login) %] - [% END %] - initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]"; - [% count = count + 1 %] [%- END %] function set_assign_to() { // Based on the selected component, fill the "Assign To:" field - // with the default component owner, and the "QA Contact:" field - // with the default QA Contact. It also selectively enables flags. + // with the default component owner. var form = document.Create; var assigned_to = form.assigned_to.value; -[% IF Param("useqacontact") %] - var qa_contact = form.qa_contact.value; -[% END %] - var index = -1; if (form.component.type == 'select-one') { index = form.component.selectedIndex; @@ -118,137 +89,83 @@ function set_assign_to() { form.assigned_to.value = owner; last_initialowner = owner; } - - document.getElementById('initial_cc').innerHTML = initialccs[index]; - - [% IF Param("useqacontact") %] - var contact = initialqacontacts[index]; - if (qa_contact == last_initialqacontact - || qa_contact == contact - || qa_contact == '') { - form.qa_contact.value = contact; - last_initialqacontact = contact; - } - [% END %] - - // First, we disable all flags. Then we re-enable those - // which are available for the selected component. - var inputElements = document.getElementsByTagName("select"); - var inputElement, flagField; - for ( var i=0 ; i 1) { - flagField.disabled = false; - // Re-enabling the requestee field depends on the status - // of the flag. - toggleRequesteeField(flagField, 1); - } - } } PutDescription(); } -function handleWantsAttachment(wants_attachment) { - if (wants_attachment) { - document.getElementById('attachment_false').style.display = 'none'; - document.getElementById('attachment_true').style.display = 'block'; - } - else { - document.getElementById('attachment_false').style.display = 'block'; - document.getElementById('attachment_true').style.display = 'none'; - clearAttachmentFields(); - } -} - // this is courtesy of John Keller -var LOOKUP_ADDR = "/lookup.php?pkg="; -var ASSIGNEE_OBJ_NAME = "assigned_to"; -var NOT_FOUND = "NOT_FOUND"; - var http_connection = null; // init XMLHttpRequest object, based on browser type function initHttpConnection() { - http_connection = null; - - try { - // Firefox, Opera 8.0+, Safari - http_connection = new XMLHttpRequest(); - } catch (e) { - // Internet Explorer - try { - http_connection = new ActiveXObject("Msxml2.XMLHTTP"); - } catch (e) { - try { - http_connection = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (e) { - // browser does not support AJAX - } - } - } - - if (http_connection != null) { - http_connection.onreadystatechange = onLoadMaintainer; - } + http_connection = null; + + try { + // Firefox, Opera 8.0+, Safari + http_connection = new XMLHttpRequest(); + } catch (e) { + // Internet Explorer + try { + http_connection = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + http_connection = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) { + // browser does not support AJAX + } + } + } + + if (http_connection != null) { + http_connection.onreadystatechange = onLoadMaintainer; + } } // handler for data received // text field to set should be similar to // function onLoadMaintainer() { - var field_obj; - - if ((http_connection.readyState == 4) && (http_connection.status == 200)) { - if ((http_connection.responseText != null) && (http_connection.responseText != NOT_FOUND)) { - if ((field_obj = document.getElementById(ASSIGNEE_OBJ_NAME)) != null) { - field_obj.value = http_connection.responseText; - } - } - } else { - // by default, we'll leave form value alone and don't do anything else - // this is a good place to set a default or show an error, though - } + var field_obj; + + if ((http_connection.readyState == 4) && (http_connection.status == 200)) { + if ((http_connection.responseText != null) && (http_connection.responseText != 'NOT_FOUND')) { + if ((field_obj = document.getElementById('assigned_to')) != null) { + field_obj.value = http_connection.responseText; + } + } + } else { + // by default, we'll leave form value alone and don't do anything else + // this is a good place to set a default or show an error, though + } } // handler for when user enters a package // text field to set should be similar to // function onChangePackage(input_obj) { - initHttpConnection(); + initHttpConnection(); - if ((http_connection != null) && (input_obj.value != "")) { - http_connection.open("GET", LOOKUP_ADDR + encodeURIComponent(input_obj.value)); - http_connection.send(null); - } + if ((http_connection != null) && (input_obj.value != "")) { + http_connection.open("GET", '/lookup.php?pkg=' + encodeURIComponent(input_obj.value)); + http_connection.send(null); + } }; --> -

       Submit a bug using the expert bug form.

    +

       Submit [% terms.abug %] using the +expert [% terms.bug %] form.

    -
    + - - + @@ -298,6 +215,7 @@ function onChangePackage(input_obj) {
    +

    The area where the problem occurs. To pick the right component, you could use the same one as @@ -344,7 +262,7 @@ function onChangePackage(input_obj) {

    - This is where you can identify exactly which RPM package is involved in this bug report. For instance, + This is where you can identify exactly which RPM package is involved in this [% terms.bug %] report. For instance, if you know the problem you are having is with the program mysqld, then execute rpm -qif /usr/sbin/mysqld. This will tell you the name and version of the RPM package (i.e. MySQL-5.0.27-1mga1) as well as other information. In particular, you are looking for @@ -404,13 +322,11 @@ function onChangePackage(input_obj) { cols = constants.COMMENT_COLS defaultcontent = "Description of problem:\n\n\nVersion-Release number of selected component (if applicable):\n\n\nHow reproducible:\n\n\nSteps to Reproduce:\n1.\n2.\n3.\n" %] - [% IF Param("insidergroup") && user.in_group(Param("insidergroup")) %] -
       - - + [% IF user.is_insider %] +
       + + [% END %]

    @@ -475,16 +391,18 @@ function onChangePackage(input_obj) { Assign To: - [% safe_assigned_to = FILTER js; bug.assigned_to.login; END %] [% INCLUDE global/userselect.html.tmpl - id => "assigned_to" - name => "assigned_to" - value => bug.assigned_to.login - size => 32 + id => "assigned_to" + name => "assigned_to" + value => "" + emptyok => 1 + size => 32 %]

    Leave the above blank to assign to the default component owner.

    + + [% Hook.process('form') %]

    diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl index 4b17457..c18e1c5 100644 --- a/template/en/default/bug/create/create.html.tmpl +++ b/template/en/default/bug/create/create.html.tmpl @@ -30,11 +30,13 @@ [% PROCESS global/header.html.tmpl title = title - style_urls = [ 'skins/standard/create_attachment.css', - 'skins/standard/yui/calendar.css' ] - javascript_urls = [ "js/attachment.js", "js/util.js", "js/yui/calendar.js", - "js/field.js", "js/TUI.js" ] - onload = 'set_assign_to();' + yui = [ 'autocomplete', 'calendar', 'datatable', 'button' ] + style_urls = [ 'skins/standard/attachment.css', + 'skins/standard/enter_bug.css' ] + javascript_urls = [ "js/attachment.js", "js/util.js", + "js/field.js", "js/TUI.js", "js/bug.js" ] + onload = "set_assign_to(); hideElementById('attachment_true'); + showElementById('attachment_false'); showElementById('btn_no_attachment');" %] -[% USE Bugzilla %] -[% SET select_fields = {} %] -[% FOREACH field = Bugzilla.get_fields( - { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) -%] - [% select_fields.${field.name} = field %] -[% END %] - + class="enter_bug_form" enctype="multipart/form-data" + onsubmit="return validateEnterBug(this)"> - +
    - - - - - + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.product, editable = 0, + value = product.name %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.reporter, editable = 0, + value = user.login %] [%# We can't use the select block in these two cases for various reasons. %] - - - [% INCLUDE bug/field.html.tmpl - bug = bug, field = select_fields.product, + bug = bug, field = bug_fields.product, override_legal_values = bug.choices.product desc_url = 'describecomponents.cgi', value = bug.product editable = bug.check_can_change_field('product', 0, 1) %] + + [%# Classification is here so that it can be used in value controllers + # and visibility controllers. It comes after product because + # it uses some javascript that depends on the existence of the + # product field. + #%] + + [% INCLUDE bug/field.html.tmpl + bug = bug field = bug_fields.classification + override_legal_values = bug.choices.classification + value = bug.classification + editable = bug.check_can_change_field('product', 0, 1) %] + [%###############%] [%# Component #%] [%###############%] - - [% PROCESS select selname => "component" %] + [% INCLUDE bug/field.html.tmpl + bug = bug, field = bug_fields.component, value = bug.component + override_legal_values = bug.choices.component + desc_url = "describecomponents.cgi?product=$bug.product" + editable = bug.check_can_change_field('component', 0, 1) + %] [% END %] @@ -899,13 +914,19 @@ [% BLOCK section_customfields %] [%# *** Custom Fields *** %] - + [% USE Bugzilla %] [% FOREACH field = Bugzilla.active_custom_fields %] - [% PROCESS bug/field.html.tmpl value=bug.${field.name} + [% PROCESS bug/field.html.tmpl value = bug.${field.name} editable = bug.check_can_change_field(field.name, 0, 1) value_span = 2 %] + [% IF extra_field_item %] + + + + + [% END %] [% END %] [% END %] @@ -1022,9 +1043,9 @@ [% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %] @@ -1042,16 +1063,15 @@ [%############################################################################%] [% BLOCK comment_box %] -
    - +
    [% IF user.id %] : [% IF user.is_insider %] - + onClick="updateCommentTagControl(this, 'comment')">
    @@ -210,22 +199,26 @@ TUI_hide_default('expert_fields');
    Product:[% product.name FILTER html %]Reporter:[% user.login FILTER html %]
    - - Component: - - + + + + [%# Enclose the fieldset in a nested table so that its width changes based # on the length on the component description. %] @@ -264,9 +270,11 @@ TUI_hide_default('expert_fields'); - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.version editable = 1 rowspan = 3 + %] [% INCLUDE bug/field.html.tmpl - bug = default, field = select_fields.bug_severity, editable = 1, + bug = default, field = bug_fields.bug_severity, editable = 1, value = default.bug_severity %] [% INCLUDE bug/field.html.tmpl - bug = default, field = select_fields.rep_platform, editable = 1, + bug = default, field = bug_fields.rep_platform, editable = 1, value = default.rep_platform %] [% INCLUDE bug/field.html.tmpl - bug = default, field = select_fields.op_sys, editable = 1, + bug = default, field = bug_fields.op_sys, editable = 1, value = default.op_sys %] + [% IF !Param('defaultplatform') || !Param('defaultopsys') %] + + + + + [% END %] [% IF Param('usetargetmilestone') && Param('letsubmitterchoosemilestone') %] - [% sel = { description => 'Target Milestone', name => 'target_milestone' } %] - [% INCLUDE select %] + [% INCLUDE select field = bug_fields.target_milestone %] [% ELSE %] [% END %] [% IF Param('letsubmitterchoosepriority') %] [% INCLUDE bug/field.html.tmpl - bug = default, field = select_fields.priority, editable = 1, + bug = default, field = bug_fields.priority, editable = 1, value = default.priority %] [% ELSE %] @@ -312,40 +335,16 @@ TUI_hide_default('expert_fields'); -[% IF !Param('defaultplatform') || !Param('defaultopsys') %] - - - - - - -[% END %] - -[% IF bug_status.size <= 1 %] - - - -[% ELSE %] - [% sel = { description => 'Initial State', name => 'bug_status' } %] - [% INCLUDE select %] -[% END %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.bug_status, + editable = (bug_status.size > 1), value = default.bug_status + override_legal_values = bug_status %] [%# Calculate the number of rows we can use for flags %] @@ -376,9 +375,12 @@ TUI_hide_default('expert_fields'); - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.assigned_to editable = 1 + %] - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.qa_contact editable = 1 + %] - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.cc editable = 1 + %] - + - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.estimated_time editable = 1 + %] - - + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.deadline, value = deadline, + editable = 1, value_span = 2 %] @@ -454,7 +462,9 @@ TUI_hide_default('expert_fields'); [% IF Param("usebugaliases") %] - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.alias editable = 1 + %] @@ -462,21 +472,23 @@ TUI_hide_default('expert_fields'); [% END %] - - - + [% USE Bugzilla %] [% FOREACH field = Bugzilla.active_custom_fields %] [% NEXT UNLESS field.enter_bug %] [% SET value = ${field.name}.defined ? ${field.name} : "" %] - + [% INCLUDE bug/field.html.tmpl bug = default, field = field, value = value, editable = 1, value_span = 3 %] @@ -487,17 +499,55 @@ TUI_hide_default('expert_fields'); - - + [% IF feature_enabled('jsonrpc') AND !cloned_bug_id %] + + + + + [% END %] + [% END %] + [% IF Param("maxattachmentsize") %] + [% END %] [% IF user.in_group('editbugs', product.id) %] [% IF use_keywords %] - - + [% INCLUDE bug/field.html.tmpl + bug = default, field = bug_fields.keywords, editable = 1, + value = keywords, desc_url = "describekeywords.cgi", + value_span = 2 + %] [% END %] - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.dependson editable = 1 + %] - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.blocked editable = 1 + %] @@ -599,13 +644,14 @@ TUI_hide_default('expert_fields'); - [% IF group.size %] + [% IF product.groups_available.size %] @@ -634,14 +682,11 @@ TUI_hide_default('expert_fields'); @@ -659,30 +704,20 @@ TUI_hide_default('expert_fields'); [%############################################################################%] [% BLOCK select %] - [% IF sel.description %] - - [% END %] + [% INCLUDE "bug/field-label.html.tmpl" + field = field editable = 1 + %] [% END %] diff --git a/template/en/default/bug/dependency-tree.html.tmpl b/template/en/default/bug/dependency-tree.html.tmpl index c42c3c4..627c89d 100644 --- a/template/en/default/bug/dependency-tree.html.tmpl +++ b/template/en/default/bug/dependency-tree.html.tmpl @@ -129,7 +129,7 @@ [% extra_class = " b_open" %] [% extra_args = 'onclick="return doToggle(this, event)"' %] [% END %] -    diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index a4d6813..dbc23c8 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -30,14 +30,6 @@ [% PROCESS bug/time.html.tmpl %] -[% USE Bugzilla %] -[% SET select_fields = {} %] -[% FOREACH field = Bugzilla.get_fields( - { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) -%] - [% select_fields.${field.name} = field %] -[% END %] - - + @@ -211,23 +213,11 @@
    Version: - [%- FOREACH v = version %]
      +
    We've made a guess at your + [% IF Param('defaultplatform') %] + operating system. Please check it + [% ELSIF Param('defaultopsys') %] + platform. Please check it + [% ELSE %] + operating system and platform. Please check them + [% END %] + and make any corrections if necessary.
    +
      
      - We've made a guess at your - [% IF Param('defaultplatform') %] - operating system. Please check it - [% ELSIF Param('defaultopsys') %] - platform. Please check it - [% ELSE %] - operating system and platform. Please check them - [% END %] - and make any corrections if necessary. -
     
    Initial State:[% display_value("bug_status", default.bug_status) FILTER html %] 
    Assign To: [% INCLUDE global/userselect.html.tmpl + id => "assigned_to" name => "assigned_to" value => assigned_to disabled => assigned_to_disabled @@ -392,9 +394,12 @@ TUI_hide_default('expert_fields'); [% IF Param("useqacontact") %]
    QA Contact: [% INCLUDE global/userselect.html.tmpl + id => "qa_contact" name => "qa_contact" value => qa_contact disabled => qa_contact_disabled @@ -408,9 +413,12 @@ TUI_hide_default('expert_fields'); [% END %]
    CC: [% INCLUDE global/userselect.html.tmpl + id => "cc" name => "cc" value => cc disabled => cc_disabled @@ -421,7 +429,7 @@ TUI_hide_default('expert_fields');
    Default CC:Default [% field_descs.cc FILTER html %]:
    @@ -434,17 +442,17 @@ TUI_hide_default('expert_fields'); [% IF user.is_timetracker %]
    Estimated Hours:
    Deadline: - - (YYYY-MM-DD) -
    Alias:
    URL: - + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.bug_file_loc editable = 1 + %] + +
    Summary: + [% INCLUDE "bug/field-label.html.tmpl" + field = bug_fields.short_desc editable = 1 + %] + + class="required text_input" id="short_desc">
    Possible
    Duplicates:
    +
    + +
    Description: + [% defaultcontent = BLOCK %] [% IF cloned_bug_id %] +++ This [% terms.bug %] was initially created as a clone of [% terms.Bug %] #[% cloned_bug_id %] +++ @@ -525,34 +575,28 @@ TUI_hide_default('expert_fields');      - -
    Attachment: - +
    + +
    + +
    +
    Add an attachment @@ -562,35 +606,36 @@ TUI_hide_default('expert_fields'); flag_table_id ="attachment_flags" %]
    - +
    Keywords: - (optional) -
    Depends on:
    Blocks:
     
    - Only users in all of the selected groups can view this [% terms.bug %]: + Only users in all of the selected groups can view this + [%+ terms.bug %]:
    @@ -615,12 +661,14 @@ TUI_hide_default('expert_fields');
    - [% FOREACH g = group %] -      - -
    + + [% FOREACH group = product.groups_available %] + +
    [% END %]
      - +      + onclick="bz_no_validate_enter_bug=true" class="expert_fields">
    - [% sel.description %]: - - + [%- FOREACH x = ${field.name} %] [% END %] - - [% IF sel.name == "bug_status" %] - - [% END %]
    - [%# *** Additional Comments *** %] -
    - [% PROCESS bug/comments.html.tmpl - comments = bug.comments - mode = user.id ? "edit" : "show" - %] -
    - - + [% IF user.is_timetracker %] + [% PROCESS section_timetracking %] + [% END %] [%# *** Attachments *** %] @@ -238,12 +228,28 @@ show_attachment_flags = bug.show_attachment_flags %] + [% IF user.settings.comment_box_position.value == 'before_comments' %] + [% PROCESS comment_box %] + [% END %]
    - - [% PROCESS comment_box %] - -
    -
    -
    [% PROCESS section_restrict_visibility %]
    + [%# *** Additional Comments *** %] +
    + [% PROCESS bug/comments.html.tmpl + comments = bug.comments + mode = user.id ? "edit" : "show" + %] +
    + + [% IF user.settings.comment_box_position.value == 'after_comments' %] +
    + [% PROCESS comment_box %] + [% END %] + [%############################################################################%] @@ -323,26 +329,36 @@ [%#############%] [%# PRODUCT #%] [%#############%] -
    - -
    @@ -360,11 +376,11 @@ [% INCLUDE bug/field.html.tmpl - bug = bug, field = select_fields.rep_platform, + bug = bug, field = bug_fields.rep_platform, no_tds = 1, value = bug.rep_platform editable = bug.check_can_change_field('rep_platform', 0, 1) %] [%+ INCLUDE bug/field.html.tmpl - bug = bug, field = select_fields.op_sys, + bug = bug, field = bug_fields.op_sys, no_tds = 1, value = bug.op_sys editable = bug.check_can_change_field('op_sys', 0, 1) %] + [% IF user.id || bug.cc.size %] + + [% END %]
    [% extra_field_item.header FILTER none %][% extra_field_item.data FILTER none %]
    -
    - (YYYY-MM-DD) + [% INCLUDE bug/field.html.tmpl + field = bug_fields.deadline, value = bug.deadline, no_tds = 1 + editable = bug.check_can_change_field('deadline', 0, 1) %]
    +
    @@ -1086,13 +1106,19 @@ [%# For logged-out users %] [% ELSE %] -
    Status: - [% PROCESS bug/knob.html.tmpl %]
    - Note - You need to - log in - before you can comment on or make changes to this [% terms.bug %]. -
    + + + + +
    +
    + Note + You need to + log in + before you can comment on or make changes to this [% terms.bug %]. +
    +
    [% END %]

    [% END %] @@ -1157,9 +1183,6 @@
    - [% IF bug.user.canmove %] - - [% END %]
    [% END %] [% END %] diff --git a/template/en/default/bug/field-events.js.tmpl b/template/en/default/bug/field-events.js.tmpl index 06fba12..f9e0ea9 100644 --- a/template/en/default/bug/field-events.js.tmpl +++ b/template/en/default/bug/field-events.js.tmpl @@ -32,9 +32,13 @@ [% FOREACH val = legal_value.controlled_values.$controlled_field %] [% cont_ids.push(val.id) %] [% END %] + [% NEXT IF !cont_ids.size %] showValueWhen('[% controlled_field FILTER js %]', [[% cont_ids.join(',') FILTER js %]], '[% field.name FILTER js %]', [% legal_value.id FILTER js %]); [% END %] [% END %] +[% IF field.name == 'classification' %] + YAHOO.util.Event.on('product', 'change', setClassification); +[% END %] diff --git a/template/en/default/bug/field-help.none.tmpl b/template/en/default/bug/field-help.none.tmpl new file mode 100644 index 0000000..7ae9991 --- /dev/null +++ b/template/en/default/bug/field-help.none.tmpl @@ -0,0 +1,241 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham + # Max Kanat-Alexander + #%] + +[%# This file describes both bug fields and search fields. + # As calling this template once per label is very expensive, + # it is called only by Template.pm. %] + +[% RETURN UNLESS in_template_var %] + +[% vars.help_html = { + +# Note that all these keys here are in alphabetical order, though +# search-specific fields are at the bottom. + +############## +# Bug Fields # +############## + +alias => + "A short, unique name assigned to $terms.abug in order to assist with + looking it up and referring to it in other places in ${terms.Bugzilla}.", + +assigned_to => + "The person in charge of resolving the ${terms.bug}.", + +blocked => + "This $terms.bug must be resolved before the $terms.bugs listed in this + field can be resolved.", + +bug_file_loc => + "$terms.Bugs can have a URL associated with them - for example, a" + _ " pointer to a web site where the problem is seen.", + +bug_id => + "The numeric id of $terms.abug, unique within this entire installation" + _ " of ${terms.Bugzilla}.", + +bug_severity => + "How severe the $terms.bug is, or whether it's an enhancement.", + +bug_status => + "$terms.Abug may be in any of a number of states.", + +cc => + "Users who may not have a direct role to play on this $terms.bug, but who + are interested in its progress.", + +classification => + "$terms.Bugs are categorised into Classifications, Products and" + _ " Components. classifications is the top-level categorisation.", + +component => + "Components are second-level categories; each belongs to a" + _ " particular Product. Select a Product to narrow down this list.", + +creation_ts => + "When the $terms.bug was filed.", + +deadline => + "The date that this $terms.bug must be resolved by, entered in YYYY-MM-DD + format.", + +delta_ts => + "When this $terms.bug was last updated.", + +dependson => + "The $terms.bugs listed here must be resolved before this $terms.bug + can be resolved.", + +estimated_time => + "The amount of time that has been estimated it will take to resolve + this ${terms.bug}.", + +keywords => + "You can add keywords from a defined list to $terms.bugs, in order" + _ " to tag and group them.", + +longdesc => + "$terms.Bugs have comments added to them by $terms.Bugzilla users." + _ " You can search for some text in those comments.", + +op_sys => + "The operating system the $terms.bug was observed on.", + +percentage_complete => + "How close to 100% done this $terms.bug is, by comparing its + $vars.field_descs.work_time to its ${vars.field_descs.estimated_time}.", + +priority => + "Engineers prioritize their $terms.bugs using this field.", + +# Note that this has extra text added below if useclassification is on. +product => + "$terms.Bugs are categorised into Products and Components.", + +qa_contact => + "The person responsible for confirming this $terms.bug if it is" + _ " unconfirmed, and for verifying the fix once the $terms.bug" + _ " has been resolved.", + +remaining_time => + "The number of hours of work left on this $terms.bug, calculated by + subtracting the $vars.field_descs.work_time from the + ${vars.field_descs.estimated_time}.", + +rep_platform => + "The hardware platform the $terms.bug was observed on.", + +reporter => + "The person who filed this ${terms.bug}.", + +resolution => + "If $terms.abug is in a resolved state, then one of these reasons" + _ " will be given for its resolution.", + +see_also => + "This allows you to refer to $terms.bugs in other installations. + You can enter a URL to $terms.abug in the 'Add $terms.Bug URLs' + field to note that that $terms.bug is related to this one. You can + enter multiple URLs at once by separating them with a comma. + +

    You should normally use this field to refer to $terms.bugs in + other installations. For $terms.bugs in this + installation, it is better to use the $vars.field_descs.dependson and + $vars.field_descs.blocked fields.

    ", + +short_desc => + "The $terms.bug summary is a short sentence which succinctly" + _ " describes what the $terms.bug is about.", + +status_whiteboard => + "Each $terms.bug has a free-form single line text entry box for" + _ " adding tags and status information.", + +target_milestone => + "The $vars.field_descs.target_milestone field is used to define when the" + _ " engineer the $terms.bug is assigned to expects to fix it.", + +version => + "The version field defines the version of the software the" + _ " $terms.bug was found in.", + +votes => + "Some $terms.bugs can be voted for, and you can limit your search to" + _ " $terms.bugs with more than a certain number of votes.", + +work_time => + "The total amount of time spent on this $terms.bug so far.", + +########################## +# Search-specific fields # +########################## + +chfield => + "You can search for specific types of change - this field defines" + _" which field you are interested in changes for.", + +# Duplicated to chfieldto below, also. +chfieldfrom => + "Specify the start and end dates either in YYYY-MM-DD format + optionally followed by HH:mm, in 24 hour clock), or in relative + dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour, + two days, three weeks, four months, or five years ago. 0d is last + midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week, + month, or year.", + +chfieldvalue => + "The value the field defined above changed to during that time.", + +content => + "This is a field available in searches that does a Google-like + 'full-text' search on the $vars.field_descs.short_desc and + $vars.field_descs.longdesc fields.", + +# Duplicated to email2 below, also. +email1 => + "Every $terms.bug has people associated with it in different" + _ " roles. Here, you can search on what people are in what role.", + +} %] + +[% vars.help_html.email2 = vars.help_html.email1 %] +[% vars.help_html.chfieldto = vars.help_html.chfieldfrom %] +[% vars.help_html.deadlinefrom = vars.help_html.deadline %] +[% vars.help_html.deadlineto = vars.help_html.deadline %] + +[% help_all_note = BLOCK %] + Note: When searching, selecting the option "All" + only finds [% terms.bugs %] whose value for this field is literally + the word "All". +[% END %] +[% FOREACH all_field = ['op_sys', 'rep_platform'] %] + [% vars.help_html.$all_field = vars.help_html.$all_field _ ' ' _ help_all_note %] +[% END %] + +[% IF Param('useclassification') %] + [% vars.help_html.product = vars.help_html.product + _ " Select a Classification to narrow down this list." %] +[% END %] + +[% FOREACH help_field = bug_fields.keys %] + + [%# Add help for custom fields. %] + [% IF !vars.help_html.${help_field}.defined %] + [% SET field_type = bug_fields.${help_field}.type %] + [% field_type_desc = BLOCK -%] + [% field_types.$field_type FILTER html %] + [%- END %] + [% vars.help_html.${help_field} = + "A custom $field_type_desc field in this installation" + _ " of ${terms.Bugzilla}." %] + [% END %] + + [%# Add help for the search types, for query.cgi. %] + [% type_desc = BLOCK %] + The type of [% vars.field_descs.${help_field} FILTER html %] search you + would like. + [% END %] + [% SET type_name = help_field _ '_type' %] + [% vars.help_html.$type_name = type_desc %] +[% END %] + +[% Hook.process("end") %] diff --git a/template/en/default/bug/field-label.html.tmpl b/template/en/default/bug/field-label.html.tmpl new file mode 100644 index 0000000..2138f03 --- /dev/null +++ b/template/en/default/bug/field-label.html.tmpl @@ -0,0 +1,52 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Everything Solved, Inc. + # Portions created by the Initial Developer are Copyright (C) 2010 the + # Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander + #%] + +[%# INTERFACE: + # field: a Bugzilla::Field object + # desc_url: An alternate link to help for the field. + # hidden: True if the field label should start hidden. + # rowspan: a "rowspan" value for the label's . + # tag_name: the tag to use to surround the label + #%] + +[% DEFAULT tag_name = "th" %] +<[% tag_name FILTER html %] class="field_label [% ' bz_hidden_field' IF hidden %] + [%- ' required' IF field.is_mandatory && NOT bug.id %]" + id="field_label_[% field.name FILTER html %]" + [% IF rowspan %] rowspan="[% rowspan FILTER html %]"[% END %]> + + [% IF editable %] + ' IF editable %] + diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl index bb678d7..b014a6e 100644 --- a/template/en/default/bug/field.html.tmpl +++ b/template/en/default/bug/field.html.tmpl @@ -18,6 +18,8 @@ # Contributor(s): Myk Melez # Max Kanat-Alexander # Elliotte Martin + # Guy Pyrzak + # Reed Loden #%] [%# INTERFACE: @@ -40,35 +42,17 @@ #%] [% SET hidden = 0 %] -[% IF field.visibility_field.defined %] - [% IF !bug.${field.visibility_field.name} - .contains(field.visibility_value.name) - %] - [% SET hidden = 1 %] - [% END %] +[% IF field.visibility_field.defined AND bug + AND !field.visibility_value.is_set_on_bug(bug) +%] + [% SET hidden = 1 %] [% END %] [% IF NOT no_tds %] - - [% IF editable %] - ' IF editable %] - -[% END %] - -[% IF NOT no_tds %] - + [% PROCESS "bug/field-label.html.tmpl" %] + [% END %] [% Hook.process('start_field_column') %] [% IF editable %] @@ -77,11 +61,13 @@ + maxlength="[% constants.MAX_FREETEXT_LENGTH FILTER none %]" + [% ' aria-required="true"' IF field.is_mandatory %]> [% CASE constants.FIELD_TYPE_DATETIME %] -
    +
    [% CASE [ constants.FIELD_TYPE_SINGLE_SELECT constants.FIELD_TYPE_MULTI_SELECT ] %] @@ -124,6 +111,7 @@ [% SET field_size = field.legal_values.size %] [% END %] size="[% field_size FILTER html %]" multiple="multiple" + [% ' aria-required="true"' IF field.is_mandatory %] [% END %] > [% IF allow_dont_change %] @@ -138,8 +126,6 @@ [% legal_values = field.legal_values %] [% END %] [% FOREACH legal_value = legal_values %] - [% SET control_value = legal_value.visibility_value %] - [% SET control_field = field.value_field %]
    -- cgit v1.2.1 From a29bd9ed7a67b11debe97818a5d6b5a237d8419c Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Wed, 20 Feb 2013 22:54:03 +0000 Subject: Remove to test hook --- template/en/default/index.html.tmpl | 172 ------------------------------------ 1 file changed, 172 deletions(-) delete mode 100644 template/en/default/index.html.tmpl diff --git a/template/en/default/index.html.tmpl b/template/en/default/index.html.tmpl deleted file mode 100644 index 9dcf6ac..0000000 --- a/template/en/default/index.html.tmpl +++ /dev/null @@ -1,172 +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. - #%] - -[%# INTERFACE: - # release: a hash containing data about new releases, if any. - #%] - -[% PROCESS global/header.html.tmpl - title = "$terms.Bugzilla Main Page" - header = "Main Page" - header_addl_info = "version $constants.BUGZILLA_VERSION" - style_urls = [ 'skins/standard/index.css' ] -%] - - - - -[% IF release %] -
    - [% IF release.data %] - [% IF release.deprecated %] -

    [% terms.Bugzilla %] [%+ release.deprecated FILTER html %] is no longer - supported. You are highly encouraged to upgrade in order to keep your - system secure.

    - [% END %] - -

    A new [% terms.Bugzilla %] version ([% release.data.latest_ver FILTER html %]) - is available at - [% release.data.url FILTER html %].
    - Release date: [% release.data.date FILTER html %]

    - -

    This message is only shown to logged in users with admin privs. - You can configure this notification from the - Parameters page.

    - [% ELSIF release.error == "cannot_download" %] -

    The remote file - [%~ constants.REMOTE_FILE FILTER html %] cannot be downloaded - (reason: [% release.reason FILTER html %]).
    - Either the remote server is temporarily unavailable, or your web server cannot access - the web. If you are behind a proxy, set the - proxy_url parameter correctly.

    - [% ELSIF release.error == "no_write" %] -

    The local XML file '[% constants.LOCAL_FILE FILTER html %]' cannot be created - (reason: [% release.reason FILTER html %]).
    - Please make sure the web server can write into this directory. - [% ELSIF release.error == "no_update" %] -

    The local XML file '[% constants.LOCAL_FILE FILTER html %]' cannot be updated. - Please make sure the web server can edit this file.

    - [% ELSIF release.error == "no_access" %] -

    The local XML file '[% constants.LOCAL_FILE FILTER html %]' cannot be read. - Please make sure this file has the correct rights set on it.

    - [% ELSIF release.error == "corrupted" %] -

    The local XML file '[% constants.LOCAL_FILE FILTER html %]' has an invalid XML format. - Please delete it and try accessing this page again.

    - [% ELSIF release.error == "unknown_parameter" %] -

    '[% Param("upgrade_notification") FILTER html %]' is not a valid notification - parameter. Please check this parameter in the - Parameters page.

    - [% END %] -
    -[% END %] - -
    - - - - -
    -

    Welcome to [% terms.Bugzilla %]

    -
    [% Hook.process('intro') %]
    - -
    -
      -
    • - File - [%= terms.aBug %] -
    • -
    • - Search -
    • -
    • - User Preferences - [% ELSIF Param('createemailregexp') - %] - href="http://identity.mageia.org/register">Open a New Account - [% ELSE %] - href="?GoAheadAndLogIn=1">Log In - [% END %] -
    • -
    -
    - -
    -
    - - - - -
    -
    -
    [% Hook.process('outro') %]
    -
    -
    - -[% PROCESS global/footer.html.tmpl %] -- cgit v1.2.1 From c25e6c81a0fee80194a452672076158f70e10674 Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Wed, 20 Feb 2013 23:01:19 +0000 Subject: Remove unused page --- template/en/default/user-error.html.tmpl | 1804 ------------------------------ 1 file changed, 1804 deletions(-) delete mode 100644 template/en/default/user-error.html.tmpl diff --git a/template/en/default/user-error.html.tmpl b/template/en/default/user-error.html.tmpl deleted file mode 100644 index 2001f77..0000000 --- a/template/en/default/user-error.html.tmpl +++ /dev/null @@ -1,1804 +0,0 @@ -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): Gervase Markham - # Frédéric Buclin - # Max Kanat-Alexander - #%] - -[%# INTERFACE: - # header_done: boolean. True if the Bugzilla header has already been printed. - # error: string. The tag of the error, or the error message to be displayed - # (deprecated). May contain HTML if it's an error message. - #%] - -[%# This is a list of all the possible user errors. Please keep them in - # alphabetical order by error tag, and leave a blank line between errors. - # - # Note that you must explicitly filter every single template variable - # in this file; if you do not wish to change it, use the "none" filter. - # - # Extension- or custom-specific error handling can be easily added - # via hooks: just place additional code into - # template/en/hook/global/user-error-errors.html.tmpl - # Note: be aware of uniqueness of error string parameter value, since - # nobody can guarantee the hook files processing order in the future. - #%] - -[% PROCESS global/variables.none.tmpl %] - -[% PROCESS "global/field-descs.none.tmpl" %] - -[% DEFAULT title = "Error" %] - -[% error_message = BLOCK %] - [% IF error == "account_creation_disabled" %] - [% title = "Account Creation Disabled" %] - User account creation has been disabled. -
    - New accounts must be created by an administrator. The - maintainer is [% Param("maintainer") %]. - - [% ELSIF error == "account_creation_restricted" %] - [% title = "Account Creation Restricted" %] - User account creation has been restricted. -
    - Contact your administrator or the maintainer - ([% Param("maintainer") %]) for information about - creating an account. - - [% ELSIF error == "account_disabled" %] - [% title = "Account Disabled" %] - [% disabled_reason FILTER none %] -
    - If you believe your account should be restored, please - send email to [% Param("maintainer") %] explaining why. - - [% ELSIF error == "account_exists" %] - [% title = "Account Already Exists" %] - There is already an account with - [% IF email %] - the login name [% email FILTER html %]. - [% ELSE %] - that login name. - [% END %] - - [% ELSIF error == "account_locked" %] - [% title = "Account Locked" %] - Your IP ([% ip_addr FILTER html %]) has been locked out of this - account until [% unlock_at FILTER time %], as you have - exceeded the maximum number of login attempts. - - [% ELSIF error == "alias_has_comma_or_space" %] - [% title = "Invalid Characters In Alias" %] - The alias you entered, [% alias FILTER html %], - contains one or more commas or spaces. Aliases cannot contain - commas or spaces because those characters are used to separate - aliases from each other in lists. Please choose an alias - that does not contain commas and spaces. - - [% ELSIF error == "alias_in_use" %] - [% title = "Alias In Use" %] - [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] - has already taken the alias [% alias FILTER html %]. - Please choose another one. - - [% ELSIF error == "alias_is_numeric" %] - [% title = "Alias Is Numeric" %] - You tried to give this [% terms.bug %] the alias [% alias FILTER html %], - but aliases cannot be merely numbers, since they could - then be confused with [% terms.bug %] IDs. Please choose an - alias containing at least one letter. - - [% ELSIF error == "alias_too_long" %] - [% title = "Alias Too Long" %] - [% terms.Bug %] aliases cannot be longer than 20 characters. - Please choose a shorter alias. - - [% ELSIF error == "attachment_bug_id_mismatch" %] - [% title = "Invalid Attachments" %] - You tried to perform an action on attachments from different [% terms.bugs %]. - This operation requires all attachments to be from the same [% terms.bug %]. - - [% ELSIF error == "auth_cant_create_account" %] - [% title = "Can't create accounts" %] - This site is using an authentication scheme which does not permit - account creation. Please contact an administrator to get a new account - created. - - [% ELSIF error == "auth_failure" %] - [% title = "Authorization Required" %] - [% admindocslinks = {'groups.html' => 'Group Security'} %] - Sorry, - [% IF group %] - you aren't a member of the '[% group FILTER html %]' group, - [% END %] - - [% IF reason %] - [% IF group %] and [% END %] - [% IF reason == "cant_bless" %] - you don't have permissions to add or remove people from a group, - [% ELSIF reason == "not_visible" %] - there are visibility restrictions on certain user groups, - [% END %] - [% END %] - - [% IF group || reason %] and so [% END %] you are not authorized to - [% IF action == "access" %] - access - [% ELSIF action == "add" %] - add new - [% ELSIF action == "begin" %] - begin - [% ELSIF action == "modify" %] - modify - [% ELSIF action == "delete" %] - delete - [% ELSIF action == "edit" %] - add, modify or delete - [% ELSIF action == "run" %] - run - [% ELSIF action == "schedule" %] - schedule - [% ELSIF action == "use" %] - use - [% ELSIF action == "approve" %] - approve - [% ELSE %] - [%+ Hook.process('auth_failure_action') %] - [% END %] - - [% IF object == "administrative_pages" %] - administrative pages - [% ELSIF object == "attachment" %] - [% IF attach_id %] - attachment #[% attach_id FILTER html %] - [% ELSE %] - this attachment - [% END %] - [% ELSIF object == "bugs" %] - [%+ terms.bugs %] - [% ELSIF object == "charts" %] - the "New Charts" feature - [% ELSIF object == "classifications" %] - classifications - [% ELSIF object == "components" %] - components - [% ELSIF object == "custom_fields" %] - custom fields - [% ELSIF object == "field_values" %] - field values - [% ELSIF object == "flagtypes" %] - flag types - [% ELSIF object == "group_access" %] - group access - [% ELSIF object == "groups" %] - groups - [% ELSIF object == "keywords" %] - keywords - [% ELSIF object == "milestones" %] - milestones - [% ELSIF object == "multiple_bugs" %] - multiple [% terms.bugs %] at once - [% ELSIF object == "parameters" %] - parameters - [% ELSIF object == "products" %] - products - [% ELSIF object == "quips" %] - quips - [% ELSIF object == "reports" %] - whine reports - [% ELSIF object == "sanity_check" %] - a sanity check - [% ELSIF object == "settings" %] - settings - [% ELSIF object == "sudo_session" %] - a sudo session - [% ELSIF object == "timetracking_summaries" %] - time-tracking summary reports - [% ELSIF object == "user" %] - the user [% IF userid %] with ID '[% userid FILTER html %]' - [% ELSE %]you specified [% END %] - [% ELSIF object == "users" %] - users - [% ELSIF object == "versions" %] - versions - [% ELSIF object == "workflow" %] - the workflow - [% ELSE %] - [%+ Hook.process('auth_failure_object') %] - [% END %]. - - [% Hook.process("auth_failure") %] - - [% ELSIF error == "attachment_deletion_disabled" %] - [% title = "Attachment Deletion Disabled" %] - Attachment deletion is disabled on this installation. - - [% ELSIF error == "attachment_illegal_url" %] - [% title = "Illegal Attachment URL" %] - [% url FILTER html %] is not a legal URL for attachments. - It must start either with http://, https:// or ftp://. - - [% ELSIF error == "attachment_removed" %] - [% title = "Attachment Removed" %] - The attachment you are attempting to access has been removed. - - [% ELSIF error == "bug_access_denied" %] - [% title = "Access Denied" %] - [% admindocslinks = {'groups.html' => 'Group Security'} %] - You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %]. - - [% ELSIF error == "bug_access_query" %] - [% title = "Access Denied" %] - [% docslinks = {'myaccount.html' => 'Creating an account'} %] - You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %]. - To see this [% terms.bug %], you must - first log - in to an account with the appropriate permissions. - - [% ELSIF error == "bug_url_invalid" %] - [% title = "Invalid $terms.Bug URL" %] - [% url FILTER html %] is not a valid URL to [% terms.abug %]. - [% IF reason == 'http' %] - URLs must start with "http" or "https". - [% ELSIF reason == 'path_only' %] - You must specify a full URL. - [% ELSIF reason == 'show_bug' %] - [%+ field_descs.see_also FILTER html %] URLs should point to one of: -
      -
    • show_bug.cgi in a [% terms.Bugzilla %] - installation.
    • -
    • A b[% %]ug on launchpad.net
    • -
    • An issue on code.google.com.
    • -
    • A b[% %]ug on b[% %]ugs.debian.org.
    • -
    - [% ELSIF reason == 'id' %] - There is no valid [% terms.bug %] id in that URL. - [% END %] - - [% ELSIF error == "bug_url_too_long" %] - [% title = "Invalid $terms.Bug URL" %] - [% terms.Bug %] URLs can not be longer than - [%+ constants.MAX_BUG_URL_LENGTH FILTER none %] characters long. - [% url FILTER html %] is too long. - - [% ELSIF error == "buglist_parameters_required" %] - [% title = "Parameters Required" %] - [% docslinks = {'query.html' => "Searching for $terms.bugs", - 'query.html#list' => "$terms.Bug lists"} %] - You may not search, or create saved searches, without any search terms. - - [% ELSIF error == "chart_too_large" %] - [% title = "Chart Too Large" %] - Sorry, but 2000 x 2000 is the maximum size for a chart. - - [% ELSIF error == "comment_id_invalid" %] - [% id FILTER html %] is not a valid comment id. - - [% ELSIF error == "comment_invalid_isprivate" %] - You tried to modify the privacy of comment id [% id FILTER html %], - but that is not a valid comment on this [% terms.bug %]. - - [% ELSIF error == "comment_is_private" %] - Comment id [% id FILTER html %] is private. - - [% ELSIF error == "comment_required" %] - [% title = "Comment Required" %] - You have to specify a - [% IF old && new %] - comment when changing the status of [% terms.abug %] from - [%+ old.name FILTER html %] to [% new.name FILTER html %]. - [% ELSIF new %] - description for this [% terms.bug %]. - [% ELSE %] - comment on this change. - [% END %] - - [% ELSIF error == "comment_too_long" %] - [% title = "Comment Too Long" %] - Comments cannot be longer than - [%+ constants.MAX_COMMENT_LENGTH FILTER html %] characters. - - [% ELSIF error == "auth_classification_not_enabled" %] - [% title = "Classification Not Enabled" %] - Sorry, classification is not enabled. - - [% ELSIF error == "classification_name_too_long" %] - [% title = "Classification Name Too Long" %] - The name of a classification is limited to [% constants.MAX_CLASSIFICATION_SIZE FILTER html %] - characters. '[% name FILTER html %]' is too long ([% name.length %] characters). - -[% ELSIF error == "classification_not_specified" %] - [% title = "You Must Supply A Classification Name" %] - You must enter a classification name. - - [% ELSIF error == "classification_already_exists" %] - [% title = "Classification Already Exists" %] - A classification with the name '[% name FILTER html %]' already exists. - - [% ELSIF error == "classification_invalid_sortkey" %] - [% title = "Invalid Sortkey for Classification" %] - The sortkey '[% sortkey FILTER html %]' is invalid. It must be an - integer between 0 and [% constants.MAX_SMALLINT FILTER html %]. - - [% ELSIF error == "classification_not_deletable" %] - [% title = "Default Classification Can Not Be Deleted" %] - You can not delete the default classification - - [% ELSIF error == "classification_has_products" %] - Sorry, there are products for this classification. You - must reassign those products to another classification before you - can delete this one. - - [% ELSIF error == "component_already_exists" %] - [% title = "Component Already Exists" %] - The [% product.name FILTER html %] product already has - a component named [% name FILTER html %]. - - [% ELSIF error == "component_blank_description" %] - [% title = "Blank Component Description Not Allowed" %] - You must enter a non-blank description for this component. - - [% ELSIF error == "component_blank_name" %] - [% title = "Blank Component Name Not Allowed" %] - You must enter a name for this new component. - - [% ELSIF error == "component_has_bugs" %] - [% title = BLOCK %]Component has [% terms.Bugs %][% END %] - There are [% nb FILTER html %] [%+ terms.bugs %] entered for this component! - You must reassign those [% terms.bugs %] to another component before you - can delete this one. - - [% ELSIF error == "component_name_too_long" %] - [% title = "Component Name Is Too Long" %] - The name of a component is limited to [% constants.MAX_COMPONENT_SIZE FILTER html %] - characters. '[% name FILTER html %]' is too long ([% name.length %] characters). - - [% ELSIF error == "component_need_initialowner" %] - [% title = "Component Requires Default Assignee" %] - A default assignee is required for this component. - - [% ELSIF error == "customfield_nonexistent" %] - [% title = "Unknown Custom Field" %] - There is no custom field with the name '[% name FILTER html %]'. - - [% ELSIF error == "customfield_not_obsolete" %] - [% title = "Custom Field Not Obsolete" %] - The custom field '[% name FILTER html %]' is not obsolete. - Please obsolete a custom field before attempting to delete it. - - [% ELSIF error == "customfield_has_activity" %] - [% title = "Custom Field Has Activity" %] - The custom field '[% name FILTER html %]' cannot be deleted because - it has recorded activity. - - [% ELSIF error == "customfield_has_contents" %] - [% title = "Custom Field Has Contents" %] - The custom field '[% name FILTER html %]' cannot be deleted because - at least one [% terms.bug %] has a non empty value for this field. - - [% ELSIF error == "dependency_loop_multi" %] - [% title = "Dependency Loop Detected" %] - The following [% terms.bug %](s) would appear on both the "depends on" - and "blocks" parts of the dependency tree if these changes - are committed: - [% FOREACH dep = deps %] - [%+ dep FILTER bug_link(dep) FILTER none %] - [% END %]. - This would create a circular dependency, which is not allowed. - - [% ELSIF error == "dependency_loop_single" %] - [% title = "Dependency Loop Detected" %] - You can't make [% terms.abug %] block itself or depend on itself. - - [% ELSIF error == "dupe_id_required" %] - [% title = "Duplicate $terms.Bug Id Required" %] - You must specify [% terms.abug %] id to mark this [% terms.bug %] - as a duplicate of. - - [% ELSIF error == "dupe_not_allowed" %] - [% title = "Cannot mark $terms.bugs as duplicates" %] - You cannot mark [% terms.bugs %] as duplicates when - changing several [% terms.bugs %] at once. - - [% ELSIF error == "dupe_loop_detected" %] - [% title = "Loop detected among duplicates" %] - You cannot mark [% terms.bug %] [%+ bug_id FILTER html %] as - a duplicate of - [% IF dupe_of == bug_id %] - itself - [% ELSE %] - [%+ terms.bug %] [%+ dupe_of FILTER html %], because it - would create a duplicate loop - [% END %]. - - [% ELSIF error == "email_change_in_progress" %] - [% title = "Email Change Already In Progress" %] - Email change already in progress; please check your email. - - [% ELSIF error == "email_confirmation_failed" %] - [% title = "Email Address Confirmation Failed" %] - Email address confirmation failed. - - [% ELSIF error == "email_no_text_plain" %] - Your message did not contain any text.[% terms.Bugzilla %] does not - accept HTML-only email, or HTML email with attachments. - - [% ELSIF error == "empty_group_description" %] - [% title = "The group description can not be empty" %] - You must enter a description for the group. - - [% ELSIF error == "empty_group_name" %] - [% title = "The group name can not be empty" %] - You must enter a name for the group. - - [% ELSIF error == "entry_access_denied" %] - [% title = "Permission Denied" %] - [% admindocslinks = {'groups.html' => 'Group Security'} %] - Sorry, either the product [% product FILTER html %] - does not exist or you aren't authorized to - enter [% terms.abug %] into it. - - [% ELSIF error == "extension_create_no_name" %] - You must specify a name for your extension, as an argument to this script. - - [% ELSIF error == "extension_first_letter_caps" %] - The first letter of your extension's name must be a capital letter. - (You specified '[% name FILTER html %]'.) - - [% ELSIF error == "field_already_exists" %] - [% title = "Field Already Exists" %] - The field '[% field.name FILTER html %]' - ([% field.description FILTER html %]) already exists. Please - choose another name. - - [% ELSIF error == "field_cant_control_self" %] - [% title = "Field Can't Control Itself" %] - The [% field.description FILTER html %] field can't be set to control - itself. - - [% ELSIF error == "field_control_must_be_select" %] - [% title = "Invalid Field Type Selected" %] - Only drop-down and multi-select fields can be used to control - the visibility/values of other fields. [% field.description FILTER html %] - is not the right type of field. - - [% ELSIF error == "field_invalid_name" %] - [% title = "Invalid Field Name" %] - '[% name FILTER html %]' is not a valid name for a field. - A name may contain only letters, numbers, and the underscore character. - - [% ELSIF error == "field_invalid_sortkey" %] - [% title = "Invalid Sortkey for Field" %] - The sortkey [% sortkey FILTER html %] that you have provided for - this field is not a valid positive integer. - - [% ELSIF error == "field_missing_description" %] - [% title = "Missing Description for Field" %] - You must enter a description for this field. - - [% ELSIF error == "field_missing_name" %] - [% title = "Missing Name for Field" %] - You must enter a name for this field. - - [% ELSIF error == "field_value_control_select_only" %] - [% title = "Invalid Value Control Field" %] - Only Drop-Down or Multi-Select fields can have a field that - controls their values. - - [% ELSIF error == "fieldname_invalid" %] - [% title = "Specified Field Does Not Exist" %] - The field '[% field.name FILTER html %]' does not exist or - cannot be edited with this interface. - - [% ELSIF error == "fieldvalue_already_exists" %] - [% title = "Field Value Already Exists" %] - The value '[% value.name FILTER html %]' already exists for the - [%+ field.description FILTER html %] field. - - [% ELSIF error == "fieldvalue_is_controller" %] - [% title = "Value Controls Other Fields" %] - You cannot delete the [% value.field.description FILTER html %] - '[% value.name FILTER html %]' because - [% IF fields.size %] - it controls the visibility of the following fields: - [%+ fields.join(', ') FILTER html %]. - [% END %] - [% ' Also, ' IF fields.size AND vals.size %] - [% IF vals.size %] - it controls the visibility of the following field values: -
      - [% FOREACH field_name = vals.keys %] - [% FOREACH val = vals.${field_name} %] -
    • [% val.field.name FILTER html %]: - '[% val.name FILTER html %]'
    • - [% END %] - [% END %] -
    - [% END %] - - [% ELSIF error == "fieldvalue_is_default" %] - [% title = "Specified Field Value Is Default" %] - '[% value.name FILTER html %]' is the default value for - the '[% field.description FILTER html %]' field and cannot be deleted - or disabled. - [% IF user.in_group('tweakparams') %] - You have to change the default value first. - [% END %] - - [% ELSIF error == "fieldvalue_name_too_long" %] - [% title = "Field Value Is Too Long" %] - The value of a field is limited to - [%+ constants.FIELD_VALUE_MAX_SIZE FILTER none %] characters. - '[% value FILTER html %]' is too long ([% value.length %] characters). - - [% ELSIF error == "fieldvalue_not_editable" %] - [% title = "Field Value Not Editable" %] - The value '[% old_value.name FILTER html %]' cannot be renamed because - it plays some special role for the '[% field.description FILTER html %]' - field. - - [% ELSIF error == "fieldvalue_not_deletable" %] - [% title = "Field Value Not Deletable" %] - The value '[% value.name FILTER html %]' cannot be removed or - disabled, because it plays some special role for the - '[% field.description FILTER html %]' field. - - [% ELSIF error == "fieldvalue_reserved_word" %] - [% title = "Reserved Word Not Allowed" %] - You cannot use the value '[% value FILTER html %]' for the - '[% field.description FILTER html %]' field. This value is used internally. - Please choose another one. - - [% ELSIF error == "fieldvalue_sortkey_invalid" %] - [% title = "Invalid Field Value Sortkey" %] - The sortkey '[% sortkey FILTER html %]' for the - [%+ field.description FILTER html %] field is not a valid - (positive) number. - - [% ELSIF error == "fieldvalue_still_has_bugs" %] - [% title = "You Cannot Delete This Field Value" %] - You cannot delete the value '[% value.name FILTER html %]' from the - [%+ field.description FILTER html %] field, because there are still - [%+ value.bug_count FILTER html %] [%+ terms.bugs %] using it. - - [% ELSIF error == "fieldvalue_undefined" %] - [% title = "Undefined Value Not Allowed" %] - You must specify a value. - - [% ELSIF error == "file_not_specified" %] - [% title = "No File Specified" %] - You did not specify a file to attach. - - [% ELSIF error == "file_too_large" %] - [% title = "File Too Large" %] - The file you are trying to attach is [% filesize FILTER html %] - kilobytes (KB) in size. Attachments cannot be more than - [%+ Param('maxattachmentsize') %] KB.
    - We recommend that you store your attachment elsewhere - [% IF Param("allow_attach_url") %] - and then specify the URL to this file on the attachment - creation page in the AttachURL field. - [% ELSE %] - and then insert the URL to it in a comment, or in the URL field - for this [% terms.bug %]. - [% END %] -
    Alternately, if your attachment is an image, you could convert - it to a compressible format like JPG or PNG and try again. - - [% ELSIF error == "flag_requestee_needs_privs" %] - [% title = "Flag Requestee Needs Privileges" %] - [% requestee.identity FILTER html %] does not have permission to set the - [% flagtype.name FILTER html %] flag. Please select a user who is - a member of the [% flagtype.grant_group.name FILTER html %] group. - - [% ELSIF error == "flag_requestee_unauthorized" %] - [% title = "Flag Requestee Not Authorized" %] - [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', - 'groups.html' => 'Group Security'} %] - [% docslinks = {'flags-overview.html' => 'An overview on Flags', - 'flags.html' => 'Using Flags'} %] - - You asked [% requestee.identity FILTER html %] - for [% flag_type.name FILTER html %] on [% terms.bug %] - [%+ bug_id FILTER html -%] - [% IF attach_id && attach_id > 0 %], attachment [% attach_id FILTER html %][% END %], - but that [% terms.bug %] has been restricted to users in certain groups, - and the user you asked isn't in all the groups to which - the [% terms.bug %] has been restricted. - Please choose someone else to ask, or make the [% terms.bug %] accessible - to users on its CC: list and add that user to the list. - - [% ELSIF error == "flag_requestee_unauthorized_attachment" %] - [% title = "Flag Requestee Not Authorized" %] - [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', - 'groups.html' => 'Group Security'} %] - [% docslinks = {'flags-overview.html' => 'An overview on Flags', - 'flags.html' => 'Using Flags'} %] - - You asked [% requestee.identity FILTER html %] - for [% flag_type.name FILTER html %] on - [%+ terms.bug %] [%+ bug_id FILTER html %], - attachment [% attach_id FILTER html %], but that attachment - is restricted to users in the [% Param("insidergroup") FILTER html %] group, - and the user you asked isn't in that group. Please choose someone else - to ask, or ask an administrator to add the user to the group. - - [% ELSIF error == "flag_status_invalid" %] - [% title = "Flag Status Invalid" %] - The flag status [% status FILTER html %] - [% IF id %] - for flag ID #[% id FILTER html %] - [% END %] - is invalid. - - [% ELSIF error == "flag_type_cc_list_invalid" %] - [% title = "Flag Type CC List Invalid" %] - [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] - The CC list [% cc_list FILTER html %] must be less than 200 characters long. - - [% ELSIF error == "flag_type_component_without_product" %] - [% title = "Product Missing" %] - A component was selected without a product being selected. - - [% ELSIF error == "flag_type_description_invalid" %] - [% title = "Flag Type Description Invalid" %] - [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] - The description must be less than 32K. - - [% ELSIF error == "flag_type_name_invalid" %] - [% title = "Flag Type Name Invalid" %] - [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags'} %] - The name [% name FILTER html %] must be 1-50 characters long - and must not contain any spaces or commas. - - [% ELSIF error == "flag_type_not_multiplicable" %] - [% docslinks = {'flags-overview.html' => 'An overview on Flags', - 'flags.html' => 'Using Flags'} %] - You cannot have several [% type.name FILTER html %] flags - for this [% IF attachment %] attachment [% ELSE %] [%+ terms.bug %] [% END %]. - - [% ELSIF error == "flag_update_denied" %] - [% title = "Flag Modification Denied" %] - [% admindocslinks = {'flags-overview.html#flags-admin' => 'Administering Flags', - 'groups.html' => 'Group Security'} %] - [% docslinks = {'flags-overview.html' => 'An overview on Flags', - 'flags.html' => 'Using Flags'} %] - You tried to [% IF status == "+" %] grant [% ELSIF status == "-" %] deny - [% ELSIF status == "X" %] clear [% ELSE %] request [% END %] - [% name FILTER html %] - [% IF status == "X" %][% old_status FILTER html %][% END %]. - - Only a user with the required permissions may make this change. - - [% ELSIF error == "format_not_found" %] - [% title = "Format Not Found" %] - The requested format [% format FILTER html %] does not exist with - a content type of [% ctype FILTER html %]. - - [% ELSIF error == "flag_type_sortkey_invalid" %] - [% title = "Flag Type Sort Key Invalid" %] - The sort key must be an integer between 0 and 32767 inclusive. - It cannot be [% sortkey FILTER html %]. - - [% ELSIF error == "freetext_too_long" %] - [% title = "Text Too Long" %] - The text you entered in the [% field_descs.$field FILTER html %] - field is too long ([% text.length FILTER html %] characters, - above the maximum length allowed of - [%+ constants.MAX_FREETEXT_LENGTH FILTER none %] characters). - - [% ELSIF error == "group_cannot_delete" %] - [% title = "Cannot Delete Group" %] - The [% group.name FILTER html %] group cannot be deleted because - there are - records - in the database which refer to it. All references to this group must - be removed before you can remove it. - - [% ELSIF error == "group_exists" %] - [% title = "The group already exists" %] - The group [% name FILTER html %] already exists. - - [% ELSIF error == "group_has_special_role" %] - [% title = "Group not deletable" %] - [% IF groups.size == 1 %] - [% attr = "it" %] - [% param = "parameter" %] - [% ELSE %] - [% attr = "them" %] - [% param = "parameters" %] - [% END %] - The group '[% name FILTER html %]' is used by the - '[% groups.join("' and '") FILTER html %]' [% param FILTER html %]. - In order to delete this group, you first have to change the - [%+ param FILTER html %] to make [% attr FILTER html %] point to another group. - - - [% ELSIF error == "group_invalid_removal" %] - You tried to remove [% terms.bug %] [%+ bug_id FILTER html %] - from the '[% name FILTER html %]' group, but either this group does not exist, - or you are not allowed to remove [% terms.bugs %] from this group in the - '[% product FILTER html %]' product. - - [% ELSIF error == "group_restriction_not_allowed" %] - [% title = "Group Restriction Not Allowed" %] - You tried to restrict [% bug_id ? "$terms.bug $bug_id" : terms.abug FILTER html %] - to the '[% name FILTER html %]' group, but either this group does not exist, - or you are not allowed to restrict [% terms.bugs %] to this group in the - '[% product FILTER html %]' product. - - [% ELSIF error == "group_not_specified" %] - [% title = "Group not specified" %] - No group was specified. - - [% ELSIF error == "system_group_not_deletable" %] - [% title = "System Groups not deletable" %] - [% name FILTER html %] is a system group. - This group cannot be deleted. - - [% ELSIF error == "group_unknown" %] - [% title = "Unknown Group" %] - The group [% name FILTER html %] does not exist. Please specify - a valid group name. Create it first if necessary! - - [% ELSIF error == "illegal_attachment_edit" %] - [% title = "Unauthorized Action" %] - You are not authorized to edit attachment [% attach_id FILTER html %]. - - [% ELSIF error == "illegal_attachment_edit_bug" %] - [% title = "Unauthorized Action" %] - You are not authorized to edit attachments on [% terms.bug %] - [%+ bug_id FILTER html %]. - - [% ELSIF error == "illegal_attachment_is_patch" %] - [% title = "Your Search Makes No Sense" %] - The only legal values for the Attachment is patch field are - 0 and 1. - - [% ELSIF error == "illegal_bug_status_transition" %] - [% title = "Illegal $terms.Bug Status Change" %] - [% IF old.defined %] - You are not allowed to change the [% terms.bug %] status from - [%+ old.name FILTER html %] to [% new.name FILTER html %]. - [% ELSE %] - You are not allowed to file new [% terms.bugs %] with the - [%+ new.name FILTER html %] status. - [% END %] - - [% ELSIF error == "illegal_change" %] - [% title = "Not allowed" %] - You tried to change the - [% field_descs.$field FILTER html %] field - [% IF oldvalue.defined %] - from [% oldvalue.join(', ') FILTER html %] - [% END %] - [% IF newvalue.defined %] - to [% newvalue.join(', ') FILTER html %] - [% END %] - , but only - [% IF privs < constants.PRIVILEGES_REQUIRED_EMPOWERED %] - the assignee - [% IF privs < constants.PRIVILEGES_REQUIRED_ASSIGNEE %] or reporter [% END %] - of the [% terms.bug %], or - [% END %] - a user with the required permissions may change that field. - - [% ELSIF error == "illegal_change_deps" %] - [% title = "Not allowed" %] - You tried to change the - [% field_descs.$field FILTER html %] field - but only a user allowed to edit - both related [% terms.bugs %] may change that field. - - [% ELSIF error == "illegal_changed_in_last_x_days" %] - [% title = "Your Search Makes No Sense" %] - The Changed in last ___ days field must be a simple number. - You entered [% value FILTER html %], which isn't. - - [% ELSIF error == "illegal_date" %] - [% title = "Illegal Date" %] - '[% date FILTER html %]' is not a legal date. - [% IF format %] - Please use the format '[% format FILTER html %]'. - [% END %] - - [% ELSIF error == "illegal_email_address" %] - [% title = "Invalid Email Address" %] - The e-mail address you entered ([% addr FILTER html %]) - didn't pass our syntax checking for a legal email address. - [% IF default %] - A legal address must contain exactly one '@', - and at least one '.' after the @. - [% ELSE %] - [%+ Param('emailregexpdesc') %] - [% END %] - It must also not contain any of these special characters: - \ ( ) & < > , ; : " [ ], or any whitespace. - - [% ELSIF error == "illegal_frequency" %] - [% title = "Too Frequent" %] - Unless you are an administrator, you may not create series which are - run more often than once every [% minimum FILTER html %] days. - - [% ELSIF error == "illegal_group_control_combination" %] - [% title = "Your Group Control Combination Is Illegal" %] - [% admindocslinks = {'groups.html' => 'Assigning Group Controls to Products'} %] - Your group control combination for group " - [% groupname FILTER html %]" is illegal. - - [% ELSIF error == "illegal_is_obsolete" %] - [% title = "Your Search Makes No Sense" %] - The only legal values for the Attachment is obsolete field are - 0 and 1. - - [% ELSIF error == "illegal_query_name" %] - [% title = "Illegal Search Name" %] - The name of your search cannot contain any of the following characters: - <, >, &. - - [% ELSIF error == "illegal_series_creation" %] - [% admindocslinks = {'groups.html' => 'Group security'} %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - You are not authorized to create series. - - [% ELSIF error == "illegal_series_edit" %] - [% admindocslinks = {'groups.html' => 'Group security'} %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - You are not authorized to edit this series. To do this, you must either - be its creator, or an administrator. - - [% ELSIF error == "illegal_time" %] - [% title = "Illegal Time" %] - '[% time FILTER html %]' is not a legal time. - [% IF format %] - Please use the format '[% format FILTER html %]'. - [% END %] - - [% ELSIF error == "illegal_regexp" %] - [% title = "Illegal Regular Expression" %] - The regular expression you provided [% value FILTER html %] is not valid. - The error was: [% dberror FILTER html %]. - - [% ELSIF error == "insufficient_data_points" %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - We don't have enough data points to make a graph (yet). - - [% ELSIF error == "invalid_attach_id" %] - [% title = "Invalid Attachment ID" %] - The attachment id [% attach_id FILTER html %] is invalid. - - [% ELSIF error == "bug_id_does_not_exist" %] - [% title = BLOCK %]Invalid [% terms.Bug %] ID[% END %] - [% terms.Bug %] #[% bug_id FILTER html %] does not exist. - - [% ELSIF error == "improper_bug_id_field_value" %] - [% title = BLOCK %] - [% IF bug_id %]Invalid [% ELSE %]Missing [% END %] [% terms.Bug %] ID - [% END %] - [% IF bug_id %] - '[% bug_id FILTER html %]' is not a valid [% terms.bug %] number - [% IF Param("usebugaliases") %] - nor an alias to [% terms.abug %] - [% END %]. - [% ELSE %] - [% IF field %] - The '[% field_descs.$field FILTER html %]' field - cannot be empty. - [% END %] - You must enter a valid [% terms.bug %] number! - [% END %] - - [% ELSIF error == "invalid_changedsince" %] - [% title = "Invalid 'Changed Since'" %] - The 'changed since' value, '[% changedsince FILTER html %]', must be an - integer >= 0. - - [% ELSIF error == "invalid_content_type" %] - [% title = "Invalid Content-Type" %] - The content type [% contenttype FILTER html %] is invalid. - Valid types must be of the form foo/bar where foo - is one of [% constants.LEGAL_CONTENT_TYPES.join(', ') FILTER html %] - and bar must not contain any special characters (such as "=", "?", ...). - - [% ELSIF error == "invalid_context" %] - [% title = "Invalid Context" %] - The context [% context FILTER html %] is invalid (must be a number, - "file" or "patch"). - - [% ELSIF error == "invalid_datasets" %] - [% title = "Invalid Datasets" %] - Invalid datasets [% datasets.join(":") FILTER html %]. Only digits, - letters and colons are allowed. - - [% ELSIF error == "invalid_format" %] - [% title = "Invalid Format" %] - The format "[% format FILTER html %]" is invalid (must be one of - [% FOREACH my_format = formats %] - "[% my_format FILTER html %]" - [% END %] - ). - - [% ELSIF error == "invalid_group_ID" %] - [% title = "Invalid group ID" %] - The group you specified doesn't exist. - - [% ELSIF error == "invalid_group_name" %] - [% title = "Invalid group name" %] - The group you specified, [% name FILTER html %], is not valid here. - - [% ELSIF error == "invalid_maxrows" %] - [% title = "Invalid Max Rows" %] - The maximum number of rows, '[% maxrows FILTER html %]', must be - a positive integer. - - [% ELSIF error == "invalid_parameter" %] - [% title = "Invalid Parameter" %] - The new value for [% name FILTER html %] is invalid: [% err FILTER html %]. - - [% ELSIF error == "invalid_product_name" %] - [% title = "Invalid Product Name" %] - The product name '[% product FILTER html %]' is invalid or does not exist. - - [% ELSIF error == "invalid_regexp" %] - [% title = "Invalid regular expression" %] - The regular expression you entered is invalid. - - [% ELSIF error == "invalid_user_group" %] - [% title = "Invalid User Group" %] - [% IF users.size > 1 %] Users [% ELSE %] User [% END %] - '[% users.join(', ') FILTER html %]' - [% IF users.size > 1 %] are [% ELSE %] is [% END %] - not able to edit the - [% IF product %] - '[% product FILTER html %]' - [% END %] - [%+ field_descs.product FILTER html %] - [% IF bug_id %] - for [% terms.bug %] '[% bug_id FILTER html %]'. - [% ELSIF new %] - and may not be included on a new [% terms.bug %]. - [% ELSE %] - for at least one [% terms.bug %] being changed. - [% END %] - - [% ELSIF error == "invalid_username" %] - [% title = "Invalid Username" %] - The name [% name FILTER html %] is not a valid username. - Either you misspelled it, or the person has not - registered for a [% terms.Bugzilla %] account. - - [% ELSIF error == "invalid_username_or_password" %] - [% title = "Invalid Username Or Password" %] - The username or password you entered is not valid. - [%# People get two login attempts before being warned about - # being locked out. - #%] - [% IF remaining <= 2 %] - If you do not enter the correct password after - [%+ remaining FILTER html %] more attempt(s), you will be - locked out of this account for - [%+ constants.LOGIN_LOCKOUT_INTERVAL FILTER html %] minutes. - [% END %] - - [% ELSIF error == "json_rpc_get_method_required" %] - When using JSON-RPC over GET, you must specify a 'method' - parameter. See the documentation at - [%+ docs_urlbase FILTER html %]api/Bugzilla/WebService/Server/JSONRPC.html - - [% ELSIF error == "json_rpc_invalid_params" %] - Could not parse the 'params' argument as valid JSON. - Error: [% err_msg FILTER html %] - Value: [% params FILTER html %] - - [% ELSIF error == "json_rpc_invalid_callback" %] - You cannot use '[% callback FILTER html %]' as your 'callback' parameter. - For security reasons, only letters, numbers, and the following - characters are allowed in the 'callback' parameter: []._ - - [% ELSIF error == "json_rpc_post_only" %] - For security reasons, you must use HTTP POST to call the - '[% method FILTER html %]' method. - - [% ELSIF error == "keyword_already_exists" %] - [% title = "Keyword Already Exists" %] - A keyword with the name [% name FILTER html %] already exists. - - [% ELSIF error == "keyword_blank_description" %] - [% title = "Blank Keyword Description Not Allowed" %] - You must enter a non-blank description for the keyword. - - [% ELSIF error == "keyword_blank_name" %] - [% title = "Blank Keyword Name Not Allowed" %] - You must enter a non-blank name for the keyword. - - [% ELSIF error == "keyword_invalid_name" %] - [% title = "Invalid Keyword Name" %] - You may not use commas or whitespace in a keyword name. - - [% ELSIF error == "local_file_too_large" %] - [% title = "Local File Too Large" %] - Local file uploads must not exceed - [% Param('maxlocalattachment') %] MB in size. - - [% ELSIF error == "login_needed_for_password_change" %] - [% title = "Login Name Required" %] - You must enter a login name when requesting to change your password. - - [% ELSIF error == "login_required_for_pronoun" %] - [% title = "Login Name Required" %] - You can't use %user% without being logged in, because %user% refers - to your login name, which we don't know. - - [% ELSIF error == "login_required" %] - [%# Used for non-web-based LOGIN_REQUIRED situations. %] - You must log in before using this part of [% terms.Bugzilla %]. - - [% ELSIF error == "migrate_config_created" %] - The file [% file FILTER html %] contains configuration - variables that must be set before continuing with the migration. - - [% ELSIF error == "migrate_from_invalid" %] - '[% from FILTER html %]' is not a valid type of [% terms.bug %]-tracker - to migrate from. See the contents of the B[% %]ugzilla/Migrate/ - directory for a list of valid [% terms.bug %]-trackers. - - [% ELSIF error == "milestone_already_exists" %] - [% title = "Milestone Already Exists" %] - [% admindocslinks = {'products.html' => 'Administering products', - 'milestones.html' => 'About Milestones'} %] - The milestone '[% name FILTER html %]' already exists for product ' - [%- product FILTER html %]'. - - [% ELSIF error == "milestone_blank_name" %] - [% title = "Blank Milestone Name Not Allowed" %] - You must enter a name for this milestone. - - [% ELSIF error == "milestone_is_default" %] - [% title = "Default milestone not deletable" %] - [% admindocslinks = {'products.html' => 'Administering products', - 'milestones.html' => 'About Milestones'} %] - Sorry, but [% milestone.name FILTER html %] is the default milestone - for the '[% milestone.product.name FILTER html %]' product, and so - it cannot be deleted. - - [% ELSIF error == "milestone_name_too_long" %] - [% title = "Milestone Name Is Too Long" %] - The name of a milestone is limited to [% constants.MAX_MILESTONE_SIZE FILTER html %] - characters. '[% name FILTER html %]' is too long ([% name.length %] characters). - - [% ELSIF error == "milestone_required" %] - [% title = "Milestone Required" %] - You must select a target milestone for [% terms.bug %] - [%+ bug.id FILTER html %] - if you are going to accept it. Part of accepting - [%+ terms.abug %] is giving an estimate of when it will be fixed. - - [% ELSIF error == "milestone_sortkey_invalid" %] - [% title = "Invalid Milestone Sortkey" %] - The sortkey '[% sortkey FILTER html %]' is not in the range - [%+ constants.MIN_SMALLINT FILTER html %] ≤ sortkey ≤ - [%+ constants.MAX_SMALLINT FILTER html %]. - - [% ELSIF error == "misarranged_dates" %] - [% title = "Misarranged Dates" %] - Your start date ([% datefrom FILTER html %]) is after - your end date ([% dateto FILTER html %]). - - [% ELSIF error == "missing_attachment_description" %] - [% title = "Missing Attachment Description" %] - You must enter a description for the attachment. - - [% ELSIF error == "missing_category" %] - [% title = "Missing Category" %] - You did not specify a category for this series. - - [% ELSIF error == "missing_component" %] - [% title = "Missing Component" %] - [% admindocslinks = {'products.html' => 'Administering products', - 'components.html' => 'Creating a component'} %] - Sorry, the product [% product.name FILTER html %] - has to have at least one component in order for you to - enter [% terms.abug %] into it.
    - [% IF user.in_group("editcomponents", product.id) %] - Create - a new component. - [% ELSE %] - Please contact [% Param("maintainer") %] and ask them - to add a component to this product. - [% END %] - - [% ELSIF error == "missing_content_type" %] - [% title = "Missing Content-Type" %] - You asked [% terms.Bugzilla %] to auto-detect the content type, but - your browser did not specify a content type when uploading the file, - so you must enter a content type manually. - - [% ELSIF error == "missing_content_type_method" %] - [% title = "Missing Content-Type Determination Method" %] - You must choose a method for determining the content type, - either auto-detect, select from list, or enter - manually. - - [% ELSIF error == "missing_cookie" %] - [% title = "Missing Cookie" %] - Sorry, I seem to have lost the cookie that recorded - the results of your last search. I'm afraid you will have to start - again from the search page. - - [% ELSIF error == "missing_datasets" %] - [% title = "No Datasets Selected" %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - You must specify one or more datasets to plot. - - [% ELSIF error == "missing_frequency" %] - [% title = "Missing Frequency" %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - You did not specify a valid frequency for this series. - - [% ELSIF error == "missing_name" %] - [% title = "Missing Name" %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - You did not specify a name for this series. - - [% ELSIF error == "missing_query" %] - [% title = "Missing Search" %] - [% docslinks = {'query.html' => "Searching for $terms.bugs", - 'query.html#list' => "$terms.Bug lists"} %] - The search named [% queryname FILTER html %] - [% IF sharer_id && sharer_id != user.id %] - has not been made visible to you. - [% ELSE %] - does not exist. - [% END %] - - [% ELSIF error == "missing_resolution" %] - [% title = "Resolution Required" %] - A valid resolution is required to mark [% terms.bugs %] as - [%+ status FILTER upper FILTER html %]. - - [% ELSIF error == "missing_subcategory" %] - [% title = "Missing Subcategory" %] - You did not specify a subcategory for this series. - - [% ELSIF error == "missing_version" %] - [% title = "Missing Version" %] - [% admindocslinks = {'versions.html' => 'Defining versions'} %] - Sorry, the product [% product.name FILTER html %] - has to have at least one version in order for you to - enter [% terms.abug %] into it.
    - [% IF user.in_group("editcomponents", product.id) %] - Create - a new version. - [% ELSE %] - Please contact [% Param("maintainer") %] and ask them - to add a version to this product. - [% END %] - - [% ELSIF error == "multiple_alias_not_allowed" %] - You cannot set aliases when modifying multiple [% terms.bugs %] - at once. - - [% ELSIF error == "need_quip" %] - [% title = "Quip Required" %] - [% docslinks = {'quips.html' => 'About quips'} %] - Please enter a quip in the text field. - - [% ELSIF error == "new_password_missing" %] - [% title = "New Password Missing" %] - You must enter a new password. - - [% ELSIF error == "no_axes_defined" %] - [% title = "No Axes Defined" %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - You didn't define any axes to plot. - - [% ELSIF error == "no_bugs_chosen" %] - [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %] - You apparently didn't choose any [% terms.bugs %] - [% IF action == "modify" %] - to modify. - [% ELSIF action == "view" %] - to view. - [% END %] - - [% ELSIF error == "no_bug_ids" %] - [% title = BLOCK %]No [% terms.Bugs %] Selected[% END %] - You didn't choose any [% terms.bugs %] to - [% IF action == "add" %] add to [% ELSE %] remove from [% END %] - the [% tag FILTER html %] tag. - - [% ELSIF error == "no_bugs_in_list" %] - [% title = "Delete Tag?" %] - This will remove all [% terms.bugs %] from the - [% name FILTER html %] tag. This will delete the tag completely. Click - here - if you really want to delete it. - - [% ELSIF error == "no_bugs_to_remove" %] - [% title = "No Tag Selected" %] - You didn't select a tag from which to remove [% terms.bugs %]. - - [% ELSIF error == "no_initial_bug_status" %] - [% title = "No Initial $terms.Bug Status" %] - No [% terms.bug %] status is available on [% terms.bug %] creation. - Please report the problem to [% Param("maintainer") %]. - - [% ELSIF error == "no_new_quips" %] - [% title = "No New Quips" %] - [% admindocslinks = {'quips.html' => 'Controlling quip usage'} %] - This site does not permit the addition of new quips. - - [% ELSIF error == "no_page_specified" %] - [% title = "No Page Specified" %] - You did not specify the id of a page to display. - - [% ELSIF error == "no_products" %] - [% title = "No Products" %] - [% admindocslinks = {'products.html' => 'Setting up a product', - 'components.html' => 'Adding components to products', - 'groups.html' => 'Groups security'} %] - Either no products have been defined to enter [% terms.bugs %] against or you have not - been given access to any. - - [% ELSIF error == "number_not_numeric" %] - [% title = "Numeric Value Required" %] - The value '[% num FILTER html %]' in the - [% field_descs.$field FILTER html %] field - is not a numeric value. - - [% ELSIF error == "number_too_large" %] - [% title = "Number Too Large" %] - The value '[% num FILTER html %]' in the - [% field_descs.$field FILTER html %] field - is more than the maximum allowable value of '[% max_num FILTER html %]'. - - [% ELSIF error == "number_too_small" %] - [% title = "Number Too Small" %] - The value '[% num FILTER html %]' - in the [% field_descs.$field FILTER html %] field - is less than the minimum allowable value of '[% min_num FILTER html %]'. - - [% ELSIF error == "object_not_specified" %] - [% type = BLOCK %][% INCLUDE object_name class = class %][% END %] - [% title = BLOCK %][% type FILTER ucfirst FILTER html %] Not - Specified[% END %] - You must select/enter a [% type FILTER html %]. - - [% ELSIF error == "object_does_not_exist" %] - [% type = BLOCK %][% INCLUDE object_name class = class %][% END %] - [% title = BLOCK %]Invalid [% type FILTER ucfirst FILTER html %][% END %] - There is no [% type FILTER html %] - [% IF id.defined %] - with the id '[% id FILTER html %]' - [% ELSE %] - named '[% name FILTER html %]' - [% END %] - [% IF product.defined %] - in the '[% product.name FILTER html %]' product - [% END %]. - [% IF class == "Bugzilla::User" %] - Either you mis-typed the name or that user has not yet registered - for a [% terms.Bugzilla %] account. - [% END %] - [% IF class == "Bugzilla::Keyword" %] - The legal keyword names are listed - here. - [% END %] - - [% ELSIF error == "old_password_incorrect" %] - [% title = "Incorrect Old Password" %] - You did not enter your old password correctly. - - [% ELSIF error == "old_password_required" %] - [% title = "Old Password Required" %] - You must enter your old password to change your email address. - - [% ELSIF error == "password_change_requests_not_allowed" %] - [% title = "Password Change Requests Not Allowed" %] - Please go to: http://identity.mageia.org/ to change or recover your password. - - [% ELSIF error == "passwords_dont_match" %] - [% title = "Passwords Don't Match" %] - The two passwords you entered did not match. - - [% ELSIF error == "password_current_too_short" %] - [% title = "New Password Required" %] - Your password is currently less than - [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long, - which is the new minimum length required for passwords. - You must - request a new password in order to log in again. - - [% ELSIF error == "password_too_short" %] - [% title = "Password Too Short" %] - The password must be at least - [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long. - - [% ELSIF error == "patch_too_large" %] - [% title = "File Too Large" %] - The file you are trying to attach is [% filesize FILTER html %] - kilobytes (KB) in size. - Patches cannot be more than [% Param('maxattachmentsize') %] KB in size. - Try splitting your patch into several pieces. - - [% ELSIF error == "product_access_denied" %] - Either the product - [%+ IF id.defined %] - with the id [% id FILTER html %] - [% ELSE %] - '[% name FILTER html %]' - [% END %] - does not exist or you don't have access to it. - - [% ELSIF error == "product_illegal_group" %] - [% title = "Illegal Group" %] - [% group.name FILTER html %] is not an active [% terms.bug %] group - and so you cannot edit group controls for it. - - [% ELSIF error == "product_name_already_in_use" %] - [% title = "Product name already exists" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - The product name '[% product FILTER html %]' already exists. - - [% ELSIF error == "product_name_diff_in_case" %] - [% title = "Product name differs only in case" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - The product name '[% product FILTER html %]' differs from existing - product '[% existing_product FILTER html %]' only in case. - - [% ELSIF error == "product_name_too_long" %] - [% title = "Product name too long" %] - The name of a product is limited to [% constants.MAX_PRODUCT_SIZE FILTER html %] - characters. '[% name FILTER html %]' is too long ([% name.length %] characters). - - [% ELSIF error == "product_must_define_defaultmilestone" %] - [% title = "Must define new default milestone" %] - [% admindocslinks = {'products.html' => 'Administering products', - 'milestones.html' => 'About Milestones'} %] - You must - create the milestone '[% milestone FILTER html %]' before - it can be made the default milestone for product '[% product FILTER html %]'. - - [% ELSIF error == "product_admin_denied" %] - [% title = "Product Access Denied" %] - You are not allowed to edit properties of product '[% product FILTER html %]'. - - [% ELSIF error == "product_blank_name" %] - [% title = "Blank Product Name Not Allowed" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - You must enter a name for the product. - - [% ELSIF error == "product_disabled" %] - [% title = BLOCK %]Product closed for [% terms.Bug %] Entry[% END %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - Sorry, entering [% terms.abug %] into the - product [% product.name FILTER html %] has been disabled. - - [% ELSIF error == "product_edit_denied" %] - [% title = "Product Edit Access Denied" %] - [% admindocslinks = {'products.html' => 'Administering products', - 'groups.html' => 'Group security'} %] - You are not permitted to edit [% terms.bugs %] in product - [%+ product FILTER html %]. - - [% ELSIF error == "product_has_bugs" %] - [% title = BLOCK %]Product has [% terms.Bugs %][% END %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - There are [% nb FILTER html %] [%+ terms.bugs %] entered for this product! - You must move those [% terms.bugs %] to another product before you - can delete this one. - - [% ELSIF error == "product_must_have_description" %] - [% title = "Product needs Description" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - You must enter a description for this product. - - [% ELSIF error == "product_must_have_version" %] - [% title = "Product needs Version" %] - [% admindocslinks = {'products.html' => 'Administering products', - 'versions.html' => 'Administering versions'} %] - You must enter a valid version to create a new product. - - [% ELSIF error == "query_name_exists" %] - [% title = "Search Name Already In Use" %] - The name [% name FILTER html %] is already used by another - saved search. You first have to - delete - it if you really want to use this name. - - [% ELSIF error == "query_name_missing" %] - [% title = "No Search Name Specified" %] - [% docslinks = {'query.html#list' => "$terms.Bug lists"} %] - You must enter a name for your search. - - [% ELSIF error == "query_name_too_long" %] - [% title = "Query Name Too Long" %] - The name of the query must be less than [% constants.MAX_LEN_QUERY_NAME FILTER html %] - characters long. - - [% ELSIF error == "quicksearch_unknown_field" %] - [% title = "QuickSearch Error" %] - There is a problem with your search: - [% FOREACH field = unknown %] -

    [% field FILTER html %] is not a valid field name.

    - [% END %] - [% FOREACH field = ambiguous.keys %] -

    [% field FILTER html %] matches more than one field: - [%+ ambiguous.${field}.join(', ') FILTER html %]

    - [% END %] - - [% IF unknown.size %] -

    The legal field names are - listed here.

    - [% END %] - - [% ELSIF error == "reassign_to_empty" %] - [% title = "Illegal Reassignment" %] - To reassign [% terms.abug %], you must provide an address for - the new assignee. - - [% ELSIF error == "require_component" %] - [% title = "Component Needed" %] - To file this [% terms.bug %], you must first choose a component. - If necessary, just guess. - - [% ELSIF error == "relationship_loop_single" %] - [% title = "Relationship Loop Detected" %] - [% field_descs.$field_name FILTER html %] - for [% terms.bug %] [%+ bug_id FILTER html %] - has a circular dependency on [% terms.bug %] [%+ dep_id FILTER html %]. - - [% ELSIF error == "request_queue_group_invalid" %] - The group field [% group FILTER html %] is invalid. - - [% ELSIF error == "require_new_password" %] - [% title = "New Password Needed" %] - You cannot change your password without choosing a new one. - - [% ELSIF error == "required_field" %] - [% title = "Field Must Be Set" %] - A value must be set for the '[% field_descs.${field.name} FILTER html %]' - field. - - [% ELSIF error == "require_summary" %] - [% title = "Summary Needed" %] - You must enter a summary for this [% terms.bug %]. - - [% ELSIF error == "resolution_cant_clear" %] - [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] is - closed, so you cannot clear its resolution. - - [% ELSIF error == "resolution_not_allowed" %] - [% title = "Resolution Not Allowed" %] - You cannot set a resolution for open [% terms.bugs %]. - - [% ELSIF error == "saved_search_used_by_whines" %] - [% title = "Saved Search In Use" %] - [% docslinks = {'whining.html' => 'About Whining'} %] - The saved search [% search_name FILTER html %] is being used - by Whining events with the following subjects: - [%+ subjects FILTER html %] - - [% ELSIF error == "search_content_without_matches" %] - [% title = "Illegal Search" %] - The "content" field can only be used with "matches" search - and the "matches" search can only be used with the "content" - field. - - [% ELSIF error == "series_already_exists" %] - [% title = "Series Already Exists" %] - [% docslinks = {'reporting.html' => 'Reporting'} %] - A series named [% series.category FILTER html %] / - [%+ series.subcategory FILTER html %] / - [%+ series.name FILTER html %] - already exists. - - [% ELSIF error == "sidebar_supports_mozilla_only" %] - Sorry - sidebar.cgi currently only supports Mozilla based web browsers. - Upgrade today. :-) - - [% ELSIF error == "still_unresolved_bugs" %] - [% title = "Unresolved Dependencies" %] - [% terms.Bug %] [%+ bug_id FILTER bug_link(bug_id) FILTER none %] - has [% dep_count FILTER none %] unresolved - [% IF dep_count == 1 %] - dependency - [% ELSE %] - dependencies - [% END %]. - They must either be resolved or removed from the - "[% field_descs.dependson FILTER html %]" field before you can resolve - this [% terms.bug %] as [% display_value("resolution", "FIXED") FILTER html %]. - - [% ELSIF error == "sudo_invalid_cookie" %] - [% title = "Invalid Sudo Cookie" %] - Your sudo cookie is invalid. Either it expired or you didn't start - a sudo session correctly. Refresh the page or load another page - to continue what you are doing as yourself. - - [% ELSIF error == "sudo_illegal_action" %] - [% title = "Impersonation Not Authorized" %] - [% IF NOT sudoer.in_group("bz_sudoers") %] - You are not allowed to impersonate users. - [% ELSIF target_user AND target_user.in_group("bz_sudo_protect") %] - You are not allowed to impersonate [% target_user.identity FILTER html %]. - [% ELSE %] - The user you tried to impersonate doesn't exist. - [% END %] - - [% ELSIF error == "sudo_in_progress" %] - [% title = "Session In Progress" %] - A sudo session (impersonating [% target FILTER html %]) is in progress. - End that session (using the link in the footer) before starting a new one. - - [% ELSIF error == "sudo_password_required" %] - [% title = "Password Required" %] - Your [% terms.Bugzilla %] password is required to begin a sudo - session. Please go back and enter your password. - - [% ELSIF error == "sudo_preparation_required" %] - [% title = "Preparation Required" %] - You may not start a sudo session directly. Please - start your session normally. - - [% ELSIF error == "sudo_protected" %] - [% title = "User Protected" %] - The user [% login FILTER html %] may not be impersonated by sudoers. - - [% ELSIF error == "token_does_not_exist" %] - [% title = "Token Does Not Exist" %] - The token you submitted does not exist, has expired, or has - been canceled. - - [% ELSIF error == "too_soon_for_new_token" %] - [% title = "Too Soon For New Token" %] - You have requested - [% IF type == "password" %] - a password - [% ELSIF type == "account" %] - an account - [% END %] - token too recently to request another. Please wait a while and try again. - - [% ELSIF error == "unknown_action" %] - [% IF action %] - Unknown action [% action FILTER html %]! - [% ELSE %] - I could not figure out what you wanted to do. - [% END %] - - [% ELSIF error == "unknown_tab" %] - [% title = "Unknown Tab" %] - [% current_tab_name FILTER html %] is not a legal tab name. - - [% ELSIF error == "version_already_exists" %] - [% title = "Version Already Exists" %] - [% admindocslinks = {'versions.html' => 'Administering versions'} %] - The version '[% name FILTER html %]' already exists for product ' - [%- product FILTER html %]'. - - [% ELSIF error == "version_blank_name" %] - [% title = "Blank Version Name Not Allowed" %] - You must enter a name for this version. - - [% ELSIF error == "version_has_bugs" %] - [% title = BLOCK %]Version has [% terms.Bugs %][% END %] - There are [% nb FILTER html %] [%+ terms.bugs %] associated with this - version! You must reassign those [% terms.bugs %] to another version - before you can delete this one. - - [% ELSIF error == "users_deletion_disabled" %] - [% title = "Deletion not activated" %] - [% admindocslinks = {'useradmin.html' => 'User administration'} %] - Sorry, the deletion of user accounts is not allowed. - - [% ELSIF error == "user_has_responsibility" %] - [% title = "Can't Delete User Account" %] - [% admindocslinks = {'useradmin.html' => 'User administration'} %] - The user you want to delete is set up as the default [% terms.bug %] - assignee - [% IF Param('useqacontact') %] - or QA contact - [% END %] - for at least one component. - For this reason, you cannot delete the account at this time. - - [% ELSIF error == "user_access_by_id_denied" %] - [% title = "User Access By Id Denied" %] - Logged-out users cannot use the "ids" argument to this function - to access any user information. - - [% ELSIF error == "user_access_by_match_denied" %] - [% title = "User-Matching Denied" %] - Logged-out users cannot use the "match" argument to this function - to access any user information. - - [% ELSIF error == "user_login_required" %] - [% title = "Login Name Required" %] - [% admindocslinks = {'useradmin.html' => 'User administration'} %] - You must enter a login name for the new user. - - [% ELSIF error == "user_match_failed" %] - [% title = "Match Failed" %] - [% name FILTER html %] does not exist or you are not allowed - to see that user. - - [% ELSIF error == "user_match_too_many" %] - [% title = "No Conclusive Match" %] - [% terms.Bugzilla %] cannot make a conclusive match for one or more - of the names and/or email addresses you entered for - the [% fields.join(', ') FILTER html %] field(s). - - [% ELSIF error == "user_not_insider" %] - [% title = "User Not In Insidergroup" %] - Sorry, but you are not allowed to (un)mark comments or attachments - as private. - - [% ELSIF error == "wrong_token_for_cancelling_email_change" %] - [% title = "Wrong Token" %] - That token cannot be used to cancel an email address change. - - [% ELSIF error == "wrong_token_for_changing_passwd" %] - [% title = "Wrong Token" %] - That token cannot be used to change your password. - - [% ELSIF error == "wrong_token_for_confirming_email_change" %] - [% title = "Wrong Token" %] - That token cannot be used to change your email address. - - [% ELSIF error == "wrong_token_for_creating_account" %] - [% title = "Wrong Token" %] - That token cannot be used to create a user account. - - [% ELSIF error == "xmlrpc_invalid_value" %] - "[% value FILTER html %]" is not a valid value for a - <[% type FILTER html %]> field. (See the XML-RPC specification - for details.) - - [% ELSIF error == "zero_length_file" %] - [% title = "File Is Empty" %] - The file you are trying to attach is empty, does not exist, or you don't - have permission to read it. - - [% ELSIF error == "illegal_user_id" %] - [% title = "Illegal User ID" %] - User ID '[% userid FILTER html %]' is not valid integer. - - [% ELSE %] - - [%# Try to find hooked error messages %] - [% error_message = Hook.process("errors") %] - - [% IF not error_message %] - [% title = "Error string not found" %] - The user error string [% error FILTER html %] was not found. - Please send email to [% Param("maintainer") %] describing the steps taken - to obtain this message. - [% ELSE %] - [% error_message FILTER none %] - [% END %] - [% END %] -[% END %] - -[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %] -[% USE Bugzilla %] -[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %] - [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %] - [% error_message FILTER none %] - [% ELSE %] - [% error_message FILTER txt %] - [% END %] - [% RETURN %] -[% END %] - -[% UNLESS header_done %] - [% PROCESS global/header.html.tmpl %] -[% END %] - -[% PROCESS global/docslinks.html.tmpl - docslinks = docslinks - admindocslinks = admindocslinks -%] - - - - - -
    - [% error_message FILTER none %] -
    - -

    - Please press Back and try again. -

    - -[%# If a saved search fails, people want the ability to edit or delete it. - # This is the best way of getting information about that possible saved - # search from any error call location. %] - -[% namedcmd = Bugzilla.cgi.param("namedcmd") %] -[% sharer_id = Bugzilla.cgi.param("sharer_id") %] -[% IF namedcmd AND error != "missing_query" - AND error != "saved_search_used_by_whines" - AND !sharer_id %] -

    - Alternatively, you can - forget - - [% FOREACH q = Bugzilla.user.queries %] - [% IF q.name == namedcmd %] - or edit - [% END %] - [% END %] - - the saved search '[% namedcmd FILTER html %]'. -

    -[% END %] - -[% PROCESS global/footer.html.tmpl %] - -[% BLOCK object_name %] - [% IF class == "Bugzilla::Attachment" %] - attachment - [% ELSIF class == "Bugzilla::User" %] - user - [% ELSIF class == "Bugzilla::Classification" %] - classification - [% ELSIF class == "Bugzilla::Product" %] - product - [% ELSIF class == "Bugzilla::Component" %] - component - [% ELSIF class == "Bugzilla::Version" %] - version - [% ELSIF class == "Bugzilla::Milestone" %] - milestone - [% ELSIF class == "Bugzilla::Status" %] - status - [% ELSIF class == "Bugzilla::Flag" %] - flag - [% ELSIF class == "Bugzilla::FlagType" %] - flagtype - [% ELSIF class == "Bugzilla::Field" %] - field - [% ELSIF class == "Bugzilla::Group" %] - group - [% ELSIF class == "Bugzilla::Keyword" %] - keyword - [% ELSIF class == "Bugzilla::Search::Recent" %] - recent search - [% ELSIF class == "Bugzilla::Search::Saved" %] - saved search - [% ELSIF ( matches = class.match('^Bugzilla::Field::Choice::(.+)') ) %] - [% SET field_name = matches.0 %] - [% field_descs.$field_name FILTER html %] - [% END %] - [% Hook.process('end_object_name', 'global/user-error.html.tmpl') %] -[% END %] -- cgit v1.2.1 From 47d31a6e250ee6bd13764186f3f3d29ebcdf915d Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Wed, 20 Feb 2013 23:04:01 +0000 Subject: Adapt to new API --- .../en/default/bug/create/create-guided.html.tmpl | 2 +- template/en/default/global/common-links.html.tmpl | 117 --------------------- 2 files changed, 1 insertion(+), 118 deletions(-) delete mode 100644 template/en/default/global/common-links.html.tmpl diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl index bee5f01..19e7ba0 100644 --- a/template/en/default/bug/create/create-guided.html.tmpl +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -221,7 +221,7 @@ function onChangePackage(input_obj) { To pick the right component, you could use the same one as similar [% terms.bugs %] you found in your search, or read the full list of component + [% product.name FILTER uri %]">component descriptions (opens in new window) if you need more help.

    diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl deleted file mode 100644 index 6f99a64..0000000 --- a/template/en/default/global/common-links.html.tmpl +++ /dev/null @@ -1,117 +0,0 @@ -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): Gervase Markham - # Svetlana Harisova - #%] - -[% DEFAULT qs_suffix = "" %] -[% USE Bugzilla %] - - - -[% Hook.process("link-row") %] -[% BLOCK link_to_documentation %] - [% IF doc_section && Param('docs_urlbase') %] -
  • - | - Help -
  • - [% END %] -[% END %] -- cgit v1.2.1 From 7ae105054dd70179ba8f341b256bb77ed3e3627c Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Wed, 20 Feb 2013 23:17:07 +0000 Subject: FIx version --- template/en/default/bug/create/create-guided.html.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl index 19e7ba0..8df0896 100644 --- a/template/en/default/bug/create/create-guided.html.tmpl +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -234,8 +234,8 @@ function onChangePackage(input_obj) { -- cgit v1.2.1 From 4b9f888bd2a07fa7fba983682ec01f6cd822697b Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Thu, 21 Feb 2013 00:49:06 +0000 Subject: Fix mails headers --- template/en/default/email/bugmail-header.txt.tmpl | 36 ++++++++++++ template/en/default/email/newchangedmail.txt.tmpl | 70 ----------------------- 2 files changed, 36 insertions(+), 70 deletions(-) create mode 100644 template/en/default/email/bugmail-header.txt.tmpl delete mode 100644 template/en/default/email/newchangedmail.txt.tmpl diff --git a/template/en/default/email/bugmail-header.txt.tmpl b/template/en/default/email/bugmail-header.txt.tmpl new file mode 100644 index 0000000..cdda89a --- /dev/null +++ b/template/en/default/email/bugmail-header.txt.tmpl @@ -0,0 +1,36 @@ +[%# 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/reason-descs.none.tmpl" %] +[% isnew = bug.lastdiffed ? 0 : 1 %] +[% show_new = isnew + && (to_user.settings.bugmail_new_prefix.value == 'on') %] + +From: [% Param('mailfrom') %] +To: [% to_user.email %] +Subject: [[% terms.Bug %] [%+ bug.id %]] [% '[New]: ' IF show_new %][%+ bug.short_desc %] +Date: [% date %] +X-Bugzilla-Reason: [% reasonsheader %] +X-Bugzilla-Type: [% isnew ? 'new' : 'changed' %] +X-Bugzilla-Watch-Reason: [% reasonswatchheader %] +[% IF Param('useclassification') %] +X-Bugzilla-Classification: [% bug.classification %] +[% END %] +X-Bugzilla-Product: [% bug.product %] +X-Bugzilla-Component: [% bug.component %] +X-Bugzilla-Version: [% bug.version %] +X-Bugzilla-Keywords: [% bug.keywords %] +X-Bugzilla-Severity: [% bug.bug_severity %] +X-Bugzilla-Who: [% changer.login %] +X-Bugzilla-Status: [% bug.bug_status %] +X-Bugzilla-Priority: [% bug.priority %] +X-Bugzilla-Assigned-To: [% bug.assigned_to.login %] +X-Bugzilla-Target-Milestone: [% bug.target_milestone %] +X-Bugzilla-Flags:[% FOREACH flag = bug.flags %] [%+ flag.name %][% flag.status %][% END %] +X-Bugzilla-Changed-Fields: [% changedfields.join(" ") %] +[%+ threadingmarker %] diff --git a/template/en/default/email/newchangedmail.txt.tmpl b/template/en/default/email/newchangedmail.txt.tmpl deleted file mode 100644 index c3a9d40..0000000 --- a/template/en/default/email/newchangedmail.txt.tmpl +++ /dev/null @@ -1,70 +0,0 @@ -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): André Batosti - #%] - -[% PROCESS "global/variables.none.tmpl" %] -[% PROCESS "global/reason-descs.none.tmpl" %] - -From: [% Param('mailfrom') %] -To: [% to_user.email %] -Subject: [[% terms.Bug %] [%+ bugid %]] [% '[New]: ' IF isnew %][%+ bug.short_desc %] -Date: [% date %] -X-Bugzilla-Reason: [% reasonsheader %] -X-Bugzilla-Type: [% isnew ? 'new' : 'changed' %] -X-Bugzilla-Watch-Reason: [% reasonswatchheader %] -[% IF Param('useclassification') %] -X-Bugzilla-Classification: [% bug.classification %] -[% END %] -X-Bugzilla-Product: [% bug.product %] -X-Bugzilla-Component: [% bug.component %] -X-Bugzilla-Keywords: [% bug.keywords %] -X-Bugzilla-Severity: [% bug.bug_severity %] -X-Bugzilla-Who: [% changer.login %] -X-Bugzilla-Status: [% bug.bug_status %] -X-Bugzilla-Priority: [% bug.priority %] -X-Bugzilla-Assigned-To: [% bug.assigned_to.login %] -X-Bugzilla-Target-Milestone: [% bug.target_milestone %] -X-Bugzilla-Changed-Fields: [% changedfields.join(" ") %] -[%+ threadingmarker %] - -[%+ urlbase %]show_bug.cgi?id=[% bug.id %] -[%- IF diffs %] - -[%+ diffs %] -[% END -%] -[% FOREACH comment = new_comments %] - -[%- IF comment.count %] ---- Comment #[% comment.count %] from [% comment.author.identity %] [%+ comment.creation_ts FILTER time(undef, to_user.timezone) %] --- -[% END %] -[%+ comment.body_full({ is_bugmail => 1, wrap => 1 }) %] -[% END %] - --- [%# Protect the trailing space of the signature marker %] -Configure [% terms.bug %]mail: [% urlbase %]userprefs.cgi?tab=email -------- You are receiving this mail because: ------- -[% SET reason_lines = [] %] -[% FOREACH reason = reasons %] - [% reason_lines.push(reason_descs.$reason) IF reason_descs.$reason %] -[% END %] -[% FOREACH reason = reasons_watch %] - [% reason_lines.push(watch_reason_descs.$reason) - IF watch_reason_descs.$reason %] -[% END %] -[%+ reason_lines.join("\n") %] -- cgit v1.2.1 From a928b974484fce8e5bb4e793ac36d240196ab9f5 Mon Sep 17 00:00:00 2001 From: Dexter Morgan Date: Sun, 24 Feb 2013 20:52:05 +0000 Subject: Remove this hack --- template/en/default/bug/edit.html.tmpl | 2 -- 1 file changed, 2 deletions(-) diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index dbc23c8..2d8d3f8 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -557,7 +557,6 @@ [%############################################################################%] [% BLOCK section_url_keyword_whiteboard %] [%# *** URL Whiteboard Keywords *** %] -[% IF Param('useurl') %]