]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1497077 - Convert links to absolute path
authorKohei Yoshino <kohei.yoshino@gmail.com>
Tue, 16 Oct 2018 03:56:01 +0000 (23:56 -0400)
committerGitHub <noreply@github.com>
Tue, 16 Oct 2018 03:56:01 +0000 (23:56 -0400)
327 files changed:
Bugzilla/Install/Localconfig.pm
Bugzilla/Template.pm
extensions/AntiSpam/template/en/default/hook/admin/admin-end_links_right.html.tmpl
extensions/BMO/template/en/default/account/create.html.tmpl
extensions/BMO/template/en/default/bug/create/create-automative.html.tmpl
extensions/BMO/template/en/default/bug/create/create-client-bounty.html.tmpl
extensions/BMO/template/en/default/bug/create/create-comm-newsletter.html.tmpl
extensions/BMO/template/en/default/bug/create/create-costume.html.tmpl
extensions/BMO/template/en/default/bug/create/create-creative.html.tmpl
extensions/BMO/template/en/default/bug/create/create-crm.html.tmpl
extensions/BMO/template/en/default/bug/create/create-data-compliance.html.tmpl
extensions/BMO/template/en/default/bug/create/create-dev-engagement-event.html.tmpl
extensions/BMO/template/en/default/bug/create/create-doc.html.tmpl
extensions/BMO/template/en/default/bug/create/create-finance.html.tmpl
extensions/BMO/template/en/default/bug/create/create-fsa-budget.html.tmpl
extensions/BMO/template/en/default/bug/create/create-intern.html.tmpl
extensions/BMO/template/en/default/bug/create/create-ipp.html.tmpl
extensions/BMO/template/en/default/bug/create/create-itrequest.html.tmpl
extensions/BMO/template/en/default/bug/create/create-legal.html.tmpl
extensions/BMO/template/en/default/bug/create/create-mdn.html.tmpl
extensions/BMO/template/en/default/bug/create/create-mobile-compat.html.tmpl
extensions/BMO/template/en/default/bug/create/create-mozlist.html.tmpl
extensions/BMO/template/en/default/bug/create/create-mozpr.html.tmpl
extensions/BMO/template/en/default/bug/create/create-name-clearance.html.tmpl
extensions/BMO/template/en/default/bug/create/create-nda.html.tmpl
extensions/BMO/template/en/default/bug/create/create-recoverykey.html.tmpl
extensions/BMO/template/en/default/bug/create/create-recruiting.html.tmpl
extensions/BMO/template/en/default/bug/create/create-screen-share-whitelist.html.tmpl
extensions/BMO/template/en/default/bug/create/create-shield-studies.html.tmpl
extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl
extensions/BMO/template/en/default/bug/create/create-trademark.html.tmpl
extensions/BMO/template/en/default/bug/create/create-user-engagement.html.tmpl
extensions/BMO/template/en/default/bug/create/create-web-bounty.html.tmpl
extensions/BMO/template/en/default/bug/create/created-intern.html.tmpl
extensions/BMO/template/en/default/bug/create/created-recruiting.html.tmpl
extensions/BMO/template/en/default/bug/create/custom_forms.none.tmpl
extensions/BMO/template/en/default/bug/create/user-message.html.tmpl
extensions/BMO/template/en/default/global/choose-product.html.tmpl
extensions/BMO/template/en/default/hook/attachment/list-action.html.tmpl
extensions/BMO/template/en/default/hook/attachment/list-warnings.html.tmpl
extensions/BMO/template/en/default/hook/bug/create/create-end.html.tmpl
extensions/BMO/template/en/default/hook/bug_modal/attachments-row.html.tmpl
extensions/BMO/template/en/default/hook/bug_modal/attachments-warnings.html.tmpl
extensions/BMO/template/en/default/hook/bug_modal/edit-top_actions.html.tmpl
extensions/BMO/template/en/default/hook/global/header-additional_header.html.tmpl
extensions/BMO/template/en/default/hook/global/user-error-error_message.html.tmpl
extensions/BMO/template/en/default/hook/global/user-error.html.tmpl/auth_failure/permissions.html.tmpl
extensions/BMO/template/en/default/hook/list/list-links.html.tmpl
extensions/BMO/template/en/default/hook/reports/menu-end.html.tmpl
extensions/BMO/template/en/default/list/server-push.html.tmpl
extensions/BMO/template/en/default/pages/attachment_bounty_form.html.tmpl
extensions/BMO/template/en/default/pages/etiquette.html.tmpl
extensions/BMO/template/en/default/pages/get_permissions.html.tmpl
extensions/BMO/template/en/default/pages/group_members.html.tmpl
extensions/BMO/template/en/default/pages/group_membership.html.tmpl
extensions/BMO/template/en/default/pages/product_security_report.html.tmpl
extensions/BMO/template/en/default/pages/query_database.html.tmpl
extensions/BMO/template/en/default/pages/release_tracking_report.html.tmpl
extensions/BMO/template/en/default/pages/triage_owners.html.tmpl
extensions/BMO/template/en/default/pages/triage_reports.html.tmpl
extensions/BMO/template/en/default/pages/triage_request.html.tmpl
extensions/BMO/template/en/default/pages/upgrade-3.6.html.tmpl
extensions/BMO/template/en/default/pages/user_activity.html.tmpl
extensions/BMO/web/js/attachment_bounty_form.js
extensions/BMO/web/js/edit_bug.js
extensions/BMO/web/js/edituser_menu.js
extensions/BMO/web/js/new-bug-frequent-comp.js
extensions/BMO/web/js/release_tracking_report.js
extensions/Bitly/web/js/bitly.js
extensions/BugModal/template/en/default/bug_modal/activity_stream.html.tmpl
extensions/BugModal/template/en/default/bug_modal/attachments.html.tmpl
extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl
extensions/BugModal/template/en/default/bug_modal/field.html.tmpl
extensions/BugModal/template/en/default/bug_modal/navigate.html.tmpl
extensions/BugModal/template/en/default/bug_modal/new_comment.html.tmpl
extensions/BugModal/template/en/default/bug_modal/user.html.tmpl
extensions/BugModal/web/bug_modal.js
extensions/BugModal/web/comments.js
extensions/BugModal/web/common_bug_modal.js
extensions/BugModal/web/new_bug.js
extensions/BugmailFilter/template/en/default/account/prefs/bugmail_filter.html.tmpl
extensions/ComponentWatching/template/en/default/account/prefs/component_watch.html.tmpl
extensions/ComponentWatching/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl
extensions/ComponentWatching/web/js/overlay.js
extensions/EditComments/template/en/default/hook/bug_modal/activity_stream-comment_action.html.tmpl
extensions/EditComments/web/js/editcomments.js
extensions/EditTable/template/en/default/pages/edit_table.html.tmpl
extensions/Example/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl
extensions/FlagTypeComment/template/en/default/flag/type_comment.html.tmpl
extensions/GitHubAuth/template/en/default/hook/account/auth/login-additional_methods.html.tmpl
extensions/GitHubAuth/template/en/default/hook/account/auth/login-small-additional_methods.html.tmpl
extensions/Gravatar/template/en/default/hook/bug/comments-user-image.html.tmpl
extensions/GuidedBugEntry/template/en/default/guided/guided.html.tmpl
extensions/GuidedBugEntry/web/js/guided.js
extensions/GuidedBugEntry/web/js/products.js
extensions/InlineHistory/template/en/default/hook/bug/comments-aftercomments.html.tmpl
extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl
extensions/MyDashboard/template/en/default/hook/global/header-action-links.html.tmpl
extensions/MyDashboard/template/en/default/pages/mydashboard.html.tmpl
extensions/MyDashboard/web/js/flags.js
extensions/MyDashboard/web/js/query.js
extensions/ProdCompSearch/template/en/default/prodcompsearch/form.html.tmpl
extensions/ProdCompSearch/web/js/prod_comp_search.js
extensions/Push/template/en/default/hook/admin/admin-end_links_right.html.tmpl
extensions/Push/template/en/default/pages/push_config.html.tmpl
extensions/Push/template/en/default/pages/push_queues_view.html.tmpl
extensions/REMO/template/en/default/bug/create/create-csa-discourse.html.tmpl
extensions/REMO/template/en/default/bug/create/create-mozreps.html.tmpl
extensions/REMO/template/en/default/bug/create/create-remo-budget.html.tmpl
extensions/REMO/template/en/default/bug/create/create-remo-swag.html.tmpl
extensions/REMO/template/en/default/bug/create/created-mozreps.html.tmpl
extensions/REMO/template/en/default/bug/create/created-remo-budget.html.tmpl
extensions/REMO/template/en/default/hook/global/user-error-errors.html.tmpl
extensions/REMO/template/en/default/pages/remo-form-payment.html.tmpl
extensions/REMO/web/js/payment.js
extensions/RequestNagger/template/en/default/pages/request_defer.html.tmpl
extensions/RestrictComments/template/en/default/hook/bug/edit-after_comment_commit_button.html.tmpl
extensions/RestrictComments/template/en/default/pages/restrict_comments_guidelines.html.tmpl
extensions/Review/template/en/default/hook/global/header-badge.html.tmpl
extensions/Review/template/en/default/hook/reports/menu-end.html.tmpl
extensions/Review/template/en/default/pages/review_suggestions.html.tmpl
extensions/Review/web/js/badge.js
extensions/Review/web/js/review.js
extensions/Review/web/js/review_history.js
extensions/SecureMail/template/en/default/account/prefs/securemail.html.tmpl
extensions/SecureMail/template/en/default/pages/securemail/help.html.tmpl
extensions/ShadowBugs/template/en/default/hook/bug/comments-aftercomments.html.tmpl
extensions/ShadowBugs/template/en/default/hook/bug/edit-after_comment_textarea.html.tmpl
extensions/Splinter/lib/Util.pm
extensions/Splinter/template/en/default/pages/splinter.html.tmpl
extensions/TrackingFlags/template/en/default/hook/admin/admin-end_links_right.html.tmpl
extensions/TrackingFlags/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl
extensions/TrackingFlags/template/en/default/pages/tracking_flags_admin_edit.html.tmpl
extensions/TrackingFlags/template/en/default/pages/tracking_flags_admin_list.html.tmpl
extensions/UserProfile/template/en/default/hook/account/prefs/account-start.html.tmpl
extensions/UserProfile/template/en/default/pages/user_profile.html.tmpl
extensions/Voting/template/en/default/hook/admin/products/updated-changes.html.tmpl
extensions/Voting/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl
extensions/Voting/template/en/default/hook/bug/edit-after_importance.html.tmpl
extensions/Voting/template/en/default/pages/voting/bug.html.tmpl
extensions/Voting/template/en/default/pages/voting/user.html.tmpl
extensions/Voting/template/en/default/voting/delete-all.html.tmpl
js/account.js
js/attachment.js
js/bug.js
js/comment-tagging.js
js/field.js
js/global.js
js/instant-search.js
qa/t/lib/QA/Util.pm
qa/t/test_bmo_retire_values.t
qa/t/test_classifications.t
qa/t/test_custom_fields.t
qa/t/test_custom_fields_admin.t
qa/t/test_default_groups.t
qa/t/test_edit_products_properties.t
qa/t/test_flags.t
qa/t/test_flags2.t
qa/t/test_groups.t
qa/t/test_keywords.t
qa/t/test_private_attachments.t
qa/t/test_saved_searches.t
qa/t/test_shared_searches.t
qa/t/test_target_milestones.t
qa/t/test_user_groups.t
qa/t/test_votes.t
template/en/default/account/auth/delegation.html.tmpl
template/en/default/account/auth/login-small.html.tmpl
template/en/default/account/auth/login.html.tmpl
template/en/default/account/create.html.tmpl
template/en/default/account/email/confirm-new.html.tmpl
template/en/default/account/email/confirm.html.tmpl
template/en/default/account/password/set-forgotten-password.html.tmpl
template/en/default/account/prefs/account.html.tmpl
template/en/default/account/prefs/email.html.tmpl
template/en/default/account/prefs/mfa.html.tmpl
template/en/default/account/prefs/permissions.html.tmpl
template/en/default/account/prefs/prefs.html.tmpl
template/en/default/account/prefs/saved-searches.html.tmpl
template/en/default/account/prefs/tabs.html.tmpl
template/en/default/account/profile-activity.html.tmpl
template/en/default/account/reset-password.html.tmpl
template/en/default/admin/admin.html.tmpl
template/en/default/admin/classifications/add.html.tmpl
template/en/default/admin/classifications/del.html.tmpl
template/en/default/admin/classifications/edit.html.tmpl
template/en/default/admin/classifications/footer.html.tmpl
template/en/default/admin/classifications/reclassify.html.tmpl
template/en/default/admin/classifications/select.html.tmpl
template/en/default/admin/components/confirm-delete.html.tmpl
template/en/default/admin/components/create.html.tmpl
template/en/default/admin/components/edit.html.tmpl
template/en/default/admin/components/footer.html.tmpl
template/en/default/admin/components/list.html.tmpl
template/en/default/admin/components/select-product.html.tmpl
template/en/default/admin/custom_fields/confirm-delete.html.tmpl
template/en/default/admin/custom_fields/create.html.tmpl
template/en/default/admin/custom_fields/edit.html.tmpl
template/en/default/admin/custom_fields/list.html.tmpl
template/en/default/admin/fieldvalues/confirm-delete.html.tmpl
template/en/default/admin/fieldvalues/create.html.tmpl
template/en/default/admin/fieldvalues/edit.html.tmpl
template/en/default/admin/fieldvalues/footer.html.tmpl
template/en/default/admin/flag-type/confirm-delete.html.tmpl
template/en/default/admin/flag-type/edit.html.tmpl
template/en/default/admin/flag-type/list.html.tmpl
template/en/default/admin/groups/confirm-remove.html.tmpl
template/en/default/admin/groups/create.html.tmpl
template/en/default/admin/groups/delete.html.tmpl
template/en/default/admin/groups/edit.html.tmpl
template/en/default/admin/groups/list.html.tmpl
template/en/default/admin/keywords/confirm-delete.html.tmpl
template/en/default/admin/keywords/create.html.tmpl
template/en/default/admin/keywords/edit.html.tmpl
template/en/default/admin/keywords/list.html.tmpl
template/en/default/admin/milestones/confirm-delete.html.tmpl
template/en/default/admin/milestones/create.html.tmpl
template/en/default/admin/milestones/edit.html.tmpl
template/en/default/admin/milestones/footer.html.tmpl
template/en/default/admin/milestones/list.html.tmpl
template/en/default/admin/milestones/select-product.html.tmpl
template/en/default/admin/params/editparams.html.tmpl
template/en/default/admin/params/index.html.tmpl
template/en/default/admin/products/confirm-delete.html.tmpl
template/en/default/admin/products/create.html.tmpl
template/en/default/admin/products/edit.html.tmpl
template/en/default/admin/products/footer.html.tmpl
template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl
template/en/default/admin/products/groupcontrol/edit.html.tmpl
template/en/default/admin/products/list.html.tmpl
template/en/default/admin/products/updated.html.tmpl
template/en/default/admin/sanitycheck/messages.html.tmpl
template/en/default/admin/settings/edit.html.tmpl
template/en/default/admin/sudo.html.tmpl
template/en/default/admin/table.html.tmpl
template/en/default/admin/users/confirm-delete.html.tmpl
template/en/default/admin/users/create.html.tmpl
template/en/default/admin/users/edit.html.tmpl
template/en/default/admin/users/list.html.tmpl
template/en/default/admin/users/responsibilities.html.tmpl
template/en/default/admin/users/search.html.tmpl
template/en/default/admin/users/userdata.html.tmpl
template/en/default/admin/versions/confirm-delete.html.tmpl
template/en/default/admin/versions/create.html.tmpl
template/en/default/admin/versions/edit.html.tmpl
template/en/default/admin/versions/footer.html.tmpl
template/en/default/admin/versions/list.html.tmpl
template/en/default/admin/versions/select-product.html.tmpl
template/en/default/admin/workflow/comment.html.tmpl
template/en/default/admin/workflow/edit.html.tmpl
template/en/default/attachment/choose.html.tmpl
template/en/default/attachment/confirm-delete.html.tmpl
template/en/default/attachment/create.html.tmpl
template/en/default/attachment/created.html.tmpl
template/en/default/attachment/diff-header.html.tmpl
template/en/default/attachment/edit.html.tmpl
template/en/default/attachment/list.html.tmpl
template/en/default/attachment/midair.html.tmpl
template/en/default/attachment/show-multiple.html.tmpl
template/en/default/attachment/updated.html.tmpl
template/en/default/bug/activity/table.html.tmpl
template/en/default/bug/choose.html.tmpl
template/en/default/bug/comment.html.tmpl
template/en/default/bug/comments.html.tmpl
template/en/default/bug/create/create-guided.html.tmpl
template/en/default/bug/create/create.html.tmpl
template/en/default/bug/create/make-template.html.tmpl
template/en/default/bug/create/user-message.html.tmpl
template/en/default/bug/dependency-graph.html.tmpl
template/en/default/bug/dependency-tree.html.tmpl
template/en/default/bug/edit.html.tmpl
template/en/default/bug/field.html.tmpl
template/en/default/bug/link.html.tmpl
template/en/default/bug/navigate.html.tmpl
template/en/default/bug/new_bug.html.tmpl
template/en/default/bug/process/confirm-duplicate.html.tmpl
template/en/default/bug/process/midair.html.tmpl
template/en/default/bug/process/updates-disabled.html.tmpl
template/en/default/bug/process/verify-new-product.html.tmpl
template/en/default/bug/show-multiple.html.tmpl
template/en/default/bug/show.html.tmpl
template/en/default/bug/summarize-time.html.tmpl
template/en/default/bug/tagging.html.tmpl
template/en/default/email/bugmail.html.tmpl
template/en/default/extensions/web-readme.txt.tmpl
template/en/default/global/confirm-action.html.tmpl
template/en/default/global/header-search-dropdown.html.tmpl
template/en/default/global/header.html.tmpl
template/en/default/global/messages.html.tmpl
template/en/default/global/site-navigation.html.tmpl
template/en/default/global/user-error.html.tmpl
template/en/default/index.html.tmpl
template/en/default/list/change-columns.html.tmpl
template/en/default/list/edit-multiple.html.tmpl
template/en/default/list/list.html.tmpl
template/en/default/list/quips.html.tmpl
template/en/default/list/table.html.tmpl
template/en/default/mfa/protected.html.tmpl
template/en/default/pages/bug-writing.html.tmpl
template/en/default/pages/linkify.html.tmpl
template/en/default/pages/quicksearch.html.tmpl
template/en/default/pages/release-notes.html.tmpl
template/en/default/pages/release-notes3.html.tmpl
template/en/default/reports/chart.html.tmpl
template/en/default/reports/components.html.tmpl
template/en/default/reports/create-chart.html.tmpl
template/en/default/reports/delete-series.html.tmpl
template/en/default/reports/duplicates-table.html.tmpl
template/en/default/reports/duplicates.html.tmpl
template/en/default/reports/edit-series.html.tmpl
template/en/default/reports/keywords.html.tmpl
template/en/default/reports/menu.html.tmpl
template/en/default/reports/old-charts.html.tmpl
template/en/default/reports/report-table.html.tmpl
template/en/default/reports/report.html.tmpl
template/en/default/request/queue.html.tmpl
template/en/default/rest.html.tmpl
template/en/default/robots.txt.tmpl
template/en/default/search/knob.html.tmpl
template/en/default/search/search-advanced.html.tmpl
template/en/default/search/search-create-series.html.tmpl
template/en/default/search/search-report-graph.html.tmpl
template/en/default/search/search-report-table.html.tmpl
template/en/default/search/search-specific.html.tmpl
template/en/default/search/tabs.html.tmpl
template/en/default/welcome-admin.html.tmpl
template/en/default/whine/schedule.html.tmpl

index 6650eca279faa6473f61e17bae7d53d603830679..08cd9e80bef80bc39065de0df040a956f47ea27d 100644 (file)
@@ -305,6 +305,13 @@ sub read_localconfig {
     # Use the site's URL as the default Canonical URL
     $config->{canonical_urlbase} //= $config->{urlbase};
 
+    # Get the absolute path of the URLBase value
+    $config->{basepath} = do {
+        my $path = $config->{urlbase};
+        $path =~ s/^https?:\/\/.*?\//\//;
+        $path;
+    };
+
     return $config;
 }
 
index c337b5af8c46d88d250c7c400c8b7523990b2977..9d2296cc8ccac27c46778a83e951297dff9b98ba 100644 (file)
@@ -285,8 +285,8 @@ sub get_attachment_link {
 
         $link_text =~ s/ \[details\]$//;
         $link_text =~ s/ \[diff\]$//;
-        state $urlbase = Bugzilla->localconfig->{urlbase};
-        my $linkval = "${urlbase}attachment.cgi?id=$attachid";
+        state $basepath = Bugzilla->localconfig->{basepath};
+        my $linkval = "${basepath}attachment.cgi?id=$attachid";
 
         # If the attachment is a patch and patch_viewer feature is
         # enabled, add link to the diff.
@@ -368,7 +368,7 @@ sub multiline_sprintf {
 
 sub version_filter {
     my ($file_url) = @_;
-    return "static/v" . Bugzilla->VERSION . "/$file_url";
+    return Bugzilla->localconfig->{basepath} . "static/v" . Bugzilla->VERSION . "/$file_url";
 }
 
 # Set up the skin CSS cascade:
@@ -928,6 +928,9 @@ sub create {
             # Allow templates to access the "corect" URLBase value
             'urlbase' => sub { return Bugzilla->localconfig->{urlbase}; },
 
+            # Allow templates to get the absolute path of the URLBase value
+            'basepath' => sub { return Bugzilla->localconfig->{basepath}; },
+
             # Allow templates to access docs url with users' preferred language
             'docs_urlbase' => sub {
                 my $language = Bugzilla->current_language;
index 2bca45d0737aa2ba4c3dec48a9b36361efa1e59e..2efa8e59f77c25ef679721af89e98e4000e2c859 100644 (file)
@@ -9,8 +9,8 @@
 [% IF user.in_group('can_configure_antispam') %]
   <dt id="antispam">AntiSpam</dt>
   <dd>
-    <a href="page.cgi?id=edit_table.html&amp;table=antispam_domain_blocklist">Domain Blocklist</a><br>
-    <a href="page.cgi?id=edit_table.html&amp;table=antispam_comment_blocklist">Comment Blocklist</a><br>
-    <a href="page.cgi?id=edit_table.html&amp;table=antispam_ip_blocklist">IP Address Blocklist</a><br>
+    <a href="[% basepath FILTER none %]page.cgi?id=edit_table.html&amp;table=antispam_domain_blocklist">Domain Blocklist</a><br>
+    <a href="[% basepath FILTER none %]page.cgi?id=edit_table.html&amp;table=antispam_comment_blocklist">Comment Blocklist</a><br>
+    <a href="[% basepath FILTER none %]page.cgi?id=edit_table.html&amp;table=antispam_ip_blocklist">IP Address Blocklist</a><br>
   </dd>
 [% END %]
index fa897e0e8861a6440362c82bcd5dbc84ce5dfa20..cebdd81fc3496cc349f65cec3a28684f811be521 100644 (file)
@@ -133,7 +133,7 @@ function onSubmit() {
       and Communications Terms of Use</a> for more information.
     </li>
     <li>
-      You understand that your conduct on this site is subject to both <a href="page.cgi?id=etiquette.html">[% terms.Bugzilla %] Etiquette</a>,
+      You understand that your conduct on this site is subject to both <a href="[% basepath FILTER none %]page.cgi?id=etiquette.html">[% terms.Bugzilla %] Etiquette</a>,
       and the <a href="https://www.mozilla.org/about/governance/policies/participation/">Mozilla Community Participation Guidelines</a>.
       By creating an account, you agree to abide by them.
     </li>
@@ -146,7 +146,7 @@ function onSubmit() {
 
   <h2 class="column-header">Create an account</h2>
 
-  <form method="post" action="createaccount.cgi" onsubmit="return onSubmit()">
+  <form method="post" action="[% basepath FILTER none %]createaccount.cgi" onsubmit="return onSubmit()">
     <table id="create-account-form">
     <tr>
     <td class="label">Email Address:</td>
@@ -158,7 +158,7 @@ function onSubmit() {
     <td colspan="2">
       <input type="checkbox" id="etiquette" value="agreed">
       <label for="etiquette">
-      I have read <a href="page.cgi?id=etiquette.html">[% terms.Bugzilla %] Etiquette</a>
+      I have read <a href="[% basepath FILTER none %]page.cgi?id=etiquette.html">[% terms.Bugzilla %] Etiquette</a>
       and the <a href="https://www.mozilla.org/about/governance/policies/participation/">Mozilla Community Participation Guidelines</a>
       and agree to abide by them.
       </label>
@@ -192,7 +192,7 @@ function onSubmit() {
   <tr>
   <td valign="top">
     <a href="[% url FILTER none %]"><img
-    src="extensions/BMO/web/producticons/[% icon FILTER uri %].png"
+    src="[% basepath FILTER none %]extensions/BMO/web/producticons/[% icon FILTER uri %].png"
     border="0" width="64" height="64"></a>
   </td>
   <td valign="top">
index d1ed4b4b54aa4808811bdaecb5a730fbeeb7a900..29014c09c1849d7fcc643e3f2be86239731969d9 100644 (file)
@@ -92,7 +92,7 @@ function validateAndSubmit() {
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-<form id="automative_form" method="post" action="post_bug.cgi"
+<form id="automative_form" method="post" action="[% basepath FILTER none %]post_bug.cgi"
   enctype="multipart/form-data" onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="automative">
   <input type="hidden" name="product" value="Testing">
index 0f1a000aff102eea78c9a12f8bc2a89b9bf08ff7..14cc7b94e0ce0fc4e9a0d8fdc65e6cd7334d9954 100644 (file)
@@ -111,7 +111,7 @@ function validateAndSubmit() {
 
 <h1>Client [% terms.Bug %] Bounty Form</h1>
 
-<form id="client_bounty_form" method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form id="client_bounty_form" method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="product" value="Firefox">
   <input type="hidden" name="component" value="Security">
index 5e1a13c9a96975ca6d9d0237039e01fa2f356eab..a51f8d74107b14cd2aed438c685bb55d7d9e620c 100644 (file)
@@ -86,7 +86,7 @@ function toggleAreaOther() {
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-<form id="newsletter_form" method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form id="newsletter_form" method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="comm-newsletter">
   <input type="hidden" name="product" value="Marketing">
index 732af262945dc99e72eda34e08416544c2835ead..82632873237a81d85e03d4da5cf1e43d2f3081d8 100644 (file)
@@ -150,7 +150,7 @@ YAHOO.util.Event.onDOMReady(function() {
   costume will be sent, and details about the actual costumes.
 </p>
 
-<form method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="costume">
   <input type="hidden" name="product" value="Marketing">
index a53803f909437559abc8d57efd4d56ac97705b55..a83f1fe67d0869806b6207147fec56c0e7131ca9 100644 (file)
@@ -120,7 +120,7 @@ function toggleTypeOther(element) {
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-<form id="creative_form" method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form id="creative_form" method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="creative">
   <input type="hidden" name="product" value="Marketing">
@@ -133,7 +133,7 @@ function toggleTypeOther(element) {
   <input type="hidden" name="status_whiteboard" id="status_whiteboard" value="">
   <input type="hidden" name="token" value="[% token FILTER html %]">
 
-<img title="Creative Initiation Form" src="extensions/BMO/web/images/creative.png">
+<img title="Creative Initiation Form" src="[% basepath FILTER none %]extensions/BMO/web/images/creative.png">
 
 <div class="head_desc">
   Have a new project or campaign that requires copy, design, video or other awesomeness
index fac88e9cb7682648c84812fc390b52223f901c51..df85f142913f29518aaea6624c36b6d0f74577e9 100644 (file)
@@ -90,7 +90,7 @@ $(document).ready(function() {
   <p>Tell us more and then join our weekly meeting for next steps (we’ll send you
     the invite details once you submit the [% terms.bug %]):</p>
 
-  <form method="post" action="post_bug.cgi" id="crmForm">
+  <form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="crmForm">
     <input type="hidden" id="short_desc" name="short_desc" value="CRM/Email Marketing Request">
     <input type="hidden" name="product" value="Marketing">
     <input type="hidden" name="component" value="Email">
index bade9a588c11cf2d6080fe9016b1e05aacee69e1..e64d3500bb856d953d7144efcf897b19953e25fb 100644 (file)
@@ -73,7 +73,7 @@
 
 <h2>Data Compliance Form</h2>
 
-<form method="post" action="post_bug.cgi" id="data_comp_form"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="data_comp_form"
       class="enter_bug_form" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
 <input type="hidden" name="format" value="data-compliance">
index 5478de00fb5458ecd84356c0c90ec13655dc939a..bdb8f3f01cb3c48f6bdb412d1ce7af51fe717fe4 100644 (file)
@@ -50,7 +50,7 @@
 
 <h2>Developer Events Request Form</h2>
 
-<form method="post" action="post_bug.cgi" id="dev_form"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="dev_form"
       class="enter_bug_form" enctype="multipart/form-data">
 <input type="hidden" name="format" value="dev-engagement-event">
 <input type="hidden" name="product" value="Developer Engagement">
index 9ff4ef2e3990a90730077f2f412f5f70c5fff2ff..61460b4eca470956039ad6c8c97b3d4dce3f3c53 100644 (file)
@@ -52,7 +52,7 @@ function validateAndSubmit() {
   [ <span class="required_star">*</span> <span class="required_explanation">Required Fields</span> ]
 </p>
 
-<form method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="doc">
   <input type="hidden" name="product" value="Developer Documentation">
index 434c82fa3396c7b1c0942a773dbd5bd251ab7a00..473fd84786b59e6bd275c4479b5ae1733f56eead 100644 (file)
@@ -75,7 +75,7 @@
 
 <p>All fields are mandatory</p>
 
-<form method="post" action="post_bug.cgi" id="bug_form" class="enter_bug_form"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="bug_form" class="enter_bug_form"
       enctype="multipart/form-data" onsubmit="return onSubmit();">
 <input type="hidden" name="format" value="finance">
 <input type="hidden" name="product" value="Finance">
index d97d95b2a636a77678a95c452880fc9d432757b3..22a80f5c85413aa4e28264a0acfecbc0500e8c4f 100644 (file)
@@ -83,7 +83,7 @@ function validateAndSubmit() {
   <span class="required_star">*</span> - <span class="required_explanation">Required Fields</span>
 </p>
 
-<form method="post" action="post_bug.cgi" id="fsa_form" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="fsa_form" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="fsa-budget">
   <input type="hidden" name="product" value="FSA">
index ad3b30324a49e8bf0b5cb6c913a0582d84985c73..4a36c0949040f2c3df6076e2aad43e4f49388124 100644 (file)
@@ -112,7 +112,7 @@ $(document).ready(function() {
     team, business need, budget, and location support.
   </p>
 
-  <form method="post" action="post_bug.cgi" id="internForm">
+  <form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="internForm">
     <input type="hidden" id="short_desc" name="short_desc" value="">
     <input type="hidden" name="product" value="Recruiting">
     <input type="hidden" name="component" value="Intern">
index 5e5e3b6c2fe36a1137be54328e419bf80329ba66..a838adb2e23d73374ea38f3a14acc96ecec0d6ee 100644 (file)
@@ -68,7 +68,7 @@ function validateAndSubmit() {
 
 <h1>Internet Public Policy Issue</h1>
 
-<form method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="ipp">
   <input type="hidden" name="product" value="Internet Public Policy">
@@ -175,9 +175,9 @@ function validateAndSubmit() {
 [ <span class="required_star">*</span> <span class="required_explanation">Required Field</span> ]
 
 <div id="standard_link">
-  <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
-    <img src="extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a>
-  <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a>
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
     Switch to the standard [% terms.bug %] entry form</a>
 </div>
 
index ef452c67f4623d5fc5b326dfda0c7aef2c9830ed..60eb2cbfed0c757ba72a945352e3182c829d74e1 100644 (file)
@@ -35,7 +35,7 @@
                                       serviceNowText;
 
   compdesc['Mailing List'] = 'Mailing list requests should be filed ' +
-                             '<a href="enter_bug.cgi?product=mozilla.org&amp;format=mozlist">here</a> instead.';
+                             '<a href="[% basepath FILTER none %]enter_bug.cgi?product=mozilla.org&amp;format=mozlist">here</a> instead.';
 
   function setcompdesc(theRadio) {
     if (theRadio.id == 'component_service_desk') {
@@ -89,9 +89,9 @@
 [% USE Bugzilla %]
 
 <p><strong>Please use this form for IT requests only!</strong></p>
-<p>If you have a [% terms.bug %] to file, go <a href="enter_bug.cgi">here</a>.</p>
+<p>If you have a [% terms.bug %] to file, go <a href="[% basepath FILTER none %]enter_bug.cgi">here</a>.</p>
 
-<form method="post" action="post_bug.cgi" id="itRequestForm" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="itRequestForm" enctype="multipart/form-data"
       onsubmit="return on_submit()">
   <input type="hidden" id="product" name="product" value="Infrastructure & Operations">
   <input type="hidden" name="rep_platform" value="All">
index 8fd2a98ac1507fce51d67e4208292c39800f1338..0a75cab2b1bba2a1d54b0e0972b753110efecabe 100644 (file)
@@ -75,7 +75,7 @@ label.required:before {
 
 <p>[ <span class="required_star">*</span> Required Field ]</p>
 
-<form method="post" action="post_bug.cgi" id="legalRequestForm" enctype="multipart/form-data">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="legalRequestForm" enctype="multipart/form-data">
   <input type="hidden" name="product" value="Legal">
   <input type="hidden" name="rep_platform" value="All">
   <input type="hidden" name="op_sys" value="Other">
index 3dc5980f8914a7e4a90cc95546f8637b4ac09386..b0e7641f496ee4d58dae2ae11427a3d9d4b31a63 100644 (file)
@@ -173,12 +173,12 @@ strong.required:before {
    javascript_urls = [ 'extensions/BMO/web/js/form_validate.js' ]
 %]
 
-<iframe id="yui-history-iframe" src="extensions/BMO/web/yui-history-iframe.txt"></iframe>
+<iframe id="yui-history-iframe" src="[% basepath FILTER none %]extensions/BMO/web/yui-history-iframe.txt"></iframe>
 <input id="yui-history-field" type="hidden">
 
 <h1>MDN Web Docs Feedback</h1>
 
-<form method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return mdn.validateAndSubmit();">
   <input type="hidden" name="format" value="mdn">
   <input type="hidden" name="product" value="developer.mozilla.org">
@@ -365,9 +365,9 @@ strong.required:before {
 </form>
 
 <div id="standard">
-  <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
-    <img src="extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a>
-  <a href="enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a>
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=__standard__&product=[% product.name FILTER uri %]">
     Switch to the standard [% terms.bug %] entry form</a>
 </div>
 
index a9f0fd2cc54056af7b8fd040a4aa1c7ed2a4cded..8f5cd038b290352e16a5e78860cc9c02c6609f97 100644 (file)
@@ -80,7 +80,7 @@ function validateAndSubmit() {
 
 <h1>[% title FILTER none %]</h1>
 
-<form method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format"       value="mobile-compat">
   <input type="hidden" name="product"      value="Tech Evangelism">
@@ -192,9 +192,9 @@ function validateAndSubmit() {
 [ <span class="required_star">*</span> <span class="required_explanation">Required Field</span> ]
 
 <div id="standard_link">
-  <a href="enter_bug.cgi?format=__standard__&amp;product=[% product.name FILTER uri %]">
-    <img src="extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a>
-  <a href="enter_bug.cgi?format=__standard__&amp;product=[% product.name FILTER uri %]">
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=__standard__&amp;product=[% product.name FILTER uri %]">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/advanced.png" width="16" height="16" border="0"></a>
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=__standard__&amp;product=[% product.name FILTER uri %]">
     Switch to the standard [% terms.bug %] entry form</a>
 </div>
 
index 8c54bc8039a3f2dc2bfe66972a38afd53730fc25..b5d9579a8e572d3eab70b1dfc718596730eaabfd 100644 (file)
@@ -60,7 +60,7 @@
 </div>
 <br>
 
-<form method="post" action="post_bug.cgi" id="mozListRequestForm"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="mozListRequestForm"
       enctype="multipart/form-data" onSubmit="return trySubmit();">
   <input type="hidden" id="format" name="format" value="mozlist">
   <input type="hidden" id="product" name="product" value="mozilla.org">
index 697542eadd0b212abc7de8a196943c306eab7381..d108feaa4c8d84a6d289949f87d3767da7c58769 100644 (file)
@@ -287,7 +287,7 @@ function validate_form() {
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-<form id="pr_form" name="pr_form" method="post" action="post_bug.cgi"
+<form id="pr_form" name="pr_form" method="post" action="[% basepath FILTER none %]post_bug.cgi"
       enctype="multipart/form-data" onSubmit="return validate_form()">
 <input type="hidden" name="format" value="mozpr">
 <input type="hidden" name="product" value="Mozilla PR">
index 499ca0d8277056c395ce4645034cd36a7b3e44cd..80e2909d546ab398d3cf5e158d20847b920669ef 100644 (file)
@@ -75,7 +75,7 @@ $(function() {
 
 <p>[ <span class="required_star">*</span> <span class="required_explanation">Required Field</span> ]</p>
 
-<form method="post" action="post_bug.cgi" id="nameForm">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="nameForm">
   <input type="hidden" id="short_desc" name="short_desc" value="New Name Clearance Request">
   <input type="hidden" name="product" value="Legal">
   <input type="hidden" name="component" value="Name Clearance (Trademark Search)">
index 2d766493ab9ef67929d462e75fa115c36129391d..01ded31014c806c756a5b3233db026560ea91b87 100644 (file)
@@ -64,7 +64,7 @@ $(function() {
   privilege and confidentiality, legal [% terms.bugs %] are only visible to the reporter,
   the legal team, and the cc list.</p>
 
-<form method="post" action="post_bug.cgi" id="ndaForm">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="ndaForm">
   <input type="hidden" id="short_desc" name="short_desc" value="New NDA Request">
   <input type="hidden" name="product" value="Legal">
   <input type="hidden" name="component" value="NDA">
index 3ede350a28b842fe2ab9c4d820a8691c5f33c10b..ec5c0783a77f22a3d36f4315df053ab4bbb939c2 100644 (file)
@@ -33,7 +33,7 @@
   <li>The asset tag number is located on a sticker typically on the bottom of the device.</li>
 </ul>
 
-<form method="post" action="post_bug.cgi" id="recoveryKeyForm" enctype="multipart/form-data">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="recoveryKeyForm" enctype="multipart/form-data">
   <input type="hidden" name="product" value="mozilla.org">
   <input type="hidden" name="component" value="Server Operations: Desktop Issues">
   <input type="hidden" name="rep_platform" value="All">
index 2107da039b484ec6e654613695bfa3a06a31d9dc..f2217b94584c77d228b3b2b5297feeff9db5132f 100644 (file)
@@ -78,7 +78,7 @@ function jobDescToggle(what) {
     communication about existing open requisitions in Greenhouse.
   </p>
 
-  <form method="post" action="post_bug.cgi" id="recruitingForm" enctype="multipart/form-data">
+  <form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="recruitingForm" enctype="multipart/form-data">
     <input type="hidden" name="product" value="Recruiting">
     <input type="hidden" name="component" value="General">
     <input type="hidden" name="rep_platform" value="All">
index 98047e36b2fb6937a53f2bfb15d6a3d39eeb55aa..a24365f9947ef41828932e676d1517f10823993b 100644 (file)
@@ -92,7 +92,7 @@ function fieldValue(elem_id) {
   whitelist requests
 </div>
 
-<form id="whitelist_form" method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form id="whitelist_form" method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="screen-share-whitelist">
   <input type="hidden" name="product" value="Firefox">
index 9bc6c0de0a2be01f8fed0aee71565bb92b43a0ec..4b5e988f0cd2ce59619fe6a130c717de7b90ee44 100644 (file)
@@ -42,7 +42,7 @@
   [ <span class="required_star">*</span> <span class="required_explanation">Required Field</span> ]
 </p>
 
-<form method="post" action="post_bug.cgi" id="shieldStudies" class="enter_bug_form" enctype="multipart/form-data">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="shieldStudies" class="enter_bug_form" enctype="multipart/form-data">
 <input type="hidden" name="format" id="format" value="shield-studies">
 <input type="hidden" name="product" id="product" value="Shield">
 <input type="hidden" name="component" id="component" value="Shield Study">
index 05ec4e2d977560aad39e0d93991582ac1acb7501..7f7a1739550ad0be2977f6011fae2f7daff9deaf 100644 (file)
@@ -533,7 +533,7 @@ function showGear() {
   target="_blank" rel="noopener noreferrer">their existing process</a>.
 </p>
 
-<form method="post" action="post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="swag">
   <input type="hidden" name="product" value="Marketing">
index 0a7629a88acb564d54589207ece4cdd563f51372..2788c01d456d0fc6fa03f9a9340282119488f31f 100644 (file)
@@ -38,7 +38,7 @@
 
 <p><strong>Please use this form for trademark requests only!</strong></p>
 
-<form method="post" action="post_bug.cgi" id="tmRequestForm">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="tmRequestForm">
 
         <input type="hidden" name="product" value="Marketing">
         <input type="hidden" name="component" value="Trademark Permissions">
index 64af64a6b955a1390bafd7512ed59a2ed74e705b..304aecabf9e3873fa6df3c4ec73fa1577b0bab09 100644 (file)
@@ -86,7 +86,7 @@ function toggleGoalOther() {
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-<form id="engagement_form" method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form id="engagement_form" method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="format" value="user-engagement">
   <input type="hidden" name="product" value="Marketing">
@@ -97,7 +97,7 @@ function toggleGoalOther() {
   <input type="hidden" name="bug_severity" id="bug_severity" value="normal">
   <input type="hidden" name="token" value="[% token FILTER html %]">
 
-<img title="User Engagement Form" src="extensions/BMO/web/images/user-engagement.png">
+<img title="User Engagement Form" src="[% basepath FILTER none %]extensions/BMO/web/images/user-engagement.png">
 
 <div class="head_desc">
   Have something that you think our users should know about? Is there a campaign that you
index 92517cb80ab1a203bd14728fd53c60df2f6b71d8..1e9b41a11207e4d7c52404ef18d7dc0f7c285af8 100644 (file)
@@ -71,7 +71,7 @@ function validateAndSubmit() {
 
 <h1>Web Bounty Form</h1>
 
-<form id="web_bounty_form" method="post" action="post_bug.cgi" enctype="multipart/form-data"
+<form id="web_bounty_form" method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
   <input type="hidden" name="product" value="Websites">
   <input type="hidden" name="component" value="Other">
index e45142b89b18f2a2032c910a2fbe9b7b8adf7dbb..096988c8ff2caf62e53de1c57faf8c954401c040 100644 (file)
@@ -21,7 +21,7 @@
 </p>
 
 <p style="font-size: x-small">
-  Reference: <a href="show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
+  Reference: <a href="[% basepath FILTER none %]show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 127a6442cf4b7ff64274d5974413c49085508885..2ffeaedd28c83e387087ea6318ed815705c30938 100644 (file)
@@ -22,7 +22,7 @@
 </p>
 
 <p style="font-size: x-small">
-  Reference: <a href="show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
+  Reference: <a href="[% basepath FILTER none %]show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index cdc2e73e228b3dbdc8152bcacbd461d4d866ebd2..6fe22d48e887d1f330ac05515176a1677ffe84f7 100644 (file)
@@ -24,79 +24,79 @@ custom_forms = {
   ],
   "mozilla.org" => [
     {
-      link  => "form.moz.project.review",
+      link  => basepath _ "form.moz.project.review",
       title => "Mozilla Project Review",
       group => "mozilla-employee-confidential",
     },
     {
-      link  => "form.trademark",
+      link  => basepath _ "form.trademark",
       title => "Trademark Usage Requests",
     },
     {
-      link  => "form.gear",
+      link  => basepath _ "form.gear",
       title => "Mozilla Gear Request",
       group => "mozilla-employee-confidential",
     },
     {
-      link  => "form.mozlist",
+      link  => basepath _ "form.mozlist",
       title => "Mozilla Discussion Forum Requests",
       group => "mozilla-employee-confidential",
     },
   ],
   "Marketing" => [
     {
-      link  => "form.user.engagement",
+      link  => basepath _ "form.user.engagement",
       title => "User Engagement Initiation Form",
       group => "mozilla-employee-confidential",
     },
     {
-      link  => "form.gear",
+      link  => basepath _ "form.gear",
       title => "Mozilla Gear Request",
       group => "mozilla-employee-confidential",
     },
     {
-      link  => "form.creative",
+      link  => basepath _ "form.creative",
       title => "Brand Engagement Initiation Form",
       group => "mozilla-employee-confidential",
     },
     {
-      link  => "form.comm.newsletter",
+      link  => basepath _ "form.comm.newsletter",
       title => "Mozilla Communities Newsletter",
     },
     {
-      link  => "form.costume",
+      link  => basepath _ "form.costume",
       title => "Firefox Costume Requests",
     },
   ],
   "Finance" => [
     {
-      link  => "form.finance",
+      link  => basepath _ "form.finance",
       title => "Finance Request",
       group => "mozilla-employee-confidential",
     },
   ],
   "Mozilla PR" => [
     {
-      link  => "form.mozpr",
+      link  => basepath _ "form.mozpr",
       title => "PR Project Form",
       group => "pr-private",
     },
   ],
   "Infrastructure & Operations" => [
     {
-      link  => "form.itrequest",
+      link  => basepath _ "form.itrequest",
       title => "IT Request Form",
       group => "mozilla-employee-confidential",
     },
     {
-      link  => "form.mozlist",
+      link  => basepath _ "form.mozlist",
       title => "Mozilla Discussion Forum Requests",
       group => "mozilla-employee-confidential",
     },
   ],
   "Tech Evangelism" => [
     {
-      link  => "form.mobile.compat",
+      link  => basepath _ "form.mobile.compat",
       title => "Mobile Web Compatibility Problem",
     },
   ],
@@ -109,81 +109,81 @@ custom_forms = {
   ],
   "Websites" => [
     {
-      link  => "form.web.bounty",
+      link  => basepath _ "form.web.bounty",
       title => "Web Bounty Form",
     },
   ],
   "Firefox" => [
     {
-      link  => "form.screen.share.whitelist",
+      link  => basepath _ "form.screen.share.whitelist",
       title => "Firefox Screen Sharing Whitelist Submission",
       hide  => 1,
     }
   ],
   "Testing" => [
     {
-      link  => "form.automative",
+      link  => basepath _ "form.automative",
       title => "Automation Request Form",
     },
   ],
   "Developer Engagement" => [
     {
-      link  => "form.dev.engagement.event",
+      link  => basepath _ "form.dev.engagement.event",
       title => "Developer Events Request Form",
     },
   ],
   "developer.mozilla.org" => [
     {
-      link  => "form.mdn",
+      link  => basepath _ "form.mdn",
       title => "MDN Web Docs Feedback",
     },
   ],
   "Internet Public Policy" => [
     {
-      link  => "form.ipp",
+      link  => basepath _ "form.ipp",
       title => "Internet Public Policy Issue",
     },
   ],
   "Data Compliance" => [
     {
-      link  => "form.data.compliance",
+      link  => basepath _ "form.data.compliance",
       title => "Data Compliance Form",
     },
   ],
   "Recruiting" => [
     {
-      link => "form.recruiting",
+      link => basepath _ "form.recruiting",
       title => "Recruiting Requests",
     },
     {
-       link => "form.intern",
+       link => basepath _ "form.intern",
        title => "Intern Requests",
     },
   ]
   "Legal" => [
     {
       title => 'Mozilla Foundation Vendor Request',
-      link  => 'enter_bug.cgi?product=Mozilla%20Foundation%20Operations',
+      link  => basepath _ 'enter_bug.cgi?product=Mozilla%20Foundation%20Operations',
     },
     {
       title => 'Mozilla Corporation Vendor Request',
-      link  => 'form.moz.project.review'
+      link  => basepath _ 'form.moz.project.review'
     },
     {
       title => 'Commercial (Partner) Agreement',
-      link  => 'form.moz.project.review'
+      link  => basepath _ 'form.moz.project.review'
     },
     {
       title => 'Independent Contractor Request',
-      link  => 'form.moz.project.review'
+      link  => basepath _ 'form.moz.project.review'
     },
     {
       title => "NDA Request",
-      link  => "form.nda",
+      link  => basepath _ "form.nda",
     },
     {
       title => "Name Clearance Request",
-      link  => "form.name.clearance",
+      link  => basepath _ "form.name.clearance",
     }
   ],
 }
index 6ecd0bc754285c772e967e9c15434ab7fb1d00ca..f8881426242d8df0594d69a333024cfc7caf2c4b 100644 (file)
@@ -11,8 +11,8 @@
 <p>
   [% UNLESS cloned_bug_id || no_guided_bug_link %]
     Consider using the
-    <a href="enter_bug.cgi?product=[% product.name FILTER html %]&amp;format=guided"
-    ><img src="extensions/BMO/web/images/guided.png" width="16" height="16" align="absmiddle" border="0">
+    <a href="[% basepath FILTER none %]enter_bug.cgi?product=[% product.name FILTER html %]&amp;format=guided"
+    ><img src="[% basepath FILTER none %]extensions/BMO/web/images/guided.png" width="16" height="16" align="absmiddle" border="0">
     [%+ terms.Bugzilla %] Helper</a> instead of this form.
   [% END +%]
   [% UNLESS no_bug_guidelines %]
@@ -37,7 +37,7 @@
 %]
 
 <div id="custom_form_list">
-  <img src="extensions/BMO/web/images/notice.png" width="48" height="48" id="custom_form_list_image">
+  <img src="[% basepath FILTER none %]extensions/BMO/web/images/notice.png" width="48" height="48" id="custom_form_list_image">
   <div id="custom_form_list_text">
     This product has task-specific [% terms.bug %] forms that should be used if
     appropriate:
index 74c9f7b0dae5242074da6de11abc932b334116db..78364c88dc3d3350a5be9b541fd21c66f8f7e4af 100644 (file)
     %]
     <section class="product other">
       <h3>
-        <a href="[% target FILTER uri %]?full=1
+        <a href="[% basepath FILTER none %][% target FILTER uri %]?full=1
             [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
             [%- IF classification %]&amp;classification=[% classification FILTER uri %][% END -%]
             [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
-          <img src="extensions/BMO/web/producticons/other.png" height="64" width="64" alt="">
+          <img src="[% basepath FILTER none %]extensions/BMO/web/producticons/other.png" height="64" width="64" alt="">
           <span>Other Products</span>
         </a>
       </h3>
         [%- IF has_entry_groups %] title="This product requires one or more group memberships in order to enter [% terms.bugs %] in it. You have them,  but be aware not everyone else does."[% END %]>
           <th align="right" valign="top">
           [% IF p.name == "Mozilla PR" AND target == "enter_bug.cgi" AND NOT format AND NOT cgi.param("debug") %]
-            <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%]
+            <a href="[% basepath FILTER none %][% target FILTER uri %]?product=[% p.name FILTER uri -%]
                   [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END %]&amp;format=mozpr">
             [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
           [% ELSE %]
-            <a href="[% target FILTER uri %]?product=[% p.name FILTER uri -%]
+            <a href="[% basepath FILTER none %][% target FILTER uri %]?product=[% p.name FILTER uri -%]
                   [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
                   [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
             [% p.name FILTER html FILTER no_break %]</a>:&nbsp;
   <br>
   [% IF target == "enter_bug.cgi" AND user.settings.product_chooser.value != 'full_product_chooser' %]
     <p>You can choose to get this screen by default when you click "New [% terms.Bug %]"
-    by changing your <a href="userprefs.cgi?tab=settings">preferences</a>.</p>
+    by changing your <a href="[% basepath FILTER none %]userprefs.cgi?tab=settings">preferences</a>.</p>
   [% END %]
 [% END %]
 
 
 [% IF NOT is_describe %]
 <div id="guided">
-  <a href="enter_bug.cgi?format=guided">
-    <img src="extensions/BMO/web/images/guided.png" width="16" height="16">
+  <a href="[% basepath FILTER none %]enter_bug.cgi?format=guided">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/guided.png" width="16" height="16">
     Switch to the [% terms.Bugzilla %] Helper</a> |
-  <a href="page.cgi?id=custom_forms.html">Custom [% terms.bug %] entry forms</a>
+  <a href="[% basepath FILTER none %]page.cgi?id=custom_forms.html">Custom [% terms.bug %] entry forms</a>
 </div>
 [% END %]
 
       [% IF p.name == name %]
         <section class="product major">
           <h3>
-            <a href="[% target FILTER uri %]?product=[% p.name FILTER uri %]
+            <a href="[% basepath FILTER none %][% target FILTER uri %]?product=[% p.name FILTER uri %]
                 [%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
                 [%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
-              <img src="extensions/BMO/web/producticons/[% icon FILTER uri %]" height="64" width="64" alt="">
+              <img src="[% basepath FILTER none %]extensions/BMO/web/producticons/[% icon FILTER uri %]" height="64" width="64" alt="">
               <span>[% caption || name FILTER html %]</span>
             </a>
           </h3>
index 6982b33388c224d968e582b3be2522a72fe211bf..1ff978b6b85b69ed9962d5be6416f3cc283e2431 100644 (file)
@@ -12,5 +12,5 @@
 
 [% IF !attachment.ispatch && attachment.can_review %]
   &#x0020; |
-  <a href="attachment.cgi?id=[% attachment.id FILTER none %]">Review</a>
+  <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id FILTER none %]">Review</a>
 [% END %]
index 811e373cbe479c0180b2b97b5ab5cad0ca8ee58a..9dbda38ed8fb34e742cbd5d058b14aa607f73ef5 100644 (file)
@@ -14,7 +14,7 @@
 [% IF bug.is_unassigned %]
   <tr class="bz_attach_footer">
     <td colspan="[% show_attachment_flags ? 3 : 2 %]" class="attachment-warning">
-      <img src="extensions/BMO/web/images/sign_warning.png" width="16" height="16">
+      <img src="[% basepath FILTER none %]extensions/BMO/web/images/sign_warning.png" width="16" height="16">
       Unassigned [% terms.bug %] with patches attached
     </td>
   </tr>
@@ -23,7 +23,7 @@
 [% IF bug.missing_sec_approval %]
   <tr class="bz_attach_footer">
     <td colspan="[% show_attachment_flags ? 3 : 2 %]" id="sec-approval-warning" class="attachment-warning">
-      <img src="extensions/BMO/web/images/sign_warning.png" width="16" height="16">
+      <img src="[% basepath FILTER none %]extensions/BMO/web/images/sign_warning.png" width="16" height="16">
       <a href="https://wiki.mozilla.org/Security/Bug_Approval_Process" target="_blank" rel="noopener noreferrer">
         sec-approval required on patches before landing
       </a>
index a152527ba34eb3196e31c023872c78e3dcc0d70e..8ca7548a02f6b391957619d43563ad48aab1e15a 100644 (file)
@@ -11,7 +11,7 @@
 
 <div id="bug_create_warning">
   <div id="bug_create_warning_image">
-    <img src="extensions/BMO/web/images/sign_warning.png" width="32" height="32">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/sign_warning.png" width="32" height="32">
   </div>
   <div id="bug_create_warning_text">
     <b>Mozilla employees</b><br>
@@ -23,7 +23,7 @@
       <li>Changes to the values of existing fields (versions, milestones, etc)</li>
     </ul>
     Instead, please file such changes under
-    <a href="enter_bug.cgi?product=bugzilla.mozilla.org;component=Administration">
+    <a href="[% basepath FILTER none %]enter_bug.cgi?product=bugzilla.mozilla.org;component=Administration">
       <b>
         the Administration component in the bugzilla.mozilla.org
       </b>
index 97d255b0bd2dd091b67a9709f241a00bfaaa8e6d..f0a97b1f07ef07e4e7c9b81ed0fcef9f9e519f46 100644 (file)
@@ -24,7 +24,7 @@
     [% END %]
   </td>
   <td class="attach-actions">
-    <a href="page.cgi?id=attachment_bounty_form.html&bug_id=[% bug.id FILTER none %]">
+    <a href="[% basepath FILTER none %]page.cgi?id=attachment_bounty_form.html&bug_id=[% bug.id FILTER none %]">
       Edit Bounty
     </a>
   </td>
index 8e94229ff6d77b6cb3c93a6af3e00cd6764fac99..53fb1e41ff6ac969e7761bb3eae1d2bee1cc8f27 100644 (file)
 
 [% IF bug.is_unassigned %]
   <div class="attachment-warning">
-    <img src="extensions/BMO/web/images/sign_warning.png" width="16" height="16">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/sign_warning.png" width="16" height="16">
     Unassigned [% terms.bug %] with patches attached
   </div>
 [% END %]
 
 [% IF bug.missing_sec_approval %]
   <div id="sec-approval-warning" class="attachment-warning">
-    <img src="extensions/BMO/web/images/sign_warning.png" width="16" height="16">
+    <img src="[% basepath FILTER none %]extensions/BMO/web/images/sign_warning.png" width="16" height="16">
     <a href="https://wiki.mozilla.org/Security/Bug_Approval_Process" target="_blank" rel="noopener noreferrer">
       sec-approval required on patches before landing
     </a>
index b096644c9d2345d8b8abb09f454b9350c01be0c0..7f246422907eda2659a266760e061b6ab0c1244d 100644 (file)
@@ -16,6 +16,6 @@
     END;
   END;
 %]
-| <a href="page.cgi?id=attachment_bounty_form.html&amp;bug_id=[% bug.id FILTER none %]">
+| <a href="[% basepath FILTER none %]page.cgi?id=attachment_bounty_form.html&amp;bug_id=[% bug.id FILTER none %]">
   [% has_bounty_attachment ? "Edit" : "Add" %] Bounty Tracking Attachment
 </a>
index 6300b0d15e940075704b651d4b9c0afdb10a9d6b..3d6d11a5c6cb11b401d37f801229d0b972d0660b 100644 (file)
@@ -19,7 +19,7 @@
   #   Reed Loden <reed@reedloden.com>
   #%]
 
-<link rel="shortcut icon" href="extensions/BMO/web/images/favicon.ico">
+<link rel="shortcut icon" href="[% basepath FILTER none %]extensions/BMO/web/images/favicon.ico">
 [% IF bug %]
 <link rel="canonical" href="[% Bugzilla.localconfig.canonical_urlbase FILTER none %]show_bug.cgi?id=[% bug.bug_id FILTER uri %]">
 <link rel="shorturl" href="[% Bugzilla.localconfig.canonical_urlbase FILTER none %][% bug.bug_id FILTER uri %]">
   [% IF my_search %]
     [% SET last_bug_list = my_search.bug_list %]
     [% SET this_bug_idx = lsearch(last_bug_list, bug.id) %]
-    <link rel="Up" href="buglist.cgi?regetlastlist=
+    <link rel="Up" href="[% basepath FILTER none %]buglist.cgi?regetlastlist=
                          [%- my_search.id FILTER uri %]">
-    <link rel="First" href="show_bug.cgi?id=
+    <link rel="First" href="[% basepath FILTER none %]show_bug.cgi?id=
                             [%- last_bug_list.first FILTER uri %]&amp;list_id=
                             [%- my_search.id FILTER uri %]">
-    <link rel="Last" href="show_bug.cgi?id=
+    <link rel="Last" href="[% basepath FILTER none %]show_bug.cgi?id=
                            [%- last_bug_list.last FILTER uri %]&amp;list_id=
                            [%- my_search.id FILTER uri %]">
     [% IF this_bug_idx > 0 %]
       [% prev_bug = this_bug_idx - 1 %]
-      <link rel="Prev" href="show_bug.cgi?id=
+      <link rel="Prev" href="[% basepath FILTER none %]show_bug.cgi?id=
                              [%- last_bug_list.$prev_bug FILTER uri %]&amp;list_id=
                              [%- my_search.id FILTER uri %]">
     [% END %]
     [% IF this_bug_idx + 1 < last_bug_list.size %]
       [% next_bug = this_bug_idx + 1 %]
-      <link rel="Next" href="show_bug.cgi?id=
+      <link rel="Next" href="[% basepath FILTER none %]show_bug.cgi?id=
                              [%- last_bug_list.$next_bug FILTER uri %]&amp;list_id=
                              [%- my_search.id FILTER uri %]">
     [% END %]
index c7fb31009f4ce70a2321e3cad7f4170b8fe735f7..673ac4ee708b9e9809aba0c38888732c1a9b724d 100644 (file)
@@ -9,7 +9,7 @@
 [% IF error == 'illegal_change' || error == 'illegal_change_deps' %]
   <p>
     If you are attempting to confirm an unconfirmed [% terms.bug %] or edit the
-    fields of a [% terms.bug %], <a href="page.cgi?id=get_permissions.html">find
+    fields of a [% terms.bug %], <a href="[% basepath FILTER none %]page.cgi?id=get_permissions.html">find
     out how to get the necessary permissions</a>.
   </p>
 [% END %]
index d527f76a476ee9d20b16bbcec0d8bd93115b11e8..0478367d531756e45b708af93fe217dde510028c 100644 (file)
@@ -23,7 +23,7 @@
 [% IF (group == "canconfirm" OR group == "editbugs") AND !reason %]
   <p>
     If you are attempting to confirm an unconfirmed [% terms.bug %] or edit the fields of a [% terms.bug %],
-    <a href="page.cgi?id=get_permissions.html">find
+    <a href="[% basepath FILTER none %]page.cgi?id=get_permissions.html">find
     out how to get the necessary permissions</a>.
   </p>
 [% END %]
index c6e43c158c895df527a4861eb74b4dab42dde41e..b96b6354f798c2461d59473fd40e0ea832a89071 100644 (file)
@@ -6,6 +6,6 @@
   # defined by the Mozilla Public License, v. 2.0.
   #%]
 
-<a href="rest/bug?include_fields=id,summary,status&amp;
+<a href="[% basepath FILTER none %]rest/bug?include_fields=id,summary,status&amp;
    [%- cgi.new(urlquerypart).canonicalise_query('list_id','query_format') FILTER html %]"
    title="Query as a REST API request">REST</a> |
index 8252633504e3bc27475d3199c81fb2dd959ecac2..580d6351f7bd73e2e7405de9413b32747e3ddf1d 100644 (file)
 <ul>
   <li>
     <strong>
-      <a href="[% urlbase FILTER none %]page.cgi?id=triage_reports.html">Unconfirmed Report</a>
+      <a href="[% basepath FILTER none %]page.cgi?id=triage_reports.html">Unconfirmed Report</a>
     </strong> - Report on UNCONFIRMED [% terms.bugs %] to assist triage.
   </li>
   <li>
     <strong>
-      <a href="[% urlbase FILTER none %]page.cgi?id=triage_owners.html">Triage Owners</a>
+      <a href="[% basepath FILTER none %]page.cgi?id=triage_owners.html">Triage Owners</a>
     </strong> - Report on triage owners per product and component.
   </li>
 </ul>
 <ul>
   <li>
     <strong>
-      <a href="[% urlbase FILTER none %]page.cgi?id=user_activity.html">User Changes</a>
+      <a href="[% basepath FILTER none %]page.cgi?id=user_activity.html">User Changes</a>
     </strong> - Show changes made by an individual user.
   </li>
   <li>
     <strong>
-      <a href="[% urlbase FILTER none %]page.cgi?id=release_tracking_report.html">Release Tracking Report</a>
+      <a href="[% basepath FILTER none %]page.cgi?id=release_tracking_report.html">Release Tracking Report</a>
     </strong> - For triaging release-train flag information.
   </li>
   [% IF user.in_group('editbugs') %]
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]page.cgi?id=group_admins.html">Group Admins</a>
+        <a href="[% basepath FILTER none %]page.cgi?id=group_admins.html">Group Admins</a>
       </strong> - Lists the administrators of each group.
     </li>
   [% END %]
   [% IF user.in_group('editusers') || user.in_group('infrasec') %]
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]page.cgi?id=group_membership.html">Group Membership Report</a>
+        <a href="[% basepath FILTER none %]page.cgi?id=group_membership.html">Group Membership Report</a>
       </strong> - Lists the groups a user is a member of.
     </li>
   [% END %]
   [% IF user.in_group('editbugs') %]
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]page.cgi?id=group_members.html">Group Members Report</a>
+        <a href="[% basepath FILTER none %]page.cgi?id=group_members.html">Group Members Report</a>
       </strong> - Lists the users of groups.
     </li>
   [% END %]
   [% IF user.in_group('admin') || user.in_group('infrasec') %]
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]page.cgi?id=product_security_report.html">Product Security Report</a>
+        <a href="[% basepath FILTER none %]page.cgi?id=product_security_report.html">Product Security Report</a>
       </strong> - Show each product's default security group and visibility.
     </li>
   [% END %]
   [% IF user.in_group('admin') || user.in_group('infra') %]
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]view_job_queue.cgi">Email Queue</a>
+        <a href="[% basepath FILTER none %]view_job_queue.cgi">Email Queue</a>
       </strong> - TheSchwartz queue
     </li>
   [% END %]
   [% IF user.in_group('hr') %]
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]page.cgi?id=recruiting_dashboard.html">Recruiting Dashboard</a>
+        <a href="[% basepath FILTER none %]page.cgi?id=recruiting_dashboard.html">Recruiting Dashboard</a>
       </strong> - Dashboard for open requested requisitions.
     </li>
     <li>
       <strong>
-        <a href="[% urlbase FILTER none %]page.cgi?id=internship_dashboard.html">Internship Dashboard</a>
+        <a href="[% basepath FILTER none %]page.cgi?id=internship_dashboard.html">Internship Dashboard</a>
       </strong> - Dashboard for open intern requisitions.
     </li>
 
index 1c1f3cf362b72c8ee8c87941dfab832615e58cf6..f017196dee393b4e5d09d8bfa096413f50fb6881 100644 (file)
@@ -32,7 +32,7 @@
   </head>
   <body>
     <div style="margin-top: 15%; text-align: center;">
-      <center><img src="extensions/BMO/web/images/mozchomp.gif" alt=""
+      <center><img src="[% basepath FILTER none %]extensions/BMO/web/images/mozchomp.gif" alt=""
       width="160" height="87"></center>
       <h1>Please wait while your [% terms.bugs %] are retrieved.</h1>
     </div>
index 0f7966097fecff9cd72adf8fc8270e592518d2eb..1f6ad09dc5ed5642d874bab9a95711e5b7d7b362 100644 (file)
@@ -129,7 +129,7 @@ function validateAndSubmit() {
 [% USE Bugzilla %]
 [% cgi = Bugzilla.cgi %]
 
-<form id="bounty_form" method="post" action="page.cgi"
+<form id="bounty_form" method="post" action="[% basepath FILTER none %]page.cgi"
   enctype="multipart/form-data" onSubmit="return validateAndSubmit();">
 
   <input type="hidden" name="bug_id" value="[% bug.id FILTER html %]">
index 45dd5bd65996ebbaa0f91050633817a2606177cf..082f7c4c9bd5c865ac4af0e0ae4a96d6a8a84140 100644 (file)
 
 <p>
   If you cannot tag comments (which requires
-  <a href="page.cgi?id=get_permissions.html"><code>editbugs</code> privileges</a>,)
+  <a href="[% basepath FILTER none %]page.cgi?id=get_permissions.html"><code>editbugs</code> privileges</a>,)
   or if you need to contact a [% terms.Bugzilla %] community administrator urgently:
 </p>
 
index f4f8013429285e513a8a02ef39a5d15487aab183..42f37583f768282ea0074189f2ad5b8f8d4569f0 100644 (file)
@@ -14,7 +14,7 @@
 
 <p>
   If you want <kbd>canconfirm</kbd>, you can add it yourself using
-  the <a href="page.cgi?id=triage_request.html">triage request form</a>.
+  the <a href="[% basepath FILTER none %]page.cgi?id=triage_request.html">triage request form</a>.
 </p>
 
 [% editbugs = "enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_fx_iteration=---&cf_fx_points=---&component=Editbugs%20Requests&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-4=X&flag_type-607=X&flag_type-791=X&flag_type-800=X&flag_type-803=X&flag_type-916=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=bugzilla.mozilla.org&rep_platform=Unspecified&target_milestone=---&version=Production" %]
index 1c593c07e8659ba9467435ce5bc6ba7aa578f397..602c862cd070dd16161d7361e1a69901ede3aa01 100644 (file)
@@ -11,7 +11,7 @@
   style_urls = [ "extensions/BMO/web/styles/reports.css" ]
 %]
 
-<form method="GET" action="page.cgi">
+<form method="GET" action="[% basepath FILTER none %]page.cgi">
   <input type="hidden" name="id" value="group_members.html">
 
   <table id="parameters">
@@ -62,7 +62,7 @@
             [% ELSE %]
               via
               [% IF privileged %]
-                <a href="page.cgi?id=group_members.html&group=[% type.name FILTER uri %]">
+                <a href="[% basepath FILTER none %]page.cgi?id=group_members.html&group=[% type.name FILTER uri %]">
                   [% type.name FILTER html %]
                 </a>
               [% ELSE %]
                 <tr>
                   <td width="100%">
                     [% IF privileged %]
-                      <a href="editusers.cgi?action=edit&amp;userid=[% member.id FILTER none %]"
+                      <a href="[% basepath FILTER none %]editusers.cgi?action=edit&amp;userid=[% member.id FILTER none %]"
                         target="_blank">
                     [% ELSE %]
-                      <a href="user_profile?user_id=[% member.id FILTER none %]"
+                      <a href="[% basepath FILTER none %]user_profile?user_id=[% member.id FILTER none %]"
                         target="_blank">
                     [% END %]
                       <span [% 'class="bz_inactive"' UNLESS member.is_enabled %]>
       [% END %]
     </table>
 
-    <a href="page.cgi?id=group_members.json&amp;group=[% group.name FILTER uri %]
+    <a href="[% basepath FILTER none %]page.cgi?id=group_members.json&amp;group=[% group.name FILTER uri %]
        [% IF include_disabled %]&amp;include_disabled=1[% END %]">JSON</a>
   [% ELSE %]
     <p>
index a98354eacca659cdae29c0a8bfd5794726a52306..960a10da96d13102e5735c05c35982b25f821ecc 100644 (file)
@@ -13,7 +13,7 @@
   javascript_urls = [ "js/field.js" ]
 %]
 
-<form method="GET" action="page.cgi">
+<form method="GET" action="[% basepath FILTER none %]page.cgi">
 <input type="hidden" name="id" id="id" value="group_membership.html">
 
 <table id="parameters">
index f5e1c05c88f3045f2c6b8987985040cefe302d18..225aef7b071a056e5cf7b4d0405d92025007fb7f 100644 (file)
@@ -24,7 +24,7 @@
     [% count = count + 1 %]
     <tr class="report_item [% count % 2 == 1 ? "report_row_odd" : "report_row_even" %]">
       <td>
-        <a href="editproducts.cgi?action=editgroupcontrols&product=[% product.name FILTER uri %]" target="_blank">
+        <a href="[% basepath FILTER none %]editproducts.cgi?action=editgroupcontrols&product=[% product.name FILTER uri %]" target="_blank">
           [% product.name FILTER html %]
         </a>
       </td>
index bc625b07cefa7795e63ae11e8c50210638a1a156..5889e8f230ea6101fbb9084b1227f3b0a4981c83 100644 (file)
@@ -11,7 +11,7 @@
   style_urls = [ "extensions/BMO/web/styles/reports.css" ]
 %]
 
-<form method="post" action="page.cgi">
+<form method="post" action="[% basepath FILTER none %]page.cgi">
   <input type="hidden" name="id" value="query_database.html">
   <textarea cols="80" rows="10" name="query">[% query FILTER html %]</textarea><br>
   <input type="checkbox" id="csv" name="csv" value="1"><label for="csv">Ouput as CSV</label><br><br>
index 6c0387ec05436ecc3b97f9374d49b00b8e241335..ec81b91f491144eff487f91d313937c41e1d3b03 100644 (file)
@@ -25,7 +25,7 @@ var fields_data = $.parseJSON("[% fields_json FILTER js %]");
 var default_query = '[% default_query FILTER js %]';
 </script>
 
-<form action="page.cgi" method="get" onSubmit="return onFormSubmit()">
+<form action="[% basepath FILTER none %]page.cgi" method="get" onSubmit="return onFormSubmit()">
 <input type="hidden" name="id" value="release_tracking_report.html">
 <input type="hidden" name="q" id="q" value="">
 <table>
@@ -59,10 +59,10 @@ var default_query = '[% default_query FILTER js %]';
     </span>
     <span id="custom_range" style="display:none;">
       <input class="date_field" name="from" id="from" onChange="serialiseForm()">
-      <img class="date_field-img" id="from-img" src="extensions/BugModal/web/calendar.png" width="16" height="16">
+      <img class="date_field-img" id="from-img" src="[% basepath FILTER none %]extensions/BugModal/web/calendar.png" width="16" height="16">
       and
       <input class="date_field" name="to" id="to" onChange="serialiseForm()">
-      <img class="date_field-img" id="to-img" src="extensions/BugModal/web/calendar.png" width="16" height="16">
+      <img class="date_field-img" id="to-img" src="[% basepath FILTER none %]extensions/BugModal/web/calendar.png" width="16" height="16">
     </span>
     <input type="checkbox" id="is_custom" onchange="selectRangeType()" [% "checked" IF is_custom %]>
     <label for="is_custom">Custom</label>
index 3663c292549b23ed09e6af411d242229292f53af..ca80c51c5c952aac4bcbddc308d9dd3a28152f37 100644 (file)
@@ -35,7 +35,7 @@
 
 [% PROCESS "global/field-descs.none.tmpl" %]
 
-<form id="triageOwners" name="triageOwners" action="page.cgi" method="GET">
+<form id="triageOwners" name="triageOwners" action="[% basepath FILTER none %]page.cgi" method="GET">
   <input type="hidden" name="id" value="triage_owners.html">
   <input type="hidden" name="json_data" id="json_data" data-json_data="[% json_data FILTER html %]">
 
         </td>
         <td>
           [% IF r.buglist_url %]
-            <a href="[% urlbase FILTER none %]buglist.cgi?product=[% r.product FILTER uri %]&component=[% r.component FILTER uri %]&[% r.buglist_url FILTER none %]">
+            <a href="[% basepath FILTER none %]buglist.cgi?product=[% r.product FILTER uri %]&component=[% r.component FILTER uri %]&[% r.buglist_url FILTER none %]">
               [% r.bug_count FILTER html +%] [%+ terms.bugs %] found.
             </a>
           [% ELSE %]
index 13904f61b77b9933b9746eb37125fcd5cd6f5f78..272b4cdb3c75505b0f235a45a0a78681cce31e44 100644 (file)
@@ -54,7 +54,7 @@ var selected_components = [
 
 [% PROCESS "global/field-descs.none.tmpl" %]
 
-<form id="activity_form" name="activity_form" action="page.cgi" method="get"
+<form id="activity_form" name="activity_form" action="[% basepath FILTER none %]page.cgi" method="get"
       onSubmit="return onGenerateReport()">
 <input type="hidden" name="id" value="triage_reports.html">
 <input type="hidden" name="action" value="run">
@@ -183,7 +183,7 @@ Show UNCONFIRMED [% terms.bugs %] with:
   </table>
 
   <p>
-    <a href="buglist.cgi?bug_id=
+    <a href="[% basepath FILTER none %]buglist.cgi?bug_id=
     [%- FOREACH bug = bugs %][% bug.id FILTER uri %],[% END -%]
     ">Show as a [% terms.Bug %] List</a>
   </p>
index 954ad5a06206c65a2b4c5f2f2884197a7a1568ec..0c4fe4223bb5c821b983b1fd7961f2cb1d92d102 100644 (file)
@@ -63,7 +63,7 @@
       Would you like to add "canconfirm" permissions to your account?
     </p>
 
-    <form method="post" action="page.cgi">
+    <form method="post" action="[% basepath FILTER none %]page.cgi">
       <input type="hidden" name="id" value="triage_request.html">
       <input type="hidden" name="update" value="1">
       <input type="submit" value="Yes, I want to help">
index 6091810db9ccaf4bbbb085840439b0791728541a..962ca38c74e346cf110b1156f98a2eefe8c9494d 100644 (file)
@@ -28,8 +28,8 @@
 <p><b>Last Updated:</b> [% date.format(template.modtime, "%d-%b-%Y %H:%M %Z") %]</p>
 
 <p>On Friday, July 9, 2010, at 11:40pm PDT (0640 UTC), bugzilla.mozilla.org was
-  <a href="show_bug.cgi?id=558044">upgraded</a> to Bugzilla 3.6.1+.  Please
-  <a href="enter_bug.cgi?product=mozilla.org&amp;component=Bugzilla:+Other+b.m.o+Issues&amp;blocked=bmo-regressions">file
+  <a href="[% basepath FILTER none %]show_bug.cgi?id=558044">upgraded</a> to Bugzilla 3.6.1+.  Please
+  <a href="[% basepath FILTER none %]enter_bug.cgi?product=mozilla.org&amp;component=Bugzilla:+Other+b.m.o+Issues&amp;blocked=bmo-regressions">file
   any regressions</a> for tracking purposes.</p>
 
 <h3>Known Issues</h3>
@@ -81,7 +81,7 @@
   [%+ terms.Bugzilla %] and in the header/footer of every page
   is now simplified and made more powerful. There is a
   <kbd>[?]</kbd> link next to the box that will take you to
-  the simplified <a href="page.cgi?id=quicksearch.html">Quicksearch Help</a>,
+  the simplified <a href="[% basepath FILTER none %]page.cgi?id=quicksearch.html">Quicksearch Help</a>,
   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.</p>
index 1d6e222c62d060d4f20cbfa8956e34475481adc0..3a1d6cc971e438672ec505586f8cf5831f09c17c 100644 (file)
@@ -23,7 +23,7 @@
 [% PROCESS "global/field-descs.none.tmpl" %]
 [% PROCESS bug/time.html.tmpl %]
 
-<form id="activity_form" name="activity_form" action="page.cgi" method="get">
+<form id="activity_form" name="activity_form" action="[% basepath FILTER none %]page.cgi" method="get">
 <input type="hidden" name="id" value="user_activity.html">
 <input type="hidden" name="action" value="run">
 <table id="parameters">
           [% END %]
           <td>
             [% IF change.attachid %]
-              <a href="attachment.cgi?id=[% change.attachid FILTER uri %]"
+              <a href="[% basepath FILTER none %]attachment.cgi?id=[% change.attachid FILTER uri %]"
                  title="[% change.attach.description FILTER html %]
                         [%- %] - [% change.attach.filename FILTER html %]"
               >Attachment #[% change.attachid FILTER html %]</a>
     [% END %]
   </table>
   <p>
-    <a href="buglist.cgi?bug_id=[% bug_ids.join(',') FILTER uri %]">
+    <a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% bug_ids.join(',') FILTER uri %]">
     Show as a [% terms.Bug %] List</a>
   </p>
 
 [% INCLUDE global/footer.html.tmpl %]
 
 [% BLOCK group_when_link %]
-  <a href="page.cgi?id=user_activity.html&amp;action=run&amp;
+  <a href="[% basepath FILTER none %]page.cgi?id=user_activity.html&amp;action=run&amp;
     [%~%]who=[% who FILTER uri %]&amp;
     [%~%]from=[% from FILTER uri %]&amp;
     [%~%]to=[% to FILTER uri %]&amp;
 [% END %]
 
 [% BLOCK group_bug_link %]
-  <a href="page.cgi?id=user_activity.html&amp;action=run&amp;
+  <a href="[% basepath FILTER none %]page.cgi?id=user_activity.html&amp;action=run&amp;
     [%~%]who=[% who FILTER uri %]&amp;
     [%~%]from=[% from FILTER uri %]&amp;
     [%~%]to=[% to FILTER uri %]&amp;
index 59ffe8479b4b0cda391d8f690f74367e7ea18cc2..8f6c51ff82a869283a480083dea1f29b1cdd7510 100644 (file)
@@ -11,7 +11,7 @@ function add_bounty_attachment(bug_id) {
         var existing = document.getElementById('bounty_attachment');
         var td = nodes[0];
         var a  = document.createElement('a');
-        a.href = 'page.cgi?id=attachment_bounty_form.html&bug_id=' + bug_id;
+        a.href = `${BUGZILLA.config.basepath}page.cgi?id=attachment_bounty_form.html&bug_id=${bug_id}`;
         a.appendChild(document.createTextNode(existing
             ? 'Edit bounty tracking attachment'
             : 'Add bounty tracking attachment'));
index c173b8e436a27248105d470d1176f5fd8d094c46..24d28a639e526392c27d0cd2af3bfc54d287cc2d 100644 (file)
@@ -6,7 +6,7 @@
  * defined by the Mozilla Public License, v. 2.0. */
 
 function show_clone_menu(el, bug_id, product, component) {
-  var base_url = 'enter_bug.cgi?format=__default__&cloned_bug_id=' + bug_id;
+  var base_url = `${BUGZILLA.config.basepath}enter_bug.cgi?format=__default__&cloned_bug_id=${bug_id}`;
   var items = {
     curr_prod : {
       name: 'Clone to the current product',
index a300f5c24356648e039e1e9ee15eaaced9d0c79d..6fb617eb8a092dcf0de48fb08a1b7b6144f0750e 100644 (file)
@@ -10,14 +10,15 @@ function show_usermenu(id, email, show_edit) {
         {
             name: "Profile",
             callback: function () {
-                var href = "user_profile?user_id=" + id;
+                var href = `${BUGZILLA.config.basepath}user_profile?user_id=${id}`;
                 window.open(href, "_blank");
             }
         },
         {
             name: "Activity",
             callback: function () {
-                var href = "page.cgi?id=user_activity.html&action=run&from=-14d&who=" + encodeURIComponent(email);
+                var href = `${BUGZILLA.config.basepath}page.cgi?` +
+                           `id=user_activity.html&action=run&from=-14d&who=${encodeURIComponent(email)}`;
                 window.open(href, "_blank");
             }
         },
@@ -33,7 +34,7 @@ function show_usermenu(id, email, show_edit) {
         items.push({
             name: "Edit",
             callback: function () {
-                var href = "editusers.cgi?action=edit&userid=" + id;
+                var href = `${BUGZILLA.config.basepath}editusers.cgi?action=edit&userid=${id}`;
                 window.open(href, "_blank");
             }
         });
index 88879738dc91fb68660a976c247335f89b1a5dbc..060fac2195c5431d0d03bbc06e5bdc3d7d3fd4f3 100644 (file)
@@ -47,7 +47,7 @@ Bugzilla.NewBugFrequentComp = class NewBugFrequentComp {
         params.append('component', component);
 
         return {
-          href: `/enter_bug.cgi?${params.toString()}`,
+          href: `${BUGZILLA.config.basepath}enter_bug.cgi?${params.toString()}`,
           text: `${product} :: ${component}`,
         };
       });
@@ -83,7 +83,7 @@ Bugzilla.NewBugFrequentComp = class NewBugFrequentComp {
 
     return new Promise((resolve, reject) => {
       bugzilla_ajax({
-        url: `/rest/bug?${params.toString()}`
+        url: `${BUGZILLA.config.basepath}rest/bug?${params.toString()}`
       }, response => {
         if (!response.bugs) {
           reject(new Error('Your frequent components could not be retrieved.'));
index 158cc7521b19aef076027f85f2a25e372dbdfd22..edb7cc79eee54d9f84d28b4a331f7bfe4c9c9142 100644 (file)
@@ -161,8 +161,8 @@ function serialiseForm() {
 
   $('#q').val(q);
   var is_custom = $('#is_custom').is(':checked') ? 1 : 0;
-  $('#bookmark').attr('href', 'page.cgi?id=release_tracking_report.html&is_custom=' +
-                               is_custom + '&q=' + encodeURIComponent(q));
+  $('#bookmark').attr('href', `${BUGZILLA.config.basepath}page.cgi?id=release_tracking_report.html&is_custom=` +
+                              `${is_custom}&q=${encodeURIComponent(q)}`);
 }
 
 function deserialiseForm(q) {
index cdf1a917aee2e69c788a04996c1d09940711a2ff..1bc39d411a07b9de2b3c4dee7e3733ffc124a853 100644 (file)
@@ -18,9 +18,9 @@ $(function() {
         }
 
         $('#bitly-url').val('');
-        var request = 'rest/bitly/' + type +
-            '?url=' + encodeURIComponent($('#bitly-shorten').data('url')) +
-            '&Bugzilla_api_token=' + encodeURIComponent(BUGZILLA.api_token);
+        var request = `${BUGZILLA.config.basepath}rest/bitly/${type}?` +
+                      `url=${encodeURIComponent($('#bitly-shorten').data('url'))}&` +
+                      `Bugzilla_api_token=${encodeURIComponent(BUGZILLA.api_token)}`;
         $.ajax(request)
             .done(function(data) {
                 urls[type] = data.url;
index 08c6b5b64880240a74213a1a5f1b4988ae2062f7..1c99f5c11b83c00912f5ce1bbc0d36faf236b286 100644 (file)
       <tr id="cr-[% comment.count FILTER none %]" [%= IF comment.collapsed %]style="display:none"[% END %]>
         <td colspan="2">
           <h3 class="change-name">
-            <a href="show_bug.cgi?id=[% bug.bug_id FILTER none %]#c[% comment.count FILTER none %]">
+            <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id FILTER none %]#c[% comment.count FILTER none %]">
               [% comment.count == 0 ? "Description" : "Comment " _ comment.count ~%]
             </a>
           </h3>
       <tr id="ar-[% id FILTER none %]">
         <td colspan="2">
           <h3 class="change-name">
-            <a href="show_bug.cgi?id=[% bug.bug_id FILTER none %]#[% id FILTER none %]">Updated</a>
+            <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id FILTER none %]#[% id FILTER none %]">Updated</a>
           </h3>
           &bull;
           <div class="change-time">
     [% IF comment.collapsed +%] style="display:none"[% END ~%]
   >[% FILTER collapse %]
     [% IF comment.is_about_attachment && comment.attachment.is_image ~%]
-      <a href="attachment.cgi?id=[% comment.attachment.id FILTER none %]"
+      <a href="[% basepath FILTER none %]attachment.cgi?id=[% comment.attachment.id FILTER none %]"
         title="[% comment.attachment.description FILTER html %]"
-        class="lightbox"><img src="extensions/BugModal/web/image.png" width="16" height="16"></a>
+        class="lightbox"><img src="[% basepath FILTER none %]extensions/BugModal/web/image.png" width="16" height="16"></a>
     [% END %]
   [% END %]
   [%~ comment.body_full FILTER quoteUrls(bug, comment) ~%]</pre>
 
       IF change.attachid;
         %]
-        <a href="attachment.cgi?id=[% change.attachid FILTER none %]&amp;action=edit"
+        <a href="[% basepath FILTER none %]attachment.cgi?id=[% change.attachid FILTER none %]&amp;action=edit"
            title="[% change.attach.description FILTER html %]"
            class="[% "bz_obsolete" IF change.attach.isobsoletee %]"
         >Attachment #[% change.attachid FILTER none %]</a> -
index a2763705621f9cd2a6d951f374ebf71075fde2ef..1e5da5b95411fbb770efb37e566ea2b0f73b2fde 100644 (file)
       <td class="attach-desc-td">
         <div class="attach-desc">
           [% IF attachment.is_image %]
-            <a href="attachment.cgi?id=[% attachment.id FILTER none %]"
+            <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id FILTER none %]"
               title="[% attachment.description FILTER html %]"
               class="lightbox">
-              <img src="extensions/BugModal/web/image.png" width="16" height="16">
+              <img src="[% basepath FILTER none %]extensions/BugModal/web/image.png" width="16" height="16">
               [%~ attachment.description FILTER html %]
             </a>
           [% ELSE %]
-            <a href="attachment.cgi?id=[% attachment.id FILTER none %]">
+            <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id FILTER none %]">
               [%~ attachment.description FILTER html %]</a>
           [% END %]
         </div>
@@ -86,9 +86,9 @@
         [% END %]
       </td>
       <td class="attach-actions">
-        <a href="attachment.cgi?id=[% attachment.id FILTER none %]&amp;action=edit">Details</a>
+        <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id FILTER none %]&amp;action=edit">Details</a>
         [% IF attachment.ispatch %]
-          | <a href="attachment.cgi?id=[% attachment.id FILTER none %]&amp;action=diff">Diff</a>
+          | <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id FILTER none %]&amp;action=diff">Diff</a>
         [% END %]
         [% Hook.process("action", "attachment/list.html.tmpl") %]
     </tr>
index 099e06c5e1053f7b1ff8e7c856c025c8665167f0..a7362790f1ef7390a8dcd09650e5f53bba1030e5 100644 (file)
 %]
 
 [% IF user.id %]
-  <form name="changeform" id="changeform" method="post" action="process_bug.cgi"[% IF bug.groups_in.size %] autocomplete="nope"[% END %]>
+  <form name="changeform" id="changeform" method="post" action="[% basepath FILTER none %]process_bug.cgi"[% IF bug.groups_in.size %] autocomplete="nope"[% END %]>
   <input type="hidden" name="delta_ts" value="[% bug.delta_ts FILTER html %]">
   <input type="hidden" name="longdesclength" value="[% bug.comments.size FILTER html %]">
   <input type="hidden" name="id" id="bug_id" value="[% bug.bug_id FILTER html %]">
         view_only = 1
     %]
       <div id="field-value-bug_id">
-        [% this_bug_href = "show_bug.cgi?id=$bug.id" %]
+        [% this_bug_href = basepath _ "show_bug.cgi?id=$bug.id" %]
         [% IF cgi.param("format") %]
           [% format_uri = cgi.param("format") FILTER uri %]
           [% this_bug_href = this_bug_href _ "&format=" _ format_uri %]
         <button type="button" id="mode-btn" class="major">
           <span id="mode-btn-readonly" title="Enable editing fields for [% terms.bug %] metadata">Edit [% terms.Bug %]</span>
           <span id="mode-btn-loading">
-            <img id="edit-throbber" src="extensions/BugModal/web/throbber.gif" width="16" height="11">
+            <img id="edit-throbber" src="[% basepath FILTER none %]extensions/BugModal/web/throbber.gif" width="16" height="11">
             Fetching
           </span>
         </button>
         field        = bug_fields.product
         field_type   = constants.FIELD_TYPE_SINGLE_SELECT
         hide_on_edit = can_edit_product
-        help         = "describecomponents.cgi?product=$filtered_product"
+        help         = basepath _ "describecomponents.cgi?product=$filtered_product"
     %]
       <div class="name-info-outer dropdown">
         <span id="product-name" class="dropdown-button" tabindex="0" role="button"
           </header>
           <li role="separator"></li>
           <div class="actions">
-            <div><a href="buglist.cgi?product=[% bug.product FILTER uri %]&amp;bug_status=__open__"
+            <div><a href="[% basepath FILTER none %]buglist.cgi?product=[% bug.product FILTER uri %]&amp;bug_status=__open__"
                     target="_blank" role="menuitem" tabindex="-1">See Open [% terms.Bugs %] in This Product</a></div>
-            <div><a href="enter_bug.cgi?product=[% bug.product FILTER uri %]"
+            <div><a href="[% basepath FILTER none %]enter_bug.cgi?product=[% bug.product FILTER uri %]"
                     target="_blank" role="menuitem" tabindex="-1">File New [% terms.Bug %] in This Product</a></div>
             <div><button disabled type="button" class="minor component-watching" role="menuitem" tabindex="-1"
                          data-product="[% bug.product FILTER html %]"
         hide_on_view   = 1
         hide_on_edit   = !can_edit_product
         append_content = 1
-        help           = "describecomponents.cgi?product=$filtered_product"
+        help           = basepath _ "describecomponents.cgi?product=$filtered_product"
     %]
       <span id="product-search-container">
         [% INCLUDE prodcompsearch/form.html.tmpl
         %]
         <button id="product-search" type="button" class="minor">Search</button>
         <button id="product-search-cancel" type="button" class="minor" style="display:none">X</button>
-        <img id="product-throbber" src="extensions/BugModal/web/throbber.gif"
+        <img id="product-throbber" src="[% basepath FILTER none %]extensions/BugModal/web/throbber.gif"
           width="16" height="11" style="display:none">
-        <img id="product-search-error" class="tt" src="extensions/BugModal/web/error.png"
+        <img id="product-search-error" class="tt" src="[% basepath FILTER none %]extensions/BugModal/web/error.png"
           width="16" height="16" style="display:none">
       </span>
     [% END %]
     [% WRAPPER bug_modal/field.html.tmpl
         field      = bug_fields.component
         field_type = constants.FIELD_TYPE_SINGLE_SELECT
-        help       = "describecomponents.cgi?product=$filtered_product&component=$filtered_component#$filtered_component"
+        help       = basepath _ "describecomponents.cgi?product=$filtered_product&component=$filtered_component#$filtered_component"
 
     %]
       <div class="name-info-outer dropdown">
           </header>
           <li role="separator"></li>
           <div class="actions">
-            <div><a href="buglist.cgi?product=[% bug.product FILTER uri %]&amp;
+            <div><a href="[% basepath FILTER none %]buglist.cgi?product=[% bug.product FILTER uri %]&amp;
                           [%~ %]component=[% bug.component FILTER uri %]&amp;bug_status=__open__"
                     target="_blank" role="menuitem" tabindex="-1">See Open [% terms.Bugs %] in This Component</a></div>
-            <div><a href="enter_bug.cgi?product=[% bug.product FILTER uri %]&amp;
+            <div><a href="[% basepath FILTER none %]enter_bug.cgi?product=[% bug.product FILTER uri %]&amp;
                           [%~ %]component=[% bug.component FILTER uri %]"
                     target="_blank" role="menuitem" tabindex="-1">File New [% terms.Bug %] in This Component</a></div>
             <div><button disabled type="button" class="minor component-watching" role="menuitem" tabindex="-1"
         field = bug_fields.keywords
         field_type = constants.FIELD_TYPE_KEYWORDS
         hide_on_view = bug.keyword_objects.size == 0
-        help = "describekeywords.cgi"
+        help = basepath _ "describekeywords.cgi"
     %]
       [% bug.keyword_objects.pluck("name").join(", ") || "---" FILTER html %]
     [% END %]
           label = ""
           hide_on_edit = 1
       %]
-        Dependency <a href="showdependencytree.cgi?id=[% bug.bug_id FILTER none %]&amp;hide_resolved=1">tree</a>
-        / <a href="showdependencygraph.cgi?id=[% bug.bug_id FILTER none %]">graph</a>
+        Dependency <a href="[% basepath FILTER none %]showdependencytree.cgi?id=[% bug.bug_id FILTER none %]&amp;hide_resolved=1">tree</a>
+        / <a href="[% basepath FILTER none %]showdependencygraph.cgi?id=[% bug.bug_id FILTER none %]">graph</a>
       [% END %]
     [% END %]
 
          help = "https://wiki.mozilla.org/BMO/UserGuide/BugFields#deadline"
       %]
       <div>
-        <a href="summarize_time.cgi?id=[% bug.bug_id FILTER none %]&amp;do_depends=1">
+        <a href="[% basepath FILTER none %]summarize_time.cgi?id=[% bug.bug_id FILTER none %]&amp;do_depends=1">
           Summarize time (including time for [% terms.bugs %]
           blocking this [% terms.bug %])</a>
       </div>
 
 [% IF user.id %]
   <div id="top-actions">
-    <a href="attachment.cgi?bugid=[% bug.id FILTER uri %]&amp;action=enter" id="attachments-add-link">Attach File</a>
+    <a href="[% basepath FILTER none %]attachment.cgi?bugid=[% bug.id FILTER uri %]&amp;action=enter" id="attachments-add-link">Attach File</a>
     [%+ Hook.process('top_actions') %]
     <button type="submit" class="save-btn major" id="top-save-btn" style="display:none">Save Changes</button>
   </div>
         aria-expanded="false" aria-controls="format-menu" class="dropdown-button minor">Format [% terms.Bug %] &#9652;</button>
       <ul class="dropdown-content left menu-up" id="format-menu" role="menu" style="display:none;">
         <li role="presentation">
-          <a href="show_bug.cgi?format=multiple&amp;id=[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">For Printing</a>
+          <a href="[% basepath FILTER none %]show_bug.cgi?format=multiple&amp;id=[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">For Printing</a>
         </li>
         <li role="presentation">
-          <a href="show_bug.cgi?ctype=xml&amp;id=[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">XML</a>
+          <a href="[% basepath FILTER none %]show_bug.cgi?ctype=xml&amp;id=[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">XML</a>
         </li>
         <li role="presentation">
-          <a href="show_bug.cgi?format=default&amp;id=[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">Legacy</a>
+          <a href="[% basepath FILTER none %]show_bug.cgi?format=default&amp;id=[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">Legacy</a>
         </li>
         [% IF bug.groups_in.size == 0 %]
           <li role="presentation">
-            <a href="rest/bug/[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">JSON</a>
+            <a href="[% basepath FILTER none %]rest/bug/[% bug.id FILTER uri %]" role="menuitem" tabindex="-1">JSON</a>
           </li>
         [% END %]
       </ul>
           aria-expanded="false" aria-controls="new-bug-menu" class="dropdown-button minor">New/Clone [% terms.Bug %] &#9652;</button>
         <ul class="dropdown-content left menu-up" id="new-bug-menu" role="menu" style="display:none;">
           <li role="presentation">
-            <a href="enter_bug.cgi" role="menuitem" tabindex="-1" target="_blank">
+            <a href="[% basepath FILTER none %]enter_bug.cgi" role="menuitem" tabindex="-1" target="_blank">
               Create a new [% terms.bug %]</a>
           </li>
           <li role="presentation">
-            <a href="enter_bug.cgi?product=[% bug.product FILTER uri %]"
+            <a href="[% basepath FILTER none %]enter_bug.cgi?product=[% bug.product FILTER uri %]"
                role="menuitem" tabindex="-1" target="_blank">&#8230; in this product</a>
           </li>
           <li role="presentation">
-            <a href="enter_bug.cgi?product=[% bug.product FILTER uri %]&amp;component=[% bug.component FILTER uri %]"
+            <a href="[% basepath FILTER none %]enter_bug.cgi?product=[% bug.product FILTER uri %]&amp;component=[% bug.component FILTER uri %]"
                role="menuitem" tabindex="-1" target="_blank">&#8230; in this component</a>
           </li>
           <li role="separator"></li>
           <li role="presentation">
-            <a href="enter_bug.cgi?format=__default__&amp;product=[% bug.product FILTER uri %]&amp;blocked=[% bug.id FILTER uri %]"
+            <a href="[% basepath FILTER none %]enter_bug.cgi?format=__default__&amp;product=[% bug.product FILTER uri %]&amp;blocked=[% bug.id FILTER uri %]"
                role="menuitem" tabindex="-1" target="_blank">&#8230; that blocks this [% terms.bug %]</a>
           </li>
           <li role="presentation">
-            <a href="enter_bug.cgi?format=__default__&amp;product=[% bug.product FILTER uri %]&amp;dependson=[% bug.id FILTER uri %]"
+            <a href="[% basepath FILTER none %]enter_bug.cgi?format=__default__&amp;product=[% bug.product FILTER uri %]&amp;dependson=[% bug.id FILTER uri %]"
                role="menuitem" tabindex="-1" target="_blank">&#8230; that depends on this [% terms.bug %]</a>
           </li>
           <li role="separator"></li>
           <li role="presentation">
-            <a href="enter_bug.cgi?format=__default__&amp;product=[% bug.product FILTER uri %]&amp;cloned_bug_id=[% bug.id FILTER uri %]"
+            <a href="[% basepath FILTER none %]enter_bug.cgi?format=__default__&amp;product=[% bug.product FILTER uri %]&amp;cloned_bug_id=[% bug.id FILTER uri %]"
                role="menuitem" tabindex="-1" target="_blank">&#8230; as a clone of this [% terms.bug %]</a>
           </li>
           <li role="presentation">
-            <a href="enter_bug.cgi?format=__default__&amp;cloned_bug_id=[% bug.id FILTER uri %]"
+            <a href="[% basepath FILTER none %]enter_bug.cgi?format=__default__&amp;cloned_bug_id=[% bug.id FILTER uri %]"
                role="menuitem" tabindex="-1" target="_blank">&#8230; as a clone, in a different product</a>
           </li>
         </ul>
     ELSE;
       %]
         <div id="new-comment-notice">
-          You need to <a href="show_bug.cgi?id=[% bug.bug_id FILTER none %]&amp;GoAheadAndLogIn=1">log in</a>
+          You need to <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id FILTER none %]&amp;GoAheadAndLogIn=1">log in</a>
           before you can comment on or make changes to this [% terms.bug %].
         </div>
       [%
index 6726df409e21570303979be2626fc691e80960c7..2dce818c56d216d3874bf701d39af8a6fcd0e9dd 100644 (file)
@@ -283,14 +283,14 @@ END;
           <input type="datetime-local" name="[% name FILTER html %]" id="[% name FILTER html %]"
             value="[% value FILTER html %]" [% aria_labelledby_html FILTER none %]>
           <img class="cf_datetime-img" id="[% name FILTER html %]-img"
-            src="extensions/BugModal/web/calendar.png" width="16" height="16">
+            src="[% basepath FILTER none %]extensions/BugModal/web/calendar.png" width="16" height="16">
 
         [% CASE constants.FIELD_TYPE_DATE %]
           [%# date %]
           <input type="date" name="[% name FILTER html %]" id="[% name FILTER html %]"
             value="[% value FILTER html %]" [% aria_labelledby_html FILTER none %]>
           <img class="cf_date-img" id="[% name FILTER html %]-img"
-            src="extensions/BugModal/web/calendar.png" width="16" height="16">
+            src="[% basepath FILTER none %]extensions/BugModal/web/calendar.png" width="16" height="16">
 
         [% CASE constants.FIELD_TYPE_INTEGER %]
           [%# integer %]
index 06163a841cc7e32b3f8a44ef1350b4f148be5e73..40a610fceb2c03e51906ca67d2f6b26bdd9306aa 100644 (file)
     [% INCLUDE nav_link text="Next &#10097;" bug_id="" %]
   [% END %]
   [% INCLUDE nav_link text="Last &#10097;&#10097;" bug_id=last_bug_list.last %]
-  <a id="search-nav-reget" href="buglist.cgi?regetlastlist=[% search.id FILTER uri %]">Last search results</a>
+  <a id="search-nav-reget" href="[% basepath FILTER none %]buglist.cgi?regetlastlist=[% search.id FILTER uri %]">Last search results</a>
 </div>
 
 [% BLOCK nav_link %]
   [% IF bug_id == "" %]
     <span class="search-nav-disabled">[% text FILTER none %]</span>
   [% ELSE %]
-    <a class="search-nav-link" href="show_bug.cgi?id=[% bug_id FILTER uri %]&amp;list_id=[% search.id FILTER uri %]">
+    <a class="search-nav-link" href="[% basepath FILTER none %]show_bug.cgi?id=[% bug_id FILTER uri %]&amp;list_id=[% search.id FILTER uri %]">
       [%~ text FILTER none ~%]
     </a>
   [% END %]
index 63663b4d56d8faec986b932c242edfa6acc1baad..bb633788f08b4ab4d7068a409821b3be5f5b19c6 100644 (file)
@@ -37,7 +37,7 @@
     [%~ ~%]
     <li id="comment-preview-tab" role="tab" tabindex="-1" aria-controls="comment-preview-tabpanel" aria-selected="false">
       Preview
-      <img id="preview-throbber" src="extensions/BugModal/web/throbber.gif" width="16" height="11" style="display:none">
+      <img id="preview-throbber" src="[% basepath FILTER none %]extensions/BugModal/web/throbber.gif" width="16" height="11" style="display:none">
     </li>
   </ul>
 
@@ -49,7 +49,7 @@
   </div>
 
   <div id="bugzilla-etiquette">
-    <a href="page.cgi?id=etiquette.html" target="_blank" tabindex="-1">
+    <a href="[% basepath FILTER none %]page.cgi?id=etiquette.html" target="_blank" tabindex="-1">
       Comments Subject to Etiquette and Contributor Guidelines</a>
   </div>
 
index 6a0ce4e24116f2617f5f3745a6e115d2a44fb44a..96705e1389b0c9ff3294c09aa5dcea1502f1237b 100644 (file)
@@ -49,7 +49,7 @@ END;
             data-show-edit="[% user.in_group('editusers') || user.in_group('disableusers') || user.bless_groups.size > 0 ? 1 : 0 %]"
             title="[% u.identity FILTER html %]"
           [% ELSE %]
-            href="user_profile?user_id=[% u.id FILTER none %]"
+            href="[% basepath FILTER none %]user_profile?user_id=[% u.id FILTER none %]"
           [% END %]
           >
           <span class="[% user.id ? 'fn' : 'fna' %]">[% nick_only ? u.nick : (u.name || u.nick) FILTER html %]</span>
index c15174c8bb22380663bfaee42b7f02938ab719c6..59d7b2ce541183aaaf85486b5193ff0c64b14e49 100644 (file)
@@ -257,14 +257,14 @@ $(function() {
 
     function ccListLoading() {
         $('#cc-list').html(
-            '<img src="extensions/BugModal/web/throbber.gif" width="16" height="11"> Loading...'
+            `<img src="${BUGZILLA.config.basepath}extensions/BugModal/web/throbber.gif" width="16" height="11"> Loading...`
         );
     }
 
     function ccListUpdate() {
         bugzilla_ajax(
             {
-                url: 'rest/bug_modal/cc/' + BUGZILLA.bug_id
+                url: `${BUGZILLA.config.basepath}rest/bug_modal/cc/${BUGZILLA.bug_id}`
             },
             function(data) {
                 $('#cc-list').html(data.html);
@@ -448,7 +448,7 @@ $(function() {
     $('#action-history')
         .click(function(event) {
             event.preventDefault();
-            window.open(`show_activity.cgi?id=${BUGZILLA.bug_id}`, '_blank');
+            window.open(`${BUGZILLA.config.basepath}show_activity.cgi?id=${BUGZILLA.bug_id}`, '_blank');
         });
 
     // use scrollTo for in-page activity links
@@ -518,7 +518,7 @@ $(function() {
             // load the missing select data
             bugzilla_ajax(
                 {
-                    url: 'rest/bug_modal/edit/' + BUGZILLA.bug_id
+                    url: `${BUGZILLA.config.basepath}rest/bug_modal/edit/${BUGZILLA.bug_id}`
                 },
                 function(data) {
                     $('#mode-btn').hide();
@@ -691,7 +691,7 @@ $(function() {
 
             bugzilla_ajax(
                 {
-                    url: 'rest/bug/' + BUGZILLA.bug_id,
+                    url: `${BUGZILLA.config.basepath}rest/bug/${BUGZILLA.bug_id}`,
                     type: 'PUT',
                     data: JSON.stringify({ cc: cc_change })
                 },
@@ -942,7 +942,8 @@ $(function() {
     $('#vote-btn')
         .click(function(event) {
             event.preventDefault();
-            window.location.href = 'page.cgi?id=voting/user.html&bug_id=' + BUGZILLA.bug_id + '#vote_' + BUGZILLA.bug_id;
+            window.location.href = `${BUGZILLA.config.basepath}page.cgi?` +
+                                   `id=voting/user.html&bug_id=${BUGZILLA.bug_id}#vote_${BUGZILLA.bug_id}`;
         });
 
     // user-story
@@ -1088,7 +1089,8 @@ $(function() {
 
             bugzilla_ajax(
                 {
-                    url: 'rest/bug_modal/new_product/' + BUGZILLA.bug_id + '?product=' + encodeURIComponent($('#product').val())
+                    url: `${BUGZILLA.config.basepath}rest/bug_modal/new_product/${BUGZILLA.bug_id}?` +
+                         `product=${encodeURIComponent($('#product').val())}`
                 },
                 function(data) {
                     $('#product-throbber').hide();
@@ -1244,7 +1246,7 @@ $(function() {
         preview.html('');
         bugzilla_ajax(
             {
-                url: 'rest/bug/comment/render',
+                url: `${BUGZILLA.config.basepath}rest/bug/comment/render`,
                 type: 'POST',
                 data: { text: comment.val() },
                 hideError: true
@@ -1334,7 +1336,7 @@ function confirmUnsafeURL(url) {
 }
 
 function show_new_changes_indicator() {
-    const url = `rest/bug_user_last_visit/${BUGZILLA.bug_id}`;
+    const url = `${BUGZILLA.config.basepath}rest/bug_user_last_visit/${BUGZILLA.bug_id}`;
 
     // Get the last visited timestamp
     bugzilla_ajax({ url }, data => {
@@ -1424,7 +1426,7 @@ function show_new_changes_indicator() {
 if (history && history.replaceState) {
     var href = document.location.href;
     if (!href.match(/show_bug\.cgi/)) {
-        history.replaceState(null, BUGZILLA.bug_title, 'show_bug.cgi?id=' + BUGZILLA.bug_id);
+        history.replaceState(null, BUGZILLA.bug_title, `${BUGZILLA.config.basepath}show_bug.cgi?id=${BUGZILLA.bug_id}`);
         document.title = BUGZILLA.bug_title;
     }
     if (href.match(/show_bug\.cgi\?.*list_id=/)) {
index 85c5a2368374180956e61c98addd04bd05041483..57a6a5103eaed0932de1949f87606153cdf8db6b 100644 (file)
@@ -287,7 +287,7 @@ $(function() {
         // update bugzilla
         bugzilla_ajax(
             {
-                url: 'rest/bug/comment/' + commentID + '/tags',
+                url: `${BUGZILLA.config.basepath}rest/bug/comment/${commentID}/tags`,
                 type: 'PUT',
                 data: { remove: [ tag ] },
                 hideError: true
@@ -332,7 +332,7 @@ $(function() {
         cancelRefresh();
         refreshXHR = bugzilla_ajax(
             {
-                url: 'rest/bug/comment/' + commentID + '?include_fields=tags',
+                url: `${BUGZILLA.config.basepath}rest/bug/comment/${commentID}?include_fields=tags`,
                 hideError: true
             },
             function(data) {
@@ -358,7 +358,7 @@ $(function() {
             appendTo: $('#main-inner'),
             forceFixPosition: true,
             serviceUrl: function(query) {
-                return 'rest/bug/comment/tags/' + encodeURIComponent(query);
+                return `${BUGZILLA.config.basepath}rest/bug/comment/tags/${encodeURIComponent(query)}`;
             },
             params: {
                 Bugzilla_api_token: (BUGZILLA.api_token ? BUGZILLA.api_token : '')
@@ -432,7 +432,7 @@ $(function() {
                 // update bugzilla
                 bugzilla_ajax(
                     {
-                        url: 'rest/bug/comment/' + commentID + '/tags',
+                        url: `${BUGZILLA.config.basepath}rest/bug/comment/${commentID}/tags`,
                         type: 'PUT',
                         data: { add: addTags },
                         hideError: true
index 6cd658045ba14dca99648eb33c25045feb1c6485..00dcfa7f0434f8f3cbfcdf9c4a1593510b4b4d46 100644 (file)
@@ -209,14 +209,14 @@ $(function() {
 
     function ccListLoading() {
         $('#cc-list').html(
-            '<img src="extensions/BugModal/web/throbber.gif" width="16" height="11"> Loading...'
+            `<img src="${BUGZILLA.config.basepath}extensions/BugModal/web/throbber.gif" width="16" height="11"> Loading...`
         );
     }
 
     function ccListUpdate() {
         bugzilla_ajax(
             {
-                url: 'rest/bug_modal/cc/' + BUGZILLA.bug_id
+                url: `${BUGZILLA.config.basepath}rest/bug_modal/cc/${BUGZILLA.bug_id}`
             },
             function(data) {
                 $('#cc-list').html(data.html);
@@ -410,7 +410,7 @@ $(function() {
     $('#action-history')
         .click(function(event) {
             event.preventDefault();
-            document.location.href = 'show_activity.cgi?id=' + BUGZILLA.bug_id;
+            document.location.href = `${BUGZILLA.config.basepath}show_activity.cgi?id=${BUGZILLA.bug_id}`;
         });
 
     // use scrollTo for in-page activity links
@@ -480,7 +480,7 @@ $(function() {
             // load the missing select data
             bugzilla_ajax(
                 {
-                    url: 'rest/bug_modal/edit/' + BUGZILLA.bug_id
+                    url: `${BUGZILLA.config.basepath}rest/bug_modal/edit/${BUGZILLA.bug_id}`
                 },
                 function(data) {
                     $('#mode-btn').hide();
@@ -651,7 +651,7 @@ $(function() {
 
             bugzilla_ajax(
                 {
-                    url: 'rest/bug/' + BUGZILLA.bug_id,
+                    url: `${BUGZILLA.config.basepath}rest/bug/${BUGZILLA.bug_id}`,
                     type: 'PUT',
                     data: JSON.stringify({ cc: cc_change })
                 },
@@ -889,7 +889,8 @@ $(function() {
     $('#vote-btn')
         .click(function(event) {
             event.preventDefault();
-            window.location.href = 'page.cgi?id=voting/user.html&bug_id=' + BUGZILLA.bug_id + '#vote_' + BUGZILLA.bug_id;
+            window.location.href = `${BUGZILLA.config.basepath}page.cgi?` +
+                                   `id=voting/user.html&bug_id=${BUGZILLA.bug_id}#vote_${BUGZILLA.bug_id}`;
         });
 
     // user-story
@@ -1132,7 +1133,7 @@ $(function() {
         preview.html('');
         bugzilla_ajax(
             {
-                url: 'rest/bug/comment/render',
+                url: `${BUGZILLA.config.basepath}rest/bug/comment/render`,
                 type: 'POST',
                 data: { text: comment.val() },
                 hideError: true
@@ -1217,7 +1218,7 @@ function confirmUnsafeURL(url) {
 if (history && history.replaceState) {
     var href = document.location.href;
     if (!href.match(/new-bug/) && !href.match(/show_bug\.cgi/)) {
-        history.replaceState(null, BUGZILLA.bug_title, 'show_bug.cgi?id=' + BUGZILLA.bug_id);
+        history.replaceState(null, BUGZILLA.bug_title, `${BUGZILLA.config.basepath}show_bug.cgi?id=${BUGZILLA.bug_id}`);
         document.title = BUGZILLA.bug_title;
     }
     if (href.match(/show_bug\.cgi\?.*list_id=/)) {
index 23fc842cbaa5128dc96459477faef4dc79f8b3a6..13db968609b7f98fbd31670c2a6fd764d5c1222e 100644 (file)
@@ -7,7 +7,7 @@ var component_load = function(product) {
     $('#component').attr('disabled', true);
     bugzilla_ajax(
         {
-            url: 'rest/bug_modal/product_info?product=' + encodeURIComponent(product)
+            url: `${BUGZILLA.config.basepath}rest/bug_modal/product_info?product=${encodeURIComponent(product)}`
         },
         function(data) {
             $('#product-throbber').hide();
@@ -40,7 +40,7 @@ $(document).ready(function() {
     var product_name = window.location.hash? window.location.hash.substr(1) : null;
     bugzilla_ajax(
             {
-                url: 'rest/bug_modal/initial_field_values'
+                url: `${BUGZILLA.config.basepath}rest/bug_modal/initial_field_values`
             },
             function(data) {
                 initial = data
index ff64f832322cb0f00ad21a96315193e43fb773b0..0780ffe4ad8114a090a9bf3cfd2dcdc76e4b3730 100644 (file)
@@ -199,7 +199,7 @@ var cpts = new Array();
   This feature provides fine-grained control over what changes to [% terms.bugs
   %] will result in an email notification.  These filters are applied
   <b>after</b> the rules configured on the
-  <a href="userprefs.cgi?tab=email">Email Preferences</a> tab.
+  <a href="[% basepath FILTER none %]userprefs.cgi?tab=email">Email Preferences</a> tab.
 </p>
 <p>
   If multiple filters are applicable to the same [% terms.bug %] change,
index 2a2ab6bc5cf2989d1042d1c4c889c0c0aae86c95..deb32f118bebdf80e5e0a930e1518d8d36790ba2 100644 (file)
@@ -120,7 +120,7 @@ YAHOO.util.Event.onDOMReady(onRemoveChange);
   etc.  If a new component is added which starts with "Developer Tools", you'll
   automatically start watching that too.
   <br>
-  Use <a href="userprefs.cgi?tab=email">Email Preferences</a> to filter which
+  Use <a href="[% basepath FILTER none %]userprefs.cgi?tab=email">Email Preferences</a> to filter which
   notification emails you receive.
 </p>
 
@@ -198,14 +198,14 @@ YAHOO.util.Event.onDOMReady(onRemoveChange);
       </td>
       <td>&nbsp;
         [% IF (watch.component) %]
-          <a href="buglist.cgi?product=[% watch.product.name FILTER uri ~%]
+          <a href="[% basepath FILTER none %]buglist.cgi?product=[% watch.product.name FILTER uri ~%]
                   &component=[% watch.component.name FILTER uri %]&resolution=---">
           [% watch.component.name FILTER html %]
           </a>
         [% ELSIF watch.component_prefix %]
           <i>starts with:</i> [% watch.component_prefix FILTER html %]
         [% ELSE %]
-          <a href="describecomponents.cgi?product=[% watch.product.name FILTER uri %]">
+          <a href="[% basepath FILTER none %]describecomponents.cgi?product=[% watch.product.name FILTER uri %]">
           __Any__
           </a>
         [% END %]
@@ -243,7 +243,7 @@ YAHOO.util.Event.onDOMReady(onRemoveChange);
       <td>[% watch.user.login FILTER html %]</td>
       <td>&nbsp;[% watch.component.product.name FILTER html %]</td>
       <td>&nbsp;
-        <a href="buglist.cgi?product=[% watch.product.name FILTER uri ~%]
+        <a href="[% basepath FILTER none %]buglist.cgi?product=[% watch.product.name FILTER uri ~%]
                 &component=[% watch.component.name FILTER uri %]&resolution=---">
         [% watch.component.name FILTER html %]
         </a>
@@ -253,7 +253,7 @@ YAHOO.util.Event.onDOMReady(onRemoveChange);
   </table>
 
   <p>
-    Use <a href="userprefs.cgi?tab=email#new_watched_by_you">Email Preferences</a>
+    Use <a href="[% basepath FILTER none %]userprefs.cgi?tab=email#new_watched_by_you">Email Preferences</a>
     to manage this list.
   </p>
 
index c22ffacaa1b392d7b797b631ca9b028f88241076..b06c618f16635a282d839f4a5d631e47c3d4a31b 100644 (file)
@@ -7,7 +7,7 @@
   #%]
 
 [% IF san_tag == "component_watching_repair" %]
-    <a href="sanitycheck.cgi?component_watching_repair=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?component_watching_repair=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]"
     >Repair invalid product_id values in the component_watch table</a>
 
index 6227498523437531aaf6bea19f269fd4000acce4..4272382b4dfbfebe7699686c1bdaa01b90b20226 100644 (file)
@@ -37,7 +37,7 @@ Bugzilla.ComponentWatching = class ComponentWatching {
    * @returns {Promise<Object|String>} Response data or error message.
    */
   async fetch(request = {}, path = '') {
-    request.url = `/rest/component-watching${path}`;
+    request.url = `${BUGZILLA.config.basepath}rest/component-watching${path}`;
 
     return new Promise((resolve, reject) => bugzilla_ajax(request, data => resolve(data), error => reject(error)));
   }
index 35835924317ae7c9a2830a43a25660c715c6fb28..d5028c4a1a57c83c1b91fd048f74243d0f37d0d4 100644 (file)
@@ -17,7 +17,7 @@
 %]
 
 [% IF comment.edit_count %]
-  <a href="page.cgi?id=editcomments.html&bug_id=[% bug.id FILTER none %]&amp;comment_id=[% comment.id FILTER none %]"
+  <a href="[% basepath FILTER none %]page.cgi?id=editcomments.html&bug_id=[% bug.id FILTER none %]&amp;comment_id=[% comment.id FILTER none %]"
      title="[% comment.edit_count FILTER none %] edit[% "s" UNLESS comment.edit_count == 1 %]">(Edited)</a>
 [% END %]
 
index 222c081cff4377bb3052a65526d3955c5a9ab5f4..04e4a2f88ea593cb2e1a08c920a6519e32b1d096 100644 (file)
@@ -36,7 +36,7 @@ $(function() {
             // load original comment text
             bugzilla_ajax(
                 {
-                    url: 'rest/editcomments/comment/' + id,
+                    url: `${BUGZILLA.config.basepath}rest/editcomments/comment/${id}`,
                     hideError: true
                 },
                 function(data) {
index 8d8b125053d2d53e63953516665589043cc1067b..f2fae40824aa476d50c758d0449584049ac0153e 100644 (file)
@@ -26,7 +26,7 @@
 
 <div id="edit_table"></div>
 <br>
-<form method="post" action="page.cgi" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]page.cgi" enctype="multipart/form-data"
       onsubmit="editTable.to_json('table_data')">
 <input type="hidden" name="id" value="edit_table.html">
 <input type="hidden" name="table" value="[% table_name FILTER html %]">
index 639752ed5983c9685439879b8e1bf500d6a80e90..aa17850294eb295b747fea47c6c6c33a2053227d 100644 (file)
 [% ELSIF san_tag == "example_check_au_user_alert" %]
   User &lt;[% login FILTER html %]&gt; isn't Australian.
   [% IF user.in_group('editusers') %]
-    <a href="editusers.cgi?id=[% userid FILTER none %]">Edit this user</a>.
+    <a href="[% basepath FILTER none %]editusers.cgi?id=[% userid FILTER none %]">Edit this user</a>.
   [% END %]
 [% ELSIF san_tag == "example_check_au_user_prompt" %]
-  <a href="sanitycheck.cgi?example_repair_au_user=1&amp;token=
+  <a href="[% basepath FILTER none %]sanitycheck.cgi?example_repair_au_user=1&amp;token=
      [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Fix these users</a>.
 [% ELSIF san_tag == "example_repair_au_user_start" %]
   <em>EXAMPLE PLUGIN</em> - OK, would now make users Australian.
index 56e03040ac2393e6b9a230cd44e8425efc5eeb3f..129928e5104fa484cdba7f210b752f9707857660 100644 (file)
@@ -20,8 +20,8 @@
   #   byron jones <glob@mozilla.com>
   #%]
 
-<link rel="stylesheet" href="extensions/FlagTypeComment/web/styles/ftc.css">
-<script [% script_nonce FILTER none %] src="extensions/FlagTypeComment/web/js/ftc.js"></script>
+<link rel="stylesheet" href="[% basepath FILTER none %]extensions/FlagTypeComment/web/styles/ftc.css">
+<script [% script_nonce FILTER none %] src="[% basepath FILTER none %]extensions/FlagTypeComment/web/js/ftc.js"></script>
 
 [% IF ftc_flags.keys.size %]
   [%# plaintext templates from database %]
index 225b6f8a005a74956fba392c9cc64d34c4776afc..f5e5ab11b261f86a37c95e63c6d376f9271bd693 100644 (file)
@@ -7,12 +7,12 @@
   #%]
 [% USE Bugzilla %]
 [% IF Param('user_info_class').split(',').contains('GitHubAuth') %]
-  <form method="post" action="[% urlbase FILTER html %]github.cgi">
+  <form method="post" action="[% basepath FILTER html %]github.cgi">
     <input type="hidden" name="github_secret" value="[% Bugzilla.github_secret FILTER html %]">
     <input type="hidden" name="target_uri" value="[% Bugzilla.cgi.target_uri FILTER html %]">
-    <input type="image" src="extensions/GitHubAuth/web/images/github_sign_in.png"
+    <input type="image" src="[% basepath FILTER none %]extensions/GitHubAuth/web/images/github_sign_in.png"
            alt="Sign in with GitHub"
            title="Sign in with GitHub"
            width="185" height="25">
   </form>
-[% END %]
\ No newline at end of file
+[% END %]
index 965e29639291ee1b1eebedcf220c8aae1e38f4c0..ba69911758d3bc44b2694e13a8ce0487a918f0cf 100644 (file)
@@ -9,10 +9,10 @@
 
 [% IF Param('user_info_class').split(',').contains('GitHubAuth') %]
   <span id="github_mini_login[% qs_suffix FILTER html %]" class="mini_login[% qs_suffix FILTER html %]">
-    <form method="post" action="[% urlbase FILTER html %]github.cgi">
+    <form method="post" action="[% basepath FILTER html %]github.cgi">
       <input type="hidden" name="github_secret" value="[% Bugzilla.github_secret FILTER html %]">
       <input type="hidden" name="target_uri" value="[% Bugzilla.cgi.target_uri FILTER html %]">
-      <input type="image" src="extensions/GitHubAuth/web/images/sign_in.png" height="22" width="75" align="absmiddle"
+      <input type="image" src="[% basepath FILTER none %]extensions/GitHubAuth/web/images/sign_in.png" height="22" width="75" align="absmiddle"
              alt="Sign in with GitHub"
              title="Sign in with GitHub"> or
     </form>
index 361c02d2b9eb44278acc3d7dadf115a509a66b9b..60aa26b06a3645e83c45a2e510df4d9fa7fb47e0 100644 (file)
@@ -8,7 +8,7 @@
 
 [% IF user.settings.show_gravatars.value == 'On' %]
   [% IF who.last_activity_ts %]
-    <a href="user_profile?user_id=[% who.id FILTER none %]">
+    <a href="[% basepath FILTER none %]user_profile?user_id=[% who.id FILTER none %]">
   [% END %]
   <img alt="User image" align="middle" src="[% who.gravatar FILTER none %]" width="32" height="32" border="0">
   [% "</a>" IF who.last_activity_ts %]
index 7e34e992014999d6dc6a118913e4ff074cd92d06..8026bcd39e835ff9a4cc05156756305f8bb7cd44 100644 (file)
    style_urls = [ 'extensions/GuidedBugEntry/web/style/guided.css' ]
 %]
 
-<iframe id="yui-history-iframe" src="extensions/GuidedBugEntry/web/yui-history-iframe.txt"></iframe>
+<iframe id="yui-history-iframe" src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/yui-history-iframe.txt"></iframe>
 <input id="yui-history-field" type="hidden">
 
 <noscript>
 You require JavaScript to use this [% terms.bug %] entry form.<br><br>
-Please use the <a href="enter_bug.cgi?format=__default__">advanced [% terms.bug %] entry form</a>.
+Please use the <a href="[% basepath FILTER none %]enter_bug.cgi?format=__default__">advanced [% terms.bug %] entry form</a>.
 </noscript>
 
 <div id="loading" class="hidden">
@@ -45,9 +45,9 @@ YAHOO.util.Dom.removeClass('loading', 'hidden');
 </div>
 
 <div id="advanced">
-  <a id="advanced_img" href="enter_bug.cgi?format=__default__"><img
-  src="extensions/GuidedBugEntry/web/images/advanced.png" width="16" height="16" border="0"></a>
-  <a id="advanced_link" href="enter_bug.cgi?format=__default__">Switch to the advanced [% terms.bug %] entry form</a>
+  <a id="advanced_img" href="[% basepath FILTER none %]enter_bug.cgi?format=__default__"><img
+  src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/images/advanced.png" width="16" height="16" border="0"></a>
+  <a id="advanced_link" href="[% basepath FILTER none %]enter_bug.cgi?format=__default__">Switch to the advanced [% terms.bug %] entry form</a>
 </div>
 
 <script [% script_nonce FILTER none %]>
@@ -69,7 +69,7 @@ dupes.setLabels(
   }
 );
 </script>
-<script src="page.cgi?id=guided_products.js[% "&amp;format_forced=1" IF format_forced %]"></script>
+<script src="[% basepath FILTER none %]page.cgi?id=guided_products.js[% "&amp;format_forced=1" IF format_forced %]"></script>
 [% PROCESS global/footer.html.tmpl %]
 
 [%############################################################################%]
@@ -170,7 +170,7 @@ Other Mozilla products which aren't listed here
       onclick="product.select('[% name FILTER js %]')"
       [% END %]>
       <span class="product-item">
-      <img src="extensions/BMO/web/producticons/[% icon FILTER uri %]" class="product-icon">
+      <img src="[% basepath FILTER none %]extensions/BMO/web/producticons/[% icon FILTER uri %]" class="product-icon">
       <a href="javascript:void(0)">[% caption FILTER html %]</a>
       <p>
         [% IF content %]
@@ -237,7 +237,7 @@ Other Mozilla products which aren't listed here
     <td>
       <div class="exit_img">
         <a href="https://support.mozilla.org/">
-        <img src="extensions/GuidedBugEntry/web/images/support.png" width="32" height="32"></a>
+        <img src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/images/support.png" width="32" height="32"></a>
       </div>
     </td>
     <td class="exit_text">
@@ -249,7 +249,7 @@ Other Mozilla products which aren't listed here
     <td>
       <div class="exit_img">
         <a href="https://input.mozilla.org/feedback/">
-        <img src="extensions/GuidedBugEntry/web/images/input.png" width="32" height="32">
+        <img src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/images/input.png" width="32" height="32">
         </a>
       </div>
     </td>
@@ -261,7 +261,7 @@ Other Mozilla products which aren't listed here
   <tr>
     <td>
       <div class="exit_img">
-        <img src="extensions/GuidedBugEntry/web/images/webbug.png" width="32" height="32">
+        <img src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/images/webbug.png" width="32" height="32">
       </div>
     </td>
     <td class="exit_text_last">
@@ -294,7 +294,7 @@ Product: <b><span id="dupes_product_name">?</span></b>:
 <table border="0" cellpadding="5" cellspacing="0" id="product_support" class="hidden">
   <tr>
     <td>
-      <img src="extensions/GuidedBugEntry/web/images/message.png" width="24" height="24">
+      <img src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/images/message.png" width="24" height="24">
     </td>
     <td id="product_support_message">&nbsp;</td>
   </tr>
@@ -303,7 +303,7 @@ Product: <b><span id="dupes_product_name">?</span></b>:
 <table border="0" cellpadding="5" cellspacing="0" id="l10n_message">
   <tr>
     <td>
-      <img src="extensions/BMO/web/producticons/localization.png" width="24" height="24">
+      <img src="[% basepath FILTER none %]extensions/BMO/web/producticons/localization.png" width="24" height="24">
     </td>
     <td>
       <a href="javascript:void(0)" id="l10n_link">
@@ -339,7 +339,7 @@ Product: <b><span id="dupes_product_name">?</span></b>:
 
 [% INCLUDE page_title %]
 
-<form method="post" action="post_bug.cgi" enctype="multipart/form-data" onsubmit="return bugForm.validate()">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" enctype="multipart/form-data" onsubmit="return bugForm.validate()">
 <input type="hidden" name="token" value="[% token FILTER html %]">
 <input type="hidden" name="product" id="product" value="">
 <input type="hidden" name="component" id="component" value="">
@@ -400,7 +400,7 @@ explain how to write effective [% terms.bug %] reports.</li>
     <div class="label">
     Component:
     </div>
-    (<a id="list_comp" href="describecomponents.cgi" target="_blank"
+    (<a id="list_comp" href="[% basepath FILTER none %]describecomponents.cgi" target="_blank"
     title="Show a list of all components and descriptions (in a new window)."
     >List</a>)
   </td>
@@ -545,7 +545,7 @@ explain how to write effective [% terms.bug %] reports.</li>
 [%############################################################################%]
 
 [% BLOCK help %]
-<img src="extensions/GuidedBugEntry/web/images/help.png" width="16" height="16" class="help_image"
+<img src="[% basepath FILTER none %]extensions/GuidedBugEntry/web/images/help.png" width="16" height="16" class="help_image"
  helpid="[% id FILTER html %]" onMouseOver="bugForm.showHelp(this)" onMouseOut="bugForm.hideHelp(this)"
  >
 [% END %]
index 5f354315336e490d9dee1da4c74262cb2afae2c3..e8e99e0a17cf93f098741ea58c1d29d4dcf33c42 100644 (file)
@@ -93,9 +93,9 @@ var guided = {
   },
 
   setAdvancedLink: function() {
-    var href = 'enter_bug.cgi?format=__default__' +
-      '&product=' + encodeURIComponent(product.getName()) +
-      '&short_desc=' + encodeURIComponent(dupes.getSummary());
+    var href = `${BUGZILLA.config.basepath}enter_bug.cgi?format=__default__` +
+               `&product=${encodeURIComponent(product.getName())}` +
+               `&short_desc=${encodeURIComponent(dupes.getSummary())}`;
     Dom.get('advanced_img').href = href;
     Dom.get('advanced_link').href = href;
   }
@@ -181,7 +181,8 @@ var product = {
     Dom.get('product').value = productName;
     Dom.get('product_label').innerHTML = YAHOO.lang.escapeHTML(productName);
     Dom.get('dupes_product_name').innerHTML = YAHOO.lang.escapeHTML(productName);
-    Dom.get('list_comp').href = 'describecomponents.cgi?product=' + encodeURIComponent(productName);
+    Dom.get('list_comp').href = `${BUGZILLA.config.basepath}describecomponents.cgi?` +
+                                `product=${encodeURIComponent(productName)}`;
     guided.setAdvancedLink();
 
     if (productName == '') {
@@ -217,7 +218,7 @@ var product = {
     YAHOO.util.Connect.setDefaultPostHeader('application/json; charset=UTF-8');
     YAHOO.util.Connect.asyncRequest(
       'POST',
-      'jsonrpc.cgi',
+      `${BUGZILLA.config.basepath}jsonrpc.cgi`,
       {
         success: function(res) {
           try {
@@ -225,7 +226,7 @@ var product = {
             if (data.error)
               throw(data.error.message);
             if (data.result.products.length == 0)
-              document.location.href = 'enter_bug.cgi?format=guided';
+              document.location.href = `${BUGZILLA.config.basepath}enter_bug.cgi?format=guided`;
             product.details = data.result.products[0];
             bugForm.onProductUpdated();
           } catch (err) {
@@ -310,7 +311,7 @@ var dupes = {
   },
 
   _initDataTable: function() {
-    var dataSource = new YAHOO.util.XHRDataSource("jsonrpc.cgi");
+    var dataSource = new YAHOO.util.XHRDataSource(`${BUGZILLA.config.basepath}jsonrpc.cgi`);
     dataSource.connTimeout = 15000;
     dataSource.connMethodPost = true;
     dataSource.connXhrMode = "cancelStaleRequests";
@@ -351,8 +352,7 @@ var dupes = {
   },
 
   _formatId: function(el, oRecord, oColumn, oData) {
-    el.innerHTML = '<a href="show_bug.cgi?id=' + oData +
-      '" target="_blank">' + oData + '</a>';
+    el.innerHTML = `<a href="${BUGZILLA.config.basepath}show_bug.cgi?id=${oData}" target="_blank">${oData}</a>`;
   },
 
   _formatStatus: function(el, oRecord, oColumn, oData) {
@@ -426,7 +426,7 @@ var dupes = {
     YAHOO.util.Connect.setDefaultPostHeader('application/json; charset=UTF-8');
     YAHOO.util.Connect.asyncRequest(
       'POST',
-      'jsonrpc.cgi',
+      `${BUGZILLA.config.basepath}jsonrpc.cgi`,
       {
         success: function(res) {
           var data = YAHOO.lang.JSON.parse(res.responseText);
@@ -545,7 +545,7 @@ var dupes = {
 
       dupes._dataTable.showTableMessage(
         'Searching for similar issues...&nbsp;&nbsp;&nbsp;' +
-        '<img src="extensions/GuidedBugEntry/web/images/throbber.gif"' +
+        `<img src="${BUGZILLA.config.basepath}extensions/GuidedBugEntry/web/images/throbber.gif"` +
         ' width="16" height="11">',
         YAHOO.widget.DataTable.CLASS_LOADING
       );
@@ -626,9 +626,10 @@ var bugForm = {
     var visibleCount = 0;
     if (products[productName] && products[productName].format) {
         Dom.addClass('advanced', 'hidden');
-        document.location.href = 'enter_bug.cgi?format=' + encodeURIComponent(products[productName].format) +
-                                 '&product=' + encodeURIComponent(productName) +
-                                 '&short_desc=' + encodeURIComponent(dupes.getSummary());
+        document.location.href = `${BUGZILLA.config.basepath}enter_bug.cgi?` +
+                                 `format=${encodeURIComponent(products[productName].format)}` +
+                                 `&product=${encodeURIComponent(productName)}` +
+                                 `&short_desc=${encodeURIComponent(dupes.getSummary())}`;
         guided.updateStep = false;
         return;
     }
index 65dc04393a610cf18b704663fdb80709215104a6..ffeee0af6ed2bcbfe7705db4e1a6c5859169e210 100644 (file)
@@ -47,7 +47,7 @@ var products = {
     support:
       'If you are new to Firefox or Bugzilla, please consider checking ' +
       '<a href="https://support.mozilla.org/">' +
-      '<img src="extensions/GuidedBugEntry/web/images/sumo.png" width="16" height="16" align="absmiddle">' +
+      `<img src="${BUGZILLA.config.basepath}extensions/GuidedBugEntry/web/images/sumo.png" width="16" height="16" align="absmiddle">` +
       ' <b>Firefox Help</b></a> instead of creating a bug.'
   },
 
@@ -58,7 +58,7 @@ var products = {
     support:
       'If you are new to Firefox or Bugzilla, please consider checking ' +
       '<a href="https://support.mozilla.org/">' +
-      '<img src="extensions/GuidedBugEntry/web/images/sumo.png" width="16" height="16" align="absmiddle">' +
+      `<img src="${BUGZILLA.config.basepath}extensions/GuidedBugEntry/web/images/sumo.png" width="16" height="16" align="absmiddle">` +
       ' <b>Firefox Help</b></a> instead of creating a bug.'
   },
 
index 32e6499cbf7216a1f5590c61c70dccfb04c990a1..4af3b7533c6d890e43e0abe4108c09a80c2a9510 100644 (file)
@@ -47,7 +47,7 @@
       [%# make attachment changes better %]
       [% IF change.attachid %]
         html += '<a '
-                + 'href="attachment.cgi?id=[% change.attachid FILTER none %]&amp;action=edit" '
+                + 'href="[% basepath FILTER none %]attachment.cgi?id=[% change.attachid FILTER none %]&amp;action=edit" '
                 + 'title="[% change.attach.description FILTER html FILTER js %]" '
                 + 'class="[% "bz_obsolete" IF change.attach.isobsolete %]"'
                 + '>Attachment #[% change.attachid FILTER none %]</a> - ';
index f2cd15d394488be4f8f8dc1dbf5901786ddf3c43..85dd9e4b652ddbbede17f338eb32dc96b0d76c63 100644 (file)
@@ -23,9 +23,9 @@
   <div id="custom_form_list_text">
     Other task-specific [% terms.bug %] forms exist that should be used if appropriate:
     <ul>
-      <li><a href="enter_bug.cgi?product=Mozilla%20Foundation%20Operations">Mozilla Foundation Vendor Request</a></li>
-      <li><a href="form.name.clearance">Name Clearance Request</a></li>
-      <li><a href="form.nda">NDA Request</a></li>
+      <li><a href="[% basepath FILTER none %]enter_bug.cgi?product=Mozilla%20Foundation%20Operations">Mozilla Foundation Vendor Request</a></li>
+      <li><a href="[% basepath FILTER none %]form.name.clearance">Name Clearance Request</a></li>
+      <li><a href="[% basepath FILTER none %]form.nda">NDA Request</a></li>
     </ul>
   </div>
 </div>
@@ -47,7 +47,7 @@
   <span class="required_explanation">Required Field</span>)
 </p>
 
-<form method="post" action="post_bug.cgi" id="mozProjectForm" enctype="multipart/form-data">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="mozProjectForm" enctype="multipart/form-data">
   <input type="hidden" id="product" name="product" value="Legal">
   <input type="hidden" id="component" name="component" value="General">
   <input type="hidden" id="rep_platform" name="rep_platform" value="All">
         <span class="field_data">
           <input class="date-field" name="sow_start_date" id="sow_start_date">
           <img class="date-field-img" id="sow_start_date-img"
-               src="extensions/BugModal/web/calendar.png" width="16" height="16">
+               src="[% basepath FILTER none %]extensions/BugModal/web/calendar.png" width="16" height="16">
         </span>
       </div>
 
         <span class="field_data">
           <input class="date-field" name="sow_end_date" id="sow_end_date">
           <img class="date-field-img" id="sow_end_date-img"
-               src="extensions/BugModal/web/calendar.png" width="16" height="16">
+               src="[% basepath FILTER none %]extensions/BugModal/web/calendar.png" width="16" height="16">
         </span>
       </div>
 
index bf25e7a88b5f5aea003f74b86bc1ae1bc0cc07f2..83f971470b90e908c21053ed2deaa28303154ca0 100644 (file)
@@ -8,7 +8,7 @@
 
 [% IF user.login %]
   <li class="link-dashboard">
-    <a href="[% urlbase FILTER none %]page.cgi?id=mydashboard.html" title="Show My Dashboard">
+    <a href="[% basepath FILTER none %]page.cgi?id=mydashboard.html" title="Show My Dashboard">
       <span class="icon" aria-hidden="true"></span>
       <span class="label">My Dashboard</span>
     </a>
index 734be28df89b136c471e73a4322fb3844eb0ac33..3a8c5fbc39d35ca777173741fc9af9d4559a2ea3 100644 (file)
@@ -98,7 +98,7 @@
           </optgroup>
         </select>
         <small>
-          (<a href="userprefs.cgi?tab=saved-searches">add or remove saved searches</a>)
+          (<a href="[% basepath FILTER none %]userprefs.cgi?tab=saved-searches">add or remove saved searches</a>)
         </small>
       </div>
 
       <section id="saved_searches_container">
         <header>
           <h2 class="query_heading">Saved Searches</h2>
-          <a href="userprefs.cgi?tab=saved-searches">Edit</a>
+          <a href="[% basepath FILTER none %]userprefs.cgi?tab=saved-searches">Edit</a>
         </header>
         <ul>
           [% IF user.showmybugslink %][% filtered_username = user.login FILTER uri %]
-            <li><a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">
+            <li><a href="[% basepath FILTER none %][% Param('mybugstemplate').replace('%userid%', filtered_username) %]">
                 My [% terms.Bugs %]</a></li>
           [% END %]
           [% FOREACH q = user.queries %][% IF q.link_in_footer %]
-            <li><a href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER uri %]">
+            <li><a href="[% basepath FILTER none %]buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER uri %]">
                 [% q.name FILTER html %]</a></li>
           [% END %][% END %]
           [% FOREACH q = user.queries_subscribed %]
-            <li><a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
+            <li><a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
                 [% q.name FILTER uri %]&amp;sharer_id=[% q.user.id FILTER uri %]"
                 title="Shared by [% q.user.identity FILTER html %]">[% q.name FILTER html FILTER no_break %]</a></li>
           [% END %]
index b340b4ee17ea6be7844534b14f9ab05470b75304..c3d50cb074df1c7af4103f79a49b674dd16d1a67 100644 (file)
@@ -88,7 +88,7 @@ $(function () {
             for (var i = 0, l = data.size(); i < l; i++) {
                 ids.push(data.item(i).get('bug_id'));
             }
-            var url = 'buglist.cgi?bug_id=' + ids.join('%2C');
+            var url = `${BUGZILLA.config.basepath}buglist.cgi?bug_id=${ids.join('%2C')}`;
             window.open(url, '_blank');
         };
 
@@ -100,10 +100,9 @@ $(function () {
             if (o.data.bug_status == 'RESOLVED' || o.data.bug_status == 'VERIFIED') {
                 bug_closed = "bz_closed";
             }
-            return '<a href="show_bug.cgi?id=' + encodeURIComponent(o.data.bug_id) +
-                '" target="_blank" ' + 'title="' + Y.Escape.html(o.data.bug_status) + ' - ' +
-                Y.Escape.html(o.data.bug_summary) + '" class="' + bug_closed +
-                '">' + o.data.bug_id + '</a>';
+            return `<a href="${BUGZILLA.config.basepath}show_bug.cgi?id=${encodeURIComponent(o.data.bug_id)}" ` +
+                   `target="_blank" title="${o.data.bug_status.htmlEncode()} - ${o.data.bug_summary.htmlEncode()}" ` +
+                   `class="${bug_closed}">${o.data.bug_id}</a>`;
         };
 
         var updatedFormatter = function(o) {
@@ -135,7 +134,7 @@ $(function () {
         };
 
         // Requestee
-        dataSource.requestee = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        dataSource.requestee = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
         dataSource.requestee.on('error', function(e) {
             try {
                 var response = Y.JSON.parse(e.data.responseText);
@@ -184,7 +183,7 @@ $(function () {
         });
 
         // Requester
-        dataSource.requester = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        dataSource.requester = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
         dataSource.requester.on('error', function(e) {
             try {
                 var response = Y.JSON.parse(e.data.responseText);
index 53139d27fb47d3e69e11e3fdfdcc24c09a9260f1..946984a2192a8dc4c61172578e6aa48fc1244842 100644 (file)
@@ -48,7 +48,7 @@ $(function() {
             }
         }
 
-        var bugQuery = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        var bugQuery = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
 
         bugQuery.plug(Y.Plugin.DataSourceJSONSchema, {
             schema: {
@@ -82,8 +82,8 @@ $(function() {
                     Y.one("#query_container .query_description").setHTML(e.response.meta.description);
                     Y.one("#query_container .query_heading").setHTML(e.response.meta.heading);
                     Y.one("#query_bugs_found").setHTML(
-                        '<a href="buglist.cgi?' + e.response.meta.buffer +
-                        '" target="_blank">' + e.response.results.length + ' bugs found</a>');
+                        `<a href="${BUGZILLA.config.basepath}buglist.cgi?${e.response.meta.buffer}" target="_blank">` +
+                        `${e.response.results.length} bugs found</a>`);
                     bugQueryTable.set('data', e.response.results);
 
                     var mark_read = e.response.meta.mark_read;
@@ -148,7 +148,7 @@ $(function() {
         };
 
 
-        lastChangesQuery = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        lastChangesQuery = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
 
         lastChangesQuery.plug(Y.Plugin.DataSourceJSONSchema, {
             schema: {
@@ -171,7 +171,7 @@ $(function() {
             columns: [
                 { key: Y.Plugin.DataTableRowExpansion.column_key, label: ' ', sortable: false },
                 { key: "bug_id", label: "Bug", allowHTML: true, sortable: true,
-                formatter: '<a href="show_bug.cgi?id={value}" target="_blank">{value}</a>' },
+                formatter: `<a href="${BUGZILLA.config.basepath}show_bug.cgi?id={value}" target="_blank">{value}</a>` },
                 { key: "changeddate", label: "Updated", formatter: updatedFormatter,
                 allowHTML: true, sortable: true },
                 { key: "bug_status", label: "Status", sortable: true },
@@ -286,7 +286,7 @@ $(function() {
             for (var i = 0, l = data.size(); i < l; i++) {
                 ids.push(data.item(i).get('bug_id'));
             }
-            var url = 'buglist.cgi?bug_id=' + ids.join('%2C');
+            var url = `${BUGZILLA.config.basepath}buglist.cgi?bug_id=${ids.join('%2C')}`;
             window.open(url, '_blank');
         });
     });
index c232f677d6e51a04b8d9c0c1f2c0d614ca6df25a..b21ac11b8b8732f39582b1b167ff9277effeed65 100644 (file)
@@ -33,7 +33,7 @@
   <div class="pcs-header">
     [% input_label FILTER none %]&nbsp;
     <img id="[% id FILTER html %]-throbber"
-      src="extensions/ProdCompSearch/web/images/throbber.gif"
+      src="[% basepath FILTER none %]extensions/ProdCompSearch/web/images/throbber.gif"
       style="display:none" width="16" height="11">
     <span class="pcs-message" id="[% id FILTER html %]-no_results" style="display:none">
       No components found
@@ -47,7 +47,7 @@
   </div>
   <input type="text" class="prod_comp_search" id="[% id FILTER html %]" size="50"
     placeholder="Search by product and component"
-    data-script_name="[% script_name FILTER html %]"
+    data-script_name="[% basepath _ script_name FILTER html %]"
     data-format="[% format FILTER html %]"
     data-cloned_bug_id="[% cloned_bug_id FILTER html %]"
     data-new_tab="[% new_tab ? "1" : "0" %]"
index 30351a3db5f2f86f0752665594edb69efa0bdee4..4953473ac366cf1b1b7dd7948b41d112d87acaab 100644 (file)
@@ -69,7 +69,7 @@ $(function() {
                 appendTo: $('#main-inner'),
                 forceFixPosition: true,
                 serviceUrl: function(query) {
-                    return 'rest/prod_comp_search/' + encodeURIComponent(query);
+                    return `${BUGZILLA.config.basepath}rest/prod_comp_search/${encodeURIComponent(query)}`;
                 },
                 params: params,
                 deferRequestBy: 250,
index 78e314ab24c4257e90dc31be93bf96b4062b6cf5..b3df5ef367d7f53279cb4628a83d9941bb795be6 100644 (file)
@@ -11,8 +11,8 @@
     Push
   </dt>
   <dd>
-    <a href="page.cgi?id=push_config.html">Configuration</a><br>
-    <a href="page.cgi?id=push_queues.html">Queues</a><br>
-    <a href="page.cgi?id=push_log.html">Log</a><br>
+    <a href="[% basepath FILTER none %]page.cgi?id=push_config.html">Configuration</a><br>
+    <a href="[% basepath FILTER none %]page.cgi?id=push_queues.html">Queues</a><br>
+    <a href="[% basepath FILTER none %]page.cgi?id=push_log.html">Log</a><br>
   </dd>
 [% END %]
index dd5507bbc42fd314d40449d0289b9374cd9d1d3a..9f194552b743675aa929a7ece676e175bdacbf85 100644 (file)
@@ -28,7 +28,7 @@ var push_defaults = new Array();
 [% END %]
 </script>
 
-<form method="POST" action="page.cgi">
+<form method="POST" action="[% basepath FILTER none %]page.cgi">
 <input type="hidden" name="id" value="push_config.html">
 <input type="hidden" name="save" value="1">
 <input type="hidden" id="token" name="token" value="[% issue_hash_token(['push_config']) FILTER html %]">
index 355e6af91f94dc1ea2883eafe1a2254315d328b6..e7d6031938e7dec82cd3d10d27b7bc538c0d75bc 100644 (file)
@@ -59,7 +59,7 @@
 <tr>
   <th class="report-header">Actions</th>
   <td>
-    <form class="action-button" method="post" action="page.cgi" id="deleteMessage" enctype="multipart/form-data">
+    <form class="action-button" method="post" action="[% basepath FILTER none %]page.cgi" id="deleteMessage" enctype="multipart/form-data">
       <input type="hidden" name="token" value="[% issue_hash_token(['deleteMessage']) FILTER html %]">
       <input type="hidden" name="id" value="push_queues_view.html">
       <input type="hidden" name="delete" value="1">
@@ -67,7 +67,7 @@
       <input type="hidden" name="connector" value="[% message_obj.connector FILTER html %]">
       <input type="submit" value="Delete">
     </form>
-    <form class="action-button" method="post" action="page.cgi" id="returnQueue" enctype="multipart/form-data">
+    <form class="action-button" method="post" action="[% basepath FILTER none %]page.cgi" id="returnQueue" enctype="multipart/form-data">
       <input type="hidden" name="id" value="push_queues.html">
       <input type="submit" value="Return">
     </form>
index 691bc7155430ec437d7fabd7ef43768412b86218..1b5e6ef3448dd58c2e5ace96260adcbe5220fd5c 100644 (file)
@@ -22,7 +22,7 @@
 
 <h1>Community IT Discourse Request</h1>
 
-<form method="post" action="post_bug.cgi" id="tmRequestForm" name="f">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="tmRequestForm" name="f">
   <input type="hidden" name="product" value="Infrastructure & Operations">
   <input type="hidden" name="component" value="Community IT: Discourse">
   <input type="hidden" name="bug_severity" value="normal">
index 2fdddc7818370088713f023613917ce4e52d1a78..5ec2a309f33e3b6475e22e9ad76dc3e5cfe2dabd 100644 (file)
@@ -38,7 +38,7 @@
   <a href="mailto:reps-council@mozilla.org">Reps Council</a> for assistance.
 </p>
 
-<form method="post" action="post_bug.cgi" id="tmRequestForm">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="tmRequestForm">
   <input type="hidden" name="product" value="Mozilla Reps">
   <input type="hidden" name="component" value="Mentorship">
   <input type="hidden" name="bug_severity" value="normal">
index 5c19ac7581e96779cef28cc1dba5ae4a9f54c984..18de2508d6587ad961f63e653253a045f5a20782 100644 (file)
@@ -75,7 +75,7 @@ function validateAndSubmit() {
   <span class="required_star">*</span> - <span class="required_explanation">Required Fields</span>
 </p>
 
-<form method="post" action="post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
 
   <input type="hidden" name="format" value="remo-budget">
index 39baf9ad9273ea31c3d1e2641bf3621436c53f2a..ee43507190a80283becc3e2f7417486d04d805d8 100644 (file)
@@ -68,7 +68,7 @@ function validateAndSubmit() {
 <p>Review the <a href="https://wiki.mozilla.org/ReMo/SOPs/Swag_Requests" target="_blank" rel="noopener noreferrer">
   Swag Requests SOP</a> before you complete this form.</p>
 
-<form method="post" action="post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
 
   <input type="hidden" name="format" value="remo-swag">
index 0ded8744f971c8c2895c4d43db030d05bcd05911..359008ee99d0492136d4a364753d3e2a0023466c 100644 (file)
@@ -45,7 +45,7 @@
 </p>
 
 <p style="font-size: x-small">
-  Reference: <a href="show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
+  Reference: <a href="[% basepath FILTER none %]show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 62430bf9cf84f32641c2695c6b33e8d24ae3f226..5905e9dc39b55a21954449d59acd6809b618f647 100644 (file)
@@ -21,7 +21,7 @@
 </p>
 
 <p style="font-size: x-small">
-  Reference: <a href="show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
+  Reference: <a href="[% basepath FILTER none %]show_bug.cgi?id=[% id FILTER uri %]">#[% id FILTER html %]</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 329670bdf0506e1d8429999acc858ed920e8a5a1..411f06ce86ad899900af983e03a11cd942446387 100644 (file)
 [% ELSIF error == "remo_payment_cancel_dupe" %]
    [% title = "Already filed payment request" %]
    You already used the form to file
-   <a href="[% urlbase FILTER html %]attachment.cgi?id=[% attachid FILTER uri %]&action=edit">
+   <a href="[% basepath FILTER html %]attachment.cgi?id=[% attachid FILTER uri %]&action=edit">
    attachment [% attachid FILTER uri %]</a>.<br>
    <br>
-   You can either <a href="[% urlbase FILTER html %]page.cgi?id=remo-form-payment.html">
+   You can either <a href="[% basepath FILTER html %]page.cgi?id=remo-form-payment.html">
    create a new payment request</a> or [% "go back to $terms.bug $bugid" FILTER bug_link(bugid) FILTER none %].
 
 [% ELSIF error == "remo_missing_voucher" %]
index 0f594e9ae18d086a100fa5aa7ada12d37720a2fc..f40a4df2a74c2b6a213c5330086693b461dad3bf 100644 (file)
@@ -34,7 +34,7 @@
 
 <h1>Mozilla Reps - Payment Form</h1>
 
-<form method="post" action="page.cgi" id="paymentForm" enctype="multipart/form-data"
+<form method="post" action="[% basepath FILTER none %]page.cgi" id="paymentForm" enctype="multipart/form-data"
       onSubmit="return validateAndSubmit();">
 <input type="hidden" id="id" name="id" value="remo-form-payment.html">
 <input type="hidden" id="token" name="token" value="[% token FILTER html %]">
index a03e611fb36db232f0ce77364148966c97f21023..e1820b7d9953f3c6cd873287358964e961581633 100644 (file)
@@ -42,8 +42,8 @@ function getBugInfo (evt) {
 
     div.text('Getting bug info...');
 
-    var url = ("rest/bug/" + bug_id +
-               "?include_fields=product,component,status,summary&Bugzilla_api_token=" + BUGZILLA.api_token);
+    var url = `${BUGZILLA.config.basepath}rest/bug/${bug_id}?` +
+              `include_fields=product,component,status,summary&Bugzilla_api_token=${BUGZILLA.api_token}`;
     $.getJSON(url).done(function(data) {
         var bug_message = "";
         if (data) {
index e89409ce102eed1cf1adebff2418cdc0a792d730..d4ff96c46fc814c8cd56abf187795b4f3dd51b11 100644 (file)
@@ -20,7 +20,7 @@
   </div>
 [% END %]
 
-<form method="post" action="page.cgi">
+<form method="post" action="[% basepath FILTER none %]page.cgi">
 <input type="hidden" name="id" value="request_defer.html">
 <input type="hidden" name="flag" value="[% flag.id FILTER none %]">
 <input type="hidden" name="save" value="1">
 <tr><td>
 
   <div class="flag-bug">
-    <a href="show_bug.cgi?id=[% flag.bug.id FILTER none %]">
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=[% flag.bug.id FILTER none %]">
       [% terms.Bug %] [%+ flag.bug.id FILTER none %]
     </a>
     -
-    <a href="show_bug.cgi?id=[% flag.bug.id FILTER none %]">
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=[% flag.bug.id FILTER none %]">
       [% flag.bug.short_desc FILTER html %]
     </a>
   </div>
@@ -41,7 +41,7 @@
   [% IF flag.attachment %]
     <div class="flag-attach">
       <div class="flag-attach-desc">
-        <a href="attachment.cgi?id=[% flag.attachment.id FILTER none %]&amp;action=edit">
+        <a href="[% basepath FILTER none %]attachment.cgi?id=[% flag.attachment.id FILTER none %]&amp;action=edit">
           [% flag.attachment.description FILTER html %]
         </a>
       </div>
@@ -56,9 +56,9 @@
       </div>
       [% IF flag.attachment.ispatch %]
         <div class="flag-attach-actions">
-          <a href="attachment.cgi?id=[% flag.attachment.id FILTER none ~%]
+          <a href="[% basepath FILTER none %]attachment.cgi?id=[% flag.attachment.id FILTER none ~%]
                    &amp;action=diff">Diff</a> |
-          <a href="review?bug=[% flag.bug.id FILTER none ~%]
+          <a href="[% basepath FILTER none %]review?bug=[% flag.bug.id FILTER none ~%]
                    &amp;attachment=[% flag.attachment.id FILTER none %]">Review</a>
         </div>
       [% END %]
index ab2d79f62e9f3c2e3d86e8e18fabe564cf1c62e0..f458e982dd291c3d25f14764293d7a9c443e78fd 100644 (file)
@@ -19,7 +19,7 @@
       Restrict commenting on this [% terms.bug %] to users in the
       <b>[% Param('restrict_comments_group') FILTER html %]</b> group.
     </label>
-    (<a href="page.cgi?id=restrict_comments_guidelines.html"
+    (<a href="[% basepath FILTER none %]page.cgi?id=restrict_comments_guidelines.html"
         target="_blank">guidelines</a>)
   </td>
 </tr>
index 694681ad795fd9b7e1f4585db285c949e5001146..11c669580242ed1ed7714eab86b63ead4e2863ef 100644 (file)
@@ -30,7 +30,7 @@
     Restrictions may be applied to [% terms.bugs %] which are subject to high
     volumes of off topic comments, or [% terms.bugs %] which contain high volumes
     of violations of [% terms.Bugzilla %]
-    <a href="page.cgi?id=etiquette.html">etiquette guidelines</a>.
+    <a href="[% basepath FILTER none %]page.cgi?id=etiquette.html">etiquette guidelines</a>.
   </li>
   <li>
     Restrictions should not be used as a preemptive measure against comments
index bd46b68d9900996772cbef85e7a075150ca7eca1..65503eb364d43f32b8123be4d530ef70662364fb 100644 (file)
@@ -32,7 +32,7 @@
         <div class="empty">You’re all caught up!</div>
       [%- END -%]
       <footer>
-        <div><a href="request.cgi?action=queue&amp;requestee=[% user.login FILTER uri %]&amp;group=type"
+        <div><a href="[% basepath FILTER none %]request.cgi?action=queue&amp;requestee=[% user.login FILTER uri %]&amp;group=type"
                 role="menuitem" tabindex="-1">See All</a></div>
       </footer>
     </section>
index d25ba20eea592afe41994a71f74537ff3e9ce493..66e23e4b99d9202a8780cfaf04b5ef249f28707c 100644 (file)
@@ -9,7 +9,7 @@
 <ul>
   <li>
     <strong>
-      <a href="[% urlbase FILTER none %]page.cgi?id=review_suggestions.html">Suggested Reviewers</a>
+      <a href="[% basepath FILTER none %]page.cgi?id=review_suggestions.html">Suggested Reviewers</a>
     </strong> - All suggestions for the "review" flag.
   </li>
 </ul>
index 5d9132e40c0db66a855146da4302eadb33f7fc1b..e55c6bba04c8ab352fc23b4fa4bc667461e25c3e 100644 (file)
@@ -23,7 +23,7 @@ Products:
   [% END %]
 </ul>
 
-<a href="enter_bug.cgi?product=bugzilla.mozilla.org&amp;component=Administration&amp;format=__default__">Request a change</a>
+<a href="[% basepath FILTER none %]enter_bug.cgi?product=bugzilla.mozilla.org&amp;component=Administration&amp;format=__default__">Request a change</a>
 
 <table id="report" class="hover" cellspacing="0">
 
index 4ae135407e973a9509d0ba5dfd0b04548e40e2a2..411a7174235db12cb3f9322d0c571e21bcbd14b0 100644 (file)
@@ -114,6 +114,7 @@ Bugzilla.Review.Badge = class Badge {
     get_link(req) {
         const dup = req.dup_count > 1;
         const splinter_base = BUGZILLA.param.splinter_base;
+        const basepath = BUGZILLA.config.basepath;
         const x_types = ['github-pull-request', 'review-board-request', 'phabricator-request', 'google-doc'];
         const is_patch = req.attach_ispatch;
         const [is_ghpr, is_rbr, is_phr, is_gdoc] = x_types.map(type => req.attach_mimetype === `text/x-${type}`);
@@ -122,9 +123,9 @@ Bugzilla.Review.Badge = class Badge {
 
         const link = (is_patch && !dup && splinter_base)
             ? `${splinter_base}&bug=${req.bug_id}&attachment=${req.attach_id}`
-            : (is_redirect && !dup) ? `attachment.cgi?id=${req.attach_id}` // external redirect
-                : ((is_patch || is_file) && !dup) ? `attachment.cgi?id=${req.attach_id}&action=edit`
-                    : `show_bug.cgi?id=${req.bug_id}`;
+            : (is_redirect && !dup) ? `${basepath}attachment.cgi?id=${req.attach_id}` // external redirect
+                : ((is_patch || is_file) && !dup) ? `${basepath}attachment.cgi?id=${req.attach_id}&action=edit`
+                    : `${basepath}show_bug.cgi?id=${req.bug_id}`;
 
         const attach_label = (is_patch || is_rbr || is_phr) ? (dup ? `${req.dup_count} patches` : 'a patch')
             : is_ghpr ? (dup ? `${req.dup_count} pull requests` : 'a pull request')
index b07ce9d7570dcf1bbdeddd5b442672306a30e7a1..c8af65a8775d05cf947f89709de1cb1997770fa7 100644 (file)
@@ -151,7 +151,7 @@ var REVIEW = {
     find_form: function() {
         for (var i = 0; i < document.forms.length; i++) {
             var action = document.forms[i].getAttribute('action');
-            if (action == 'attachment.cgi' || action == 'post_bug.cgi')
+            if (action.match(/\/(attachment|post_bug).cgi$/))
                 return document.forms[i];
         }
         return false;
index af5132ba1c54ca7864f3f0223ee6cbf8f08f17d6..10484805b8e024135cceb85bcbac8d09dce65342 100644 (file)
@@ -48,7 +48,7 @@ $(function () {
         }
 
         var flagDS, bugDS, attachmentDS, historyTable;
-        flagDS = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        flagDS = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
         flagDS.plug(Y.Plugin.DataSourceJSONSchema, {
             schema: {
                 resultListLocator: 'result',
@@ -66,7 +66,7 @@ $(function () {
             }
         });
 
-        bugDS = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        bugDS = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
         bugDS.plug(Y.Plugin.DataSourceJSONSchema, {
             schema: {
                 resultListLocator: 'result.bugs',
@@ -77,7 +77,7 @@ $(function () {
             }
         });
 
-        attachmentDS = new Y.DataSource.IO({ source: 'jsonrpc.cgi' });
+        attachmentDS = new Y.DataSource.IO({ source: `${BUGZILLA.config.basepath}jsonrpc.cgi` });
         attachmentDS.plug(Y.Plugin.DataSourceJSONSchema, {
             schema: {
                 metaFields: { 'attachments': 'result.attachments' }
@@ -92,7 +92,7 @@ $(function () {
                 { key: "action", label: "Action", sortable: true,  formatter: format_action },
                 { key: "duration", label: "Duration", sortable: true, formatter: format_duration },
                 { key: "bug_id", label: "Bug", sortable: true, allowHTML: true,
-                  formatter: '<a href="show_bug.cgi?id={value}" target="_blank">{value}</a>' },
+                  formatter: `<a href="${BUGZILLA.config.basepath}show_bug.cgi?id={value}" target="_blank">{value}</a>` },
                 { key: 'bug_summary', label: 'Summary' }
             ]
         });
index ffe182de82943b13f2daac40d84907ef0a05c78f..1d4ddf4b9a306862278c29273f9dc2ee1d0268d6 100644 (file)
@@ -30,7 +30,7 @@ SMIME certificate here to receive full update emails for such [% terms.bugs %].<
 
 <p>If you are a member of a secure group, or if you enter a key here, your password reset email will also be sent to you encrypted. If you are a member of a secure group and do not enter a key, you will not be able to reset your password without the assistance of an administrator.</p>
 
-<p><a href="page.cgi?id=securemail/help.html">More help is available</a>.</p>
+<p><a href="[% basepath FILTER none %]page.cgi?id=securemail/help.html">More help is available</a>.</p>
 
 [% Hook.process('moreinfo') %]
 
index 378d007f0f32ee6d0e25aee7b14fa16c16261875..a0f4b77e3cffef6386e40ab008939adf861c52b8 100644 (file)
@@ -26,9 +26,9 @@
 
 [% terms.Bugzilla %] considers certain groups as "secure". If a [% terms.bug %] is in one of those groups, [% terms.Bugzilla %] will not send unencrypted
 email about it. To receive encrypted email rather than just a "something changed" placeholder, you must provide either
-a S/MIME or a GPG/PGP key on the <a href="[% urlbase FILTER none %]userprefs.cgi?tab=securemail">SecureMail preferences tab</a>.<br>
+a S/MIME or a GPG/PGP key on the <a href="[% basepath FILTER none %]userprefs.cgi?tab=securemail">SecureMail preferences tab</a>.<br>
 <br>
-In addition, if you have uploaded a S/MIME or GPG/PGP key using the <a href="[% urlbase FILTER none %]userprefs.cgi?tab=securemail">
+In addition, if you have uploaded a S/MIME or GPG/PGP key using the <a href="[% basepath FILTER none %]userprefs.cgi?tab=securemail">
 SecureMail preferences tab</a>, if you request your password to be reset, [% terms.Bugzilla %] will send the reset email encrypted and you will
 be required to decrypt it to view the reset instructions.
 
index 3b04475fb6eb76a242212e65e75c2357d350c269..e26864d61c118c93fb5ee871b56b3d0ba6e7f9eb 100644 (file)
@@ -35,7 +35,7 @@
 
     <div class="[% class_name FILTER html %]">
       <span role="heading" aria-level="2" class="bz_comment_number">
-        <a href="show_bug.cgi?id=[% public_bug.bug_id FILTER none %]#c[% count %]">
+        <a href="[% basepath FILTER none %]show_bug.cgi?id=[% public_bug.bug_id FILTER none %]#c[% count %]">
           [%- comment_label FILTER html %]</a>
       </span>
 
index 9873ea3d727e78c57edb3b57ea6326d3dc38513e..442c477582b20938e20c50a721d7f120121535cf 100644 (file)
@@ -9,5 +9,5 @@
 [% RETURN UNLESS is_shadow_bug %]
 
 <br>
-<a href="show_bug.cgi?id=[% bug.cf_shadow_bug FILTER none %]#comment">Add public comment</a>
+<a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.cf_shadow_bug FILTER none %]#comment">Add public comment</a>
 
index c85bb9b3b67712acbf7ef5e6e0a1d70ee6b5e361..bda355d06ba7cb41460b44c62fcfc46541f89f07 100644 (file)
@@ -88,9 +88,9 @@ sub attachment_id_is_patch {
 sub get_review_base {
     my $base = Bugzilla->params->{'splinter_base'};
     $base =~ s!/$!!;
-    my $urlbase = Bugzilla->localconfig->{urlbase};
-    $urlbase =~ s!/$!! if $base =~ "^/";
-    $base = $urlbase . $base;
+    my $basepath = Bugzilla->localconfig->{basepath};
+    $basepath =~ s!/$!! if $base =~ "^/";
+    $base = $basepath . $base;
     return $base;
 }
 
index b5cab5c592c7c8c262771bc69c26907a10d068a6..61c81dfa87c1601177a35289fbd2a97f01537b04 100644 (file)
@@ -39,9 +39,9 @@
 
 <script [% script_nonce FILTER none %]>
   Splinter.configBase = '[% Bugzilla.splinter_review_base FILTER js %]';
-  Splinter.configBugUrl = '[% urlbase FILTER js %]';
+  Splinter.configBugUrl = '[% basepath FILTER js %]';
   Splinter.configHaveExtension = true;
-  Splinter.configHelp = '[% urlbase FILTER js %]page.cgi?id=splinter/help.html';
+  Splinter.configHelp = '[% basepath FILTER js %]page.cgi?id=splinter/help.html';
   Splinter.configNote = '';
   Splinter.readOnly = [% user.id FILTER none %] == 0;
 
       [reviews]</a>
   [% END %]
   <a id='helpLink' target='splinterHelp'
-     href="[% urlbase FILTER none %]page.cgi?id=splinter/help.html">
+     href="[% basepath FILTER none %]page.cgi?id=splinter/help.html">
     [help]</a>
 </div>
 
   <span id="attachCreator"></span> -
   <span id="attachDate"></span>
   [% IF feature_enabled('patch_viewer') %]
-    <a href="[% urlbase FILTER none %]attachment.cgi?id=[% attach_id FILTER uri %]&amp;action=diff"
+    <a href="[% basepath FILTER none %]attachment.cgi?id=[% attach_id FILTER uri %]&amp;action=diff"
        target="_blank">[diff]</a>
   [% END %]
-  <a href="[% urlbase FILTER none %]attachment.cgi?id=[% attach_id FILTER uri %]&amp;action=edit"
+  <a href="[% basepath FILTER none %]attachment.cgi?id=[% attach_id FILTER uri %]&amp;action=edit"
      target="_blank">[details]</a>
   <p>
     <b>Comment:</b><br>
     <li>When the review is complete and you publish it, the overview comment and all line specific comments with their context,
         will be combined together into a single review comment on the [% terms.bug %] report.</li>
     <li>For more detailed instructions, read the Splinter
-        <a id='helpLink' target='splinterHelp' href="[% urlbase FILTER none %]page.cgi?id=splinter/help.html">help page</a>.
+        <a id='helpLink' target='splinterHelp' href="[% basepath FILTER none %]page.cgi?id=splinter/help.html">help page</a>.
     </li>
   </ul>
 </div>
         <div id="emptyCommentNotice">&lt;Overall Comment&gt;</div>
       </div>
       <div id="myPatchComments"></div>
-      <form id="publish" method="post" action="attachment.cgi" onsubmit="normalizeComments();">
+      <form id="publish" method="post" action="[% basepath FILTER none %]attachment.cgi" onsubmit="normalizeComments();">
         <input type="hidden" id="publish_token" name="token" value="">
         <input type="hidden" id="publish_action" name="action" value="update">
         <input type="hidden" id="publish_review" name="comment" value="">
index 4808da069a2f0864c7054a2817468f5d90d8aa84..217d541997686add8775deb3b8543983bd4a3674 100644 (file)
@@ -8,7 +8,7 @@
 
 [% IF user.in_group('admin') %]
   <dt id="push">
-    <a href="page.cgi?id=tracking_flags_admin_list.html">Release Tracking Flags</a>
+    <a href="[% basepath FILTER none %]page.cgi?id=tracking_flags_admin_list.html">Release Tracking Flags</a>
   </dt>
   <dd>
     Tracking flags are special multi-value fields used to aid tracking releases
index 71ef63c11c80d6fe5ad68626c7e190c7bd656727..373434a3e06dbcda2ceb3bcb7cff591452d6c53c 100644 (file)
@@ -7,7 +7,7 @@
   #%]
 
 [% IF san_tag == "tracking_flags_repair" %]
-    <a href="sanitycheck.cgi?tracking_flags_repair=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?tracking_flags_repair=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]"
     >Repair invalid product_id values in the tracking_flags_visibility table</a>
 
index e1263a308aa13a42c9748eebc0c9b3e478a53258..d1cdf48f4026d2d163db1118d6142232fb11b7aa 100644 (file)
@@ -46,7 +46,7 @@ var selected_components = [
   [% END %]
 </div>
 
-<form method="POST" action="page.cgi" onsubmit="return on_submit()">
+<form method="POST" action="[% basepath FILTER none %]page.cgi" onsubmit="return on_submit()">
 <input type="hidden" name="id" value="tracking_flags_admin_edit.html">
 <input type="hidden" name="mode" value="[% mode FILTER html %]">
 <input type="hidden" name="flag_id" value="[% flag ? flag.flag_id : 0 FILTER html %]">
@@ -195,7 +195,7 @@ var selected_components = [
 
 <hr>
 <p>
-Return to the <a href="page.cgi?id=tracking_flags_admin_list.html">list of Tracking Flags</a>.
+Return to the <a href="[% basepath FILTER none %]page.cgi?id=tracking_flags_admin_list.html">list of Tracking Flags</a>.
 </p>
 
 [% INCLUDE global/footer.html.tmpl %]
index 5ea68dd9873d7f925d86a3a9db79a6c3f857b25f..cfbe3115ea9ed64a103e0331210476718c014817 100644 (file)
@@ -31,7 +31,7 @@
              [% loop.count % 2 == 1 ? " odd_row" : " even_row" %]
              [% " is_disabled" UNLESS flag.is_active %]">
     <td [% 'class="disabled"' UNLESS flag.is_active %]>
-      <a href="page.cgi?id=tracking_flags_admin_edit.html&amp;mode=edit&amp;flag_id=[% flag.flag_id FILTER uri %]">
+      <a href="[% basepath FILTER none %]page.cgi?id=tracking_flags_admin_edit.html&amp;mode=edit&amp;flag_id=[% flag.flag_id FILTER uri %]">
         [% flag.name FILTER html %]
       </a>
     </td>
@@ -53,7 +53,7 @@
       </td>
     [% END %]
     <td>
-      <a href="page.cgi?id=tracking_flags_admin_edit.html&amp;mode=copy&amp;copy_from=[% flag.flag_id FILTER uri %]">Copy</a>
+      <a href="[% basepath FILTER none %]page.cgi?id=tracking_flags_admin_edit.html&amp;mode=copy&amp;copy_from=[% flag.flag_id FILTER uri %]">Copy</a>
     </td>
   </tr>
 [% END %]
@@ -61,9 +61,9 @@
 </table>
 
 <div id="new_flag">
-  <a href="page.cgi?id=tracking_flags_admin_edit.html">Add Flag</a> |
+  <a href="[% basepath FILTER none %]page.cgi?id=tracking_flags_admin_edit.html">Add Flag</a> |
   [% IF !show_bug_counts %]
-    <a href="page.cgi?id=tracking_flags_admin_list.html&amp;show_bug_counts=1">
+    <a href="[% basepath FILTER none %]page.cgi?id=tracking_flags_admin_list.html&amp;show_bug_counts=1">
       Show [% terms.bug %] counts (slower)</a> |
   [% END %]
   <input type="checkbox" onclick="filter_flag_list(this.checked)" id="filter">
index b3a2fc5eaa1abb87927c6243b2b1fef34ef16021..0c4891cf576d663446ec0d1b555d9316b5362e87 100644 (file)
@@ -6,6 +6,6 @@
   # defined by the Mozilla Public License, v. 2.0.
   #%]
 
-<a href="user_profile?user_id=[% user.id FILTER none %]">
+<a href="[% basepath FILTER none %]user_profile?user_id=[% user.id FILTER none %]">
   [% terms.Bugzilla %] User Profile
 </a><br><hr>
index bea0d16d7a6d9820ada5a7f3a66a40a7df5a1e91..bd6793cb7c0d65185090263be53aebf205b108da 100644 (file)
@@ -27,7 +27,7 @@
     <td>&nbsp;</td>
     <th>Search</th>
     <td colspan="2">
-      <form action="[% urlbase FILTER html %]user_profile">
+      <form action="[% basepath FILTER html %]user_profile">
         [% INCLUDE global/userselect.html.tmpl
           id => "login"
           name => "login"
@@ -91,7 +91,7 @@
   <th>Last activity</th>
   <td colspan="2">
     [% IF user.id %]
-      <a href="page.cgi?id=user_activity.html&amp;action=run&amp;who=[% target.login FILTER uri %]">
+      <a href="[% basepath FILTER none %]page.cgi?id=user_activity.html&amp;action=run&amp;who=[% target.login FILTER uri %]">
     [% END %]
     [% target.last_activity_ts FILTER time %]
     [% "</a>" IF user.id %]
     <th></th>
     <td colspan="2">
       [% IF target.id == user.id %]
-        <a href="userprefs.cgi?tab=account"><input type="button" value = "Edit Profile & Preferences"></a>
+        <a href="[% basepath FILTER none %]userprefs.cgi?tab=account"><input type="button" value = "Edit Profile & Preferences"></a>
       [% END %]
     </td>
   </tr>
     <th>Review requests</th>
     <td class="numeric">
       [% IF user.id %]
-        <a href="request.cgi?action=queue&amp;type=review&amp;requestee=[% target.login FILTER uri %]&amp;group=type"
+        <a href="[% basepath FILTER none %]request.cgi?action=queue&amp;type=review&amp;requestee=[% target.login FILTER uri %]&amp;group=type"
           target="_blank">
       [% END %]
       [% target.review_request_count FILTER html %]
     </td>
     [% IF user.id %]
       <td>
-        (<a href="page.cgi?id=review_history.html&amp;requestee=[% target.login FILTER uri %]">Review History</a>)
+        (<a href="[% basepath FILTER none %]page.cgi?id=review_history.html&amp;requestee=[% target.login FILTER uri %]">Review History</a>)
       </td>
     [% END %]
   </tr>
     <th>Feedback requests</th>
     <td class="numeric">
       [% IF user.id %]
-        <a href="request.cgi?action=queue&amp;type=feedback&amp;requestee=[% target.login FILTER uri %]&amp;group=type"
+        <a href="[% basepath FILTER none %]request.cgi?action=queue&amp;type=feedback&amp;requestee=[% target.login FILTER uri %]&amp;group=type"
           target="_blank">
       [% END %]
       [% target.feedback_request_count FILTER html %]
     <th>Needinfo requests</th>
     <td class="numeric">
       [% IF user.id %]
-        <a href="request.cgi?action=queue&amp;type=needinfo&amp;requestee=[% target.login FILTER uri %]&amp;group=type"
+        <a href="[% basepath FILTER none %]request.cgi?action=queue&amp;type=needinfo&amp;requestee=[% target.login FILTER uri %]&amp;group=type"
           target="_blank">
       [% END %]
       [% target.needinfo_request_count FILTER html %]
   <th>[% terms.Bugs %] filed</th>
   <td class="numeric">
     [% IF user.id %]
-      <a href="buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emailreporter1=1&amp;email1=[% target.login FILTER uri %]"
+      <a href="[% basepath FILTER none %]buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emailreporter1=1&amp;email1=[% target.login FILTER uri %]"
         target="_blank">
     [% END %]
     [% stats.bugs_filed || 0 FILTER html %]
   <th>Assigned to</th>
   <td class="numeric">
     [% IF user.id %]
-      <a href="buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;email1=[% target.login FILTER uri %]"
+      <a href="[% basepath FILTER none %]buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;email1=[% target.login FILTER uri %]"
         target="_blank">
     [% END %]
     [% stats.assigned || 0 FILTER html %]
   <th>Commented on</th>
   <td class="numeric">
     [% IF user.id %]
-      <a href="buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emaillongdesc1=1&amp;email1=[% target.login FILTER uri %]"
+      <a href="[% basepath FILTER none %]buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emaillongdesc1=1&amp;email1=[% target.login FILTER uri %]"
         target="_blank">
     [% END %]
     [% stats.commented_on || 0 FILTER html %]
   <th>QA-Contact</th>
   <td class="numeric">
     [% IF user.id %]
-      <a href="buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emailqa_contact1=1&amp;email1=[% target.login FILTER uri %]"
+      <a href="[% basepath FILTER none %]buglist.cgi?query_format=advanced&amp;emailtype1=exact&amp;emailqa_contact1=1&amp;email1=[% target.login FILTER uri %]"
         target="_blank">
     [% END %]
     [% stats.qa_contact || 0 FILTER html %]
     [% FOREACH p = products %]
       <span class="product_span">
         [% IF p.product.id %]
-          <a href="describecomponents.cgi?product=[% p.product.name FILTER uri %]"
+          <a href="[% basepath FILTER none %]describecomponents.cgi?product=[% p.product.name FILTER uri %]"
             target="_blank">
         [% END %]
         [% p.product.name FILTER html %] ([% p.count || 0 FILTER html %])
index 01005d7764f4aa6060817da2a065ba8406ad1391..8cbc5e3f00c97a33bcbf35e233ba758532f5198d 100644 (file)
@@ -58,7 +58,7 @@
   has too many votes for [% terms.abug %]...<br>
   [% IF changes._too_many_votes.size %]
     [% FOREACH detail = changes._too_many_votes %]
-      &rarr;removed votes for [% terms.bug %] <a href="show_bug.cgi?id=
+      &rarr;removed votes for [% terms.bug %] <a href="[% basepath FILTER none %]show_bug.cgi?id=
      [%- detail.id FILTER uri %]">
      [%- detail.id FILTER html %]</a> from [% detail.name FILTER html %]<br>
     [% END %]
@@ -71,7 +71,7 @@
   who now has too many total votes...<br>
   [% IF changes._too_many_total_votes.size %]
     [% FOREACH detail = changes._too_many_total_votes %]
-      &rarr;removed votes for [% terms.bug %] <a href="show_bug.cgi?id=
+      &rarr;removed votes for [% terms.bug %] <a href="[% basepath FILTER none %]show_bug.cgi?id=
      [%- detail.id FILTER uri %]">
      [%- detail.id FILTER html %]</a> from [% detail.name FILTER html %]<br>
     [% END %]
index ad475a76bab841c0ee3597099d57cfeee5bed354..a455e435be34d1c21dda99845089760198389039 100644 (file)
@@ -19,7 +19,7 @@
   #%]
 
 [% IF san_tag == "voting_cache_rebuild_fix" %]
-    <a href="sanitycheck.cgi?rebuild_vote_cache=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?rebuild_vote_cache=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Click here to
     rebuild the vote cache</a>
 
index e502c1e3a7c869eee3ef8be4a8a577e618e75523..f8bca22ca2749c3e66fe57446ca6109ecae68feb 100644 (file)
@@ -21,7 +21,7 @@
   <span id="votes_container">
     [% IF bug.votes %]
       with
-      <a href="page.cgi?id=voting/bug.html&amp;bug_id=
+      <a href="[% basepath FILTER none %]page.cgi?id=voting/bug.html&amp;bug_id=
                [%- bug.id FILTER uri %]">
         [%- bug.votes FILTER html %]
         [% IF bug.votes == 1 %]
@@ -33,7 +33,7 @@
           including you
         [% END %]
     [% END %]
-    (<a href="page.cgi?id=voting/user.html&amp;bug_id=
+    (<a href="[% basepath FILTER none %]page.cgi?id=voting/user.html&amp;bug_id=
               [%- bug.id FILTER uri %]#vote_
               [%- bug.id FILTER uri %]">vote</a>)
   </span>
index 4c69a45f6abd6df4ff23242451e86370eefc618a..5887dc455ee139ea1070c154ce103e772846dfb9 100644 (file)
@@ -48,7 +48,7 @@
     [% total = total + voter.vote_count %]
     <tr>
       <td>
-          <a href="page.cgi?id=voting/user.html&amp;user_id=
+          <a href="[% basepath FILTER none %]page.cgi?id=voting/user.html&amp;user_id=
                   [%- voter.id FILTER uri %]">
           [% voter.login_name FILTER email FILTER html %]
         </a>
index 13531a85bcb297eafbcb8b45e3f6aac51eb1371d..016655bcd5a081b8d05c8680efacf617bc45866a 100644 (file)
@@ -70,7 +70,7 @@
 [% END %]
 
 [% IF products.size %]
-  <form name="voting_form" method="post" action="page.cgi?id=voting/user.html">
+  <form name="voting_form" method="post" action="[% basepath FILTER none %]page.cgi?id=voting/user.html">
     <input type="hidden" name="action" value="vote">
     <input type="hidden" name="token" value="[% issue_hash_token(['vote']) FILTER html %]">
     <table cellspacing="4">
@@ -91,7 +91,7 @@
         [% END %]
         <tr>
           <th>[% product.name FILTER html %]</th>
-          <td colspan="2"><a href="buglist.cgi?bug_id=
+          <td colspan="2"><a href="[% basepath FILTER none %]buglist.cgi?bug_id=
               [%- product.bug_ids.join(",") FILTER uri %]">([% terms.bug %] list)</a>
           </td>
           <td>
             </td>
             <td>
               [% bug.short_desc FILTER html %]
-              (<a href="page.cgi?id=voting/bug.html&amp;bug_id=[% bug.id FILTER none %]">Show Votes</a>)
+              (<a href="[% basepath FILTER none %]page.cgi?id=voting/bug.html&amp;bug_id=[% bug.id FILTER none %]">Show Votes</a>)
             </td>
           </tr>
         [% END %]
 
     [% IF canedit %]
       <input type="submit" value="Change My Votes" id="change"> or
-      <a href="buglist.cgi?bug_id=[% all_bug_ids.join(",") FILTER uri %]">view all
+      <a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% all_bug_ids.join(",") FILTER uri %]">view all
         as [% terms.bug %] list</a>
       <br>
       <br>
       [% END %]
       and then click <b>Change My Votes</b>.
     [% ELSE %]
-       <a href="buglist.cgi?bug_id=[% all_bug_ids.join(",") FILTER uri %]">View all
+       <a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% all_bug_ids.join(",") FILTER uri %]">View all
          as [% terms.bug %] list</a>
     [% END %]
   </form>
 [% END %]
 
 <p>
-  <a href="page.cgi?id=voting.html">Help with voting</a>.
+  <a href="[% basepath FILTER none %]page.cgi?id=voting.html">Help with voting</a>.
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index f0d3b7e13767e6fa2f738a239238c90f0f947c0c..fa98612a61b74c1ba0c1c720e2a9bea48ca9d4b2 100644 (file)
@@ -33,7 +33,7 @@
   remove your vote from every [% terms.bug %] you've voted on?
 </p>
 
-<form action="page.cgi?id=voting/user.html" method="post">
+<form action="[% basepath FILTER none %]page.cgi?id=voting/user.html" method="post">
     <input type="hidden" name="action" value="vote">
     <input type="hidden" name="token" value="[% issue_hash_token(['vote']) FILTER html %]">
   <p>
index 87e1e01f27794eaf051355127f25b3d6de7e81f6..480a578ae937c9cca4a9a9e424c228c48078d555 100644 (file)
@@ -102,8 +102,8 @@ $(function() {
             $('#mfa-totp-throbber').show();
             $('#mfa-totp-issued').hide();
 
-            var url = 'rest/user/mfa/totp/enroll' +
-                '?Bugzilla_api_token=' + encodeURIComponent(BUGZILLA.api_token);
+            var url = `${BUGZILLA.config.basepath}rest/user/mfa/totp/enroll` +
+                `?Bugzilla_api_token=${encodeURIComponent(BUGZILLA.api_token)}`;
             $.ajax({
                 "url": url,
                 "contentType": "application/json",
index 5266c3d5e9158f8c21ef09a456e09a93b8cbe27f..184945501433c873f558555958026bb9a8c009c8 100644 (file)
@@ -156,8 +156,7 @@ function viewDiff(attachment_id, patchviewerinstalled)
     // If we have not viewed as diff before, set the view diff frame URL
     if (!has_viewed_as_diff) {
       var viewDiffFrame = document.getElementById('viewDiffFrame');
-      viewDiffFrame.src =
-          'attachment.cgi?id=' + attachment_id + '&action=diff&headers=0';
+      viewDiffFrame.src = `${BUGZILLA.config.basepath}attachment.cgi?id=${attachment_id}&action=diff&headers=0`;
       has_viewed_as_diff = 1;
     }
 }
index 9482d1bf7170784c794627b1a3dea217729a78c5..dbcd5c24bf681752d534900d914fce78c607971f 100644 (file)
--- a/js/bug.js
+++ b/js/bug.js
@@ -76,8 +76,7 @@ YAHOO.bugzilla.dupTable = {
             600);
     },
     formatBugLink: function(el, oRecord, oColumn, oData) {
-        el.innerHTML = '<a href="show_bug.cgi?id=' + oData + '">'
-                       + oData + '</a>';
+        el.innerHTML = `<a href="${BUGZILLA.config.basepath}show_bug.cgi?id=${oData}">${oData}</a>`;
     },
     formatStatus: function(el, oRecord, oColumn, oData) {
         var resolution = oRecord.getData('resolution');
@@ -91,8 +90,8 @@ YAHOO.bugzilla.dupTable = {
         }
     },
     formatCcButton: function(el, oRecord, oColumn, oData) {
-        var url = 'process_bug.cgi?id=' + oRecord.getData('id')
-                  + '&addselfcc=1&token=' + escape(oData);
+        var url = `${BUGZILLA.config.basepath}process_bug.cgi?` +
+                  `id=${oRecord.getData('id')}&addselfcc=1&token=${escape(oData)}`;
         var button = document.createElement('a');
         button.setAttribute('href',  url);
         button.innerHTML = YAHOO.bugzilla.dupTable.addCcMessage;
@@ -100,7 +99,7 @@ YAHOO.bugzilla.dupTable = {
         new YAHOO.widget.Button(button);
     },
     init_ds: function() {
-        var new_ds = new YAHOO.util.XHRDataSource("jsonrpc.cgi");
+        var new_ds = new YAHOO.util.XHRDataSource(`${BUGZILLA.config.basepath}jsonrpc.cgi`);
         new_ds.connTimeout = 30000;
         new_ds.connMethodPost = true;
         new_ds.connXhrMode = "cancelStaleRequests";
@@ -158,7 +157,7 @@ YAHOO.bugzilla.dupTable = {
             };
 
             YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
-            YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi', callbacks,
+            YAHOO.util.Connect.asyncRequest('POST', `${BUGZILLA.config.basepath}jsonrpc.cgi`, callbacks,
                 args)
         },
 
@@ -179,7 +178,7 @@ YAHOO.bugzilla.dupTable = {
                 },
             };
             YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
-            YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi', callbacks, args)
+            YAHOO.util.Connect.asyncRequest('POST', `${BUGZILLA.config.basepath}jsonrpc.cgi`, callbacks, args)
         },
     };
 
@@ -201,7 +200,7 @@ YAHOO.bugzilla.dupTable = {
                 },
             };
             YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
-            YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi', callbacks, args)
+            YAHOO.util.Connect.asyncRequest('POST', `${BUGZILLA.config.basepath}jsonrpc.cgi`, callbacks, args)
         },
     };
 })();
index 44ca8b4abf693a97863b8e1103fe80c246c63598..160733d97a4c55352f6411d7132289f11a9fecf6 100644 (file)
@@ -38,7 +38,7 @@ YAHOO.bugzilla.commentTagging = {
             appendTo: $('#main-inner'),
             forceFixPosition: true,
             serviceUrl: function(query) {
-                return 'rest/bug/comment/tags/' + encodeURIComponent(query);
+                return `${BUGZILLA.config.basepath}rest/bug/comment/tags/${encodeURIComponent(query)}`;
             },
             params: {
                 Bugzilla_api_token: BUGZILLA.api_token
@@ -309,7 +309,7 @@ YAHOO.bugzilla.commentTagging = {
     rpcRefresh : function(comment_id, comment_no, noRefreshOnError) {
         this.incPending(comment_id);
         YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
-        YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi',
+        YAHOO.util.Connect.asyncRequest('POST', `${BUGZILLA.config.basepath}jsonrpc.cgi`,
         {
             success: function(res) {
                 YAHOO.bugzilla.commentTagging.decPending(comment_id);
@@ -345,7 +345,7 @@ YAHOO.bugzilla.commentTagging = {
     rpcUpdate : function(comment_id, comment_no, add, remove) {
         this.incPending(comment_id);
         YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
-        YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi',
+        YAHOO.util.Connect.asyncRequest('POST', `${BUGZILLA.config.basepath}jsonrpc.cgi`,
         {
             success: function(res) {
                 YAHOO.bugzilla.commentTagging.decPending(comment_id);
index ec802b2026557e4bdbe39518e0c759a5f7ae38b4..bddd30548c88dcc4dd78941cdfeeace8d307b342 100644 (file)
@@ -715,7 +715,7 @@ $(function() {
     var options_user = {
         appendTo: $('#main-inner'),
         forceFixPosition: true,
-        serviceUrl: 'rest/user/suggest',
+        serviceUrl: `${BUGZILLA.config.basepath}rest/user/suggest`,
         params: {
             Bugzilla_api_token: BUGZILLA.api_token,
         },
@@ -923,7 +923,7 @@ function show_comment_preview(bug_id) {
     Dom.removeClass('comment_preview_loading', 'bz_default_hidden');
 
     YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
-    YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi',
+    YAHOO.util.Connect.asyncRequest('POST', `${BUGZILLA.config.basepath}jsonrpc.cgi`,
     {
         success: function(res) {
             data = YAHOO.lang.JSON.parse(res.responseText);
index 37567e3deae4c1e8bc54ff37b19dbd8caf0ef412..2d4f5fe25d699b9e86d2a1e5104e2eb0b40053ca 100644 (file)
@@ -249,7 +249,7 @@ const focus_main_content = () => {
 const detect_blocked_gravatars = () => {
     document.querySelectorAll('img[src^="https://secure.gravatar.com/avatar/"]').forEach($img => {
         if (!$img.complete || !$img.naturalHeight) {
-            $img.src = 'extensions/Gravatar/web/default.jpg';
+            $img.src = `${BUGZILLA.config.basepath}extensions/Gravatar/web/default.jpg`;
         }
     });
 }
index 6ce3516a749d10ac9de9dbaff72a8f29756d18db..ee9e9d34caba07318c9697f3bb22640a055c40b7 100644 (file)
@@ -46,7 +46,7 @@ YAHOO.bugzilla.instantSearch = {
   },
 
   initDataTable: function() {
-    var dataSource = new YAHOO.util.XHRDataSource("jsonrpc.cgi");
+    var dataSource = new YAHOO.util.XHRDataSource(`${BUGZILLA.config.basepath}jsonrpc.cgi`);
     dataSource.connTimeout = 15000;
     dataSource.connMethodPost = true;
     dataSource.connXhrMode = "cancelStaleRequests";
@@ -86,7 +86,7 @@ YAHOO.bugzilla.instantSearch = {
   },
 
   formatId: function(el, oRecord, oColumn, oData) {
-    el.innerHTML = '<a href="show_bug.cgi?id=' + oData + '" target="_blank">' + oData + '</a>';
+    el.innerHTML = `<a href="${BUGZILLA.config.basepath}show_bug.cgi?id=${oData}" target="_blank">${oData}</a>`;
   },
 
   formatStatus: function(el, oRecord, oColumn, oData) {
@@ -138,7 +138,7 @@ YAHOO.bugzilla.instantSearch = {
 
       YAHOO.bugzilla.instantSearch.dataTable.showTableMessage(
         'Searching...&nbsp;&nbsp;&nbsp;' +
-        '<img src="extensions/GuidedBugEntry/web/images/throbber.gif"' +
+        `<img src="${BUGZILLA.config.basepath}extensions/GuidedBugEntry/web/images/throbber.gif"` +
         ' width="16" height="11">',
         YAHOO.widget.DataTable.CLASS_LOADING
       );
index bf9151fee2ff7b613840bdd100ee5fd57cd34f40..4ec58249256357facb621c1f1a41703656d7bda3 100644 (file)
@@ -258,7 +258,7 @@ sub edit_bug_and_return {
     my ($sel, $bug_id, $bug_summary, $options) = @_;
     my $ndash = NDASH;
     edit_bug($sel, $bug_id, $bug_summary, $options);
-    $sel->click_ok("//a[contains(\@href, 'show_bug.cgi?id=$bug_id')]");
+    $sel->click_ok("//a[contains(\@href, '/show_bug.cgi?id=$bug_id')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("$bug_id $ndash $bug_summary", "Returning back to bug $bug_id");
 }
@@ -316,7 +316,7 @@ sub add_product {
     my $title = $sel->get_title();
     if ($title eq "Select Classification") {
         ok(1, "More than one enterable classification available. Display them in a list");
-        $sel->click_ok("//a[contains(\@href, 'editproducts.cgi?action=add&classification=$classification')]",
+        $sel->click_ok("//a[contains(\@href, '/editproducts.cgi?action=add&classification=$classification')]",
                        undef, "Add product to $classification");
     }
     else {
index 3a74e8966d44745f7027ecfd1dc2ddd2fcb37fdd..5fbcb045a83e531e5c4538c9f2f7bb641304818f 100644 (file)
@@ -52,7 +52,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select component of product 'TestProduct'");
 $text = trim($sel->get_text("bugzilla-body"));
 if ($text =~ /TempComponent/) {
-    $sel->click_ok("//a[contains(\@href, 'editcomponents.cgi?action=del&product=TestProduct&component=TempComponent')]");
+    $sel->click_ok("//a[contains(\@href, '/editcomponents.cgi?action=del&product=TestProduct&component=TempComponent')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Delete component 'TempComponent' from 'TestProduct' product");
     $sel->click_ok("delete");
@@ -144,7 +144,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Edit Product 'TestProduct'");
 $sel->click_ok("link=Edit components:");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
-$sel->click_ok("//a[contains(\@href, 'editcomponents.cgi?action=del&product=TestProduct&component=TempComponent')]");
+$sel->click_ok("//a[contains(\@href, '/editcomponents.cgi?action=del&product=TestProduct&component=TempComponent')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete component 'TempComponent' from 'TestProduct' product");
 $sel->click_ok("delete");
@@ -169,7 +169,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select version of product 'TestProduct'");
 $text = trim($sel->get_text("bugzilla-body"));
 if ($text =~ /TempVersion/) {
-    $sel->click_ok("//a[contains(\@href, 'editversions.cgi?action=del&product=TestProduct&version=TempVersion')]");
+    $sel->click_ok("//a[contains(\@href, '/editversions.cgi?action=del&product=TestProduct&version=TempVersion')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Delete Version of Product 'TestProduct'");
     $sel->click_ok("delete");
@@ -263,7 +263,7 @@ $sel->click_ok("link=Edit versions:");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select version of product 'TestProduct'");
 $text = trim($sel->get_text("bugzilla-body"));
-$sel->click_ok("//a[contains(\@href, 'editversions.cgi?action=del&product=TestProduct&version=TempVersion')]");
+$sel->click_ok("//a[contains(\@href, '/editversions.cgi?action=del&product=TestProduct&version=TempVersion')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Version of Product 'TestProduct'");
 $sel->click_ok("delete");
@@ -288,7 +288,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select milestone of product 'TestProduct'");
 $text = trim($sel->get_text("bugzilla-body"));
 if ($text =~ /TempMilestone/) {
-    $sel->click_ok("//a[contains(\@href, 'editmilestones.cgi?action=del&product=TestProduct&milestone=TempMilestone')]");
+    $sel->click_ok("//a[contains(\@href, '/editmilestones.cgi?action=del&product=TestProduct&milestone=TempMilestone')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Delete Milestone of Product 'TestProduct'");
     $sel->click_ok("delete");
@@ -378,7 +378,7 @@ $sel->click_ok("link=Edit milestones:");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select milestone of product 'TestProduct'");
 $text = trim($sel->get_text("bugzilla-body"));
-$sel->click_ok("//a[contains(\@href, 'editmilestones.cgi?action=del&product=TestProduct&milestone=TempMilestone')]");
+$sel->click_ok("//a[contains(\@href, '/editmilestones.cgi?action=del&product=TestProduct&milestone=TempMilestone')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Milestone of Product 'TestProduct'");
 $sel->click_ok("delete");
index a30e72018b94a035ab8ac17caf6b0ed76f120d90..e9ea18ab9119e8ef7fcdd85ee73836fe584914b5 100644 (file)
@@ -109,7 +109,7 @@ go_to_admin($sel);
 $sel->click_ok("link=Classifications");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select classification");
-$sel->click_ok('//a[@href="editclassifications.cgi?action=del&classification=ctwo"]');
+$sel->click_ok('//a[contains(@href,"/editclassifications.cgi?action=del&classification=ctwo")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Error");
 my $error = trim($sel->get_text("error_msg"));
@@ -120,7 +120,7 @@ ok($error =~ /there are products for this classification/, "Reject classificatio
 $sel->go_back_ok();
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select classification");
-$sel->click_ok('//a[@href="editclassifications.cgi?action=reclassify&classification=ctwo"]');
+$sel->click_ok('//a[contains(@href,"/editclassifications.cgi?action=reclassify&classification=ctwo")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Reclassify products");
 $sel->add_selection_ok("myprodlist", "label=TestProduct");
@@ -130,7 +130,7 @@ $sel->title_is("Reclassify products");
 $sel->click_ok("link=edit");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select classification");
-$sel->click_ok('//a[@href="editclassifications.cgi?action=del&classification=ctwo"]');
+$sel->click_ok('//a[contains(@href,"/editclassifications.cgi?action=del&classification=ctwo")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete classification");
 $sel->is_text_present_ok("Do you really want to delete this classification?");
index bd207458570057826fa4b40991f9aa4fe82960dd..d08e23eb064e4ca602f91799cd42749e6409a741 100644 (file)
@@ -328,7 +328,7 @@ $sel->title_is("Edit values for which field?");
 $sel->click_ok("link=List$bug1_id");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select value for the 'List$bug1_id' (cf_qa_list_$bug1_id) field");
-$sel->click_ok("//a[contains(\@href, 'editvalues.cgi?action=del&field=cf_qa_list_$bug1_id&value=have%20fun%3F')]");
+$sel->click_ok("//a[contains(\@href, '/editvalues.cgi?action=del&field=cf_qa_list_$bug1_id&value=have%20fun%3F')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Value 'have fun?' from the 'List$bug1_id' (cf_qa_list_$bug1_id) field");
 $sel->is_text_present_ok("Do you really want to delete this value?");
@@ -338,7 +338,7 @@ $sel->title_is("Field Value Deleted");
 
 # This value cannot be deleted as it's in use.
 
-$sel->click_ok("//a[contains(\@href, 'editvalues.cgi?action=del&field=cf_qa_list_$bug1_id&value=storage')]");
+$sel->click_ok("//a[contains(\@href, '/editvalues.cgi?action=del&field=cf_qa_list_$bug1_id&value=storage')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Value 'storage' from the 'List$bug1_id' (cf_qa_list_$bug1_id) field");
 $sel->is_text_present_ok("There is 1 bug with this field value");
@@ -403,7 +403,7 @@ $sel->title_is("Edit values for which field?");
 $sel->click_ok("link=Status");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select value for the 'Status' (bug_status) field");
-$sel->click_ok('//a[@href="editvalues.cgi?action=del&field=bug_status&value=SUSPENDED"]');
+$sel->click_ok('//a[contains(@href,"/editvalues.cgi?action=del&field=bug_status&value=SUSPENDED")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Value 'SUSPENDED' from the 'Status' (bug_status) field");
 $sel->is_text_present_ok("Sorry, but the 'SUSPENDED' value cannot be deleted");
@@ -426,7 +426,7 @@ $sel->title_is("Edit values for which field?");
 $sel->click_ok("link=Status");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select value for the 'Status' (bug_status) field");
-$sel->click_ok('//a[@href="editvalues.cgi?action=del&field=bug_status&value=SUSPENDED"]');
+$sel->click_ok('//a[contains(@href,"/editvalues.cgi?action=del&field=bug_status&value=SUSPENDED")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Value 'SUSPENDED' from the 'Status' (bug_status) field");
 $sel->click_ok("delete");
@@ -434,7 +434,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Field Value Deleted");
 $sel->is_text_present_ok("The value SUSPENDED of the Status (bug_status) field has been deleted");
 
-$sel->click_ok('//a[@href="editvalues.cgi?action=del&field=bug_status&value=IN_QA"]');
+$sel->click_ok('//a[contains(@href,"/editvalues.cgi?action=del&field=bug_status&value=IN_QA")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Value 'IN_QA' from the 'Status' (bug_status) field");
 $sel->click_ok("delete");
@@ -449,7 +449,7 @@ $sel->title_is("Edit values for which field?");
 $sel->click_ok("link=Resolution");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select value for the 'Resolution' (resolution) field");
-$sel->click_ok('//a[@href="editvalues.cgi?action=del&field=resolution&value=UPSTREAM"]');
+$sel->click_ok('//a[contains(@href,"/editvalues.cgi?action=del&field=resolution&value=UPSTREAM")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Value 'UPSTREAM' from the 'Resolution' (resolution) field");
 $sel->click_ok("delete");
index 81fcfe7cb41f7a93d4928cdf2a6f82affbac9658..58b83a86e53c272a22612a8c458596b11b0385e1 100644 (file)
@@ -42,7 +42,7 @@ foreach my $type (@types) {
     $sel->click_ok("create");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Custom Field Created");
-    $sel->click_ok("//a[\@href='editfields.cgi?action=del&name=$fname']");
+    $sel->click_ok("//a[contains(\@href,'/editfields.cgi?action=del&name=$fname')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Delete the Custom Field '$fname' ($fdesc)");
     $sel->click_ok("link=Delete field '$fdesc'");
index b163e22221726a96ba7363940908a03da0218f1b..6956b86b808d84b0f43f1d67db167993e081a321 100644 (file)
@@ -61,7 +61,7 @@ $sel->selected_label_is("othercontrol_$group1_id", "NA");
 edit_product($sel, "ready_to_die");
 $sel->go_back_ok();
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
-$sel->click_ok('//a[@href="editproducts.cgi?action=del&product=ready_to_die"]');
+$sel->click_ok('//a[contains(@href,"/editproducts.cgi?action=del&product=ready_to_die")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Product 'ready_to_die'");
 $sel->click_ok("delete");
@@ -129,7 +129,7 @@ go_to_admin($sel);
 $sel->click_ok("link=Groups");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Edit Groups");
-$sel->click_ok("//a[contains(\@href, 'editgroups.cgi?action=del&group=$group2_id')]");
+$sel->click_ok("//a[contains(\@href, '/editgroups.cgi?action=del&group=$group2_id')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete group");
 $sel->is_text_present_ok("This group is tied to the following products");
@@ -152,7 +152,7 @@ ok($text =~ qr/The group ready_to_die_ has been deleted/, "Group ready_to_die_ h
 edit_product($sel, "ready_to_die");
 $sel->go_back_ok();
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
-$sel->click_ok('//a[@href="editproducts.cgi?action=del&product=ready_to_die"]');
+$sel->click_ok('//a[contains(@href,"/editproducts.cgi?action=del&product=ready_to_die")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Product 'ready_to_die'");
 $sel->click_ok("delete");
@@ -192,7 +192,7 @@ $sel->click_ok("link=Groups");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Edit Groups");
 ok(!$sel->is_text_present('ready_to_die__'), 'No ready_to_die__ group created');
-$sel->click_ok("//a[contains(\@href, 'editgroups.cgi?action=del&group=$group1_id')]");
+$sel->click_ok("//a[contains(\@href, '/editgroups.cgi?action=del&group=$group1_id')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete group");
 $sel->click_ok("delete");
@@ -204,7 +204,7 @@ ok($text =~ /The group ready_to_die has been deleted/, "Group ready_to_die has b
 edit_product($sel, "ready_to_die");
 $sel->go_back_ok();
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
-$sel->click_ok('//a[@href="editproducts.cgi?action=del&product=ready_to_die"]');
+$sel->click_ok('//a[contains(@href,"/editproducts.cgi?action=del&product=ready_to_die")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Product 'ready_to_die'");
 $sel->click_ok("delete");
index b62e7106135f0458848261c31126a1de998d4897..7d6b80a4d6ce77cb8d93c1c22f5347ca7fe9a527 100644 (file)
@@ -38,7 +38,7 @@ my $text = trim($sel->get_text("bugzilla-body"));
 if ($text =~ /(Kill me!|Kill me nicely)/) {
     my $product = $1;
     my $escaped_product = url_quote($product);
-    $sel->click_ok("//a[\@href='editproducts.cgi?action=del&product=$escaped_product']");
+    $sel->click_ok("//a[contains(\@href,'/editproducts.cgi?action=del&product=$escaped_product')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Delete Product '$product'");
     $sel->click_ok("delete");
@@ -274,7 +274,7 @@ edit_product($sel, "Kill me nicely");
 $sel->click_ok("link=Edit milestones:");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select milestone of product 'Kill me nicely'");
-$sel->click_ok('//a[@href="editmilestones.cgi?action=del&product=Kill%20me%20nicely&milestone=pre-0.1"]');
+$sel->click_ok('//a[contains(@href,"/editmilestones.cgi?action=del&product=Kill%20me%20nicely&milestone=pre-0.1")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Milestone of Product 'Kill me nicely'");
 $text = trim($sel->get_text("bugzilla-body"));
@@ -294,7 +294,7 @@ $sel->title_is("Edit Product 'Kill me nicely'");
 $sel->click_ok("//a[contains(text(),'Edit\nversions:')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select version of product 'Kill me nicely'");
-$sel->click_ok("//a[contains(\@href, 'editversions.cgi?action=del&product=Kill%20me%20nicely&version=0.1a')]");
+$sel->click_ok("//a[contains(\@href, '/editversions.cgi?action=del&product=Kill%20me%20nicely&version=0.1a')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Version of Product 'Kill me nicely'");
 $text = trim($sel->get_text("bugzilla-body"));
@@ -304,7 +304,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 
 # Delete an unused version. The action must succeed.
 
-$sel->click_ok('//a[@href="editversions.cgi?action=del&product=Kill%20me%20nicely&version=0.1"]');
+$sel->click_ok('//a[contains(@href,"/editversions.cgi?action=del&product=Kill%20me%20nicely&version=0.1")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Version of Product 'Kill me nicely'");
 $text = trim($sel->get_text("bugzilla-body"));
@@ -321,7 +321,7 @@ $sel->title_is("Edit Product 'Kill me nicely'");
 $sel->click_ok("link=Edit components:");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select component of product 'Kill me nicely'");
-$sel->click_ok("//a[contains(\@href, 'editcomponents.cgi?action=del&product=Kill%20me%20nicely&component=second%20comp')]");
+$sel->click_ok("//a[contains(\@href, '/editcomponents.cgi?action=del&product=Kill%20me%20nicely&component=second%20comp')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete component 'second comp' from 'Kill me nicely' product");
 $text = trim($sel->get_text("bugzilla-body"));
@@ -350,7 +350,7 @@ go_to_admin($sel);
 $sel->click_ok("link=Products");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select product");
-$sel->click_ok("//a[\@href='editproducts.cgi?action=del&product=Kill%20me%20nicely']");
+$sel->click_ok("//a[contains(\@href,'/editproducts.cgi?action=del&product=Kill%20me%20nicely')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Product 'Kill me nicely'");
 $text = trim($sel->get_text("bugzilla-body"));
index de05f50a265d4a6428c1810a13120d76c5b06fae..7b880051ffce53d7382892bc122d8ad53220d64c 100644 (file)
@@ -71,7 +71,7 @@ my $flagtype1_id = $1;
 
 # Clone the flag type, but set the request group to 'editbugs' and the sortkey to 950.
 
-$sel->click_ok("//a[\@href='editflagtypes.cgi?action=copy&id=$flagtype1_id']");
+$sel->click_ok("//a[contains(\@href,'/editflagtypes.cgi?action=copy&id=$flagtype1_id')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Create Flag Type for Bugs Based on SeleniumBugFlag1Test");
 $sel->type_ok("name", "SeleniumBugFlag2Test");
@@ -101,7 +101,7 @@ my $flagtype2_id = $1;
 
 # Clone the first flag type again, but with different attributes.
 
-$sel->click_ok("//a[\@href='editflagtypes.cgi?action=copy&id=$flagtype1_id']");
+$sel->click_ok("//a[contains(\@href,'/editflagtypes.cgi?action=copy&id=$flagtype1_id')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Create Flag Type for Bugs Based on SeleniumBugFlag1Test");
 $sel->type_ok("name", "SeleniumBugFlag3Test");
@@ -155,7 +155,7 @@ my $aflagtype1_id = $1;
 
 # Clone the flag type.
 
-$sel->click_ok("//a[\@href='editflagtypes.cgi?action=copy&id=$aflagtype1_id']");
+$sel->click_ok("//a[contains(\@href,'/editflagtypes.cgi?action=copy&id=$aflagtype1_id')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Create Flag Type for Attachments Based on SeleniumAttachmentFlag1Test");
 $sel->type_ok("name", "SeleniumAttachmentFlag2Test");
@@ -178,7 +178,7 @@ my $aflagtype2_id = $1;
 
 # Clone the flag type again, and set it as inactive.
 
-$sel->click_ok("//a[\@href='editflagtypes.cgi?action=copy&id=$aflagtype1_id']");
+$sel->click_ok("//a[contains(\@href,'/editflagtypes.cgi?action=copy&id=$aflagtype1_id')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Create Flag Type for Attachments Based on SeleniumAttachmentFlag1Test");
 $sel->type_ok("name", "SeleniumAttachmentFlag3Test");
@@ -409,7 +409,7 @@ ok(grep($_ eq '?', @flag_states), "Flag state '?' available");
 
 # A powerless user cannot edit someone else's attachment flags.
 
-$sel->click_ok("//a[\@href='attachment.cgi?id=$attachment2_id&action=edit']");
+$sel->click_ok("//a[contains(\@href,'/attachment.cgi?id=$attachment2_id&action=edit')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_like(qr/^Attachment $attachment2_id Details for Bug $bug1_id/);
 $sel->is_element_present_ok('//select[@title="attachmentflag2"][@disabled]',
@@ -450,7 +450,7 @@ logout($sel);
 
 log_in($sel, $config, 'admin');
 go_to_bug($sel, $bug1_id);
-$sel->click_ok("//a[\@href='attachment.cgi?id=${attachment3_id}&action=edit']");
+$sel->click_ok("//a[contains(\@href,'/attachment.cgi?id=${attachment3_id}&action=edit')]");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_like(qr/^Attachment $attachment3_id Details for Bug $bug1_id/);
 $sel->select_ok('//select[@title="attachmentflag1"]', "label=+");
@@ -471,7 +471,7 @@ foreach my $flagtype ([$flagtype1_id, "SeleniumBugFlag1Test"], [$flagtype2_id, "
 {
     my $flag_id = $flagtype->[0];
     my $flag_name = $flagtype->[1];
-    $sel->click_ok("//a[\@href='editflagtypes.cgi?action=confirmdelete&id=$flag_id']");
+    $sel->click_ok("//a[contains(\@href,'/editflagtypes.cgi?action=confirmdelete&id=$flag_id')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Confirm Deletion of Flag Type '$flag_name'");
     $sel->click_ok("link=Yes, delete");
index 380246c9de219925e0638ed75274aaea13da24b1..c84d18015cf7882d65a7200eb886ec348c88269d 100644 (file)
@@ -333,7 +333,7 @@ foreach my $flagtype ([$flagtype1_id, "selenium"], [$flagtype2_id, "selenium"],
 {
     my $flag_id = $flagtype->[0];
     my $flag_name = $flagtype->[1];
-    $sel->click_ok("//a[\@href='editflagtypes.cgi?action=confirmdelete&id=$flag_id']");
+    $sel->click_ok("//a[contains(\@href,'/editflagtypes.cgi?action=confirmdelete&id=$flag_id')]");
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Confirm Deletion of Flag Type '$flag_name'");
     $sel->click_ok("link=Yes, delete");
index eab30125fa2573f5106b810d2f823452371cd14c..5d8fcbfda7dd3eefabc4e85d92c2c78e0fbafff6 100644 (file)
@@ -287,7 +287,7 @@ go_to_admin($sel);
 $sel->click_ok("link=Groups");
 $sel->wait_for_page_to_load(WAIT_TIME);
 $sel->title_is("Edit Groups");
-$sel->click_ok("//a[\@href='editgroups.cgi?action=del&group=${group_id}']");
+$sel->click_ok("//a[contains(\@href,'/editgroups.cgi?action=del&group=${group_id}')]");
 $sel->wait_for_page_to_load(WAIT_TIME);
 $sel->title_is("Delete group");
 $sel->is_text_present_ok("Do you really want to delete this group?");
index 0edffcc2f02d92265ec8f0b9cdaff1895d0ec8ef..e093cb43784976f1e3e69d58a822278ea9c5f3a0 100644 (file)
@@ -160,7 +160,7 @@ $sel->is_text_present_ok("key-selenium-kone");
 $sel->is_text_present_ok("Hopefully an ice cream");
 $sel->is_text_present_ok("key-selenium-ktwo");
 $sel->is_text_present_ok("the second keyword");
-$sel->click_ok('//a[@href="buglist.cgi?keywords=key-selenium-kone"]');
+$sel->click_ok('//a[contains(@href,"/buglist.cgi?keywords=key-selenium-kone")]');
 $sel->wait_for_page_to_load(WAIT_TIME);
 $sel->title_is("Bug List");
 $sel->is_element_present_ok("link=$test_bug_1");
@@ -168,7 +168,7 @@ $sel->is_element_present_ok("link=$test_bug_2");
 $sel->is_text_present_ok("2 bugs found");
 $sel->go_back_ok();
 $sel->wait_for_page_to_load(WAIT_TIME);
-$sel->click_ok('//a[@href="buglist.cgi?keywords=key-selenium-ktwo"]');
+$sel->click_ok('//a[contains(@href,"/buglist.cgi?keywords=key-selenium-ktwo")]');
 $sel->wait_for_page_to_load(WAIT_TIME);
 $sel->title_is("Bug List");
 $sel->is_element_present_ok("link=$test_bug_2");
index 9a6e8d54df6b34bc2ad54068b240e46cec36c5c9..f0754ca2286d68f9c02e2a17054322613b94dd2d 100644 (file)
@@ -90,7 +90,7 @@ foreach my $user ('', 'unprivileged') {
 
 # A powerless user can comment on attachments he doesn't own.
 
-$sel->click_ok('//a[@href="attachment.cgi?id=' . $attachment1_id . '&action=edit"]');
+$sel->click_ok('//a[contains(@href,"/attachment.cgi?id=' . $attachment1_id . '&action=edit")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_like(qr/^Attachment $attachment1_id Details for Bug $bug1_id/);
 $sel->is_text_present_ok("created by QA Admin");
@@ -132,7 +132,7 @@ logout($sel);
 
 log_in($sel, $config, 'admin');
 go_to_bug($sel, $bug1_id);
-$sel->click_ok('//a[@href="attachment.cgi?id=' . $attachment2_id . '&action=edit"]');
+$sel->click_ok('//a[contains(@href,"/attachment.cgi?id=' . $attachment2_id . '&action=edit")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_like(qr/^Attachment $attachment2_id Details for Bug $bug1_id/);
 $sel->check_ok("isprivate");
@@ -173,7 +173,7 @@ logout($sel);
 
 log_in($sel, $config, 'admin');
 go_to_bug($sel, $bug1_id);
-$sel->click_ok('//a[@href="attachment.cgi?id=' . $attachment2_id . '&action=edit"]');
+$sel->click_ok('//a[contains(@href,"/attachment.cgi?id=' . $attachment2_id . '&action=edit")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_like(qr/^Attachment $attachment2_id Details for Bug $bug1_id/);
 $sel->click_ok("link=Delete");
index b39458fa55609928609611959d8238b0f5585fd9..91ccd261710445e1720fc7bfeb2bf567b2682a24 100644 (file)
@@ -27,7 +27,7 @@ $sel->title_is("User Preferences");
 
 if($sel->is_text_present("SavedSearchTEST1")) {
     # There is no other way to identify this link (as they are all named "Forget").
-    $sel->click_ok('//a[contains(@href,"buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=SavedSearchTEST1")]');
+    $sel->click_ok('//a[contains(@href,"/buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=SavedSearchTEST1")]');
     $sel->wait_for_page_to_load_ok(WAIT_TIME);
     $sel->title_is("Search is gone");
     $sel->is_text_present_ok("OK, the SavedSearchTEST1 search is gone.");
@@ -97,7 +97,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("User Preferences");
 
 $sel->is_text_present_ok("SavedSearchTEST1");
-$sel->click_ok('//a[@href="buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=SavedSearchTEST1"]');
+$sel->click_ok('//a[contains(@href,"/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=SavedSearchTEST1")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Bug List: SavedSearchTEST1");
 $sel->click_ok("link=Edit Search");
index a4b2ac9ce1df5daa9c444e84dac4bb664ed685e9..89fcc9925ad6b5e157deecc5f305c40405a23855 100644 (file)
@@ -159,7 +159,7 @@ $sel->click_ok("link=Saved Searches");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("User Preferences");
 # There is no better way to identify the link
-$sel->click_ok('//a[contains(@href,"buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=Shared%20Selenium%20buglist")]',
+$sel->click_ok('//a[contains(@href,"/buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=Shared%20Selenium%20buglist")]',
                undef, "Deleting the 'Shared Selenium buglist' search");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Search is gone");
@@ -194,7 +194,7 @@ $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("User Preferences");
 $sel->click_ok("quicksearch_top");
 ok(!$sel->is_text_present("Shared Selenium buglist"), "The 'Shared Selenium buglist' is no longer available");
-$sel->click_ok('//a[contains(@href,"buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=helpwanted")]',
+$sel->click_ok('//a[contains(@href,"/buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=helpwanted")]',
                undef, "Deleting the 'helpwanted' search");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Search is gone");
index 7558f0525ca0df9cff159146c71c874a114b6496..7067e775f82e959e7a6fcdcef1e8d8a04d770c05 100644 (file)
@@ -97,7 +97,7 @@ edit_product($sel, "TestProduct");
 $sel->click_ok("link=Edit milestones:");
 $sel->wait_for_page_to_load(WAIT_TIME);
 $sel->title_is("Select milestone of product 'TestProduct'");
-$sel->click_ok('//a[@href="editmilestones.cgi?action=del&product=TestProduct&milestone=TM1"]',
+$sel->click_ok('//a[contains(@href,"/editmilestones.cgi?action=del&product=TestProduct&milestone=TM1")]',
                undef, "Deleting the TM1 milestone");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Milestone of Product 'TestProduct'");
index 0798a1b802ac5b3f4f9d4e7e013965394c81b0fe..de1224f735d9704cd925d6146e731efcb278a4b5 100644 (file)
@@ -219,7 +219,7 @@ sub cleanup_groups {
     $sel->click_ok("link=Groups");
     $sel->wait_for_page_to_load(WAIT_TIME);
     $sel->title_is("Edit Groups");
-    $sel->click_ok("//a[\@href='editgroups.cgi?action=del&group=$slave_gid']");
+    $sel->click_ok("//a[contains(\@href,'/editgroups.cgi?action=del&group=$slave_gid')]");
     $sel->wait_for_page_to_load(WAIT_TIME);
     $sel->title_is("Delete group");
     $sel->is_text_present_ok("Do you really want to delete this group?");
index ee257e85c8b45c38f4fa75001a4c5f6f818ef7ac..d91ad352665656237908a028c29feee5db3f2a62 100644 (file)
@@ -240,7 +240,7 @@ go_to_admin($sel);
 $sel->click_ok("link=Products");
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Select product");
-$sel->click_ok('//a[@href="editproducts.cgi?action=del&product=Eureka"]');
+$sel->click_ok('//a[contains(@href,"/editproducts.cgi?action=del&product=Eureka")]');
 $sel->wait_for_page_to_load_ok(WAIT_TIME);
 $sel->title_is("Delete Product 'Eureka'");
 $full_text = trim($sel->get_body_text());
index 2afdf1dc78ff81409aaeeb85ad1b8f5c00d63931..f27045ef6722883a4968ea59a0639b2d8b5f0628 100644 (file)
@@ -25,7 +25,7 @@
   account?</p>
 
 <div>
-  <form action="auth.cgi" method="post">
+  <form action="[% basepath FILTER none %]auth.cgi" method="post">
     <input type="hidden" name="confirm"     value="1">
     <input type="hidden" name="callback"    value="[% callback FILTER html %]">
     <input type="hidden" name="description" value="[% description FILTER html %]">
index a64384c98aac6639f7249eb48e8b36dd3e4c639a..a860d071c1594e6d5022dedd78d4187e77a7edac 100644 (file)
@@ -28,7 +28,7 @@
  [% login_target = "index.cgi" %]
 [% END %]
 
-[% login_target = urlbase _ login_target %]
+[% login_target = basepath _ login_target %]
 
 <li id="mini_login_container[% qs_suffix %]">
   [% connector = "?" %]
@@ -92,7 +92,7 @@
      class='show_forgot_form'
      data-qs-suffix="[% qs_suffix FILTER html %]">Forgot Password</a>
   <div id="forgot_form[% qs_suffix %]" class="mini-popup mini_forgot bz_default_hidden">
-  <form action="token.cgi" method="post">
+  <form action="[% basepath FILTER none %]token.cgi" method="post">
     <input type="email" name="loginname" size="20" placeholder="Email" aria-label="Email" required>
     <input id="forgot_button[% qs_suffix %]" value="Reset Password"
            type="submit">
index 84e5bd62a6b88302cd71966ab8dcfa5b4fc186e2..f1e084ecbba3b94e26e94e8f0e0627be66c70e19 100644 (file)
@@ -42,7 +42,7 @@
 </p>
 
 <div id="login" class="login-form">
-  <form name="login" action="[% urlbase FILTER html %][% target FILTER uri FILTER html %]" method="POST"
+  <form name="login" action="[% basepath FILTER html %][% target FILTER uri FILTER html %]" method="POST"
         [%- IF Bugzilla.cgi.param("data") %] enctype="multipart/form-data"[% END %]>
     <div class="field-login">
       <label for="Bugzilla_login">Email Address:</label>
 
     <p>
       If you don't have a [% terms.Bugzilla %] account, you can
-      <a href="createaccount.cgi">create a new account</a>.
+      <a href="[% basepath FILTER none %]createaccount.cgi">create a new account</a>.
     </p>
   [% END %]
 
   [% IF user.authorizer.can_change_password %]
     <hr>
 
-    <form id="forgot" method="get" action="token.cgi">
+    <form id="forgot" method="get" action="[% basepath FILTER none %]token.cgi">
       <input type="hidden" name="a" value="reqpw">
       If you have an account, but have forgotten your password,
       enter your email address below and submit a request
index f557d05dbb5164920ce5b127b246898b0fb9471d..93299f68246ff6f5f1d904175d51965ec96f320e 100644 (file)
@@ -60,7 +60,7 @@
 </p>
 [% END %]
 
-<form id="account_creation_form" method="get" action="createaccount.cgi">
+<form id="account_creation_form" method="get" action="[% basepath FILTER none %]createaccount.cgi">
   <table>
     <tr>
       <td align="right">
index 41c2b09a93bc0addf89c7681dfe0b16e6680b550..f3ee893f9e8820222fa1bbf27a5132176207e6ba 100644 (file)
@@ -35,7 +35,7 @@
   [% Param('passwdqc_desc') FILTER html_light %]
 </p>
 
-<form id="confirm_account_form" method="post" action="token.cgi">
+<form id="confirm_account_form" method="post" action="[% basepath FILTER none %]token.cgi">
   <input type="hidden" name="t" value="[% token FILTER html %]">
   <input type="hidden" name="a" value="confirm_new_account">
   <div class="flex">
@@ -80,7 +80,7 @@
   cancel account button below and your details will be forgotten.
 </p>
 
-<form id="cancel_account_form" method="post" action="token.cgi">
+<form id="cancel_account_form" method="post" action="[% basepath FILTER none %]token.cgi">
   <input type="hidden" name="t" value="[% token FILTER html %]">
   <input type="hidden" name="a" value="cancel_new_account">
   <input type="submit" id="confirm" value="Cancel Account">
index c0f094366a89bc0379053c29f6f89a0ca1dcbde6..4c119d3b0c00e2d071d2bacc88225e0123a62011 100644 (file)
@@ -29,7 +29,7 @@
   To change your email address, please enter the old email address:
 </p>
 
-<form method="post" action="token.cgi">
+<form method="post" action="[% basepath FILTER none %]token.cgi">
   <input type="hidden" name="t" value="[% token FILTER html %]">
   <input type="hidden" name="a" value="chgem">
   <table>
index b17bd510d0761e7f54659bd1e7ce6dc62b4ec7b4..f5a218a895ae49df96726f9efb33fd61ef4e0df6 100644 (file)
@@ -33,7 +33,7 @@
 
 <div class="flex">
   <div class="flex-left">
-    <form method="post" action="token.cgi">
+    <form method="post" action="[% basepath FILTER none %]token.cgi">
       <input type="hidden" name="t" value="[% token FILTER html %]">
       <input type="hidden" name="a" value="chgpw">
       <table>
index 1e7bc25db164ace2999f05a75b1fbd6b2d1f177a..1c5e11c9ee074aedc7175534eb78b2609682178b 100644 (file)
 </div>
 
 [% tab_footer = BLOCK %]
-  <form action="token.cgi" method="post" id="forgot-form">
+  <form action="[% basepath FILTER none %]token.cgi" method="post" id="forgot-form">
     <input type="hidden" name="loginname" value="[% user.login FILTER html %]">
     <input type="hidden" name="a" value="reqpw">
     <input type="hidden" name="token" value="[% issue_hash_token(['reqpw']) FILTER html %]">
index 132625368c185447badbd8cd18b4bae19c1926db..da6d7b5bf4a03aae1ed89025a28a0cedf7b241cd 100644 (file)
@@ -306,7 +306,7 @@ You are currently not watching any users.
         <td>
           <input type="checkbox" name="remove_ignored_bug_[% bug.id FILTER html %]" value="1">
         </td>
-        <td><a href="[% urlbase FILTER html %]show_bug.cgi?id=[% bug.id FILTER uri %]">
+        <td><a href="[% basepath FILTER html %]show_bug.cgi?id=[% bug.id FILTER uri %]">
           [% bug.id FILTER html %]</a>
         </td>
         <td>[% bug.status FILTER html %]</td>
index 973d384328f3d2d209636f483a1dfd3eb7aa2aee..27c17aa4ef7d4a68995e62aa18685186d09de080 100644 (file)
@@ -8,7 +8,7 @@
 
 [% SET MFA_HOWTO = "https://wiki.mozilla.org/BMO/UserGuide/Two-Factor_Authentication" %]
 [% tab_footer = BLOCK %]
-  <form action="token.cgi" method="post" id="forgot-form">
+  <form action="[% basepath FILTER none %]token.cgi" method="post" id="forgot-form">
     <input type="hidden" name="loginname" value="[% user.login FILTER html %]">
     <input type="hidden" name="a" value="reqpw">
     <input type="hidden" name="token" value="[% issue_hash_token(['reqpw']) FILTER html %]">
@@ -50,7 +50,7 @@
 
     [% INCLUDE recovery_blurb %]
     <iframe id="mfa-recovery-frame" tabindex="-1"
-            src="userprefs.cgi?tab=mfa&frame=recovery&t=[% mfa_recovery_token FILTER uri %]">
+            src="[% basepath FILTER none %]userprefs.cgi?tab=mfa&frame=recovery&t=[% mfa_recovery_token FILTER uri %]">
     </iframe>
 
   [% ELSIF user.mfa %]
     <p class="mfa-api-blurb">
       [% IF user.settings.api_key_only.value == 'on' %]
         Enabling two-factor authentication has also required systems that
-        interface with [% terms.Bugzilla %]'s API to use <a href="userprefs.cgi?tab=apikey">API keys</a>
+        interface with [% terms.Bugzilla %]'s API to use <a href="[% basepath FILTER none %]userprefs.cgi?tab=apikey">API keys</a>
         for authentication.<br>
         <br>
         While not recommended, this limitation can be lifted by changing the
-        <a href="userprefs.cgi?tab=settings#api_key_only">Require API key authentication for API requests</a>
+        <a href="[% basepath FILTER none %]userprefs.cgi?tab=settings#api_key_only">Require API key authentication for API requests</a>
         preference.
       [% ELSE %]
         Systems that interface with [% terms.Bugzilla %]'s API are not required to use API keys.<br>
         Change the
-        <a href="userprefs.cgi?tab=settings#api_key_only">Require API key authentication for API requests</a>
+        <a href="[% basepath FILTER none %]userprefs.cgi?tab=settings#api_key_only">Require API key authentication for API requests</a>
         preference to enforce API key usage.
       [% END %]
     </p>
@@ -95,7 +95,7 @@
       <p class="mfa-disable-blurb">
         You will need to disable your two-factor authentication in order to change to a different method.
         There will be a small amount of time when your account will not be as secure, so you may use the
-        <a href="userprefs.cgi?tab=sessions">sessions</a> page to log out all other sessions other
+        <a href="[% basepath FILTER none %]userprefs.cgi?tab=sessions">sessions</a> page to log out all other sessions other
         than the current one after setting up the new method.
       </p>
     [% END %]
       [% ELSIF user.mfa == "Duo" %]
 
         <p>
-          <img src="images/duo.png" id="duo-logo" width="32" height="32">
+          <img src="[% basepath FILTER none %]images/duo.png" id="duo-logo" width="32" height="32">
           Verification with Duo Security will be performed before your account is updated.
         </p>
 
       </div>
 
       <div id="mfa-totp-issued" style="display:none">
-        <iframe id="mfa-enable-totp-frame" src="userprefs.cgi?tab=mfa&frame=totp" tabindex="-1"></iframe>
+        <iframe id="mfa-enable-totp-frame" src="[% basepath FILTER none %]userprefs.cgi?tab=mfa&frame=totp" tabindex="-1"></iframe>
         <div id="mfa-totp-blurb">
           Scan this QR code with your <a href="#" id="mfa-totp-apps">TOTP App</a>,
           then enter the six digit code the app generates.<br>
         </p>
 
         <p>
-          <img src="images/duo.png" id="duo-logo" width="32" height="32">
+          <img src="[% basepath FILTER none %]images/duo.png" id="duo-logo" width="32" height="32">
           Verification with Duo Security will be performed before your account is updated.<br>
 
           You must be <a href="https://mana.mozilla.org/wiki/display/SD/DuoSecurity" target="_blank" rel="noopener noreferrer">
 
     <p class="mfa-api-blurb" style="display:none">
       Enabling two-factor authentication will also require systems that
-      interface with [% terms.Bugzilla %]'s API to use <a href="userprefs.cgi?tab=apikey">API keys</a>
+      interface with [% terms.Bugzilla %]'s API to use <a href="[% basepath FILTER none %]userprefs.cgi?tab=apikey">API keys</a>
       for authentication.  While not recommended, this limitation can be lifted by changing the
-      <a href="userprefs.cgi?tab=settings#api_key_only">Require API key authentication for API requests</a>
+      <a href="[% basepath FILTER none %]userprefs.cgi?tab=settings#api_key_only">Require API key authentication for API requests</a>
       preference after 2FA is enabled.
     </p>
   </div>
index a4597205ccaafe8e7c19a1392c36dea813e0c5fd..94a1160a2f107425f29faa93d05961c106dddc23 100644 (file)
@@ -72,7 +72,7 @@
       [% ELSIF set_bits.size %]
         <br>
         And you can turn on or off the following bits for
-        <a href="editusers.cgi">other users</a>:
+        <a href="[% basepath FILTER none %]editusers.cgi">other users</a>:
           <table align="center">
           [% FOREACH bit_description = set_bits %]
             <tr>
@@ -86,7 +86,7 @@
       [% IF user.in_group('bz_sudoers') %]
         <br>
         You are a member of the <b>bz_sudoers</b> group, so you can
-        <a href="relogin.cgi?action=prepare-sudo">impersonate someone else</a>.
+        <a href="[% basepath FILTER none %]relogin.cgi?action=prepare-sudo">impersonate someone else</a>.
       [% END %]
     </td>
   </tr>
index 631b08a107a428641b977d5be2eeaff3fa044b3d..b750bc10bb439a3c4d53a49f031c079ae879df62 100644 (file)
 <h3>[% current_tab.label %]</h3>
 
 [% IF current_tab.saveable %]
-  <form name="userprefsform" method="post" action="userprefs.cgi">
+  <form name="userprefsform" method="post" action="[% basepath FILTER none %]userprefs.cgi">
     <input type="hidden" name="tab" value="[% current_tab.name %]">
     <input type="hidden" name="token" value="[% token FILTER html %]">
 [% END %]
index e611aa6827c2c01d633271a969c38ed267cc79db..435ddedb360d4bafe7c3da3a304c2c27c4eba0cb 100644 (file)
@@ -73,7 +73,7 @@
       <td>My [% terms.Bugs %]</td>
       <td>
         [% filtered_username = user.login FILTER uri %]
-        <a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">Run</a>
+        <a href="[% basepath FILTER none %][% Param('mybugstemplate').replace('%userid%', filtered_username) %]">Run</a>
       </td>
       <td>
         &nbsp;
       <tr>
         <td>[% q.name FILTER html %]</td>
         <td>
-          <a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=[% q.name FILTER uri %]
+          <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=[% q.name FILTER uri %]
                    [% IF q.shared_with_group.id %]&amp;sharer_id=[% user.id FILTER uri %][% END %]">Run</a>
         </td>
         <td>
-          <a href="query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
+          <a href="[% basepath FILTER none %]query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
                    [% q.name FILTER uri %]">Edit</a>
         </td>
         <td>
           [% IF q.used_in_whine %]
-            Remove from <a href="editwhines.cgi">whining</a> first
+            Remove from <a href="[% basepath FILTER none %]editwhines.cgi">whining</a> first
           [% ELSE %]
-            <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
+            <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
                      [% q.name FILTER uri %]&amp;token=
                      [% issue_hash_token([q.id, q.name]) FILTER uri %]">Forget</a>
           [% END %]
         <td>[% q.user.identity FILTER html %]</td>
         <td>[% q.shared_with_group.name FILTER html %]</td>
         <td>
-          <a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
+          <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
                    [% q.name FILTER uri %]&amp;sharer_id=
                    [% q.user.id FILTER uri %]">Run</a>
         </td>
         <td>
-          <a href="query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
+          <a href="[% basepath FILTER none %]query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
                    [% q.name FILTER uri %]">Edit</a>
         </td>
         <td align="center">
index 14a0ccad64cf3d4fc6951b36fec9757848495084..98e3307265a17dadd982fa5442cb28a91c754a9d 100644 (file)
@@ -19,7 +19,7 @@
     <ul>
       [% FOREACH tab = tabs %]
         <li [%= IF tab.name == current_tab_name %]class="selected"[% END %]>
-          <a href="[% tab.link FILTER html %]">[% tab.label FILTER html %]</a>
+          <a href="[% basepath _ tab.link FILTER html %]">[% tab.label FILTER html %]</a>
         </li>
       [% END %]
     </ul>
index 64a950e8658bbe1f6dbf5c6ffbb87916b7a1c839..6e93337fec52218f800d7fbb12760778157c6b54 100644 (file)
   data    = profile_changes
 %]
 
-<p><a href="editusers.cgi?action=edit&amp;userid=
+<p><a href="[% basepath FILTER none %]editusers.cgi?action=edit&amp;userid=
   [%- otheruser.id FILTER uri %]"
   title="Edit user '[% otheruser.login FILTER html %]'">Edit this user</a> or
-  <a title="Search For Users" href="editusers.cgi">search for other accounts</a>
+  <a title="Search For Users" href="[% basepath FILTER none %]editusers.cgi">search for other accounts</a>
   [% IF listselectionvalues.matchtype != 'exact' %]
     or go <a title="Return to the user list"
-       href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
+       href="[% basepath FILTER none %]editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
     to the user list</a>
   [% END %]
 </p>
index a2bec34fd226b5653ed2175d250513fbd67c3dca..b6bf1563edc60595162e47980124f1427cdffdbe 100644 (file)
@@ -93,7 +93,7 @@ $(function() {
   [% Param('passwdqc_desc') FILTER html_light %]
 </p>
 
-<form method="POST" action="reset_password.cgi">
+<form method="POST" action="[% basepath FILTER none %]reset_password.cgi">
 <input type="hidden" name="token" value="[% token FILTER html %]">
 <input type="hidden" name="do_save" value="1">
 <input type="hidden" name="prev_url" value="[% prev_url FILTER html %]">
@@ -141,7 +141,7 @@ $(function() {
 </div>
 </form>
 
-<form action="token.cgi" method="post" id="forgot-form">
+<form action="[% basepath FILTER none %]token.cgi" method="post" id="forgot-form">
   <input type="hidden" name="loginname" value="[% user.login FILTER html %]">
   <input type="hidden" name="a" value="reqpw">
   <input type="hidden" name="token" value="[% issue_hash_token(['reqpw']) FILTER html %]">
index 09fe008358a01d46fe58ae8fe279c5c9d626041b..a9bb811ee115c1f5b14d8186e9bc536084c5db7f 100644 (file)
     <td class="admin_links">
       <dl>
         [% class = user.in_group('tweakparams') ? "" : "forbidden" %]
-        <dt id="parameters" class="[% class %]"><a href="editparams.cgi">Parameters</a></dt>
+        <dt id="parameters" class="[% class %]"><a href="[% basepath FILTER none %]editparams.cgi">Parameters</a></dt>
         <dd class="[% class %]">Set core parameters of the installation. That's the
         place where you specify the URL to access this installation, determine how
         users authenticate, choose which [% terms.bug %] fields to display, select
         the mail transfer agent to send email notifications, choose which group of
         users can use charts and share queries, and much more.</dd>
 
-        <dt id="preferences" class="[% class %]"><a href="editsettings.cgi">Default Preferences</a></dt>
+        <dt id="preferences" class="[% class %]"><a href="[% basepath FILTER none %]editsettings.cgi">Default Preferences</a></dt>
         <dd class="[% class %]">Set the default user preferences. These are the values
         which will be used by default for all users. Users will be able to edit their
-        own preferences from the <a href="userprefs.cgi?tab=settings">Preferences</a>.</dd>
+        own preferences from the <a href="[% basepath FILTER none %]userprefs.cgi?tab=settings">Preferences</a>.</dd>
 
         [% class = user.in_group('editcomponents') ? "" : "forbidden" %]
-        <dt id="sanitycheck" class="[% class %]"><a href="sanitycheck.cgi">Sanity Check</a></dt>
+        <dt id="sanitycheck" class="[% class %]"><a href="[% basepath FILTER none %]sanitycheck.cgi">Sanity Check</a></dt>
         <dd class="[% class %]">Run sanity checks to locate problems in your database.
         This may take several tens of minutes depending on the size of your installation.
         You can also automate this check by running <tt>sanitycheck.pl</tt> from a cron job.
         A notification will be sent per email to the specified user if errors are detected.</dd>
 
         [% class = (user.in_group('editusers') || user.in_group('disableusers') || user.can_bless) ? "" : "forbidden" %]
-        <dt id="users" class="[% class %]"><a href="editusers.cgi">Users</a></dt>
+        <dt id="users" class="[% class %]"><a href="[% basepath FILTER none %]editusers.cgi">Users</a></dt>
         <dd class="[% class %]">Create new user accounts or edit existing ones. You can
         also add and remove users from groups (also known as "user privileges").</dd>
 
         [% class = (Param('useclassification') && user.in_group('editclassifications')) ? "" : "forbidden" %]
-        <dt id="classifications" class="[% class %]"><a href="editclassifications.cgi">Classifications</a></dt>
+        <dt id="classifications" class="[% class %]"><a href="[% basepath FILTER none %]editclassifications.cgi">Classifications</a></dt>
         <dd class="[% class %]">If your installation has to manage many products at once,
         it's a good idea to group these products into distinct categories. This lets users
         find information more easily when doing searches or when filing new [% terms.bugs %].</dd>
 
         [% class = (user.in_group('editcomponents')
                     || user.get_products_by_permission("editcomponents").size) ? "" : "forbidden" %]
-        <dt id="products" class="[% class %]"><a href="editproducts.cgi">Products</a></dt>
+        <dt id="products" class="[% class %]"><a href="[% basepath FILTER none %]editproducts.cgi">Products</a></dt>
         <dd class="[% class %]">Edit all aspects of products, including group restrictions
         which let you define who can access [% terms.bugs %] being in these products. You
         can also edit some specific attributes of products such as
-        <a href="editcomponents.cgi">components</a>, <a href="editversions.cgi">versions</a>
-        and <a href="editmilestones.cgi">milestones</a> directly.</dd>
+        <a href="[% basepath FILTER none %]editcomponents.cgi">components</a>, <a href="[% basepath FILTER none %]editversions.cgi">versions</a>
+        and <a href="[% basepath FILTER none %]editmilestones.cgi">milestones</a> directly.</dd>
 
         [% class = (user.in_group('editcomponents')
                    || user.get_products_by_permission('editcomponents').size) ? "" : "forbidden" %]
-        <dt id="flags" class="[% class %]"><a href="editflagtypes.cgi">Flags</a></dt>
+        <dt id="flags" class="[% class %]"><a href="[% basepath FILTER none %]editflagtypes.cgi">Flags</a></dt>
         <dd class="[% class %]">A flag is a custom 4-states attribute of [% terms.bugs %]
         and/or attachments. These states are: granted, denied, requested and undefined.
         You can set as many flags as desired per [% terms.bug %], and define which users
@@ -91,7 +91,7 @@
     <td class="admin_links">
       <dl>
         [% class = user.in_group('admin') ? "" : "forbidden" %]
-        <dt id="custom_fields" class="[% class %]"><a href="editfields.cgi">Custom Fields</a></dt>
+        <dt id="custom_fields" class="[% class %]"><a href="[% basepath FILTER none %]editfields.cgi">Custom Fields</a></dt>
         <dd class="[% class %]">[% terms.Bugzilla %] lets you define fields which are
         not implemented by default, based on your local and specific requirements.
         These fields can then be used as any other field, meaning that you can set
         interface more complex and harder to use. Be sure you have investigated other ways
         to satisfy your needs before doing this.</dd>
 
-        <dt id="field_values" class="[% class %]"><a href="editvalues.cgi">Field Values</a></dt>
+        <dt id="field_values" class="[% class %]"><a href="[% basepath FILTER none %]editvalues.cgi">Field Values</a></dt>
         <dd class="[% class %]">Define legal values for fields whose values must belong
         to some given list. This is also the place where you define legal values for some
         types of custom fields.</dd>
 
-        <dt id="status_workflow" class="[% class %]"><a href="editworkflow.cgi">[%terms.Bug %] Status Workflow</a></dt>
+        <dt id="status_workflow" class="[% class %]"><a href="[% basepath FILTER none %]editworkflow.cgi">[%terms.Bug %] Status Workflow</a></dt>
         <dd class="[% class %]">Customize your workflow and choose initial [% terms.bug %]
         statuses available on [% terms.bug %] creation and allowed [% terms.bug %] status
         transitions when editing existing [% terms.bugs %].</dd>
 
         [% class = user.in_group('creategroups') ? "" : "forbidden" %]
-        <dt id="groups" class="[% class %]"><a href="editgroups.cgi">Groups</a></dt>
+        <dt id="groups" class="[% class %]"><a href="[% basepath FILTER none %]editgroups.cgi">Groups</a></dt>
         <dd class="[% class %]">Define groups which will be used in the installation.
         They can either be used to define new user privileges or to restrict the access
         to some [% terms.bugs %].</dd>
 
         [% class = user.in_group('editkeywords') ? "" : "forbidden" %]
-        <dt id="keywords" class="[% class %]"><a href="editkeywords.cgi">Keywords</a></dt>
+        <dt id="keywords" class="[% class %]"><a href="[% basepath FILTER none %]editkeywords.cgi">Keywords</a></dt>
         <dd class="[% class %]">Set keywords to be used with [% terms.bugs %]. Keywords
         are an easy way to "tag" [% terms.bugs %] to let you find them more easily later.</dd>
 
         [% class = user.in_group('bz_canusewhines') ? "" : "forbidden" %]
-        <dt id="whining" class="[% class %]"><a href="editwhines.cgi">Whining</a></dt>
+        <dt id="whining" class="[% class %]"><a href="[% basepath FILTER none %]editwhines.cgi">Whining</a></dt>
         <dd class="[% class %]">Set queries which will be run at some specified date
         and time, and get the result of these queries directly per email. This is a
         good way to create reminders and to keep track of the activity in your installation.</dd>
 
         [% IF Bugzilla.localconfig.param_override.use_mailer_queue OR Param('use_mailer_queue') %]
           [% class = user.in_group('admin') ? "" : "forbidden" %]
-          <dt id="view_job_queue" class="[% class %]"><a href="view_job_queue.cgi">Job Queue</a></dt>
+          <dt id="view_job_queue" class="[% class %]"><a href="[% basepath FILTER none %]view_job_queue.cgi">Job Queue</a></dt>
           <dd class="[% class %]">View the queue of undelivered/deferred jobs/emails.</dd>
         [% END %]
 
index 90b15d53984368878111fd3d646c9a5700ff3f14..45b600e3a80f0c959f3a94ae5252680cf672c3c4 100644 (file)
@@ -22,7 +22,7 @@
   title = "Add new classification"
 %]
 
-<form method=post action="editclassifications.cgi">
+<form method=post action="[% basepath FILTER none %]editclassifications.cgi">
   <table border=0 cellpadding=4 cellspacing=0>
 
     [% PROCESS "admin/classifications/edit-common.html.tmpl" %]
index ffd7d2f02e4bad22eee747ff77966bd7e8153840..0f51477a4a11f0207c7d5b3e67a69d7cf7a0a01d 100644 (file)
@@ -51,7 +51,7 @@
 <h2>Confirmation</h2>
 
 <p>Do you really want to delete this classification?</p>
-<form method=post action="editclassifications.cgi">
+<form method=post action="[% basepath FILTER none %]editclassifications.cgi">
   <input type=submit value="Yes, delete">
   <input type=hidden name="action" value="delete">
   <input type=hidden name="classification" value="[% classification.name FILTER html %]">
index 138ecd50b934f506101416fd469e3ee8c7483d2e..ed1dba677366d39415d2d14b26adf210a126fe63 100644 (file)
   title = "Edit classification"
 %]
 
-<form method=post action="editclassifications.cgi">
+<form method=post action="[% basepath FILTER none %]editclassifications.cgi">
   <table  border=0 cellpadding=4 cellspacing=0>
 
     [% PROCESS "admin/classifications/edit-common.html.tmpl" %]
 
     <tr valign=top>
       <th align="right">
-        <a href="editproducts.cgi?classification=[% classification.name FILTER uri %]">
+        <a href="[% basepath FILTER none %]editproducts.cgi?classification=[% classification.name FILTER uri %]">
         Edit Products</a>:
       </th>
       <td>
index db983aa74c5c80a8ed16283b4002cdd354cc2b3f..647430ecf2d72f31187e835c77b70786f1760b86 100644 (file)
@@ -21,4 +21,4 @@
 [% PROCESS global/variables.none.tmpl %]
 
 <p>Back to the <a href="./">main [% terms.bugs %] page</a>
-or <a href="editclassifications.cgi"> edit</a> more classifications.</p>
+or <a href="[% basepath FILTER none %]editclassifications.cgi"> edit</a> more classifications.</p>
index 146a1acc6ea1838301569f6aa4755f061be96bc9..a5334f22232668f4d08bb85aa85141070360d6e8 100644 (file)
@@ -22,7 +22,7 @@
   title = "Reclassify products"
 %]
 
-<form method=post action="editclassifications.cgi">
+<form method=post action="[% basepath FILTER none %]editclassifications.cgi">
   <table border=0 cellpadding=4 cellspacing=0>
     <tr>
       <td valign="top">Classification:</td>
index af29be324fc1d09d6b9d77bf0d7796fe0b487746..6386694d7d01a9cc7677742851891579a55940da 100644 (file)
@@ -33,7 +33,7 @@
 
   [% FOREACH cl = classifications %]
     <tr>
-      <td valign="top"><a href="editclassifications.cgi?action=edit&amp;classification=[% cl.name FILTER uri %]"><b>[% cl.name FILTER html %]</b></a></td>
+      <td valign="top"><a href="[% basepath FILTER none %]editclassifications.cgi?action=edit&amp;classification=[% cl.name FILTER uri %]"><b>[% cl.name FILTER html %]</b></a></td>
       <td valign="top">
       [% IF cl.description %]
         [% cl.description FILTER html_light %]
       [% IF (cl.id == 1) %]
         <td valign="top">[% cl.product_count FILTER html %]</td>
       [% ELSE %]
-        <td valign="top"><a href="editclassifications.cgi?action=reclassify&amp;classification=[% cl.name FILTER uri %]">reclassify ([% cl.product_count FILTER html %])</a></td>
+        <td valign="top"><a href="[% basepath FILTER none %]editclassifications.cgi?action=reclassify&amp;classification=[% cl.name FILTER uri %]">reclassify ([% cl.product_count FILTER html %])</a></td>
       [% END %]
 
       [%# don't allow user to delete the default id. %]
       [% IF (cl.id == 1) %]
         <td valign="top">&nbsp;</td>
       [% ELSE %]
-        <td valign="top"><a href="editclassifications.cgi?action=del&amp;classification=[% cl.name FILTER uri %]">delete</a></td>
+        <td valign="top"><a href="[% basepath FILTER none %]editclassifications.cgi?action=del&amp;classification=[% cl.name FILTER uri %]">delete</a></td>
       [% END %]
     </tr>
   [% END %]
 
   <tr>
     <td valign="top" colspan=4>Add a new classification</td>
-    <td valign="top" align="center"><a href="editclassifications.cgi?action=add">Add</a></td>
+    <td valign="top" align="center"><a href="[% basepath FILTER none %]editclassifications.cgi?action=add">Add</a></td>
   </tr>
 </table>
 
index 60b08b43096770d093b955dcba4195738421e6be..96f41fd3e37b728e18e10370d2d11358b0c526c4 100644 (file)
@@ -93,7 +93,7 @@ from '[% product.name FILTER html %]' product
   <td valign="top">
 [% IF comp.bug_count %]
   <a title="List of [% terms.bugs %] for component '[% comp.name FILTER html %]'"
-     href="buglist.cgi?component=[% comp.name FILTER uri %]&amp;product=
+     href="[% basepath FILTER none %]buglist.cgi?component=[% comp.name FILTER uri %]&amp;product=
           [%- product.name FILTER uri %]">[% comp.bug_count %]</a>
 [% ELSE %]
   None
@@ -148,7 +148,7 @@ from '[% product.name FILTER html %]' product
 
   <p>Do you really want to delete this component?</p>
 
-  <form method="post" action="editcomponents.cgi">
+  <form method="post" action="[% basepath FILTER none %]editcomponents.cgi">
   <input type="submit" id="delete" value="Yes, delete">
   <input type="hidden" name="action" value="delete">
   <input type="hidden" name="product" value="[% product.name FILTER html %]">
index 13b2c8e4128a7c4ed07ab90ece067ec90565c485..eea7695494d4a03d95b539686fec2632db86c375 100644 (file)
@@ -31,7 +31,7 @@
   generate_api_token = 1
 %]
 
-<form method="post" action="editcomponents.cgi">
+<form method="post" action="[% basepath FILTER none %]editcomponents.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     [% PROCESS "admin/components/edit-common.html.tmpl" %]
index ecfb3e299883a877c1b56ad5a4270532c175bc1d..5c2e0cd6fea5a1fdb876f779acc21cdee12c5188 100644 (file)
@@ -37,7 +37,7 @@
   javascript_urls = [ "js/field.js" ]
 %]
 
-<form method="post" action="editcomponents.cgi">
+<form method="post" action="[% basepath FILTER none %]editcomponents.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     [% PROCESS "admin/components/edit-common.html.tmpl" %]
@@ -52,7 +52,7 @@
       <td>
 [% IF comp.bug_count > 0 %]
         <a title="[% terms.Bugs %] in component '[% comp.name FILTER html %]'"
-           href="buglist.cgi?component=
+           href="[% basepath FILTER none %]buglist.cgi?component=
                 [%- comp.name FILTER uri %]&amp;product=
                 [%- product.name FILTER uri %]">[% comp.bug_count %]</a>
 [% ELSE %]
@@ -68,7 +68,7 @@
    <input type="hidden" name="product" value="[% product.name FILTER html %]">
    <input type="hidden" name="token" value="[% token FILTER html %]">
    <input type="submit" value="Save Changes" id="update"> or <a
-        href="editcomponents.cgi?action=del&amp;product=
+        href="[% basepath FILTER none %]editcomponents.cgi?action=del&amp;product=
         [%- product.name FILTER uri %]&amp;component=
         [%- comp.name FILTER uri %]">Delete</a> this component.
 
index aa3509bb725ef312f06ae02d2d8852524a4d55f6..5e0ed4f4723bbf5fb0ae3c32c4ee59aa73c8f82f 100644 (file)
@@ -32,7 +32,7 @@ Edit
 [% IF comp && !no_edit_component_link %]
   component <a
   title="Edit Component '[% comp.name FILTER html %]'"
-  href="editcomponents.cgi?action=edit&amp;product=
+  href="[% basepath FILTER none %]editcomponents.cgi?action=edit&amp;product=
   [%- product.name FILTER uri %]&amp;component=[% comp.name FILTER uri %]">
    '[% comp.name FILTER html %]'</a>
   or edit
@@ -41,14 +41,14 @@ Edit
 [% IF !no_edit_other_components_link %]
 other components of product <a
   title="Choose a component from product '[% product.name FILTER html %]' to edit"
-  href="editcomponents.cgi?product=
+  href="[% basepath FILTER none %]editcomponents.cgi?product=
   [%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>,
   or edit
 [% END %]
 
 product <a
   title="Edit Product '[% product.name FILTER html %]'"
-  href="editproducts.cgi?action=edit&amp;product=
+  href="[% basepath FILTER none %]editproducts.cgi?action=edit&amp;product=
   [%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
 
 </p>
index 7a333d33d465687273b78f5526bcafa29d1098f1..5001f6ed9e76ecb62a9bea0b73ca97bbe3c2e396 100644 (file)
      overrides = overrides
 %]
 
-<p><a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">Add</a>
+<p><a href="[% basepath FILTER none %]editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">Add</a>
     a new component to product '[% product.name FILTER html %]'</p>
 
 [% IF ! showbugcounts %]
 
-  <p><a href="editcomponents.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
+  <p><a href="[% basepath FILTER none %]editcomponents.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 
 [% END %]
index 7defbd065452181593b3ec63e7bcccbfbd208db2..a060575100da5761d668e8f96a6051dcbae71bea 100644 (file)
@@ -63,7 +63,7 @@
 %]
 
 [% IF !showbugcounts %]
-  <p><a href="editcomponents.cgi?showbugcounts=1">
+  <p><a href="[% basepath FILTER none %]editcomponents.cgi?showbugcounts=1">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 [% END %]
 
index c93683614a025fb5067ac8a7b6e7ef0e256bcb60..7ed880569f8a870e4ef4ff645aa7f927c8ef0825 100644 (file)
   and has never been used in [% terms.abug FILTER html %].</em>
 </p>
 
-<a href="editfields.cgi?action=delete&amp;name=[% field.name FILTER html %]&amp;token=[% token FILTER html %]">
+<a href="[% basepath FILTER none %]editfields.cgi?action=delete&amp;name=[% field.name FILTER html %]&amp;token=[% token FILTER html %]">
   Delete field '[% field.description FILTER html %]'</a>
 
 <p>
-  <a href="editfields.cgi">Back to the list of existing custom fields</a>
+  <a href="[% basepath FILTER none %]editfields.cgi">Back to the list of existing custom fields</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 79a9603a368811f44700004d160f79bc7c245153..05a103ae2f162ebcc3977aec9d27d76252e97d85 100644 (file)
@@ -53,7 +53,7 @@ YAHOO.util.Event.onDOMReady(function() {onChangeType(document.getElementById('ty
       used as the label for this field in the user interface.</li>
 </ul>
 
-<form id="add_field" action="editfields.cgi" method="GET">
+<form id="add_field" action="[% basepath FILTER none %]editfields.cgi" method="GET">
   <table border="0" cellspacing="0" cellpadding="5" id="edit_custom_field">
     <tr>
       <th class="narrow_label"><label for="name">Name:</label></th>
@@ -170,7 +170,7 @@ YAHOO.util.Event.onDOMReady(function() {onChangeType(document.getElementById('ty
 </form>
 
 <p>
-  <a href="editfields.cgi">Back to the list of existing custom fields</a>
+  <a href="[% basepath FILTER none %]editfields.cgi">Back to the list of existing custom fields</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 147d6ee93e295ed203204926bb0d5da2dc59126a..71b5d4ddbb47db5d68769debfe8aa9232de301f6 100644 (file)
@@ -40,7 +40,7 @@
   the label for this field in the user interface.
 </p>
 
-<form id="edit_field" action="editfields.cgi" method="GET">
+<form id="edit_field" action="[% basepath FILTER none %]editfields.cgi" method="GET">
   <table border="0" cellspacing="0" cellpadding="5" id="edit_custom_field">
     <tr>
       <th class="narrow_label">Name:</th>
       <tr>
         <th>&nbsp;</th>
         <td>
-          <a href="editvalues.cgi?field=[% field.name FILTER uri %]">Edit
+          <a href="[% basepath FILTER none %]editvalues.cgi?field=[% field.name FILTER uri %]">Edit
             legal values for this field</a>.
         </td>
 
 
 [% IF field.obsolete %]
 <p>
-  <a href="editfields.cgi?action=del&amp;name=[% field.name FILTER html %]">Remove
+  <a href="[% basepath FILTER none %]editfields.cgi?action=del&amp;name=[% field.name FILTER html %]">Remove
     this custom field from the database.</a><br>
   This action will only be successful if the custom field has never been used
   in [% terms.abug %].<br>
 [% END %]
 
 <p>
-  <a href="editfields.cgi">Back to the list of existing custom fields</a>
+  <a href="[% basepath FILTER none %]editfields.cgi">Back to the list of existing custom fields</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index d4d12b0ed3a9f9bad7de790a7003027e156d2bb6..767fec7c4783a308ad2527b5939485540adf7e05 100644 (file)
 %]
 
 <p>
-  <a href="editfields.cgi?action=add">Add a new custom field</a>
+  <a href="[% basepath FILTER none %]editfields.cgi?action=add">Add a new custom field</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 8abc7e148078e19ada17873da81c176c6062a3c6..8b1182a653dd86534ea126e37ade4d80a5803902 100644 (file)
@@ -49,7 +49,7 @@
   <a title="List of [% terms.bugs %] where '
             [%- field.description FILTER html %]' is '
             [%- value.name FILTER html %]'"
-     href="buglist.cgi?[% field.name FILTER uri %]=
+     href="[% basepath FILTER none %]buglist.cgi?[% field.name FILTER uri %]=
            [%- value.name FILTER uri %]">
    [%- value.bug_count FILTER html %]</a>
 [% ELSE %]
@@ -75,7 +75,7 @@
       <li>'[% value.name FILTER html %]' is the default value for
         the '[% field.description FILTER html %]' field.
         [% IF user.in_group('tweakparams') %]
-          You first have to <a href="editparams.cgi?section=bugfields">change
+          You first have to <a href="[% basepath FILTER none %]editparams.cgi?section=bugfields">change
           the default value</a> for this field before you can delete
           this value.
         [% END %]
@@ -94,7 +94,7 @@
           <a title="List of [% terms.bugs %] where '
                     [%- field.description FILTER html %]' is '
                     [%- value.name FILTER html %]'"
-             href="buglist.cgi?[% field.name FILTER uri %]=
+             href="[% basepath FILTER none %]buglist.cgi?[% field.name FILTER uri %]=
                    [%- value.name FILTER uri %]">
             [% IF value.bug_count > 1 %]
               those [% terms.bugs %]
     [% IF value.controls_visibility_of_fields.size %]
       <li>This value controls the visibility of the following fields:<br>
         [% FOREACH field = value.controls_visibility_of_fields %]
-          <a href="editfields.cgi?action=edit&name=
+          <a href="[% basepath FILTER none %]editfields.cgi?action=edit&name=
                    [%- field.name FILTER uri %]">
             [%- field.description FILTER html %]
             ([% field.name FILTER html %])</a><br>
         other fields:<br>
        [% FOREACH field_name = value.controlled_values.keys %]
          [% FOREACH controlled = value.controlled_values.${field_name} %]
-           <a href="editvalues.cgi?action=edit&field=
+           <a href="[% basepath FILTER none %]editvalues.cgi?action=edit&field=
                     [%- controlled.field.name FILTER uri %]&value=
                     [%- controlled.name FILTER uri %]">
              [% controlled.field.description FILTER html %]
 
   <p>Do you really want to delete this value?</p>
 
-  <form method="post" action="editvalues.cgi">
+  <form method="post" action="[% basepath FILTER none %]editvalues.cgi">
     <input type="submit" value="Yes, delete" id="delete">
     <input type="hidden" name="action" value="delete">
     <input type="hidden" name="field" value="[% field.name FILTER html %]">
index c96111f2210ccdab042c2fc6c43f89914d6b16f4..58501ed0dc656581410565826f4ddf5308ffd0ae 100644 (file)
@@ -30,7 +30,7 @@
   '[% field.description FILTER html %]' field.
 </p>
 
-<form method="post" action="editvalues.cgi">
+<form method="post" action="[% basepath FILTER none %]editvalues.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
     <tr>
       <th align="right"><label for="value">Value:</label></th>
index 8d20e1e41203755433e266d24ffbbe4a94d18afb..03302073857ba7252df53cb6a1c04f4a00b0a02b 100644 (file)
@@ -28,7 +28,7 @@
   title = title
 %]
 
-<form method="post" action="editvalues.cgi">
+<form method="post" action="[% basepath FILTER none %]editvalues.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     <tr>
index 1b94b5c0e0c0e4f70a225f0385060678467cc6d7..4ec30ef656693a4e72bb3ac8179d1e41f89c5926 100644 (file)
@@ -31,7 +31,7 @@
 
 [% UNLESS no_add_link %]
   <a title="Add a value for the '[% field.description FILTER html %]' field."
-     href="editvalues.cgi?action=add&amp;field=
+     href="[% basepath FILTER none %]editvalues.cgi?action=add&amp;field=
           [%- field.name FILTER uri %]">Add</a> a value.
 [% END %]
 
@@ -39,7 +39,7 @@
   Edit value <a
   title="Edit value '[% value.name FILTER html %]' for the '
          [%- field.name FILTER html %]' field"
-  href="editvalues.cgi?action=edit&amp;field=
+  href="[% basepath FILTER none %]editvalues.cgi?action=edit&amp;field=
         [%- field.name FILTER uri %]&amp;value=
         [%- value.name FILTER uri %]">
         '[% value.name FILTER html %]'</a>.
@@ -47,7 +47,7 @@
 
 [% UNLESS no_edit_other_link %]
   Edit other values for the <a
-  href="editvalues.cgi?field=
+  href="[% basepath FILTER none %]editvalues.cgi?field=
         [%- field.name FILTER uri %]">'[% field.description FILTER html %]'</a> field.
 
 [% END %]
index ed909417dca7a3659d65ebcbd0bb97ae3b34c827..599c52a6594c3a1b261df8fe4b99655e81c63037 100644 (file)
@@ -34,7 +34,7 @@
   [% END %]
 
   Note that instead of deleting the type you can
-   <a href="editflagtypes.cgi?action=deactivate&amp;id=[% flag_type.id %]&amp;token=
+   <a href="[% basepath FILTER none %]editflagtypes.cgi?action=deactivate&amp;id=[% flag_type.id %]&amp;token=
            [%- token FILTER html %]">deactivate it</a>,
    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.
    </tr>
    <tr>
       <td>
-         <a href="editflagtypes.cgi?action=delete&amp;id=[% flag_type.id %]&amp;token=
+         <a href="[% basepath FILTER none %]editflagtypes.cgi?action=delete&amp;id=[% flag_type.id %]&amp;token=
                  [%- token FILTER html %]">Yes, delete
          </a>
       </td>
       <td align="right">
-         <a href="editflagtypes.cgi">
+         <a href="[% basepath FILTER none %]editflagtypes.cgi">
             No, don't delete
          </a>
       </td>
index b3cdf52e803151d6c18b73d129f1d7e23e9b569c..3385e1fa92e9385f640c5e773f37ec7e0b764594 100644 (file)
@@ -49,7 +49,7 @@
   doc_section = doc_section
 %]
 
-<form id="flagtype_properties" method="post" action="editflagtypes.cgi">
+<form id="flagtype_properties" method="post" action="[% basepath FILTER none %]editflagtypes.cgi">
   <input type="hidden" name="action" value="[% action FILTER html %]">
   <input type="hidden" name="can_fully_edit" value="[% can_fully_edit FILTER html %]">
   <input type="hidden" name="id" value="[% type.id FILTER html %]">
index 220db8900989eed7f8b83883f942c64ae70dbccf..050a1066edea1d9dcfad5387bf6410eeabbfb549 100644 (file)
@@ -56,7 +56,7 @@
   which are available to at least one component of the product are shown.
 </p>
 
-<form id="flagtype_form" name="flagtype_form" action="editflagtypes.cgi" method="get">
+<form id="flagtype_form" name="flagtype_form" action="[% basepath FILTER none %]editflagtypes.cgi" method="get">
   <table>
     <tr>
       <th><label for="product">Product:</label></th>
@@ -96,7 +96,7 @@
 [% PROCESS display_flag_types types=bug_types types_id='bugs' %]
 
 <p>
-  <a href="editflagtypes.cgi?action=enter&amp;target_type=bug">Create Flag Type for [% terms.Bugs %]</a>
+  <a href="[% basepath FILTER none %]editflagtypes.cgi?action=enter&amp;target_type=bug">Create Flag Type for [% terms.Bugs %]</a>
 </p>
 
 <h3>Flag Types for Attachments</h3>
 [% PROCESS display_flag_types types=attachment_types types_id='attachments' %]
 
 <p>
-  <a href="editflagtypes.cgi?action=enter&amp;target_type=attachment">Create Flag Type For Attachments</a>
+  <a href="[% basepath FILTER none %]editflagtypes.cgi?action=enter&amp;target_type=attachment">Create Flag Type For Attachments</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
     [% FOREACH type = types %]
 
       <tr class="[% IF type.is_active %]active[% ELSE %]inactive[% END %]">
-        <td><a href="editflagtypes.cgi?action=edit&amp;id=[% type.id %]">[% type.name FILTER html FILTER no_break %]</a></td>
+        <td><a href="[% basepath FILTER none %]editflagtypes.cgi?action=edit&amp;id=[% type.id %]">[% type.name FILTER html FILTER no_break %]</a></td>
         <td>[% type.description FILTER html %]</td>
         <td align="right">[% type.sortkey FILTER html %]</td>
         <td>
             [% FOREACH state = ['granted', 'pending', 'denied'] %]
               [% bug_list = bug_lists.${type.id}.$state || [] %]
               [% IF bug_list.size %]
-                <a href="buglist.cgi?bug_id=[% bug_list.unique.nsort.join(",") FILTER html %]">
+                <a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% bug_list.unique.nsort.join(",") FILTER html %]">
                   [% bug_list.size FILTER html %] [%+ state_desc.$state FILTER html %]
                 </a>
                 <br>
           </td>
         [% END %]
         <td>
-          <a href="editflagtypes.cgi?action=copy&amp;id=[% type.id %]">Copy</a>
-          | <a href="editflagtypes.cgi?action=confirmdelete&amp;id=[% type.id %]">Delete</a>
+          <a href="[% basepath FILTER none %]editflagtypes.cgi?action=copy&amp;id=[% type.id %]">Copy</a>
+          | <a href="[% basepath FILTER none %]editflagtypes.cgi?action=confirmdelete&amp;id=[% type.id %]">Delete</a>
         </td>
       </tr>
 
index a3830702c7a3d357694f315889676376c5acd0f1..e2e6f5ad4770275759ff8d123cae982d09642f08 100644 (file)
   for further information.
 </p>
 
-<form method="post" action="editgroups.cgi">
+<form method="post" action="[% basepath FILTER none %]editgroups.cgi">
   <input type="hidden" name="group_id" value="[% group.id FILTER html %]">
   <input type="hidden" name="regexp" value="[% regexp FILTER html %]">
   <input type="hidden" name="action" value="remove_regexp">
 
   <input name="token" type="hidden" value="[% token FILTER html %]">
   <input id="confirm" name="confirm" type="submit" value="Confirm">
-  <p>Or <a href="editgroups.cgi">return to the Edit Groups page</a>.</p>
+  <p>Or <a href="[% basepath FILTER none %]editgroups.cgi">return to the Edit Groups page</a>.</p>
 </form>
 
 [% PROCESS global/footer.html.tmpl %]
index 6b733538aa0a8486df252b96cb8baf4e31fed43a..f05a4dc01fa7ecb2ff6e4afdb58aefed0df233ee 100644 (file)
@@ -33,7 +33,7 @@
   javascript_urls = [ "js/field.js" ]
 %]
 
-<form method="post" action="editgroups.cgi">
+<form method="post" action="[% basepath FILTER none %]editgroups.cgi">
   <table border="1" cellpadding="4" cellspacing="0"><tr>
     <th>New Name</th>
     <th>New Description</th>
@@ -118,6 +118,6 @@ visible only when its controls have been added to a product.</p>
 
 <p>Back to the <a href="./">main [% terms.bugs %] page</a>
 
-or to the <a href="editgroups.cgi">group list</a>.
+or to the <a href="[% basepath FILTER none %]editgroups.cgi">group list</a>.
 
 [% PROCESS global/footer.html.tmpl %]
index 794ca259c77ee7f38709e41d44a384160f933ae2..8c648a07414ad6ccf0d22349aad1e858d3318ede 100644 (file)
   </tr>
 </table>
 
-<form method="post" action="editgroups.cgi">
+<form method="post" action="[% basepath FILTER none %]editgroups.cgi">
   [% IF group.members_non_inherited.size %]
     <p><b>[% group.members_non_inherited.size FILTER html %] users belong
       directly to this group. You cannot delete this group while there are
       users in it.</b>
 
-    <br><a href="editusers.cgi?action=list&amp;groupid=
+    <br><a href="[% basepath FILTER none %]editusers.cgi?action=list&amp;groupid=
                  [%- group.id FILTER uri %]&amp;grouprestrict=1">Show
     me which users</a> - <label><input type="checkbox" name="removeusers">Remove
     all users from this group for me.</label></p>
@@ -74,7 +74,7 @@
      visible only to this group. You cannot delete this group while any
      [%+ terms.bugs %] are using it.</b>
 
-    <br><a href="buglist.cgi?field0-0-0=bug_group&amp;type0-0-0=equals&amp;value0-0-0=
+    <br><a href="[% basepath FILTER none %]buglist.cgi?field0-0-0=bug_group&amp;type0-0-0=equals&amp;value0-0-0=
                  [%- group.name FILTER uri %]">Show me
     which [% terms.bugs %]</a> -
     <label><input type="checkbox" name="removebugs">Remove
           [% SET hidden = 1 %]
         [% END %]
 
-        <li><a href="editproducts.cgi?action=editgroupcontrols&amp;product=
+        <li><a href="[% basepath FILTER none %]editproducts.cgi?action=editgroupcontrols&amp;product=
                     [%- data.product.name FILTER uri %]">
           [%- data.product.name FILTER html %]</a>
           ([% active.join(', ') FILTER html %])
     <p><b>This group restricts who can make changes to flags of certain types.
     You cannot delete this group while there are flag types using it.</b>
 
-    <br><a href="editflagtypes.cgi?action=list&amp;group=
+    <br><a href="[% basepath FILTER none %]editflagtypes.cgi?action=list&amp;group=
                  [%- group.id FILTER uri %]">Show
     me which types</a> -
     <label><input type="checkbox" name="removeflags">Remove all
   </p>
 </form>
 
-Go back to the <a href="editgroups.cgi">group list</a>.
+Go back to the <a href="[% basepath FILTER none %]editgroups.cgi">group list</a>.
 
 [% PROCESS global/footer.html.tmpl %]
index 0f764c841b79712a3e17e3ada826acf19a4c8d22..addb25fc6400e2d5e97c9cae9df338e374cdd531 100644 (file)
@@ -49,7 +49,7 @@
   javascript_urls = [ "js/field.js" ]
 %]
 
-<form method="post" action="editgroups.cgi">
+<form method="post" action="[% basepath FILTER none %]editgroups.cgi">
   <input type="hidden" name="action" value="postchanges">
   <input type="hidden" name="group_id" value="[% group.id FILTER html %]">
 
   2.16.</p>
 
 <table><tr><td>
-<form method="post" action="editgroups.cgi">
+<form method="post" action="[% basepath FILTER none %]editgroups.cgi">
   <fieldset>
     <legend>Remove all explicit memberships from users whose login names
       match the following regular expression:</legend>
 </form>
 </td></tr></table>
 
-<p>Back to the <a href="editgroups.cgi">group list</a>.</p>
+<p>Back to the <a href="[% basepath FILTER none %]editgroups.cgi">group list</a>.</p>
 
 [% PROCESS global/footer.html.tmpl %]
 
index e3e96ee871b7762223f5c35decf331ca52fcc198..e3ed0773274d36e3cdbefbe7f6963fb9d0523de3 100644 (file)
   overrides = overrides
 %]
 
-<p><a href="editgroups.cgi?action=add">Add Group</a></p>
+<p><a href="[% basepath FILTER none %]editgroups.cgi?action=add">Add Group</a></p>
 
 <p>
   <b>Name</b> is what is used with the B<!-- blah -->ugzilla->user->in_group()
index 7fd93439a8c38662b57f54c18597f648edeb6523..16a0a0446378603e1c2c5b8c8ac796c2516666b3 100644 (file)
@@ -40,7 +40,7 @@
   the <code>[% keyword.name FILTER html %]</code> keyword?
 </p>
 
-<form method="post" action="editkeywords.cgi">
+<form method="post" action="[% basepath FILTER none %]editkeywords.cgi">
   <input type="hidden" name="id" value="[% keyword.id FILTER html %]">
   <input type="hidden" name="action" value="delete">
   <input type="hidden" name="token" value="[% token FILTER html %]">
@@ -48,6 +48,6 @@
          value="Yes, really delete the keyword">
 </form>
 
-<p><a href="editkeywords.cgi">Edit other keywords</a>.</p>
+<p><a href="[% basepath FILTER none %]editkeywords.cgi">Edit other keywords</a>.</p>
 
 [% PROCESS global/footer.html.tmpl %]
index 02bf8421872ee4607443da9f60006132e75bb303..b774a00f1d8c06031411aa7bd532c570ef8985d5 100644 (file)
@@ -28,7 +28,7 @@
   subheader = "This page allows you to add a new keyword."
 %]
 
-<form method="post" action="editkeywords.cgi">
+<form method="post" action="[% basepath FILTER none %]editkeywords.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
     <tr>
       <th align="right">Name:</th>
@@ -53,6 +53,6 @@
   <input type="hidden" name="token" value="[% token FILTER html %]">
 </form>
 
-<p><a href="editkeywords.cgi">Edit other keywords</a>.</p>
+<p><a href="[% basepath FILTER none %]editkeywords.cgi">Edit other keywords</a>.</p>
 
 [% PROCESS global/footer.html.tmpl %]
index d07bf908d22324361e3663a211a3f0659193a9cf..feae139e345eb788836a75a1c9dd1e3d0d659409 100644 (file)
@@ -30,7 +30,7 @@
   title = "Edit keyword"
 %]
 
-<form method="post" action="editkeywords.cgi">
+<form method="post" action="[% basepath FILTER none %]editkeywords.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
     <tr>
       <th align="right"><label for="name">Name:</label></th>
@@ -58,7 +58,7 @@
       <th align="right">[% terms.Bugs %]:</th>
       <td>
         [% IF keyword.bug_count > 0 %]
-          <a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]">
+          <a href="[% basepath FILTER none %]buglist.cgi?keywords=[% keyword.name FILTER uri %]">
             [% keyword.bug_count FILTER html %]</a>
         [% ELSE %]
           none
@@ -73,6 +73,6 @@
   <input type="hidden" name="token" value="[% token FILTER html %]">
 </form>
 
-<p><a href="editkeywords.cgi">Edit other keywords</a>.</p>
+<p><a href="[% basepath FILTER none %]editkeywords.cgi">Edit other keywords</a>.</p>
 
 [% PROCESS global/footer.html.tmpl %]
index 9d920036eb1a964c0a47bafdfee641ec2e474c86..15eb8a11b3d718f0fbdf43ea30e4f0a35e60471a 100644 (file)
@@ -56,6 +56,6 @@
     footer  = footer_row
 %]
 
-<p><a href="editkeywords.cgi?action=add">Add a new keyword</a></p>
+<p><a href="[% basepath FILTER none %]editkeywords.cgi?action=add">Add a new keyword</a></p>
 
 [% PROCESS global/footer.html.tmpl %]
index 1d47610df1a8c8a7fc1ca4e623f8cfa5a1edaa1c..679600b4dc2ddeb80ab0a92c75bb7d18e3a23a6f 100644 (file)
@@ -52,7 +52,7 @@
 [% IF milestone.bug_count %]
   <a title="List of [% terms.bugs %] targetted at milestone '
            [% milestone.name FILTER html %]'"
-     href="buglist.cgi?target_milestone=[% milestone.name FILTER uri %]&amp;product=
+     href="[% basepath FILTER none %]buglist.cgi?target_milestone=[% milestone.name FILTER uri %]&amp;product=
           [%- product.name FILTER uri %]">
           [% milestone.bug_count FILTER none %]</a>
 [% ELSE %]
@@ -85,7 +85,7 @@
 
 <p>Do you really want to delete this milestone?<p>
 
-<form method="post" action="editmilestones.cgi">
+<form method="post" action="[% basepath FILTER none %]editmilestones.cgi">
   <input type="submit" id="delete" value="Yes, delete">
   <input type="hidden" name="action" value="delete">
   <input type="hidden" name="product" value="[% product.name FILTER html %]">
index 740ef2e6731672761f3b92e4165ab6547acbc104..8b2a38142d58416ae44ce5e1b078b4c542b5ecc5 100644 (file)
@@ -32,7 +32,7 @@
   onload = "document.forms['f'].milestone.focus()"
 %]
 
-<form name="f" method="post" action="editmilestones.cgi">
+<form name="f" method="post" action="[% basepath FILTER none %]editmilestones.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
     <tr>
       <th align="right"><label for="milestone">Milestone:</label></th>
index ef4b7fcc44b0637a12dbc54056dd01677c9e484d..c11d68347def0b339056d9dfda93c5e54e037fa2 100644 (file)
@@ -34,7 +34,7 @@
   onload = "document.forms['f'].milestone.select()"
 %]
 
-<form name="f" method="post" action="editmilestones.cgi">
+<form name="f" method="post" action="[% basepath FILTER none %]editmilestones.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     <tr>
index f35283d6fee6cf6db34a83f5240e243ce23bea9c..4d73f521d77fc363464cbc31de03561752ca0627 100644 (file)
@@ -39,7 +39,7 @@
 
 [% UNLESS no_add_milestone_link %]
   <a title="Add a milestone to product '[% product.name FILTER html %]'"
-     href="editmilestones.cgi?action=add&amp;product=
+     href="[% basepath FILTER none %]editmilestones.cgi?action=add&amp;product=
           [%- product.name FILTER uri %]">Add</a> a milestone.
 [% END %]
 
@@ -47,7 +47,7 @@
   Edit milestone <a
   title="Edit Milestone '[% milestone.name FILTER html %]' of product '
          [%- product.name FILTER html %]'"
-  href="editmilestones.cgi?action=edit&amp;product=
+  href="[% basepath FILTER none %]editmilestones.cgi?action=edit&amp;product=
         [%- product.name FILTER uri %]&amp;milestone=
         [%- milestone.name FILTER uri %]">
         '[% milestone.name FILTER html %]'</a>.
 
 [% UNLESS no_edit_other_milestones_link %]
   Edit other milestones of product <a
-  href="editmilestones.cgi?product=
+  href="[% basepath FILTER none %]editmilestones.cgi?product=
         [%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
 
 [% END %]
 
   Edit product <a
-  href="editproducts.cgi?action=edit&amp;product=
+  href="[% basepath FILTER none %]editproducts.cgi?action=edit&amp;product=
         [%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
 
 </p>
index 4a79b9c31c773c7f24e0087d55f5c91367dc24a8..00f85ae224718de5125dfcb8930a40d0f6d70cba 100644 (file)
 
 [% IF ! showbugcounts %]
 
-  <p><a href="editmilestones.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
+  <p><a href="[% basepath FILTER none %]editmilestones.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 
 [% END %]
index ab052377b7e3218c01473487ae359f22b3f80e9d..a12a96f063abf4f78ae89d2688ea8ff49463a0d7 100644 (file)
@@ -63,7 +63,7 @@
 %]
 
 [% IF !showbugcounts %]
-  <p><a href="editmilestones.cgi?showbugcounts=1">
+  <p><a href="[% basepath FILTER none %]editmilestones.cgi?showbugcounts=1">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 [% END %]
 
index 6e8bc22574e44908a3408b59e00c558b87caaaf3..92e5826a2b738075552999f34934e819ea1db15c 100644 (file)
@@ -66,7 +66,7 @@
       <table id="menu">
         <tr>
           <td class="index">
-            <a href="editparams.cgi?section=index" title="Show all parameters">Index</a>
+            <a href="[% basepath FILTER none %]editparams.cgi?section=index" title="Show all parameters">Index</a>
           </td>
         </tr>
         [% FOREACH panel = panels %]
@@ -78,7 +78,7 @@
               </td>
             [% ELSE %]
               <td>
-                <a href="editparams.cgi?section=[% panel.name FILTER uri %]"
+                <a href="[% basepath FILTER none %]editparams.cgi?section=[% panel.name FILTER uri %]"
                    title="[% panel.desc FILTER html %]">[% panel.title FILTER html %]</a>
               </td>
             [% END %]
         </p>
 
         [%# CONTENT PANEL %]
-        <form method="post" action="editparams.cgi">
+        <form method="post" action="[% basepath FILTER none %]editparams.cgi">
           [% PROCESS admin/params/common.html.tmpl panel = current_panel %]
           <input type="hidden" name="section" value="[% current_panel.name FILTER html %]">
           <input type="hidden" name="action" value="save">
index 3ded64710624fe6f063cefd9ee541cdf91de1787..830ba50956bceab86e50c12b410b2443cc68305d 100644 (file)
@@ -34,7 +34,7 @@
       [% FOREACH param = panel.param_list.sort('name') %]
         <tr>
           <td>
-            <a href="editparams.cgi?section=
+            <a href="[% basepath FILTER none %]editparams.cgi?section=
               [%- panel.name FILTER uri %]#[% param.name FILTER uri %]_desc">
               [% param.name FILTER html %]</a>
           </td>
index 1bd04a5e1dcc07b93d4640f796a914b1f04322fa..8b885332b5bb8c9b484f570c9c837861a0b6cea0 100644 (file)
@@ -58,7 +58,7 @@
   <tr>
     <td valign="top">Product:</td>
     <td valign="top">
-      <a href="editproducts.cgi?product=[% product.name FILTER uri %]">
+      <a href="[% basepath FILTER none %]editproducts.cgi?product=[% product.name FILTER uri %]">
         [% product.name FILTER html %]
       </a>
     </td>
   <tr>
     <td>
       [% IF product.components.size > 0 %]
-        <a href="editcomponents.cgi?product=[% product.name FILTER uri %]"
+        <a href="[% basepath FILTER none %]editcomponents.cgi?product=[% product.name FILTER uri %]"
            title="Edit components for product '[% product.name FILTER html %]'">
           Components:
         </a>
   <tr>
     <td>
       [% IF product.versions.size > 0 %]
-        <a href="editversions.cgi?product=[%- product.name FILTER uri %]">
+        <a href="[% basepath FILTER none %]editversions.cgi?product=[%- product.name FILTER uri %]">
           Versions:
         </a>
       [% ELSE %]
     <tr>
       <td valign="top">
         [% IF product.milestones.size > 0 %]
-          <a href="editmilestones.cgi?product=[%- product.name FILTER uri %]">
+          <a href="[% basepath FILTER none %]editmilestones.cgi?product=[%- product.name FILTER uri %]">
             Milestones:
           </a>
         [% ELSE %]
     <td>[% terms.Bugs %]:</td>
     <td>
       [% IF product.bug_count %]
-        <a href="buglist.cgi?product=[% product.name FILTER uri %]"
+        <a href="[% basepath FILTER none %]buglist.cgi?product=[% product.name FILTER uri %]"
            title="List of [% terms.bugs %] for product '[% product.name FILTER html %]'">
           [% product.bug_count FILTER html %]
         </a>
 
   <p>Do you really want to delete this product?</p>
 
-  <form method="post" action="editproducts.cgi">
+  <form method="post" action="[% basepath FILTER none %]editproducts.cgi">
     <input type="checkbox" id="delete_series" name="delete_series" value=1>
     <label for="delete_series">
       Delete all related series (you can also delete them later, by visiting
-      the <a href="chart.cgi?category=[% product.name FILTER html %]">New Charts page</a>.)
+      the <a href="[% basepath FILTER none %]chart.cgi?category=[% product.name FILTER html %]">New Charts page</a>.)
     </label><p>
     <input type="submit" id="delete" value="Yes, delete">
     <input type="hidden" name="action" value="delete">
index e7046dbe8994a6f7554289d9e00964c4f194933a..9d590dbfc2e665a7678037c1f68a98b0dcd0bdb7 100644 (file)
@@ -36,7 +36,7 @@
   product.allows_unconfirmed = 1
 %]
 
-<form method="post" action="editproducts.cgi">
+<form method="post" action="[% basepath FILTER none %]editproducts.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     [% PROCESS "admin/products/edit-common.html.tmpl" %]
index ad928b716d97598efe21610c7c67e534406a4cdf..85a777b52e27be3b35e6262db25eec1358b6d28e 100644 (file)
                     ${constants.CONTROLMAPMANDATORY} => 'Mandatory'}
  %]
 
-<form method="post" action="editproducts.cgi">
+<form method="post" action="[% basepath FILTER none %]editproducts.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     [% PROCESS "admin/products/edit-common.html.tmpl" %]
 
     <tr>
       <th align="right" valign="top">
-        <a href="editcomponents.cgi?product=[% product.name FILTER uri %]">
+        <a href="[% basepath FILTER none %]editcomponents.cgi?product=[% product.name FILTER uri %]">
         Edit components:
         </a>
       </th>
@@ -67,7 +67,7 @@
     </tr>
     <tr>
       <th align="right" valign="top">
-        <a href="editversions.cgi?product=[% product.name FILTER uri %]">Edit
+        <a href="[% basepath FILTER none %]editversions.cgi?product=[% product.name FILTER uri %]">Edit
 versions:</a>
       </th>
       <td>
@@ -84,7 +84,7 @@ versions:</a>
     [% IF Param('usetargetmilestone') %]
       <tr>
         <th align="right" valign="top">
-          <a href="editmilestones.cgi?product=[% product.name FILTER uri %]">
+          <a href="[% basepath FILTER none %]editmilestones.cgi?product=[% product.name FILTER uri %]">
           Edit milestones:</a>
         </th>
         <td>
@@ -101,7 +101,7 @@ versions:</a>
     [% END %]
     <tr>
       <th align="right" valign="top">
-        <a href="editproducts.cgi?action=editgroupcontrols&product=
+        <a href="[% basepath FILTER none %]editproducts.cgi?action=editgroupcontrols&product=
           [%- product.name FILTER uri %]">
           Edit Group Access Controls:
         </a>
@@ -130,7 +130,7 @@ versions:</a>
     </tr>
     <tr>
       <th align="right">[% terms.Bugs %]:</th>
-      <td><a href="buglist.cgi?product=[% product.name FILTER uri %]">
+      <td><a href="[% basepath FILTER none %]buglist.cgi?product=[% product.name FILTER uri %]">
             [% product.bug_count FILTER html %]</a></td>
     </tr>
   </table>
index 542a526df0c1a0f5e783eaa6701a3f055f4a2211..58da9491cacbdb7b2bc7296fccc4c413809e1c74 100644 (file)
 <p>
 [% UNLESS no_add_product_link || !user.in_group("editcomponents") %]
   <a title="Add a product"
-     href="editproducts.cgi?action=add">Add</a> a product[% -%]
+     href="[% basepath FILTER none %]editproducts.cgi?action=add">Add</a> 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 %]
     (<a title="Add a product to classification '
                [%- classification.name FILTER html %]'"
-         href="editproducts.cgi?action=add
+         href="[% basepath FILTER none %]editproducts.cgi?action=add
                [%- classification_url_part %]">to
      classification '[% classification.name FILTER html %]'</a>)
   [% END %].
@@ -61,7 +61,7 @@
   Edit product <a
   title="Edit Product '[% product.name FILTER html %]'
          [%- classification_text %]"
-  href="editproducts.cgi?action=edit&amp;product=[% product.name FILTER uri %]">
+  href="[% basepath FILTER none %]editproducts.cgi?action=edit&amp;product=[% product.name FILTER uri %]">
         '[% product.name FILTER html %]'</a>.
 [% END %]
 
@@ -69,7 +69,7 @@
 [%# Edit other products (in a classification if specified): %]
 [% UNLESS no_edit_other_products_link %]
   Edit <a
-  href="editproducts.cgi?
+  href="[% basepath FILTER none %]editproducts.cgi?
         [%- classification_url_part_start FILTER none %]">other products
           [% classification_text %]</a>.
 
@@ -77,7 +77,7 @@
 
 [% IF Param('useclassification') && classification
       && user.in_group('editclassifications') %]
-  Edit classification <a href="editclassifications.cgi?action=edit
+  Edit classification <a href="[% basepath FILTER none %]editclassifications.cgi?action=edit
     [%- classification_url_part %]">'
     [%- classification.name FILTER html %]'</a>.
 
index 05abc5fdb0fa3658997ba92a618371480e40329d..778df3a25bc10ce935ac55458681460ba3221c99 100644 (file)
@@ -37,7 +37,7 @@ which the group is newly mandatory and will be added.
 group '[% group.name FILTER html %]' impacts [% group.count %]&nbsp;
 [% terms.bugs %] for which the group is no longer applicable and will
 be removed.[% END %]
-<form action="editproducts.cgi" method="post">
+<form action="[% basepath FILTER none %]editproducts.cgi" method="post">
 
   [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %]
 
index 027c80172af8413a9ddf7ce5f211b1d98175a172..9d3de59514cd782dcc9c841c802cc2158a4e65db 100644 (file)
@@ -27,7 +27,7 @@
    title = title
 %]
 
-<form method="post" action="editproducts.cgi">
+<form method="post" action="[% basepath FILTER none %]editproducts.cgi">
   <input type="hidden" name="action" value="updategroupcontrols">
   <input type="hidden" name="product" value="[% product.name FILTER html %]">
   <input type="hidden" name="token" value="[% token FILTER html %]">
index dceeefed69a2e4f75ec5c08e244efc48579cb9df..c211c65ef38d678667816c67f3905d21b0b112db 100644 (file)
@@ -83,7 +83,7 @@
 
 [% IF !showbugcounts %]
 
-  <p><a href="editproducts.cgi?showbugcounts=1[% classification_url_part %]">
+  <p><a href="[% basepath FILTER none %]editproducts.cgi?showbugcounts=1[% classification_url_part %]">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 
 [% END %]
index 5ddea66756d104b656f99a937c6f70ed0c07503c..98d1d7b2763daacec9912b19eb98ac7a3a43c846 100644 (file)
@@ -44,7 +44,7 @@
 [% IF changes.name.defined %]
   <p>
   Updated product name from '[% changes.name.0 FILTER html %]' to
-  '<a href="editproducts.cgi?action=edit&amp;product=
+  '<a href="[% basepath FILTER none %]editproducts.cgi?action=edit&amp;product=
   [%- product.name FILTER uri %]">[% product.name FILTER html %]</a>'.
   </p>
 [% END %]
@@ -85,7 +85,7 @@
     The product no longer allows the
     [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status.
     Note that any
-    <a href="buglist.cgi?product=
+    <a href="[% basepath FILTER none %]buglist.cgi?product=
             [%- product.name FILTER uri %]&amp;bug_status=UNCONFIRMED">
     [%- terms.bugs %] that currently have the
     [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status</a>
index 88264d820f949e7944a7583518bd3d30e5f2f3b6..24b325feaff0a2e8630005b907d40b47ee7273a2 100644 (file)
@@ -34,7 +34,7 @@
     [% errortext FILTER html %]: [% INCLUDE bug_list badbugs = badbugs %]
 
   [% ELSIF san_tag == "bug_check_repair" %]
-    <a href="sanitycheck.cgi?[% param FILTER uri %]=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?[% param FILTER uri %]=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">[% text FILTER html %]</a>.
 
   [% ELSIF san_tag == "bug_check_creation_date" %]
     [% END %]
 
   [% ELSIF san_tag == "cross_check_attachment_has_references" %]
-    <a href="sanitycheck.cgi?remove_invalid_attach_references=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?remove_invalid_attach_references=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Remove
     invalid references to non existent attachments.</a>
 
   [% ELSIF san_tag == "cross_check_bug_has_references" %]
-    <a href="sanitycheck.cgi?remove_invalid_bug_references=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?remove_invalid_bug_references=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Remove
     invalid references to non existent [% terms.bugs %].</a>
 
     [%+ PROCESS bug_link bug_id = bug_id %].
 
   [% ELSIF san_tag == "flag_fix" %]
-    <a href="sanitycheck.cgi?remove_invalid_flags=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?remove_invalid_flags=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Click
     here to delete invalid flags</a>
 
     half an hour: [% INCLUDE bug_list badbugs = badbugs %]
 
   [% ELSIF san_tag == "unsent_bugmail_fix" %]
-    <a href="sanitycheck.cgi?rescanallBugMail=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?rescanallBugMail=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Send these mails</a>.
 
   [% ELSIF san_tag == "whines_obsolete_target_deletion_start" %]
     [% END %]
 
   [% ELSIF san_tag == "whines_obsolete_target_fix" %]
-    <a href="sanitycheck.cgi?remove_old_whine_targets=1&amp;token=
+    <a href="[% basepath FILTER none %]sanitycheck.cgi?remove_old_whine_targets=1&amp;token=
        [%- issue_hash_token(['sanitycheck']) FILTER uri %]">Click here to
     remove old users/groups</a>
 
      # 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. %]
-    <a href="show_bug.cgi?id=[% bug_id FILTER uri %]">[% bug_id FILTER html %]</a>
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug_id FILTER uri %]">[% bug_id FILTER html %]</a>
     [% ", " IF !loop.last %]
   [% END %]
-  (<a href="buglist.cgi?bug_id=[% badbugs.join(",") FILTER uri %]">as [% terms.bug %] list</a>).
+  (<a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% badbugs.join(",") FILTER uri %]">as [% terms.bug %] list</a>).
 [% END %]
 
 [% BLOCK bug_link %]
-  <a href="show_bug.cgi?id=[% bug_id FILTER uri %]">[% terms.bug %] [%+ bug_id FILTER html %]</a>
+  <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug_id FILTER uri %]">[% terms.bug %] [%+ bug_id FILTER html %]</a>
 [% END %]
index 23c8fdbce2873cab99008dd9618fb5c985af92ad..d7949b63c13bb8aac48321f16b05de87228b21f4 100644 (file)
@@ -47,7 +47,7 @@ page, and the Default Value will automatically apply to everyone.
 <hr>
 
 [% IF settings.size %]
-    <form name="adminsettingform" method="post" action="editsettings.cgi">
+    <form name="adminsettingform" method="post" action="[% basepath FILTER none %]editsettings.cgi">
       <table border="1" cellpadding="4">
       <tr>
         <th>Preference Text</th>
index 24b934732c8eda60e2b6e49a804dd02beb455732..cbfb81f23251e275d82d294eb45f1b4570cdf46c 100644 (file)
@@ -41,7 +41,7 @@
   Your actions may be logged more carefully than normal.
 </p>
 
-<form action="relogin.cgi" method="POST">
+<form action="[% basepath FILTER none %]relogin.cgi" method="POST">
   <p>
     To begin,
     [% IF Param('usemenuforusers') %]
index f96688b2c47b04efe682537205cfbfbc92523078..36d0f796f13feeeb91b46270b1daeae47b7f62f1 100644 (file)
               [% link_uri = link_uri.replace("%%$m%%", replacement_value) %]
             [% END %]
           [% END %]
-          <a href="[% link_uri %]">
+          <a href="[% basepath FILTER none %][% link_uri %]">
         [% END %]
 
         [% IF content_use_field && field_descs.exists(row.${c.name}) %]
index 22db6a546c196c65206c7503e18e504b1690405f..4c07040dadb9ad5380109d8031ad2dfc8b5fc026 100644 (file)
         [% IF attachments %]
           <li>
             [% otheruser.login FILTER html %]
-            <a href="buglist.cgi?field0-0-0=attachments.submitter&type0-0-0=equals&value0-0-0=
+            <a href="[% basepath FILTER none %]buglist.cgi?field0-0-0=attachments.submitter&type0-0-0=equals&value0-0-0=
                [%- otheruser.login FILTER uri %]">has submitted
             [% IF attachments == 1 %]
               one attachment
         [% IF reporter %]
           <li>
             [% otheruser.login FILTER html %]
-            <a href="buglist.cgi?emailreporter1=1&amp;emailtype1=exact&amp;email1=
+            <a href="[% basepath FILTER none %]buglist.cgi?emailreporter1=1&amp;emailtype1=exact&amp;email1=
                [%- otheruser.login FILTER uri %]">has reported
             [% IF reporter == 1 %]
               one [% terms.bug %]
         [% IF flags.setter %]
           <li>
             [% otheruser.login FILTER html %] has
-            <a href="buglist.cgi?field0-0-0=setters.login_name&amp;type0-0-0=equals&amp;value0-0-0=
+            <a href="[% basepath FILTER none %]buglist.cgi?field0-0-0=setters.login_name&amp;type0-0-0=equals&amp;value0-0-0=
                [%- otheruser.login FILTER uri %]">set
             or requested
             [% IF flags.setter == 1 %]
         [% IF longdescs %]
           <li>
             [% otheruser.login FILTER html %] has
-            <a href="buglist.cgi?emaillongdesc1=1&amp;emailtype1=exact&amp;email1=
+            <a href="[% basepath FILTER none %]buglist.cgi?emaillongdesc1=1&amp;emailtype1=exact&amp;email1=
                [%- otheruser.login FILTER uri %]">commented
             [% IF longdescs == 1 %]
               once on [% terms.abug %]
         [% IF assignee_or_qa %]
           <li>
             [% otheruser.login FILTER html %]
-            <a href="buglist.cgi?emailassigned_to1=1&amp;emailqa_contact1=1&amp;emailtype1=exact&amp;email1=
+            <a href="[% basepath FILTER none %]buglist.cgi?emailassigned_to1=1&amp;emailqa_contact1=1&amp;emailtype1=exact&amp;email1=
                [%- otheruser.login FILTER uri %]">is
             the assignee or the QA contact of
             [% IF assignee_or_qa == 1 %]
         [% IF cc %]
           <li>
             [% otheruser.login FILTER html %]
-            <a href="buglist.cgi?emailcc1=1&amp;emailtype1=exact&amp;email1=
+            <a href="[% basepath FILTER none %]buglist.cgi?emailcc1=1&amp;emailtype1=exact&amp;email1=
                [%- otheruser.login FILTER uri %]">is
             on the CC list of
             [% IF cc == 1 %]
         [% IF flags.requestee %]
           <li>
             [% otheruser.login FILTER html %] has been
-            <a href="buglist.cgi?field0-0-0=requestees.login_name&amp;type0-0-0=equals&amp;value0-0-0=
+            <a href="[% basepath FILTER none %]buglist.cgi?field0-0-0=requestees.login_name&amp;type0-0-0=equals&amp;value0-0-0=
                [%- otheruser.login FILTER uri %]">asked
             to set
             [% IF flags.requestee == 1 %]
       </p>
       <p>Do you really want to delete this user account?</p>
 
-      <form method="post" action="editusers.cgi">
+      <form method="post" action="[% basepath FILTER none %]editusers.cgi">
         <p>
           <input type="submit" id="delete" value="Yes, delete">
           <input type="hidden" name="action" value="delete">
   [% END %]
 [% END %]
 
-  <a href="editusers.cgi?action=edit&amp;userid=[% otheruser.id %]
+  <a href="[% basepath FILTER none %]editusers.cgi?action=edit&amp;userid=[% otheruser.id %]
            [% INCLUDE listselectionurlparams %]">edit the user</a>,
   go
- <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
+ <a href="[% basepath FILTER none %]editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
   to the user list</a>,
   [% IF editusers %]
-    <a href="editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add
+    <a href="[% basepath FILTER none %]editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add
     a new user</a>,
   [% END %]
-  or <a href="editusers.cgi">find other users</a>.
+  or <a href="[% basepath FILTER none %]editusers.cgi">find other users</a>.
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index fa1c00097237248113794eeda93f3da3e47d38b5..871f59c2eb678e4cb05dc4ea6fd404c2d364495e 100644 (file)
@@ -30,7 +30,7 @@
   listselectionvalues = listselectionvalues
 %]
 
-<form name="f" method="post" action="editusers.cgi">
+<form name="f" method="post" action="[% basepath FILTER none %]editusers.cgi">
 <table class="main">
   [% PROCESS admin/users/userdata.html.tmpl
     editform  = 0
 </form>
 
 <p>
-  You can also <a href="editusers.cgi">find a user</a>
+  You can also <a href="[% basepath FILTER none %]editusers.cgi">find a user</a>
   [% IF listselectionvalues %],
     or
-    <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">go
+    <a href="[% basepath FILTER none %]editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">go
     back to the user list</a>
   [% END %].
 </p>
index de98268007a50b1759cc3976027f236e8c705629..689e870e65c6c64a7121405a065f1b1bbfa7f5fe 100644 (file)
@@ -65,7 +65,7 @@ $(function() {
   listselectionvalues = listselectionvalues
 %]
 
-<form method="post" action="editusers.cgi">
+<form method="post" action="[% basepath FILTER none %]editusers.cgi">
 <table class="main">
   [% PROCESS admin/users/userdata.html.tmpl
     editform     = 1
@@ -145,7 +145,7 @@ $(function() {
           [% can_edit_groups = user.in_group('creategroups') %]
           [% FOREACH group = otheruser.groups_owned %]
             [% IF can_edit_groups %]
-              <a href="[% urlbase FILTER none %]editgroups.cgi?action=changeform&amp;group=[% group.id FILTER none %]">
+              <a href="[% basepath FILTER none %]editgroups.cgi?action=changeform&amp;group=[% group.id FILTER none %]">
             [% END %]
             [% group.name FILTER html %]
             [% '</a>' IF can_edit_groups %]<br>
@@ -176,10 +176,10 @@ $(function() {
   [% INCLUDE listselectionhiddenfields %]
 
   [% IF editusers %]
-    , <a href="editusers.cgi?action=activity&amp;userid=[% otheruser.id %]"
+    , <a href="[% basepath FILTER none %]editusers.cgi?action=activity&amp;userid=[% otheruser.id %]"
      title="View Account History for '
      [%- otheruser.login FILTER html %]'">View Account History</a>
-    or <a href="editusers.cgi?action=admin_activity&amp;userid=[% otheruser.id %]"
+    or <a href="[% basepath FILTER none %]editusers.cgi?action=admin_activity&amp;userid=[% otheruser.id %]"
           title="View Account History for '
           [%- otheruser.login FILTER html %]'">View Admin History</a>
   [% END %]
@@ -200,7 +200,7 @@ $(function() {
 [% END %]
 
 [% IF Param('allowuserdeletion') && editusers %]
-  <form method="post" action="editusers.cgi">
+  <form method="post" action="[% basepath FILTER none %]editusers.cgi">
   <p>
     <input type="submit" id="delete" value="Delete User">
     <input type="hidden" name="action" value="del">
@@ -213,20 +213,20 @@ $(function() {
 <p>
   You can also
   [% IF editusers %]
-    <a href="editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add
+    <a href="[% basepath FILTER none %]editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add
     a new user</a>
     [% IF listselectionvalues %],
     [% END %]
   [% END %]
   [% IF listselectionvalues.matchtype != 'exact' %]
     go
-    <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
+    <a href="[% basepath FILTER none %]editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
     to the user list</a>,
   [% END %]
   [% IF editusers OR listselectionvalues %]
     or
   [% END %]
-  <a href="editusers.cgi">find other users</a>.
+  <a href="[% basepath FILTER none %]editusers.cgi">find other users</a>.
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index db425b40dcba8735cc0d51551b9ac4dd77252fdb..b9455b02a3ef04116ae99572a1c2e0daa5daed4e 100644 (file)
 
 <p>
   If you do not wish to modify a user account at this time, you can
-  <a href="editusers.cgi">find other users</a>
+  <a href="[% basepath FILTER none %]editusers.cgi">find other users</a>
   [% IF editusers %]
     or
-    <a href="editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add
+    <a href="[% basepath FILTER none %]editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add
     a new user</a>
   [% END %].
 </p>
index 1e11f800079129188d3ee6e9d3cde30c7ad88bea..e5ef5bc106b5aca248a39109793fff4413084b38 100644 (file)
@@ -35,7 +35,7 @@
       <tr>
         <td>
           [% IF user.in_group("editcomponents", component.product_id) %]
-            <a href="editcomponents.cgi?action=edit&amp;product=
+            <a href="[% basepath FILTER none %]editcomponents.cgi?action=edit&amp;product=
                      [% item.product.name FILTER uri %]&amp;component=
                      [% component.name FILTER uri %]">
           [% END %]
index a6994ac3f1f12648ea152c0c70d1c2498d77109b..4e115603859dbd758b3b140e6e9749c507101deb 100644 (file)
@@ -34,7 +34,7 @@
   listselectionvalues = listselectionvalues
 %]
 
-<form name="f" method="get" action="editusers.cgi">
+<form name="f" method="get" action="[% basepath FILTER none %]editusers.cgi">
 <input type="hidden" name="action" value="list">
 <p><label for="matchvalue">List users with</label>
 <select id="matchvalue" name="matchvalue">
 
 [% IF editusers %]
   <p>
-    You can also <a href="editusers.cgi?action=add">add a new user</a>
+    You can also <a href="[% basepath FILTER none %]editusers.cgi?action=add">add a new user</a>
     [%- IF listselectionvalues %],
       or
-      <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">show
+      <a href="[% basepath FILTER none %]editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">show
       the user list again</a>
     [%- END %].
   </p>
index 32cc43f10547e356b8127626881d90fa13d89a69..6fb6007d77ed544bfaafddf06cb2820e4de789b3 100644 (file)
@@ -29,7 +29,7 @@
       [% IF editform %]
         [% IF !otheruser.in_group('bz_sudo_protect') %]
           <br>
-          <a href="relogin.cgi?action=prepare-sudo&amp;target_login=
+          <a href="[% basepath FILTER none %]relogin.cgi?action=prepare-sudo&amp;target_login=
           [%- otheruser.login FILTER uri %]">Impersonate this user</a>
         [% END %]
       [% END %]
index 64d931cb1fb6ba055765da7a5e711f14e84f38cc..77fdcb2bfd90cc151af783b1553636a0928a090d 100644 (file)
@@ -52,7 +52,7 @@
 [% IF version.bug_count %]
   <a title="List of [% terms.bugs %] targetted at version '
            [%- version.name FILTER html %]'"
-     href="buglist.cgi?version=[% version.name FILTER uri %]&amp;product=
+     href="[% basepath FILTER none %]buglist.cgi?version=[% version.name FILTER uri %]&amp;product=
           [%- product.name FILTER uri %]">
           [%- version.bug_count FILTER none %]</a>
 [% ELSE %]
@@ -86,7 +86,7 @@
 
   <p>Do you really want to delete this version?</p>
 
-  <form method="post" action="editversions.cgi">
+  <form method="post" action="[% basepath FILTER none %]editversions.cgi">
     <input type="submit" id="delete" value="Yes, delete">
     <input type="hidden" name="action" value="delete">
     <input type="hidden" name="product" value="[% product.name FILTER html %]">
index 3529c3238dda05b939cd79be80a18dfca4647451..4f32f84608b4cacba2666627315cc25b932df8d2 100644 (file)
@@ -31,7 +31,7 @@
   subheader = subheader
 %]
 
-<form method="post" action="editversions.cgi">
+<form method="post" action="[% basepath FILTER none %]editversions.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
     <tr>
       <th align="right"><label for="version">Version:</label></th>
index 1fc1cc52a1d9e8a12fa5084872f031d48f5090ef..495d77146823b4e45e6bfeee8f4b12920088509e 100644 (file)
@@ -33,7 +33,7 @@
   title = title
 %]
 
-<form method="post" action="editversions.cgi">
+<form method="post" action="[% basepath FILTER none %]editversions.cgi">
   <table border="0" cellpadding="4" cellspacing="0">
 
     <tr>
index 6c94b9ce1ae2bd3a4e3d185eb93fc8b49a0c6f11..106de43f70c89da8fdd89f11d008216f331107dc 100644 (file)
@@ -37,7 +37,7 @@
 
 [% UNLESS no_add_version_link %]
   <a title="Add a version to product '[% product.name FILTER html %]'"
-     href="editversions.cgi?action=add&amp;product=
+     href="[% basepath FILTER none %]editversions.cgi?action=add&amp;product=
           [%- product.name FILTER uri %]">Add</a> a version.
 [% END %]
 
@@ -45,7 +45,7 @@
   Edit version <a
   title="Edit Version '[% version.name FILTER html %]' of product '
          [%- product.name FILTER html %]'"
-  href="editversions.cgi?action=edit&amp;product=
+  href="[% basepath FILTER none %]editversions.cgi?action=edit&amp;product=
         [%- product.name FILTER uri %]&amp;version=
         [%- version.name FILTER uri %]">
         '[% version.name FILTER html %]'</a>.
 
 [% UNLESS no_edit_other_versions_link %]
   Edit other versions of product <a
-  href="editversions.cgi?product=
+  href="[% basepath FILTER none %]editversions.cgi?product=
         [%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
 
 [% END %]
 
   Edit product <a
-  href="editproducts.cgi?action=edit&amp;product=
+  href="[% basepath FILTER none %]editproducts.cgi?action=edit&amp;product=
         [%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
 
 </p>
index f77b7e870519deb2e624e929aac5c293f924ff49..f7863f289c6fafbe568052d9da12d8f8f08d53f8 100644 (file)
@@ -82,7 +82,7 @@
 
 [% IF ! showbugcounts %]
 
-  <p><a href="editversions.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
+  <p><a href="[% basepath FILTER none %]editversions.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 
 [% END %]
index ccb46a193c6558ee95f90d17c96f34908f14875d..d47296ec40437c1433d15a6367037a1ecd388a8e 100644 (file)
@@ -63,7 +63,7 @@
 %]
 
 [% IF !showbugcounts %]
-  <p><a href="editversions.cgi?showbugcounts=1">
+  <p><a href="[% basepath FILTER none %]editversions.cgi?showbugcounts=1">
       Redisplay table with [% terms.bug %] counts (slower)</a></p>
 [% END %]
 
index 8f64c77a623e52cfdde724d2a4544b68980e1b42..e0cad11390614e27d68220b1e550cd687b898fc7 100644 (file)
@@ -37,7 +37,7 @@
   by the user doing the change.
 </p>
 
-<form id="workflow_form" method="POST" action="editworkflow.cgi">
+<form id="workflow_form" method="POST" action="[% basepath FILTER none %]editworkflow.cgi">
 <table>
   <tr>
     <th colspan="2">&nbsp;</th>
@@ -83,8 +83,8 @@
   <input type="hidden" name="action" value="update_comment">
   <input type="hidden" name="token" value="[% token FILTER html %]">
   <input type="submit" id="update_comment" value="Commit Changes"> -
-  <a href="editworkflow.cgi?action=edit_comment">Cancel Changes</a> -
-  <a href="editworkflow.cgi">View Current Workflow</a>
+  <a href="[% basepath FILTER none %]editworkflow.cgi?action=edit_comment">Cancel Changes</a> -
+  <a href="[% basepath FILTER none %]editworkflow.cgi">View Current Workflow</a>
 </p>
 
 </form>
index 97bbec7960a858fe90f7856f113121af6e4e13c5..7351be6337cc050f97b9b472b98ea489f5c389d9 100644 (file)
@@ -42,7 +42,7 @@
   correct one.
 </p>
 
-<form id="workflow_form" method="POST" action="editworkflow.cgi">
+<form id="workflow_form" method="POST" action="[% basepath FILTER none %]editworkflow.cgi">
 <table>
   <tr>
     <th colspan="2">&nbsp;</th>
@@ -93,7 +93,7 @@
   this [% terms.bug %] status must then be valid (this is the reason why you cannot edit
   them above).<br>
   Note: you can change this setting by visiting the
-  <a href="editparams.cgi?section=bugchange#duplicate_or_move_bug_status">Parameters</a>
+  <a href="[% basepath FILTER none %]editparams.cgi?section=bugchange#duplicate_or_move_bug_status">Parameters</a>
   page and editing the <i>duplicate_or_move_bug_status</i> parameter.
 </p>
 
   <input type="hidden" name="action" value="update">
   <input type="hidden" name="token" value="[% token FILTER html %]">
   <input type="submit" id="update_workflow" value="Commit Changes"> -
-  <a href="editworkflow.cgi">Cancel Changes</a> -
-  <a href="editworkflow.cgi?action=edit_comment">View Comments Required on Status Transitions</a>
+  <a href="[% basepath FILTER none %]editworkflow.cgi">Cancel Changes</a> -
+  <a href="[% basepath FILTER none %]editworkflow.cgi?action=edit_comment">View Comments Required on Status Transitions</a>
 </p>
 
 </form>
index 700abb4e8fe9796935eac9fbc8e6efbf206ccc83..1cf1da8fe14687f12e40a29ed23aaffb8ce0629b 100644 (file)
@@ -25,7 +25,7 @@
    onload = "document.forms['choose-id'].id.focus()"
  %]
 
-<form name="choose-id" method="get" action="attachment.cgi">
+<form name="choose-id" method="get" action="[% basepath FILTER none %]attachment.cgi">
   <p>Access an attachment by entering its ID into the form below:</p>
   <p>Attachment ID: <input name="id" size="6">
   <button name="action" value="edit" id="edit">Details</button>
@@ -33,7 +33,7 @@
   </p>
 </form>
 
-<form method="get" action="show_bug.cgi">
+<form method="get" action="[% basepath FILTER none %]show_bug.cgi">
   <p>Or, access it from the list of attachments in its associated [% terms.bug %] report:</p>
   <p>[% terms.Bug %] ID: <input name="id" size="6">
   <input type="submit" name="action" value="View" id="action">
index 14c76c3096fc49462782088e6332e60f94788b92..e041a0270a27468d29129ac150d549be66920803 100644 (file)
@@ -37,7 +37,7 @@
   <tr>
     <td valign="top">Attachment ID:</td>
     <td valign="top">
-      <a href="attachment.cgi?id=[% a.id FILTER html %]">[% a.id FILTER html %]</a>
+      <a href="[% basepath FILTER none %]attachment.cgi?id=[% a.id FILTER html %]">[% a.id FILTER html %]</a>
     </td>
   </tr>
   <tr>
@@ -74,7 +74,7 @@
 
 <p>Do you really want to delete this attachment?</p>
 
-<form action="attachment.cgi" method="POST">
+<form action="[% basepath FILTER none %]attachment.cgi" method="POST">
   <label for="reason">Reason of the deletion:</label>
   <input type="text" id="reason" name="reason" value="" size="80" maxlength="200">
   <br>
index 5e996041c33177d66d937a63a0fc20608930878f..7b631b7c341643a8448eea46a9480a079af81cd6 100644 (file)
@@ -41,7 +41,7 @@
 
 [% Hook.process('before_form') %]
 
-<form name="entryform" method="post" action="attachment.cgi" enctype="multipart/form-data">
+<form name="entryform" method="post" action="[% basepath FILTER none %]attachment.cgi" enctype="multipart/form-data">
   <input type="hidden" name="bugid" value="[% bug.bug_id %]">
   <input type="hidden" name="action" value="insert">
   <input type="hidden" name="token" value="[% token FILTER html %]">
@@ -59,7 +59,7 @@
             [% IF ((attachment.isprivate == 0) || user.is_insider) %]
               <input type="checkbox" id="[% attachment.id %]"
                    name="obsolete" value="[% attachment.id %]">
-              <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">[% attachment.id %]: [% attachment.description FILTER html %]</a><br>
+              <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">[% attachment.id %]: [% attachment.description FILTER html %]</a><br>
             [% END %]
           [% END %]
         [% ELSE %]
index afcda99e673a00a11272b79431bbf73fc66fa6c2..6ce3479ac599d5bf163e6190cf3353fbf9473c4e 100644 (file)
@@ -41,7 +41,7 @@
 <dl>
   <dt>
     <a title="[% attachment.description FILTER html %]"
-       href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">Attachment #[% attachment.id %]</a>
+       href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">Attachment #[% attachment.id %]</a>
     to [% "$terms.bug $attachment.bug_id" FILTER bug_link(attachment.bug_id) FILTER none %] created
   </dt>
   <dd>
@@ -57,7 +57,7 @@
         <b>Note:</b> [% terms.Bugzilla %] automatically detected the content type
         <em>[% attachment.contenttype FILTER html %]</em> for this attachment.  If this is
         incorrect, correct the value by editing the attachment's
-        <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">details</a>.
+        <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">details</a>.
       </p>
     [% END %]
 
@@ -67,7 +67,7 @@
 </dl>
 
 <p>
-<a href="attachment.cgi?bugid=[% attachment.bug_id %]&amp;action=enter">Create
+<a href="[% basepath FILTER none %]attachment.cgi?bugid=[% attachment.bug_id %]&amp;action=enter">Create
  Another Attachment to [% terms.Bug %] [%+ attachment.bug_id %]</a>
 </p>
 
index f72d00624234342ab9dcf6817726b59578d1faaa..2c9e141d68e1bd267fbecc018c2ce09a41bd905e 100644 (file)
@@ -46,7 +46,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
       and
        #[% newid %]: <a href="[% PROCESS diffurl id=newid %]">[% new_desc FILTER html %]</a>
     [% END %]
-    for <a href="show_bug.cgi?id=[% bugid %]">[% terms.bug %] #[% bugid %]</a>
+    for <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bugid %]">[% terms.bug %] #[% bugid %]</a>
   [% END %]
   [% subheader = BLOCK %]
     [% bugsummary FILTER html %]
@@ -76,7 +76,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
   [% IF other_patches.size > 0 %]
     [% IF headers %] |[%END%]
     Differences between
-    <form style="display: inline" action="attachment.cgi">
+    <form style="display: inline" action="[% basepath FILTER none %]attachment.cgi">
       <select name="oldid">
       [% FOREACH patch = other_patches %]
         <option value="[% patch.id %]"
@@ -94,7 +94,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
   <br>
 [% ELSE %]
   [% IF headers %]
-    <a href="attachment.cgi?oldid=[% oldid %]&amp;newid=[% newid %]&amp;action=interdiff&amp;format=raw">Raw Unified</a>
+    <a href="[% basepath FILTER none %]attachment.cgi?oldid=[% oldid %]&amp;newid=[% newid %]&amp;action=interdiff&amp;format=raw">Raw Unified</a>
     | Return to [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %]
     |
   [% END %]
@@ -128,7 +128,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
     [% context = 3 %]
   [% END %]
   [%# textbox for context %]
-  <form style="display: inline" action="attachment.cgi"><input type="hidden" name="action" value="diff"><input type="hidden" name="id" value="[% attachid %]"><input type="hidden" name="collapsed" value="[% collapsed FILTER html %]"><input type="hidden" name="headers" value="[% headers FILTER html %]"><input type="text" name="context" value="[% context FILTER html %]" size="3"></form>)
+  <form style="display: inline" action="[% basepath FILTER none %]attachment.cgi"><input type="hidden" name="action" value="diff"><input type="hidden" name="id" value="[% attachid %]"><input type="hidden" name="collapsed" value="[% collapsed FILTER html %]"><input type="hidden" name="headers" value="[% headers FILTER html %]"><input type="text" name="context" value="[% context FILTER html %]" size="3"></form>)
 [% END %]
 
 [% IF warning %]
@@ -151,7 +151,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
 [% END %]
 
 [%# Restore Stuff %]
-<form name="checkboxform" action="attachment.cgi">
+<form name="checkboxform" action="[% basepath FILTER none %]attachment.cgi">
 <input type="checkbox" name="restore_indicator" style="display: none">
 
 
index 44d388ec16375624304de4fd1b2ac9e294c66803..bc88d2ab4658dbe7e105a8ec57f64a608358865e 100644 (file)
@@ -49,7 +49,7 @@
 [% can_edit = attachment.validate_can_edit %]
 [% editable_or_hide = can_edit ? "" : " bz_hidden_option" %]
 
-<form method="post" action="attachment.cgi" onsubmit="normalizeComments();">
+<form method="post" action="[% basepath FILTER none %]attachment.cgi" onsubmit="normalizeComments();">
   <input type="hidden" name="id" value="[% attachment.id %]">
   <input type="hidden" name="action" value="update">
   <input type="hidden" name="contenttypemethod" value="manual">
             </b></p>
             <p><b>
               In order to view the attachment, you first have to
-              <a href="attachment.cgi?id=[% attachment.id %]">download it</a>.
+              <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]">download it</a>.
             </b></p>
           </div>
         [% ELSIF attachment.is_viewable %]
                   readonly = 'readonly'
                 %]
               [% ELSE %]
-                <iframe id="viewFrame" src="attachment.cgi?id=[% attachment.id %]
+                <iframe id="viewFrame" src="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]
                   [%- "&amp;content_type=text/plain" IF attachment.contenttype.match('^text/x-') %]" sandbox>
                   <b>You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
-                  <a href="attachment.cgi?id=[% attachment.id %]">View the attachment on a separate page</a>.</b>
+                  <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]">View the attachment on a separate page</a>.</b>
                 </iframe>
               [% END %]
               <script [% script_nonce FILTER none %]>
               able to display.
             </b></p>
             <p><b>
-              <a href="attachment.cgi?id=[% attachment.id %]">Download the attachment</a>.
+              <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]">Download the attachment</a>.
             </b></p>
           </div>
         [% END %]
 
 <div id="attachment_actions">
   <span class="label">Actions:</span>
-  <a href="attachment.cgi?id=[% attachment.id %]">View</a>
+  <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]">View</a>
   [% IF use_patchviewer %]
-    | <a href="attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
+    | <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
   [% END %]
   [% IF Param("allow_attachment_deletion")
         && user.in_group('admin')
         && attachment.datasize > 0 %]
-    | <a href="attachment.cgi?id=[% attachment.id %]&amp;action=delete">Delete</a>
+    | <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=delete">Delete</a>
   [% END %]
   [% Hook.process('action') %]
 </div>
     [% IF a.id == attachment.id %]
       [%+ a.id FILTER html %]
     [% ELSE %]
-      <a href="attachment.cgi?id=[% a.id FILTER uri %]&amp;action=edit"
+      <a href="[% basepath FILTER none %]attachment.cgi?id=[% a.id FILTER uri %]&amp;action=edit"
          title="[% a.description FILTER html %]">[% a.id FILTER html %]</a>
     [% END %]
     [% IF a.isobsolete %]
index 16e94586c9af5301ff668948abea2e1557535253..49ac973606d5142d1fd5723eb0873952cb510d1c 100644 (file)
@@ -78,7 +78,7 @@ function toggle_display(link) {
                      IF attachment.isobsolete %]">
         <td class="bz_attach_desc" valign="top">
           [% IF attachment.datasize %]
-            <a href="attachment.cgi?id=[% attachment.id %]"
+            <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]"
                title="View the content of the attachment">
           [% END %]
           <b>[% attachment.description FILTER html FILTER obsolete(attachment.isobsolete) %]</b>
@@ -141,9 +141,9 @@ function toggle_display(link) {
         [% END %]
 
         <td class="bz_attach_actions" valign="top">
-          <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">Details</a>
+          <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">Details</a>
           [% IF attachment.ispatch && feature_enabled('patch_viewer') %]
-            | <a href="attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
+            | <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
           [% END %]
           [% Hook.process("action") %]
         </td>
@@ -160,13 +160,13 @@ function toggle_display(link) {
               Obsolete</a> ([% obsolete_attachments %])
           [% END %]
           [% IF Param("allow_attachment_display") %]
-            <a id="view_all" href="attachment.cgi?bugid=
+            <a id="view_all" href="[% basepath FILTER none %]attachment.cgi?bugid=
                   [%- bugid %]&amp;action=viewall
                   [%- "&amp;hide_obsolete=1" IF obsolete_attachments %]">View All</a>
           [% END %]
         </span>
       [% END %]
-      <a href="attachment.cgi?bugid=[% bugid %]&amp;action=enter">Add an attachment</a>
+      <a href="[% basepath FILTER none %]attachment.cgi?bugid=[% bugid %]&amp;action=enter">Add an attachment</a>
       (proposed patch, testcase, etc.)
     </td>
   </tr>
index f7f40fdcb99d8e82a7c7620a5ea44a7d3ef9d03b..f011c21e0fb1a3db768c65e74c0658ac1c34e129 100644 (file)
@@ -38,7 +38,7 @@
 
 <p>
   Someone else has made changes to
-  <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">attachment [% attachment.id %]</a>
+  <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">attachment [% attachment.id %]</a>
   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:
 </p>
@@ -62,7 +62,7 @@ You have the following choices:
 
 <ul>
   <li>
-    <form method="post" action="attachment.cgi">
+    <form method="post" action="[% basepath FILTER none %]attachment.cgi">
       [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %]
       <input type="submit" id="process" value="Submit my changes anyway">
         This will cause all of the above changes to be overwritten.
@@ -70,7 +70,7 @@ You have the following choices:
   </li>
   <li>
     Throw away my changes, and
-    <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">revisit
+    <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">revisit
     attachment [% attachment.id %]</a>
   </li>
 </ul>
index 6a7bb4b9bb6d8b251465bc32618cb0cde0b921d9..c207235f5a3f465a47c3c327703345f8625162a2 100644 (file)
@@ -36,7 +36,7 @@
 [% IF hide_obsolete %]
   <div id="hidden_obsolete_message">
     Obsolete attachments are hidden. To view all attachments (including obsolete)
-    <a href="attachment.cgi?bugid=[% bug.id FILTER html %]&amp;action=viewall">click here</a>.
+    <a href="[% basepath FILTER none %]attachment.cgi?bugid=[% bug.id FILTER html %]&amp;action=viewall">click here</a>.
   </div>
 [% END %]
 <br>
@@ -82,7 +82,7 @@
       </td>
 
       <td valign="top">
-        <a href="attachment.cgi?id=[% a.id %]&amp;action=edit">Details</a>
+        <a href="[% basepath FILTER none %]attachment.cgi?id=[% a.id %]&amp;action=edit">Details</a>
       </td>
     </tr>
   </table>
          classes = 'viewall_frame'
       %]
     [% ELSE %]
-      <iframe src="attachment.cgi?id=[% a.id %]" class="viewall_frame" sandbox>
+      <iframe src="[% basepath FILTER none %]attachment.cgi?id=[% a.id %]" class="viewall_frame" sandbox>
         <b>You cannot view the attachment on this page because your browser does not support IFRAMEs.
-        <a href="attachment.cgi?id=[% a.id %]">View the attachment on a separate page</a>.</b>
+        <a href="[% basepath FILTER none %]attachment.cgi?id=[% a.id %]">View the attachment on a separate page</a>.</b>
       </iframe>
     [% END %]
   [% ELSE %]
     <p><b>
       Attachment cannot be viewed because its MIME type is not text/*, image/*, or application/pdf.
-      <a href="attachment.cgi?id=[% a.id %]">Download the attachment instead</a>.
+      <a href="[% basepath FILTER none %]attachment.cgi?id=[% a.id %]">Download the attachment instead</a>.
     </b></p>
   [% END %]
   </div>
index 494e4523dafc218aef5bf1e29119fbfe0eaf403a..edc3a0426fa9cfea6e4dc513e5f204f93c95474d 100644 (file)
@@ -39,7 +39,7 @@
 
 <dl>
   <dt>Changes to
-    <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">attachment [% attachment.id %]</a>
+    <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]&amp;action=edit">attachment [% attachment.id %]</a>
     of [% "$terms.bug $attachment.bug_id" FILTER bug_link(attachment.bug_id) FILTER none %] submitted
   </dt>
   <dd>
index 101e43546ec3cb55b3269829799695987b26d790..17fbd9f33ce1b503ba3485c0dedb8c8d766eaab1 100644 (file)
@@ -70,7 +70,7 @@
           [% "</tr><tr>" IF loop.index > 0 %]
             <td>
               [% IF change.attachid %]
-                <a href="attachment.cgi?id=[% change.attachid %]">
+                <a href="[% basepath FILTER none %]attachment.cgi?id=[% change.attachid %]">
                 Attachment #[% change.attachid %]</a>
               [% END %]
               [% IF change.comment.defined %]
index 16a76ff02db520138f8e2bf853f8a1bbd5eee62f..c4c407abd19e08a10982ffae5a9d5c3b7257ea79 100644 (file)
@@ -24,7 +24,7 @@
    title = "Search by $terms.bug number"
  %]
 
-<form method="get" action="show_bug.cgi" data-no-csrf>
+<form method="get" action="[% basepath FILTER none %]show_bug.cgi" data-no-csrf>
   <p>
     You may find a single [% terms.bug %] by entering its [% terms.bug %] id here:
     <input name="id" size="6">
index e3cd382fdfd80bab210336fd9c9168a4416b3937..bbb1d9e8445920b4a48ac76a765dd82c313f430b 100644 (file)
@@ -13,7 +13,7 @@
   #%]
 
 <div id="bugzilla-etiquette">
-  <a href="page.cgi?id=etiquette.html" target="_blank" tabindex="-1">
+  <a href="[% basepath FILTER none %]page.cgi?id=etiquette.html" target="_blank" tabindex="-1">
     Comments Subject to Etiquette and Contributor Guidelines</a>
 </div>
 
index 7af08efdefd3aae2be89f5ed08b6dbfa8c41df1d..91854aca3c16033f8f5dda44ee61120329096be2 100644 (file)
 
         <span role="heading" aria-level="2" class="bz_comment_number">
           <a
-             href="show_bug.cgi?id=[% bug.bug_id %]#c[% comment.count %]">
+             href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id %]#c[% comment.count %]">
             [%- comment_label FILTER html %]</a>
         </span>
 
index cfdb0ba4e3cbefc38d10db7de24d75091561a281..128fdb9babf15aabea810dd20f70551628641a82 100644 (file)
@@ -78,13 +78,13 @@ function PutDescription() {
 [% END %]
 
 <p>
-    <a href="duplicates.cgi?[% productstring %]&amp;format=simple" target="somebugs">All-time Top 20</a> (loaded initially) |
-    <a href="duplicates.cgi?[% productstring %]&amp;format=simple&amp;sortby=delta&amp;reverse=1&amp;maxrows=100&amp;changedsince=14" target="somebugs">Hot in the last two weeks</a>
+    <a href="[% basepath FILTER none %]duplicates.cgi?[% productstring %]&amp;format=simple" target="somebugs">All-time Top 20</a> (loaded initially) |
+    <a href="[% basepath FILTER none %]duplicates.cgi?[% productstring %]&amp;format=simple&amp;sortby=delta&amp;reverse=1&amp;maxrows=100&amp;changedsince=14" target="somebugs">Hot in the last two weeks</a>
 </p>
 
 <iframe name="somebugs" id="somebugs"
   style="border: 2px black solid"
-  src="duplicates.cgi?[% productstring %]&amp;format=simple">
+  src="[% basepath FILTER none %]duplicates.cgi?[% productstring %]&amp;format=simple">
 </iframe>
 
 <p>
@@ -95,7 +95,7 @@ function PutDescription() {
   </p>
 
 [%# All bugs opened inside the past six months %]
-  <form action="buglist.cgi" method="get" target="somebugs">
+  <form action="[% basepath FILTER none %]buglist.cgi" method="get" target="somebugs">
     <input type="hidden" name="format" value="simple">
     <input type="hidden" name="order" value="relevance desc">
     <input type="hidden" name="bug_status" value="__all__">
@@ -134,7 +134,7 @@ function PutDescription() {
   there, tell us all about it.
 </p>
 
-<form method="post" action="post_bug.cgi">
+<form method="post" action="[% basepath FILTER none %]post_bug.cgi">
   <input type="hidden" name="format" value="guided">
   <input type="hidden" name="assigned_to" value="">
   <input type="hidden" name="priority"
@@ -196,7 +196,7 @@ function PutDescription() {
         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
-        <a target="_blank" href="describecomponents.cgi?product=
+        <a target="_blank" href="[% basepath FILTER none %]describecomponents.cgi?product=
             [% product.name FILTER uri %]">component
         descriptions</a> (opens in new window) if you need more help.
       </p>
index 38d5a97d76451faa15b917011fec2b2b829f5df6..3b59b376bf59a19b003485d2ee1543be1edfd925 100644 (file)
@@ -193,7 +193,7 @@ TUI_hide_default('expert_fields');
 -->
 </script>
 
-<form name="Create" id="Create" method="post" action="post_bug.cgi"
+<form name="Create" id="Create" method="post" action="[% basepath FILTER none %]post_bug.cgi"
       class="enter_bug_form" enctype="multipart/form-data"
       onsubmit="return validateEnterBug(this)">
 <input type="hidden" name="product" value="[% product.name FILTER html %]">
@@ -239,7 +239,7 @@ TUI_hide_default('expert_fields');
   [%# We can't use the select block in these two cases for various reasons. %]
   <tr>
     [% component_desc_url = BLOCK -%]
-      describecomponents.cgi?product=[% product.name FILTER uri %]
+      [% basepath FILTER none %]describecomponents.cgi?product=[% product.name FILTER uri %]
     [% END %]
     [% INCLUDE "bug/field-label.html.tmpl"
       field = bug_fields.component editable = 1
@@ -612,7 +612,7 @@ TUI_hide_default('expert_fields');
       <tr>
         [% INCLUDE bug/field.html.tmpl
            bug = default, field = bug_fields.keywords, editable = 1,
-           value = keywords, desc_url = "describekeywords.cgi",
+           value = keywords, desc_url = basepath _ "describekeywords.cgi",
            value_span = 3
         %]
       </tr>
@@ -781,11 +781,11 @@ TUI_hide_default('expert_fields');
 [% Hook.process("end") %]
 
 <div id="guided">
-  <a id="guided_img" href="enter_bug.cgi?format=guided&amp;product=[% product.name FILTER uri %]"><img
-   src="extensions/BMO/web/images/guided.png" width="16" height="16" border="0" align="absmiddle"></a>
-  <a id="guided_link" href="enter_bug.cgi?format=guided&amp;product=[% product.name FILTER uri %]"
+  <a id="guided_img" href="[% basepath FILTER none %]enter_bug.cgi?format=guided&amp;product=[% product.name FILTER uri %]"><img
+   src="[% basepath FILTER none %]extensions/BMO/web/images/guided.png" width="16" height="16" border="0" align="absmiddle"></a>
+  <a id="guided_link" href="[% basepath FILTER none %]enter_bug.cgi?format=guided&amp;product=[% product.name FILTER uri %]"
    >Switch to the [% terms.Bugzilla %] Helper</a>
-  | <a href="page.cgi?id=custom_forms.html">Custom [% terms.bug %] entry forms</a>
+  | <a href="[% basepath FILTER none %]page.cgi?id=custom_forms.html">Custom [% terms.bug %] entry forms</a>
 </div>
 
 [% PROCESS global/footer.html.tmpl %]
index 13974833ae7d9e839e02ff1df4a79603636daaf0..3e4e8d2e0bdad17ece2b8c884a3ce3a20e452bdd 100644 (file)
@@ -33,7 +33,7 @@
 
 <p>
   You can bookmark this link:
-  &ldquo;<a href="enter_bug.cgi?[% url FILTER html %]">
+  &ldquo;<a href="[% basepath FILTER none %]enter_bug.cgi?[% url FILTER html %]">
   [% IF short_desc %]
     [% short_desc FILTER html %]
   [% ELSE %]
index 4d13da96d8821b45fc613d083f8ae27de78c3de5..fc2447c714b055cf46c84a6ab1300269849079dc 100644 (file)
@@ -32,5 +32,5 @@
 Before reporting [% terms.abug %], please read the
 <a href="https://developer.mozilla.org/docs/Mozilla/QA/Bug_writing_guidelines">
 [% terms.bug %] writing guidelines</a>, please look at the list of
-<a href="duplicates.cgi">most frequently reported [% terms.bugs %]</a>, and please
-<a href="query.cgi">search</a> for the [% terms.bug %].
+<a href="[% basepath FILTER none %]duplicates.cgi">most frequently reported [% terms.bugs %]</a>, and please
+<a href="[% basepath FILTER none %]query.cgi">search</a> for the [% terms.bug %].
index 78fc4a8aaf66a99960205bc90856b7d2e683436c..c9d0627975d901cd06e98debf4c331b3817b815e 100644 (file)
@@ -62,7 +62,7 @@
 
 <hr>
 
-<form action="showdependencygraph.cgi" method="GET">
+<form action="[% basepath FILTER none %]showdependencygraph.cgi" method="GET">
   <table>
     <tr>
       <th align="left"><label for="id">[% terms.Bug %] numbers</label>:</th>
index 6e1478be0554aea7e4a1baf2744049c4dcf39849..97b9394d792d8603893c5d55d4d22a2e6557701d 100644 (file)
@@ -58,7 +58,7 @@
   [% global.seen = {} %]
   [%# Display the tree of bugs that this bug depends on. %]
   <h3>
-    <a href="show_bug.cgi?id=[% bugid %]">[% terms.Bug %] [%+ bugid %]</a>
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bugid %]">[% terms.Bug %] [%+ bugid %]</a>
     [% IF type == 1 %]
         [% tree_name = "dependson_tree" %]
         [% IF ids.size %]
@@ -84,7 +84,7 @@
     [%# 27 chars is the length of buglist.cgi?tweak=&bug_id=" %]
     [% use_post = (ids.join(",").length > constants.CGI_URI_LIMIT - 27 ) ? 1 : 0 %]
     [% IF use_post %]
-      <form action="buglist.cgi" method="post">
+      <form action="[% basepath FILTER none %]buglist.cgi" method="post">
       <input type="hidden" name="bug_id" value="[% ids.join(",") %]">
     [% END %]
 
@@ -96,9 +96,9 @@
       [% END %]
       </form>
     [% ELSE %]
-      <a href="buglist.cgi?bug_id=[% ids.join(",") %]">view as [% terms.bug %] list</a>
+      <a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% ids.join(",") %]">view as [% terms.bug %] list</a>
       [% IF user.in_group('editbugs') && ids.size > 1 %]
-        | <a href="buglist.cgi?bug_id=[% ids.join(",") %]&amp;tweak=1">change several</a>
+        | <a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% ids.join(",") %]&amp;tweak=1">change several</a>
       [% END %]
     [% END %]
 
   [% isclosed = !bug.isopened %]
   [% FILTER closed(isclosed) -%]
     <a title="[% INCLUDE buginfo bug=bug %]"
-       href="show_bug.cgi?id=[% bugid %]">
+       href="[% basepath FILTER none %]show_bug.cgi?id=[% bugid %]">
       <b>[%- bugid %]:</b>
       <span class="summ_text">[%+ bug.short_desc FILTER html %]</span>
       <span class="summ_info">[[% INCLUDE buginfo %]]</span>
     </a>
-    <a href="showdependencytree.cgi?id=[% bugid FILTER uri %]"
+    <a href="[% basepath FILTER none %]showdependencytree.cgi?id=[% bugid FILTER uri %]"
        class="tree_link">
-      <img src="skins/standard/dependency-tree/tree.png"
+      <img src="[% basepath FILTER none %]skins/standard/dependency-tree/tree.png"
            title="See dependency tree for [% terms.bug %] [%+ bugid FILTER html %]">
     </a>
   [% END %]
    [%# Hide/show resolved button
        Swaps text depending on the state of hide_resolved %]
    <td align="center">
-   <form method="get" action="showdependencytree.cgi"
+   <form method="get" action="[% basepath FILTER none %]showdependencytree.cgi"
            style="display: inline; margin: 0px;">
      <input name="id" type="hidden" value="[% bugid %]">
      [% IF maxdepth %]
    </td>
 
    <td>
-   <form method="get" action="showdependencytree.cgi"
+   <form method="get" action="[% basepath FILTER none %]showdependencytree.cgi"
          style="display: inline; margin: 0px;">
      [%# set to one form %]
      <input type="submit" id="change_maxdepth"
    </td>
 
    <td>
-   <form method="get" action="showdependencytree.cgi"
+   <form method="get" action="[% basepath FILTER none %]showdependencytree.cgi"
          style="display: inline; margin: 0px;">
      [%# Minus one form
          Allow subtracting only when realdepth and maxdepth > 1 %]
    </td>
 
    <td>
-   <form method="get" action="showdependencytree.cgi"
+   <form method="get" action="[% basepath FILTER none %]showdependencytree.cgi"
          style="display: inline; margin: 0px;">
      [%# Limit entry form: the button can not do anything when total depth
          is less than two, so disable it %]
    </td>
 
    <td>
-   <form method="get" action="showdependencytree.cgi"
+   <form method="get" action="[% basepath FILTER none %]showdependencytree.cgi"
          style="display: inline; margin: 0px;">
      [%# plus one form
          Disable button if total depth < 2, or if depth set to unlimited %]
    </td>
 
    <td>
-   <form method="get" action="showdependencytree.cgi"
+   <form method="get" action="[% basepath FILTER none %]showdependencytree.cgi"
          style="display: inline; margin: 0px;">
      [%# Unlimited button %]
      <input name="id" type="hidden" value="[% bugid %]">
index 6a1edc163d314090d175c3ca9e4fb9551fc3e5f5..e916d705ebc2ef917ab0cc0a3b8e9f940df9e7a2 100644 (file)
@@ -99,7 +99,7 @@
 //-->
 </script>
 
-<form name="changeform" id="changeform" method="post" action="process_bug.cgi">
+<form name="changeform" id="changeform" method="post" action="[% basepath FILTER none %]process_bug.cgi">
 
   <input type="hidden" name="delta_ts" value="[% bug.delta_ts %]">
   <input type="hidden" name="longdesclength" value="[% bug.comments.size %]">
        <a href="#c[% bug.comments.size - 1 %]"
           accesskey="l"><b>L</b>ast Comment</a>
      </span>
-     <a href="show_bug.cgi?id=[% bug.bug_id %]">
+     <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id %]">
         [%-# %]<b>[% terms.Bug %]&nbsp;[% bug.bug_id FILTER html %]</b>
      [%-# %]</a> -<span id="summary_alias_container" class="bz_default_hidden">
       [% IF Param("usebugaliases") %]
     <tr>
       <th class="field_label">
         <label for="keywords" accesskey="k">
-          <a href="describekeywords.cgi"><u>K</u>eywords</a></label>:
+          <a href="[% basepath FILTER none %]describekeywords.cgi"><u>K</u>eywords</a></label>:
       </th>
       <td class="field_value" colspan="2">
         [% INCLUDE bug/field.html.tmpl
           [% dupe.id FILTER bug_link(dupe, use_alias => 1) FILTER none %][% " " %]
         [% END %]
       </span>
-      (<a href="buglist.cgi?bug_id=[% bug.duplicate_ids.join(",") FILTER html %]">
+      (<a href="[% basepath FILTER none %]buglist.cgi?bug_id=[% bug.duplicate_ids.join(",") FILTER html %]">
        [%-%]view as [% terms.bug %] list</a>)
     </td>
   </tr>
     <th>&nbsp;</th>
 
     <td colspan="2" align="left" id="show_dependency_tree_or_graph">
-      Show dependency <a href="showdependencytree.cgi?id=[% bug.bug_id %]&amp;hide_resolved=1">tree</a>
+      Show dependency <a href="[% basepath FILTER none %]showdependencytree.cgi?id=[% bug.bug_id %]&amp;hide_resolved=1">tree</a>
 
       [% IF Param('webdotbase') %]
-        /&nbsp;<a href="showdependencygraph.cgi?id=[% bug.bug_id %]">graph</a>
+        /&nbsp;<a href="[% basepath FILTER none %]showdependencygraph.cgi?id=[% bug.bug_id %]">graph</a>
       [% END %]
     </td>
   </tr>
     </th>
     <td>
       [% bug.delta_ts FILTER time("%Y-%m-%d %H:%M %Z") %]
-      (<a href="show_activity.cgi?id=[% bug.bug_id %]">[%# terms.Bug %]History</a>)
+      (<a href="[% basepath FILTER none %]show_activity.cgi?id=[% bug.bug_id %]">[%# terms.Bug %]History</a>)
     </td>
 
   </tr>
     </tr>
     <tr>
       <td colspan="7" class="bz_summarize_time">
-        <a href="summarize_time.cgi?id=[% bug.bug_id %]&amp;do_depends=1">
+        <a href="[% basepath FILTER none %]summarize_time.cgi?id=[% bug.bug_id %]&amp;do_depends=1">
         Summarize time (including time for [% terms.bugs %]
         blocking this [% terms.bug %])</a>
       </td>
             <fieldset>
               <legend>Note</legend>
               You need to
-              <a href="show_bug.cgi?id=
+              <a href="[% basepath FILTER none %]show_bug.cgi?id=
                       [%- bug.bug_id %]&amp;GoAheadAndLogIn=1">log in</a>
               before you can comment on or make changes to this [% terms.bug %].
             </fieldset>
index d15a6ea60a61d619dc8e49492c35d0c47fd66b2f..5e674f7b2cee3ef7f0e4ead4e96f1a07af052116 100644 (file)
 [% END %]
 
 [% IF bug && field.name == 'component' %]
-  (<a href="buglist.cgi?component=[% bug.component FILTER uri %]&amp;product=[% bug.product FILTER uri %]&amp;bug_status=__open__"
+  (<a href="[% basepath FILTER none %]buglist.cgi?component=[% bug.component FILTER uri %]&amp;product=[% bug.product FILTER uri %]&amp;bug_status=__open__"
       target="_blank">show other [% terms.bugs %]</a>)
 [% END %]
 
index da70d49b97c5c4cc1592fa89c67a8f23f2a17ca9..6153534ed49235c6f9ccc67659160b8f3e38626b 100644 (file)
@@ -58,6 +58,6 @@
           bz_status_[% bug.bug_status FILTER css_class_quote %]
           [% ' bz_closed' IF !bug.isopened %]"
    title="[% link_title FILTER collapse FILTER html %]"
-   href="[% urlbase FILTER html IF full_url %]show_bug.cgi?id=
+   href="[% full_url ? urlbase : basepath FILTER html %]show_bug.cgi?id=
          [%~ bug.id FILTER uri %][% anchor FILTER html %]">
   [%~ link_text FILTER html %]</a>
index 862ec7acea90b50f09ec9d24e642b747d67c267d..7a98297f00a4aa53f0e204e30c23da8a467fb12e 100644 (file)
 [% PROCESS global/variables.none.tmpl %]
 [% IF bottom_navigator == 1 %]
   <ul class="related_actions">
-    <li><a href="show_bug.cgi?format=multiple&amp;id=
+    <li><a href="[% basepath FILTER none %]show_bug.cgi?format=multiple&amp;id=
                 [% bug.bug_id FILTER uri %]">Format For Printing</a></li>
-    <li>&nbsp;-&nbsp;<a href="show_bug.cgi?ctype=xml&amp;id=
+    <li>&nbsp;-&nbsp;<a href="[% basepath FILTER none %]show_bug.cgi?ctype=xml&amp;id=
                         [% bug.bug_id  FILTER uri %]">XML</a></li>
     [% IF NOT bug.groups_in.size %]
-      <li>&nbsp;-&nbsp;<a href="rest/bug/[% bug.bug_id  FILTER uri %]">JSON</a></li>
+      <li>&nbsp;-&nbsp;<a href="[% basepath FILTER none %]rest/bug/[% bug.bug_id  FILTER uri %]">JSON</a></li>
     [% END %]
     <li>&nbsp;-&nbsp;
-      <a href="enter_bug.cgi?format=__default__&amp;cloned_bug_id=[% bug.bug_id  FILTER uri %]"
+      <a href="[% basepath FILTER none %]enter_bug.cgi?format=__default__&amp;cloned_bug_id=[% bug.bug_id  FILTER uri %]"
          id="clone_bug"
          onclick="return show_clone_menu(this, '[% bug.id FILTER js %]', '[% bug.product FILTER js %]', '[% bug.component FILTER js %]');">
          Clone This [% terms.Bug %]</a>
 
   ([% this_bug_idx + 1 %] of [% last_bug_list.size %])
 
-  <a href="show_bug.cgi?id=
+  <a href="[% basepath FILTER none %]show_bug.cgi?id=
            [%- last_bug_list.first FILTER uri %]&amp;list_id=
            [%- my_search.id FILTER uri %]">First</a>
-  <a href="show_bug.cgi?id=
+  <a href="[% basepath FILTER none %]show_bug.cgi?id=
            [%- last_bug_list.last FILTER uri %]&amp;list_id=
            [%- my_search.id FILTER uri %]">Last</a>
 
   [% IF this_bug_idx > 0 %]
     [% prev_bug = this_bug_idx - 1 %]
-    <a href="show_bug.cgi?id=
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=
              [%- last_bug_list.$prev_bug FILTER uri %]&amp;list_id=
              [%- my_search.id FILTER uri %]">Prev</a>
   [% ELSE %]
 
   [% IF this_bug_idx + 1 < last_bug_list.size %]
     [% next_bug = this_bug_idx + 1 %]
-    <a href="show_bug.cgi?id=
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=
              [%- last_bug_list.$next_bug FILTER uri %]&amp;list_id=
              [%- my_search.id FILTER uri %]">Next</a>
   [% ELSE %]
     <i><font color="#777777">Next</font></i>
   [% END %]
 
-  &nbsp;&nbsp;<a href="buglist.cgi?regetlastlist=
+  &nbsp;&nbsp;<a href="[% basepath FILTER none %]buglist.cgi?regetlastlist=
               [%- my_search.id FILTER uri %]">Show last search results</a>
   </div>
 [% END %]
index b642be3c74a3e1bf519a43b1b2da7c58ed0e48fc..4075eb70a41b750376ffb566c0a3bc8129378129 100644 (file)
@@ -17,7 +17,7 @@
 [% PROCESS global/header.html.tmpl %]
 
 <div style="display: none" id="xhr-error"></div>
-<form name="newbugform" id="newbugform" method="post" action="new_bug.cgi" enctype="multipart/form-data">
+<form name="newbugform" id="newbugform" method="post" action="[% basepath FILTER none %]new_bug.cgi" enctype="multipart/form-data">
   <input type="hidden" value="[% issue_hash_token(['new_bug']) FILTER html %]" name="token">
   <div class="new-bug-container">
     <div class="new-bug">
@@ -80,7 +80,7 @@
               field_type   = constants.FIELD_TYPE_SINGLE_SELECT
               edit_only = 1
               editable = 1
-              help         = "describecomponents.cgi?product=$filtered_product"
+              help         = basepath _ "describecomponents.cgi?product=$filtered_product"
           %]
 
             <span aria-owns="product-name product-latch">
               hide_on_view   = 1
               hide_on_edit   = !can_edit_product
               append_content = 1
-              help           = "describecomponents.cgi?product=$filtered_product" %]
+              help           = basepath _ "describecomponents.cgi?product=$filtered_product" %]
 
           [%# component %]
           [% WRAPPER bug_modal/field.html.tmpl
               field      = bug_fields.component
               field_type = constants.FIELD_TYPE_SINGLE_SELECT
-              help       = "describecomponents.cgi?product=$filtered_product&component=$filtered_component#$filtered_component"
+              help       = basepath _ "describecomponents.cgi?product=$filtered_product&component=$filtered_component#$filtered_component"
               edit_only = 1
               editable = 1
           %]
               </div>
               <div id="component-info" style="display:none">
                 <div>[% bug.component_obj.description FILTER html_light %]</div>
-                <a href="buglist.cgi?component=[% bug.component FILTER uri %]&amp;
+                <a href="[% basepath FILTER none %]buglist.cgi?component=[% bug.component FILTER uri %]&amp;
                         [%~ %]product=[% bug.product FILTER uri %]&amp;
                         [%~ %]bug_status=__open__" target="_blank">Other [% terms.Bugs %]</a>
               </div>
               field_type = constants.FIELD_TYPE_MULTI_SELECT
               edit_only = 1
               editable = 1
-              help = "describekeywords.cgi"
+              help = basepath _ "describekeywords.cgi"
           %]
 
           [% WRAPPER bug_modal/field.html.tmpl
     </li>
     <li id="comment-preview-tab" role="tab" tabindex="-1" aria-controls="comment-preview-tabpanel" aria-selected="false">
       Preview
-      <img id="preview-throbber" src="extensions/BugModal/web/throbber.gif" width="16" height="11" style="display:none">
+      <img id="preview-throbber" src="[% basepath FILTER none %]extensions/BugModal/web/throbber.gif" width="16" height="11" style="display:none">
     </li>
   </ul>
   <div id="comment-edit-tabpanel" class="comment-tabpanel" role="tabpanel" aria-labelledby="comment-edit-tab">
index d89c8da233c1c7f4cb76cee63004759829203dfb..057046c531add91c507770cd66dcd9b2a3705739 100644 (file)
@@ -50,7 +50,7 @@
   Do you wish to do this?
 </p>
 
-<form method="post" action="process_bug.cgi">
+<form method="post" action="[% basepath FILTER none %]process_bug.cgi">
 
 [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %]
 
index 95029a4382462c9492cd08a34e64bd78bcc48e85..e3fbf4a7846f48229870d3446b09e072b2634906 100644 (file)
@@ -78,7 +78,7 @@ You have the following choices:
 
 <ul>
   <li>
-    <form method="post" action="process_bug.cgi">
+    <form method="post" action="[% basepath FILTER none %]process_bug.cgi">
       <input type="hidden" name="delta_ts"
              value="[% bug.delta_ts FILTER html %]">
       [% PROCESS "global/hidden-fields.html.tmpl"
@@ -90,7 +90,7 @@ You have the following choices:
   </li>
   [% IF cgi.param("comment") %]
     <li>
-      <form method="post" action="process_bug.cgi">
+      <form method="post" action="[% basepath FILTER none %]process_bug.cgi">
         <input type="hidden" name="id" value="[% cgi.param("id") FILTER html %]">
         <input type="hidden" name="delta_ts" value="[% bug.delta_ts FILTER html %]">
         <input type="hidden" name="comment" value="[% cgi.param("comment") FILTER html %]">
index b6c95fdf2bd151e698b242049ba5a6c4c78e080b..83f9068cb05b654543d571eaeadbbec1cd98d897 100644 (file)
@@ -45,7 +45,7 @@ a {
 </style>
 </head>
 <body>
-<img src="images/buggie.png" id="buggie" alt="buggie">
+<img src="[% basepath FILTER none %]images/buggie.png" id="buggie" alt="buggie">
 <div id="content">
 <h1>[% terms.Bug %] Updates Temporarily Suspended</h1>
 
@@ -64,7 +64,7 @@ complete, your change will succeed and you won't get this page any more.
 
 <p>
 Only updates to [% terms.bugs %] are being blocked by this page, any other
-activities in [% terms.Bugzilla %] are still fair game. <a href="index.cgi"
+activities in [% terms.Bugzilla %] are still fair game. <a href="[% basepath FILTER none %]index.cgi"
 target="_blank">Open [% terms.Bugzilla %] in a new tab/window</a> if you'd
 like, to continue working on other things while waiting.
 </p>
index 01494ec84c59b8d5eb46597f7a288fbde5231e22..a2f1b4978b2c323b14fe1a0f87024d2e77bfe490 100644 (file)
@@ -36,7 +36,7 @@
 [% PROCESS global/header.html.tmpl
   title = 'Verify New Product Details...' %]
 
-<form action="process_bug.cgi" method="post">
+<form action="[% basepath FILTER none %]process_bug.cgi" method="post">
 
 [% SET exclude_items = ['version', 'component', 'target_milestone'] %]
 [% IF verify_bug_groups %]
   [% id = cgi.param('id') %]
   Cancel and Return to [% "$terms.bug $id" FILTER bug_link(id) FILTER none %]
 [% ELSE %]
-  Cancel and Return to <a href="buglist.cgi?regetlastlist=1">the last search results</a>
+  Cancel and Return to <a href="[% basepath FILTER none %]buglist.cgi?regetlastlist=1">the last search results</a>
 [% END %]
 
 [% PROCESS global/footer.html.tmpl %]
index add29adbcf114f083760a4f09a38da0270eeb0e8..288af30af1aa561e0d3c961ac7388f8da1d11e05 100644 (file)
@@ -41,7 +41,7 @@
   [% END %]
   [% IF ids.size > 1 %]
     <div class="bz_query_buttons">
-      <form method="post" action="buglist.cgi">
+      <form method="post" action="[% basepath FILTER none %]buglist.cgi">
         <input type="hidden" name="bug_id" value="[% ids.join(",") FILTER html %]">
         <input type="submit" id="short_format" value="Short Format">
       </form>
@@ -64,9 +64,9 @@
 [% BLOCK bug_display %]
   <h1>
     [% terms.Bug %]
-    <a href="show_bug.cgi?id=[% bug.bug_id FILTER html %]">[% bug.bug_id FILTER html %]</a>
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id FILTER html %]">[% bug.bug_id FILTER html %]</a>
     [% IF Param("usebugaliases") AND bug.alias AND NOT bug.error %]
-      (<a href="show_bug.cgi?id=[% bug.alias FILTER uri %]">
+      (<a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.alias FILTER uri %]">
         [% bug.alias FILTER html %]</a>)
     [% END %]
   </h1>
               [% FOREACH attachment = bug.attachments %]
                 <tr>
                   <td>
-                    <a href="attachment.cgi?id=[% attachment.id %]">
+                    <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]">
                       [% attachment.description FILTER html %]
                     </a>[% "<br>" IF not loop.last() %]
                   </td>
             </table>
           [% ELSE %]
             [% FOREACH attachment = bug.attachments %]
-              <a href="attachment.cgi?id=[% attachment.id %]">
+              <a href="[% basepath FILTER none %]attachment.cgi?id=[% attachment.id %]">
                 [% attachment.description FILTER html %]
               </a>[% "<br>" IF not loop.last() %]
             [% END %]
index 8d8e63a20dbd3cd3b2245cfc1fa23741fa68a6db..f6cb5c4c4bb2aa4dd56aba34ce318728575347f7 100644 (file)
@@ -35,7 +35,7 @@
   <hr>
   <p>
     The next [% terms.bug %] in your list is [% terms.bug %]
-    <a href="show_bug.cgi?id=[% bug.bug_id %]">[% bug.bug_id %]</a>:
+    <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id %]">[% bug.bug_id %]</a>:
   </p>
   <hr>
 [% END %]
index 1efc8223e9e8c59fb5ba29506cc71a9e17f5c1b2..639180af11078cbc2f8b8b39ed0018f5e9e13494 100644 (file)
 
 [% BLOCK query_form %]
 <hr noshade size=1>
-<form method="post" name="summary" style="display: inline" action="summarize_time.cgi">
+<form method="post" name="summary" style="display: inline" action="[% basepath FILTER none %]summarize_time.cgi">
 <input type="hidden" name="do_depends" value="[% do_depends FILTER html %]">
 <input type="hidden" name="id" value="[% ids.join(",") FILTER html %]">
 <input type="hidden" name="do_report" value="1">
index 6d669dd5dc8398f86ff1c45bee719c2bda31ba5d..149ddbe8ccad7463aa95b00355a6270e19719137 100644 (file)
@@ -14,7 +14,7 @@
   #%]
 
 [% IF user.id && user.settings.per_bug_queries.value == "on" %]
-      <form id="list_of_bugs" action="buglist.cgi" method="get">
+      <form id="list_of_bugs" action="[% basepath FILTER none %]buglist.cgi" method="get">
         <input type="hidden" name="cmdtype" value="doit">
         <input type="hidden" name="remtype" value="asnamed">
         <input type="hidden" name="list_of_bugs" value="1">
index 51a862d37a7edad875b585a4322a7f31101db912..3f7d3d246bf045fa79439bc00cdf337a100d84d0 100644 (file)
@@ -50,7 +50,7 @@
       <ul>
       [% FOREACH ref = referenced_bugs %]
         <li>
-          [<a href="[% urlbase FILTER html %]show_bug.cgi?id=[% ref.id FILTER none %]">
+          [<a href="[% basepath FILTER html %]show_bug.cgi?id=[% ref.id FILTER none %]">
           [% terms.Bug %]&nbsp;[% ref.id FILTER none %]</a>] [% ref.short_desc FILTER html %]
         </li>
       [% END %]
@@ -75,7 +75,7 @@
       <div itemscope itemtype="http://schema.org/EmailMessage">
         <div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
           [%# Filtering of the URL param is not required & would break the URL when the comment anchor is set %]
-          <link itemprop="url" href="[% urlbase FILTER html %]show_bug.cgi?id=[% "$bug.id$comment_anchor" FILTER none %]">
+          <link itemprop="url" href="[% basepath FILTER html %]show_bug.cgi?id=[% "$bug.id$comment_anchor" FILTER none %]">
           <meta itemprop="name" content="View [% terms.bug %]">
         </div>
         <meta itemprop="description" content="[% terms.Bugzilla %] [%+ terms.bug %] update notification">
index 41dcd8edf2aa604fa32c6cc6c79184df774833f7..2c822112cea331d002384a763a6340d2b86452ca 100644 (file)
@@ -12,4 +12,4 @@ if you have a file called "style.css" and your extension is called
 "Foo", you would put it in "extensions/Foo/web/style.css", and then
 you could link to it in HTML like:
 
-<link href="extensions/Foo/web/style.css" rel="stylesheet" type="text/css">
+<link href="[% basepath FILTER none %]extensions/Foo/web/style.css" rel="stylesheet" type="text/css">
index 9f9be31dbc4ad8cfa428c929247573ec85937732..c3fa16e9c154efb02e969753435735ff807f2eb1 100644 (file)
@@ -58,7 +58,7 @@
   <input type="submit" id="confirm" value="Yes, Confirm Changes">
 </form>
 
-<p><a href="index.cgi">No, throw away these changes</a> (you will be redirected
+<p><a href="[% basepath FILTER none %]index.cgi">No, throw away these changes</a> (you will be redirected
 to the home page).</p>
 
 [% PROCESS global/footer.html.tmpl %]
index 8e79978ba0ebb21f55815a43c9f6e8ab4c7b55f1..cd52ac7b027a5c40dfb39901831f22a5056809b6 100644 (file)
       <section id="header-search-dropdown-saved">
         <header>
           <h3>Saved Searches</h3>
-          <a href="userprefs.cgi?tab=saved-searches">Edit</a>
+          <a href="[% basepath FILTER none %]userprefs.cgi?tab=saved-searches">Edit</a>
         </header>
         <ul role="none">
           [% IF user.showmybugslink %][% filtered_username = user.login FILTER uri %]
-            <li role="none"><a role="option" href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">
+            <li role="none"><a role="option" href="[% basepath FILTER none %][% Param('mybugstemplate').replace('%userid%', filtered_username) %]">
                 My [% terms.Bugs %]</a></li>
           [% END %]
           [% FOREACH q = user.queries %][% IF q.link_in_footer %]
-            <li role="none"><a role="option" href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER uri %]">
+            <li role="none"><a role="option" href="[% basepath FILTER none %]buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER uri %]">
                 [% q.name FILTER html %]</a></li>
           [% END %][% END %]
           [% FOREACH q = user.queries_subscribed %]
-            <li role="none"><a role="option" href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
+            <li role="none"><a role="option" href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
                 [% q.name FILTER uri %]&amp;sharer_id=[% q.user.id FILTER uri %]"
                 title="Shared by [% q.user.identity FILTER html %]">[% q.name FILTER html FILTER no_break %]</a></li>
           [% END %]
index 5db2639813090e17cd3908f377352ce964f93978..a219a0274977bbed9d3e308724904125c2e4792e 100644 (file)
     [% END %]
 
     [%- js_BUGZILLA = {
+            config => {
+                basepath => basepath,
+            }
             user => {
                 # TODO: Move all properties form bug_modal/header.html.tmpl
                 login => user.login,
     <div class="warning">
       <div class="inner">
         <p>
-          Please <a href="userprefs.cgi?tab=mfa">enable two-factor authentication</a>
+          Please <a href="[% basepath FILTER none %]userprefs.cgi?tab=mfa">enable two-factor authentication</a>
           [% IF Param('mfa_group_grace_period') %]
             before <i>[% user.mfa_required_date FILTER time %]</i>.
           [% ELSE %]
 <header id="header" role="banner">
   <div class="inner">
     <h1 id="header-title" class="title"><a href="./" title="Go to home page">[% terms.Bugzilla %]</a></h1>
-    <form role="search" id="header-search" class="quicksearch" action="buglist.cgi" data-no-csrf>
+    <form role="search" id="header-search" class="quicksearch" action="[% basepath FILTER none %]buglist.cgi" data-no-csrf>
       <section class="searchbox-outer dropdown" role="combobox" aria-expanded="false" aria-haspopup="listbox"
                aria-owns="header-search-dropdown">
         <h2>Quick Search</h2>
     <nav id="header-nav">
       <ul class="links">
         <li class="link-browse">
-          <a href="describecomponents.cgi" title="Browse [% terms.bugs %] by component">
+          <a href="[% basepath FILTER none %]describecomponents.cgi" title="Browse [% terms.bugs %] by component">
             <span class="icon" aria-hidden="true"></span>
             <span class="label">Browse</span>
           </a>
         </li>
         <li class="link-search">
-          <a href="query.cgi?format=advanced" title="Search [% terms.bugs %] using various criteria">
+          <a href="[% basepath FILTER none %]query.cgi?format=advanced" title="Search [% terms.bugs %] using various criteria">
             <span class="icon" aria-hidden="true"></span>
             <span class="label">Advanced Search</span>
           </a>
         </li>
         [% IF user.id %]
           <li class="link-file">
-            <a href="enter_bug.cgi" title="File a new [% terms.bug %]">
+            <a href="[% basepath FILTER none %]enter_bug.cgi" title="File a new [% terms.bug %]">
               <span class="icon" aria-hidden="true"></span>
               <span class="label">New [% terms.Bug %]</span>
             </a>
         <ul class="dropdown-content left" id="header-tools-menu" role="menu" style="display:none;">
           [% IF user.id %]
             <li role="presentation">
-              <a href="request.cgi?requester=[% user.login FILTER uri %]&amp;requestee=[% user.login FILTER uri %]&amp;do_union=1&amp;group=type&amp;action=queue" role="menuitem" tabindex="-1">My Requests</a>
+              <a href="[% basepath FILTER none %]request.cgi?requester=[% user.login FILTER uri %]&amp;requestee=[% user.login FILTER uri %]&amp;do_union=1&amp;group=type&amp;action=queue" role="menuitem" tabindex="-1">My Requests</a>
             </li>
           [% END %]
           <li role="presentation">
-            <a href="report.cgi" role="menuitem" tabindex="-1">Reports</a>
+            <a href="[% basepath FILTER none %]report.cgi" role="menuitem" tabindex="-1">Reports</a>
           </li>
           [% IF user.in_group('tweakparams') || user.in_group('editusers') || user.can_bless || user.in_group('disableusers')
                 || (Param('useclassification') && user.in_group('editclassifications'))
                 || user.in_group('editkeywords') || user.in_group('bz_canusewhines')
                 || user.get_products_by_permission("editcomponents").size %]
             <li role="presentation">
-              <a href="admin.cgi" role="menuitem" tabindex="-1">Administration</a>
+              <a href="[% basepath FILTER none %]admin.cgi" role="menuitem" tabindex="-1">Administration</a>
             </li>
           [% END %]
           [% IF Param('docs_urlbase') %]
           </li>
           <li role="separator"></li>
           <li role="presentation">
-            <a href="user_profile?user_id=[% user.id FILTER none %]" role="menuitem" tabindex="-1">My Profile</a>
+            <a href="[% basepath FILTER none %]user_profile?user_id=[% user.id FILTER none %]" role="menuitem" tabindex="-1">My Profile</a>
           </li>
           <li role="presentation">
-            <a href="page.cgi?id=user_activity.html&amp;action=run&amp;who=[% user.login FILTER uri %]" role="menuitem"
+            <a href="[% basepath FILTER none %]page.cgi?id=user_activity.html&amp;action=run&amp;who=[% user.login FILTER uri %]" role="menuitem"
                tabindex="-1">My Activity</a>
           </li>
           <li role="presentation">
-            <a href="userprefs.cgi" role="menuitem" tabindex="-1">Preferences</a>
+            <a href="[% basepath FILTER none %]userprefs.cgi" role="menuitem" tabindex="-1">Preferences</a>
           </li>
           <li role="separator"></li>
           <li role="presentation">
-            <a href="index.cgi?logout=1" role="menuitem" tabindex="-1">Log out</a>
+            <a href="[% basepath FILTER none %]index.cgi?logout=1" role="menuitem" tabindex="-1">Log out</a>
           </li>
           [% IF sudoer %]
             <li role="presentation">
-              <a href="relogin.cgi?action=end-sudo" role="menuitem" tabindex="-1">End sudo session impersonating [% user.login FILTER html %]</a>
+              <a href="[% basepath FILTER none %]relogin.cgi?action=end-sudo" role="menuitem" tabindex="-1">End sudo session impersonating [% user.login FILTER html %]</a>
             </li>
           [% END %]
         </ul>
     [% ELSE %]
       <ul id="header-login" class="links">
         [% IF Param('createemailregexp') && user.authorizer.user_can_create_account %]
-          <li id="moz_new_account_container_top"><a href="createaccount.cgi">New Account</a></li>
+          <li id="moz_new_account_container_top"><a href="[% basepath FILTER none %]createaccount.cgi">New Account</a></li>
         [% END %]
         [% IF user.authorizer.can_login %]
           [% PROCESS "account/auth/login-small.html.tmpl" qs_suffix = "_top" %]
index 278b0f161687a6a5db179f9b351ce38c944a971f..0a7b4ea296e0dbdeec63860cd71617a5baebffe6 100644 (file)
   [% ELSIF message_tag == "buglist_updated_named_query" %]
     [% title = "Search updated" %]
     Your search named <code><a
-     href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER uri %]"
+     href="[% basepath FILTER none %]buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER uri %]"
     >[% queryname FILTER html %]</a></code> has been updated.
 
   [% ELSIF message_tag == "buglist_new_default_query" %]
   [% ELSIF message_tag == "buglist_new_named_query" %]
     [% title = "Search created" %]
     OK, you have a new search named <code><a
-     href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER uri %]"
+     href="[% basepath FILTER none %]buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER uri %]"
     >[% queryname FILTER html %]</a></code>.
 
   [% ELSIF message_tag == "buglist_query_gone" %]
     valid choice for the <em>[% field.description FILTER html %]</em>
     (<em>[% field.name FILTER html %]</em>) field.
     [% IF field.name == "bug_status" %]
-      You should now visit the <a href="editworkflow.cgi">status workflow
+      You should now visit the <a href="[% basepath FILTER none %]editworkflow.cgi">status workflow
       page</a> to include your new [% terms.bug %] status.
     [% END %]
 
   [% ELSIF message_tag == "product_created" %]
     [% title = "Product Created" %]
     The product <em>[% product.name FILTER html %]</em> has been created. You will need to
-    <a href="editcomponents.cgi?action=add&product=[% product.name FILTER uri %]">
+    <a href="[% basepath FILTER none %]editcomponents.cgi?action=add&product=[% product.name FILTER uri %]">
     add at least one component</a> before anyone can enter [% terms.bugs %] against this product.
 
   [% ELSIF message_tag == "product_deleted" %]
 
   [% ELSIF message_tag == "tag_updated" %]
     [% title = "Tag Updated" %]
-    The '<a href="buglist.cgi?tag=[% tag FILTER uri %]">[% tag FILTER html %]</a>'
+    The '<a href="[% basepath FILTER none %]buglist.cgi?tag=[% tag FILTER uri %]">[% tag FILTER html %]</a>'
     tag has been
     [% IF action == "add" %]
       added to
index 51087542295b8934e5497d0e37c50273534b802a..d95ae68dbd3a8d4f367ceefdb84ecdd434d0559d 100644 (file)
 [% cgi = Bugzilla.cgi %]
 
 [% IF NOT (cgi.user_agent("MSIE [1-6]") OR cgi.user_agent("Mozilla/4")) %]
-  <link rel="Top" href="[% urlbase FILTER html %]">
+  <link rel="Top" href="[% basepath FILTER html %]">
 
   [%# *** Attachment *** %]
   [% IF attachment && attachment.bug_id %]
-    <link rel="Up" href="show_bug.cgi?id=[% attachment.bug_id FILTER none %]">
+    <link rel="Up" href="[% basepath FILTER none %]show_bug.cgi?id=[% attachment.bug_id FILTER none %]">
   [% END %]
 
 
   [%# *** Dependencies, Activity, Print-version *** %]
   [% IF bug %]
     <link rel="Show" title="Dependency Tree"
-          href="showdependencytree.cgi?id=[% bug.bug_id %]&amp;hide_resolved=1">
+          href="[% basepath FILTER none %]showdependencytree.cgi?id=[% bug.bug_id %]&amp;hide_resolved=1">
     [% IF Param('webdotbase') %]
       <link rel="Show" title="Dependency Graph"
-            href="showdependencygraph.cgi?id=[% bug.bug_id %]">
+            href="[% basepath FILTER none %]showdependencygraph.cgi?id=[% bug.bug_id %]">
     [% END %]
 
       <link rel="Show" title="[% terms.Bug %] Activity"
-            href="show_activity.cgi?id=[% bug.bug_id %]">
+            href="[% basepath FILTER none %]show_activity.cgi?id=[% bug.bug_id %]">
       <link rel="Show" title="Printer-Friendly Version"
-            href="show_bug.cgi?format=multiple&amp;id=[% bug.bug_id %]">
+            href="[% basepath FILTER none %]show_bug.cgi?format=multiple&amp;id=[% bug.bug_id %]">
   [% END %]
 
 
   [% IF user.showmybugslink %]
     [% user_login = user.login FILTER uri %]
     <link rel="Saved&nbsp;Searches" title="My [% terms.Bugs %]"
-          href="[% Param('mybugstemplate').replace('%userid%', user_login) %]">
+          href="[% basepath FILTER none %][% Param('mybugstemplate').replace('%userid%', user_login) %]">
   [% END %]
 
   [% FOREACH q = user.queries_subscribed %]
     <link rel="Saved&nbsp;Search"
           title="[% q.name FILTER html %] ([% q.user.login FILTER html %])"
-          href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
+          href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
                  [% q.name FILTER uri %]&amp;sharer_id=
                  [% q.user.id FILTER uri %]">
   [% END %]
   [%# *** Bugzilla Administration Tools *** %]
   [% IF user.login %]
     [% '<link rel="Administration" title="Parameters"
-              href="editparams.cgi">' IF user.in_group('tweakparams') %]
+              href="' _ basepath _ 'editparams.cgi">' IF user.in_group('tweakparams') %]
     [% '<link rel="Administration" title="Users"
-              href="editusers.cgi">' IF user.in_group('editusers') || user.in_group('disableusers') %]
-    [% '<link rel="Administration" title="Products" href="editproducts.cgi">'
+              href="' _ basepath _ 'editusers.cgi">' IF user.in_group('editusers') || user.in_group('disableusers') %]
+    [% '<link rel="Administration" title="Products" href="' _ basepath _ 'editproducts.cgi">'
        IF user.in_group('editcomponents') || user.get_products_by_permission("editcomponents").size %]
     [% '<link rel="Administration" title="Flag Types"
-              href="editflagtypes.cgi">' IF user.in_group('editcomponents') %]
+              href="' _ basepath _ 'editflagtypes.cgi">' IF user.in_group('editcomponents') %]
     [% '<link rel="Administration" title="Groups"
-              href="editgroups.cgi">' IF user.in_group('creategroups') %]
+              href="' _ basepath _ 'editgroups.cgi">' IF user.in_group('creategroups') %]
     [% '<link rel="Administration" title="Keywords"
-              href="editkeywords.cgi">' IF user.in_group('editkeywords') %]
+              href="' _ basepath _ 'editkeywords.cgi">' IF user.in_group('editkeywords') %]
     [% '<link rel="Administration" title="Whining"
-              href="editwhines.cgi">' IF user.in_group('bz_canusewhines') %]
+              href="' _ basepath _ 'editwhines.cgi">' IF user.in_group('bz_canusewhines') %]
     [% '<link rel="Administration" title="Sanity Check"
-              href="sanitycheck.cgi">' IF user.in_group('editcomponents') %]
+              href="' _ basepath _ 'sanitycheck.cgi">' IF user.in_group('editcomponents') %]
   [% END %]
 [% END %]
index 53de6a420bdfe53553ed1ce2fed882de5897c5d3..2c9f0153662ada84a9d9b377ff7dca02f49597a0 100644 (file)
     but [% terms.Bugzilla %] is unable to trust your request. Make sure
     your web browser accepts cookies and that you haven't been redirected
     here from an external web site.
-    <a href="index.cgi?GoAheadAndLogIn=1">Click here</a> if you really want
+    <a href="[% basepath FILTER none %]index.cgi?GoAheadAndLogIn=1">Click here</a> if you really want
     to log in.
 
   [% ELSIF error == "auth_invalid_token" %]
     [% 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 <a href="show_bug.cgi?id=
+    first <a href="[% basepath FILTER none %]show_bug.cgi?id=
                    [% bug_id FILTER uri %]&amp;GoAheadAndLogIn=1">log
     in to an account</a> with the appropriate permissions.
 
     the '[% field.description FILTER html %]' field and cannot be deleted
     or disabled.
     [% IF user.in_group('tweakparams') %]
-      You have to <a href="editparams.cgi?section=bugfields#
+      You have to <a href="[% basepath FILTER none %]editparams.cgi?section=bugfields#
       [%- param_name FILTER uri %]">change</a> the default value first.
     [% END %]
 
     [% title = "Cannot Delete Group" %]
     The <em>[% group.name FILTER html %]</em> group cannot be deleted because
     there are
-    <a href="editgroups.cgi?action=del&amp;group=
+    <a href="[% basepath FILTER none %]editgroups.cgi?action=del&amp;group=
              [%- group.id FILTER uri %]">records</a>
     in the database which refer to it. All references to this group must
     be removed before you can remove it.
     has to have at least one active component in order for you to
     enter [% terms.abug %] into it.<br>
     [% IF user.in_group("editcomponents", product.id) %]
-      <a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">Create
+      <a href="[% basepath FILTER none %]editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">Create
       a new component</a>.
     [% ELSE %]
       Please contact [% Param("maintainer") %] and ask them
     [% 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 <a href="query.cgi">search page</a>.
+    again from the <a href="[% basepath FILTER none %]query.cgi">search page</a>.
 
   [% ELSIF error == "missing_datasets" %]
     [% title = "No Datasets Selected" %]
     has to have at least one active version in order for you to
     enter [% terms.abug %] into it.<br>
     [% IF user.in_group("editcomponents", product.id) %]
-      <a href="editversions.cgi?action=add&amp;product=[% product.name FILTER uri %]">Create
+      <a href="[% basepath FILTER none %]editversions.cgi?action=add&amp;product=[% product.name FILTER uri %]">Create
       a new version</a>.
     [% ELSE %]
       Please contact [% Param("maintainer") %] and ask them
       Either you mis-typed the name or that user has not yet registered
       for a [% terms.Bugzilla %] account.
     [% ELSIF class == "Bugzilla::Keyword" %]
-      The legal keyword names are <a href="describekeywords.cgi?show_inactive_keywords=1">listed
+      The legal keyword names are <a href="[% basepath FILTER none %]describekeywords.cgi?show_inactive_keywords=1">listed
       here</a>.
     [% END %]
 
     [% END %]
 
     [% IF locked_user %]
-      You must <a href="token.cgi?a=reqpw&amp;loginname=[% locked_user.email FILTER uri %]&amp;token=[% issue_hash_token(['reqpw']) FILTER uri %]">
+      You must <a href="[% basepath FILTER none %]token.cgi?a=reqpw&amp;loginname=[% locked_user.email FILTER uri %]&amp;token=[% issue_hash_token(['reqpw']) FILTER uri %]">
       request a new password</a> in order to log in again.
     [% END %]
 
     [% title = "Must define new default milestone" %]
     [% admindocslinks = {'products.html' => 'Administering products',
                          'milestones.html' => 'About Milestones'} %]
-    You must <a href="editmilestones.cgi?action=add&amp;product=[% product FILTER uri %]">
+    You must <a href="[% basepath FILTER none %]editmilestones.cgi?action=add&amp;product=[% product FILTER uri %]">
     create the milestone '[% milestone FILTER html %]'</a> before
     it can be made the default milestone for product '[% product FILTER html %]'.
 
 
     [% IF unknown.size %]
       <p>The valid field names are
-        <a href="page.cgi?id=quicksearch.html#fields">listed here</a>.</p>
+        <a href="[% basepath FILTER none %]page.cgi?id=quicksearch.html#fields">listed here</a>.</p>
     [% END %]
 
   [% ELSIF error == "reassign_to_empty" %]
     [% title = "Saved Search In Use" %]
     [% docslinks = {'whining.html' => 'About Whining'} %]
     The saved search <em>[% search_name FILTER html %]</em> is being used
-    by <a href="editwhines.cgi">Whining events</a> with the following subjects:
+    by <a href="[% basepath FILTER none %]editwhines.cgi">Whining events</a> with the following subjects:
     [%+ subjects FILTER html %]
 
   [% ELSIF error == "search_content_without_matches" %]
   [% ELSIF error == "sudo_password_required" %]
     [% title = "Password Required" %]
     Your [% terms.Bugzilla %] password is required to begin a sudo
-    session. Please <a href="relogin.cgi?action=prepare-sudo&amp;target_login=
+    session. Please <a href="[% basepath FILTER none %]relogin.cgi?action=prepare-sudo&amp;target_login=
     [%- target_login FILTER uri %]&amp;reason=
     [%- reason FILTER uri %]">go back</a> and enter your password.
 
   [% ELSIF error == "sudo_preparation_required" %]
     [% title = "Preparation Required" %]
     You may not start a sudo session directly.  Please
-    <a href="relogin.cgi?action=prepare-sudo&amp;target_login=
+    <a href="[% basepath FILTER none %]relogin.cgi?action=prepare-sudo&amp;target_login=
     [%- target_login FILTER uri %]&amp;reason=
     [%- reason FILTER uri %]">start your session normally</a>.
 
                AND !sharer_id %]
   <p>
     Alternatively, you can
-    <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
+    <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
                   [% namedcmd FILTER uri %]">forget</a>
 
     [% FOREACH q = Bugzilla.user.queries %]
       [% IF q.name == namedcmd %]
-        or <a href="query.cgi?[% q.url FILTER html %]">edit</a>
+        or <a href="[% basepath FILTER none %]query.cgi?[% q.url FILTER html %]">edit</a>
       [% END %]
     [% END %]
 
index d6a4f2105c1019032685606ad6b5dbc07b01ca63..0db8ab97e496ccaa717a7ad93901b7a0137af90c 100644 (file)
           </li>
           [% END %]
           <li id="tile-search">
-            <a href="query.cgi">
+            <a href="[% basepath FILTER none %]query.cgi">
               <span class="icon" aria-hidden="true"></span>
               <span class="label">Advanced Search</span>
             </a>
           </li>
           <li id="tile-new-bug">
-            <a href="enter_bug.cgi">
+            <a href="[% basepath FILTER none %]enter_bug.cgi">
               <span class="icon" aria-hidden="true"></span>
               <span class="label">New [% terms.Bug %]</span>
             </a>
           </li>
           [% IF user.id %]
           <li id="tile-prefs">
-            <a href="userprefs.cgi">
+            <a href="[% basepath FILTER none %]userprefs.cgi">
               <span class="icon" aria-hidden="true"></span>
               <span class="label">Preferences</span>
             </a>
           </li>
           [% ELSIF Param('createemailregexp') && user.authorizer.user_can_create_account %]
           <li id="tile-new-account">
-            <a href="createaccount.cgi">
+            <a href="[% basepath FILTER none %]createaccount.cgi">
               <span class="icon" aria-hidden="true"></span>
               <span class="label">New Account</span>
             </a>
@@ -83,7 +83,7 @@
           </li>
           [% END %]
         </ul>
-        <form id="quicksearchForm" name="quicksearchForm" action="buglist.cgi" data-no-csrf>
+        <form id="quicksearchForm" name="quicksearchForm" action="[% basepath FILTER none %]buglist.cgi" data-no-csrf>
           <div>
             <input id="quicksearch_main" type="text" name="quicksearch" autofocus
               placeholder="Enter [% terms.abug %] number or some search terms"
             <input id="find" type="submit" value="Quick Search">
             <ul class="additional_links" id="quicksearch_links">
               <li>
-                <a href="page.cgi?id=quicksearch.html">Quick Search help</a>
+                <a href="[% basepath FILTER none %]page.cgi?id=quicksearch.html">Quick Search help</a>
               </li>
               <li class="bz_default_hidden" id="quicksearch_plugin">
                 |
-                <a href="javascript:window.external.AddSearchProvider('[% urlbase FILTER html %]search_plugin.cgi')">
+                <a href="javascript:window.external.AddSearchProvider('[% basepath FILTER html %]search_plugin.cgi')">
                  Install the Quick Search plugin
                 </a>
               </li>
             </ul>
             <ul class="additional_links">
               <li>
-                <a href="page.cgi?id=etiquette.html">[%- terms.Bugzilla %] Etiquette</a>
+                <a href="[% basepath FILTER none %]page.cgi?id=etiquette.html">[%- terms.Bugzilla %] Etiquette</a>
               </li>
               <li>
                 | <a href="https://developer.mozilla.org/docs/Mozilla/QA/Bug_writing_guidelines">[%- terms.Bug %] Writing Guidelines</a>
index 418bf09c840ac4dc67af6fe3fdeff4e878958924..967a4638a4974f39c10e5e4b61c76badd671f528 100644 (file)
@@ -51,7 +51,7 @@
   [% available_columns.$column_desc = column %]
 [% END %]
 
-<form name="changecolumns" action="colchange.cgi" onsubmit="change_submit();" data-no-csrf>
+<form name="changecolumns" action="[% basepath FILTER none %]colchange.cgi" onsubmit="change_submit();" data-no-csrf>
   <input type="hidden" name="rememberedquery" value="[% buffer FILTER html %]">
     <table>
       <tr>
index ada635b0971342c3c334300732f59ec03b4a3323..1128a5e8ece6d968d2d64ed676b7c368b9f79fa6 100644 (file)
 
       [% INCLUDE "bug/field-label.html.tmpl"
          field = bug_fields.keywords, editable = 1
-         desc_url = "describekeywords.cgi"
+         desc_url = basepath _ "describekeywords.cgi"
       %]
       <td colspan="3">
         [% INCLUDE bug/field.html.tmpl
index fe4354a6104462832ee14a0570cceb8751c25686..3053e2f73f1b2807e6fe1c29eeff9cf846391b76 100644 (file)
@@ -76,7 +76,7 @@
   [% 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." %]
     <span class="bz_quip">
-      <a href="quips.cgi"><em>[% quip FILTER html %]</em></a>
+      <a href="[% basepath FILTER none %]quips.cgi"><em>[% quip FILTER html %]</em></a>
     </span>
   [% END %]
 
 [%############################################################################%]
 
 [% IF dotweak %]
-  <form name="changeform" method="post" action="process_bug.cgi">
+  <form name="changeform" method="post" action="[% basepath FILTER none %]process_bug.cgi">
 [% END %]
 
 [%############################################################################%]
   <ul class="zero_result_links">
     <li>[% PROCESS enter_bug_link %]</li>
     [% IF one_product.defined %]
-      <li><a href="enter_bug.cgi">File a new [% terms.bug %] in a
+      <li><a href="[% basepath FILTER none %]enter_bug.cgi">File a new [% terms.bug %] in a
         different product</a></li>
     [% END %]
     <li><a href="[% PROCESS edit_search_url %]">Edit this search</a></li>
-    <li><a href="query.cgi">Start a new search</a></li>
+    <li><a href="[% basepath FILTER none %]query.cgi">Start a new search</a></li>
   </ul>
 [% END %]
 
   <tr>
     [% IF bugs.size > 0 %]
       <td valign="middle" class="bz_query_buttons">
-        <form method="post" action="show_bug.cgi" data-no-csrf>
+        <form method="post" action="[% basepath FILTER none %]show_bug.cgi" data-no-csrf>
           [% FOREACH id = buglist %]
             <input type="hidden" name="id" value="[% id FILTER html %]">
           [% END %]
           <input type="hidden" name="format" value="multiple">
           <input type="submit" id="long_format" value="Long Format">
         </form>
-        <form method="post" action="show_bug.cgi" data-no-csrf>
+        <form method="post" action="[% basepath FILTER none %]show_bug.cgi" data-no-csrf>
             <input type="hidden" name="ctype" value="xml">
           [% FOREACH id = buglist %]
             <input type="hidden" name="id" value="[% id FILTER html %]">
         </form>
 
         [% IF user.is_timetracker %]
-          <form method="post" action="summarize_time.cgi" data-no-csrf>
+          <form method="post" action="[% basepath FILTER none %]summarize_time.cgi" data-no-csrf>
             <input type="hidden" name="id" value="[% buglist_joined FILTER html %]">
             <input type="submit" id="timesummary" value="Time Summary">
           </form>
             <small>
               Time Summary will only include the [% terms.bugs %] shown above. In order to
               to see a time summary for all [% terms.bugs %] found by the search, you can
-              <a href="buglist.cgi?[% urlquerypart FILTER html %]
+              <a href="[% basepath FILTER none %]buglist.cgi?[% urlquerypart FILTER html %]
                        [%- "&order=$qorder" FILTER html IF order %]&limit=0">
                 Show all search results</a>.</small>
           [% END %]
       [%# Links to more things users can do with this bug list. %]
       [% Hook.process("links") %]
 
-      <a href="buglist.cgi?
+      <a href="[% basepath FILTER none %]buglist.cgi?
       [% urlquerypart FILTER html %]&amp;ctype=csv&amp;human=1
         [%~ IF searchname %]&amp;namedcmd=[% searchname FILTER uri %][% END %]">CSV</a> |
-      <a href="buglist.cgi?
+      <a href="[% basepath FILTER none %]buglist.cgi?
       [% urlquerypart FILTER html %]&amp;title=
       [%- title FILTER uri %]&amp;ctype=atom">Feed</a> |
-      <a href="buglist.cgi?
+      <a href="[% basepath FILTER none %]buglist.cgi?
       [% urlquerypart FILTER html %]&amp;ctype=ics">iCalendar</a>
 
       [% IF bugs.size > 0 %]
         <br>
-        <a href="colchange.cgi?
+        <a href="[% basepath FILTER none %]colchange.cgi?
         [% urlquerypart FILTER html %]&amp;query_based_on=
           [% defaultsavename OR searchname FILTER uri %]">Change&nbsp;Columns</a>
 
         [% IF bugs.size > 1 && caneditbugs && !dotweak %]
-          | <a href="buglist.cgi?[% urlquerypart FILTER html %]
+          | <a href="[% basepath FILTER none %]buglist.cgi?[% urlquerypart FILTER html %]
             [%- "&order=$qorder" FILTER html IF order %]&amp;tweak=1"
             >Change&nbsp;Several&nbsp;[% terms.Bugs %]&nbsp;at&nbsp;Once</a>
         [% END %]
     [% IF searchtype == "saved" %]
       <td valign="middle" nowrap="nowrap" class="bz_query_forget">
         |
-        <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
+        <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
                 [% searchname FILTER uri %]&amp;token=
                 [% issue_hash_token([search_id, searchname]) FILTER uri %]">
           Forget&nbsp;Search&nbsp;'[% searchname FILTER html %]'</a>
       <td>&nbsp;</td>
 
       <td valign="middle" class="bz_query_remember">
-        <form method="get" action="buglist.cgi">
+        <form method="get" action="[% basepath FILTER none %]buglist.cgi">
           <input type="submit" id="remember" value="Remember search"> as
           <input type="hidden" name="newquery"
                  value="[% urlquerypart FILTER html %][% "&order=$qorder" FILTER html IF order %]">
 
 [% BLOCK edit_search_url %]
   [% editqueryname = searchname OR defaultsavename OR '' %]
-  query.cgi?[% urlquerypart FILTER html %]
+  [% basepath FILTER none %]query.cgi?[% urlquerypart FILTER html %]
     [%- IF editqueryname != '' %]&amp;known_name=
       [%- editqueryname FILTER uri %]
     [% END %]
 [% END %]
 
 [% BLOCK enter_bug_link %]
-  <a href="enter_bug.cgi
+  <a href="[% basepath FILTER none %]enter_bug.cgi
            [%- IF one_product.defined %]?product=
              [%- one_product.name FILTER uri %][% END %]">File
     a new [% terms.bug %]
     [% ELSIF default_limited AND bugs.size >= Param('default_search_limit') %]
       This result was limited to [% Param('default_search_limit') FILTER html %]
       [%+ terms.bugs %].
-      <a href="buglist.cgi?[% urlquerypart FILTER html %]
+      <a href="[% basepath FILTER none %]buglist.cgi?[% urlquerypart FILTER html %]
               [%- "&order=$qorder" FILTER html IF order %]&limit=0">See
         all search results for this query</a>.
       [% time_summary_limited = 1 %]
     [% IF elastic %]
       <br>
       ElasticSearch took [% elastic_query_time FILTER html %] seconds.
-      <a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;elastic=0">Try without ElasticSearch</a>
+      <a href="[% basepath FILTER none %]buglist.cgi?[% urlquerypart FILTER html %]&amp;elastic=0">Try without ElasticSearch</a>
     [% ELSIF was_elastic %]
       <br>
       Search took [% query_time FILTER html %] seconds.
index 2f9cac9b8cf46ed9b9caa0726c73da5270750346..1dee84b60611b81577ba9dbe80dd4847dc4959e6 100644 (file)
@@ -71,7 +71,7 @@
     [% END %]
   </p>
 
-  <form method="post" action="quips.cgi">
+  <form method="post" action="[% basepath FILTER none %]quips.cgi">
     <input type="hidden" name="action" value="add">
     <input type="hidden" name="token"
            value="[% issue_hash_token(['create-quips']) FILTER html %]">
       If the parameter 'quip_list_entry_control' is set to <q>open</q>,
       entered quips are automatically approved.
     </p>
-    <form name="editform" method="post" action="quips.cgi">
+    <form name="editform" method="post" action="[% basepath FILTER none %]quips.cgi">
       <input type="hidden" name="action" value="approve">
       <input type="hidden" name="token"
              value="[% issue_hash_token(['approve-quips']) FILTER html %]">
               [% "Unknown" IF NOT users.$userid %]
             </td>
             <td>
-              <a href="quips.cgi?action=delete&amp;quipid=[% quipid FILTER uri %]&amp;token=
+              <a href="[% basepath FILTER none %]quips.cgi?action=delete&amp;quipid=[% quipid FILTER uri %]&amp;token=
                  [%- issue_hash_token(['quips', quipid]) FILTER uri %]">
                 Delete
               </a>
 [% ELSE %]
   <p>
     Those who like their wisdom in large doses can
-    <a href="quips.cgi?action=show">view
+    <a href="[% basepath FILTER none %]quips.cgi?action=show">view
     [% IF user.in_group('bz_quip_moderators') %]
       and edit
     [% END %]
index 2453c377494ccf9059ea22d009e78841d7ac513a..c4a853624d2cf84919bc3a29c6e18ec5d709fb5d 100644 (file)
@@ -91,7 +91,7 @@
       [% END %]
       <th colspan="[% splitheader ? 2 : 1 %]" class="first-child
                    sorted_[% lsearch(order_columns, 'bug_id') FILTER html %]">
-        <a href="buglist.cgi?
+        <a href="[% basepath FILTER none %]buglist.cgi?
                   [% urlquerypart FILTER html %]&amp;order=
                   [% PROCESS new_order id='bug_id' %]
                   [%-#%]&amp;query_based_on=
   <th colspan="[% splitheader ? 2 : 1 %]"
       class="sortable_column_[% key FILTER html %]
              sorted_[% lsearch(order_columns, id) FILTER html %]">
-    <a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;order=
+    <a href="[% basepath FILTER none %]buglist.cgi?[% urlquerypart FILTER html %]&amp;order=
       [% PROCESS new_order %]
       [%-#%]&amp;query_based_on=
       [% defaultsavename OR searchname FILTER uri %]">
     </td>
     [% END %]
     <td class="first-child bz_id_column">
-      <a href="show_bug.cgi?id=[% bug.bug_id %]">[% bug.bug_id %]</a>
+      <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id %]">[% bug.bug_id %]</a>
       <span style="display: none">[%+ '[SEC]' IF bug.secure_mode %]</span>
     </td>
 
         [% bug.${login_column}.truncate(col_abbrev.maxlength,
                                         col_abbrev.ellipsis) FILTER html %]
       [% ELSIF column == 'short_desc' || column == "short_short_desc" %]
-        <a href="show_bug.cgi?id=[% bug.bug_id FILTER html %]">
+        <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.bug_id FILTER html %]">
           [%- bug.$column.truncate(col_abbrev.maxlength, col_abbrev.ellipsis) FILTER html FILTER wbr -%]
         </a>
       [% ELSIF bug_fields.$column.type == constants.FIELD_TYPE_BUG_ID %]
-        <a href="show_bug.cgi?id=[% bug.$column FILTER html %]">
+        <a href="[% basepath FILTER none %]show_bug.cgi?id=[% bug.$column FILTER html %]">
           [%- bug.$column.truncate(col_abbrev.maxlength, col_abbrev.ellipsis) FILTER html -%]
         </a>
       [% ELSE %]
index da945244d2ca64960dedcfc1b32c6ac8151dfc6c..0fc549f49fa5621156813d4953d4f7a8744e4659 100644 (file)
@@ -8,5 +8,5 @@
 
 [% RETURN UNLESS user.mfa %]
 
-<img src="images/mfa.png" class="mfa-protected" width="16" height="16"
+<img src="[% basepath FILTER none %]images/mfa.png" class="mfa-protected" width="16" height="16"
      alt="2FA" title="Protected by Two-factor Authentication">
index e422f4bb1acff16c58a5dbad8d5821abb9cc984d..3d1f4cf34ccc19ccc4c61ca62ff5a1d2dc7e6a2d 100644 (file)
@@ -50,7 +50,7 @@
   software, to see whether it has already been fixed.
   </li>
 
-  <li><a href="query.cgi?format=specific">Search</a>
+  <li><a href="[% basepath FILTER none %]query.cgi?format=specific">Search</a>
   [% terms.Bugzilla %], to see whether your [% terms.bug %] has
   already been reported.</li>
 </ol>
@@ -62,7 +62,7 @@ no-one else appears to have reported it, then:</p>
 
 <ol>
  <li>Choose
- "<a href="enter_bug.cgi">Enter a new [% terms.bug %]</a>"</li>
+ "<a href="[% basepath FILTER none %]enter_bug.cgi">Enter a new [% terms.bug %]</a>"</li>
  <li>Select the product in which you've found the [% terms.bug %]</li>
  <li>Fill out the form. Here is some help understanding it:</li>
 </ol>
index b936e8645123e6f04b465603e968eae8ac239478..268fc5103ddd41cd34fb5cd18eb58f1b18b3016e 100644 (file)
@@ -28,7 +28,7 @@
   URLs, email addresses and so on will be replaced with appropriate HTML links.
 </p>
 
-<form action="page.cgi" method="post">
+<form action="[% basepath FILTER none %]page.cgi" method="post">
   [% INCLUDE global/textarea.html.tmpl
     name    = 'text'
     minrows = 20
index a954da9f33d70f23fc82d327749dff90dcc50484..6765cce63864daa2fed88ad7c78eeaa54954c27a 100644 (file)
@@ -30,7 +30,7 @@
 
 <p>Type in one or more words (or pieces of words) to search for:</p>
 
-<form name="f" action="buglist.cgi" method="get"
+<form name="f" action="[% basepath FILTER none %]buglist.cgi" method="get"
       class='quicksearch_check_empty' data-no-csrf>
   <input type="text" size="40" name="quicksearch">
   <input type="submit" value="Search" id="find">
 
 <p>It is pretty easy to write rather complex queries without too much effort.
   For very complex queries, you have to use the
-  <a href="query.cgi?format=advanced">Advanced Search</a> form.</p>
+  <a href="[% basepath FILTER none %]query.cgi?format=advanced">Advanced Search</a> form.</p>
 
 <ul class="qs_help">
   <li>All [% terms.bugs %] reported by userA@company.com or assigned to him
index 9bdc1ed8dab886071958753453775414c10c982d..6b54df130a77fce7b87e2a18ce3f7de37327af18 100644 (file)
     <kbd>text/plain</kbd> attachments as HTML.</li>
   <li>If you receive a Whine mail that is empty, there will now be a brief
     message explaining that your search found no results.</li>
-  <li>The <a href="page.cgi?id=fields.html">Field Help Page</a> now
+  <li>The <a href="[% basepath FILTER none %]page.cgi?id=fields.html">Field Help Page</a> now
     contains a description of every single field that can be on
     [%+ terms.abug %] in [% terms.Bugzilla %].</li>
 </ul>
 
 <h2 id="v40_previous">Release Notes For Previous Versions</h2>
 
-<p><a href="page.cgi?id=release-notes3.html">Release Notes for
+<p><a href="[% basepath FILTER none %]page.cgi?id=release-notes3.html">Release Notes for
   [%+ terms.Bugzilla %] 3.x and Earlier</a></p>
 
 [% INCLUDE global/footer.html.tmpl %]
index ae0ed36e89ef36fce9e46d9f04424bec66a563f0..0ce114e264473bd1d17c1637353a2522c041bd9a 100644 (file)
@@ -27,7 +27,7 @@
 <h3>Release Notes For Newer Versions</h3>
 
 <p>Release notes for versions of [% terms.Bugzilla %] of the 4.x series are
-  available <a href="page.cgi?id=release-notes.html">here</a>.</p>
+  available <a href="[% basepath FILTER none %]page.cgi?id=release-notes.html">here</a>.</p>
 
 <h1>[% title FILTER html %]</h1>
 
   [%+ terms.Bugzilla %] and in the header/footer of every page
   is now simplified and made more powerful. There is a
   <kbd>[?]</kbd> link next to the box that will take you to
-  the simplified <a href="page.cgi?id=quicksearch.html">Quicksearch Help</a>,
+  the simplified <a href="[% basepath FILTER none %]page.cgi?id=quicksearch.html">Quicksearch Help</a>,
   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.</p>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621">
     [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is
     in use on [% terms.bugs %], you will need to rebuild the "keyword cache"
-    by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing
+    by running <a href="[% basepath FILTER none %]sanitycheck.cgi">sanitycheck.cgi</a> and choosing
     the option to rebuild the cache when it asks. Otherwise keywords may
     not show up properly in search results.</li>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
     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
-    <a href="editfields.cgi">editfields.cgi</a>.
+    <a href="[% basepath FILTER none %]editfields.cgi">editfields.cgi</a>.
     (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=525025">[% terms.Bug %] 525025</a>)
   </li>
   <li>Clicking "submit only my comment" on the "mid-air collisions" page
   background. This requires the administrator to run a daemon
   that comes with [% terms.Bugzilla %], named
   <a href="[% docs_urlbase FILTER html %]api/jobqueue.html">jobqueue.pl</a>,
-  and to enable the <a href="editparams.cgi?section=mta#use_mailer_queue">
+  and to enable the <a href="[% basepath FILTER none %]editparams.cgi?section=mta#use_mailer_queue">
   use_mailer_queue</a> parameter.</p>
 
 <p>Using the background email-sending daemon instead of sending mail directly
   other installation.</p>
 
 <p>If your installation does not need this field, you can hide it by disabling
-  the <a href="editparams.cgi?section=bugfields#use_see_also">use_see_also
+  the <a href="[% basepath FILTER none %]editparams.cgi?section=bugfields#use_see_also">use_see_also
   parameter</a>.</p>
 
 <h3 id="v34_feat_cols">Re-order Columns in Search Results</h3>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621">
     [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is
     in use on [% terms.bugs %], you will need to rebuild the "keyword cache"
-    by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing
+    by running <a href="[% basepath FILTER none %]sanitycheck.cgi">sanitycheck.cgi</a> and choosing
     the option to rebuild the cache when it asks. Otherwise keywords may
     not show up properly in search results.</li>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
   <li>We no longer delete environment variables like <kbd>$ENV{PATH}</kbd>
     automatically unless we're actually running in taint mode.</li>
   <li>We are now using YUI 2.6.0.</li>
-  <li>In <a href="config.cgi?ctype=rdf">the RDF format of config.cgi</a>,
+  <li>In <a href="[% basepath FILTER none %]config.cgi?ctype=rdf">the RDF format of config.cgi</a>,
     the "resource" attribute for flags now contains "flag.cgi" instead
     of "flags.cgi".</li>
 </ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621">
     [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is
     in use on [% terms.bugs %], you will need to rebuild the "keyword cache"
-    by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing
+    by running <a href="[% basepath FILTER none %]sanitycheck.cgi">sanitycheck.cgi</a> and choosing
     the option to rebuild the cache when it asks. Otherwise keywords may
     not show up properly in search results.</li>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=89822">
 <p>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
-  <a href="page.cgi?id=quicksearch.html">QuickSearch syntax</a>.</p>
+  <a href="[% basepath FILTER none %]page.cgi?id=quicksearch.html">QuickSearch syntax</a>.</p>
 
 <h3 id="v30_feat_other">Other Enhancements and Changes</h3>
 
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=69621">
     [%- terms.Bug %] 69621</a>: If you rename or remove a keyword that is
     in use on [% terms.bugs %], you will need to rebuild the "keyword cache"
-    by running <a href="sanitycheck.cgi">sanitycheck.cgi</a> and choosing
+    by running <a href="[% basepath FILTER none %]sanitycheck.cgi">sanitycheck.cgi</a> and choosing
     the option to rebuild the cache when it asks. Otherwise keywords may
     not show up properly in search results.</li>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=99215">
index 256458a68ceaf8b39bebd3785e42ed1e176ad6c4..a7006aa7032e904a679cae327eac68ee491f2003 100644 (file)
@@ -33,7 +33,7 @@
 
 <div align="center">
 
-  [% imageurl = BLOCK %]chart.cgi?
+  [% imageurl = BLOCK %][% basepath FILTER none %]chart.cgi?
     [% imagebase FILTER html %]&amp;ctype=png&amp;action=plot&amp;width=
     [% width %]&amp;height=[% height -%]
   [% END %]
@@ -55,9 +55,9 @@
   </p>
 
   <p>
-    <a href="chart.cgi?
+    <a href="[% basepath FILTER none %]chart.cgi?
       [% imagebase FILTER html %]&amp;ctype=csv&amp;action=plot">CSV</a> |
-    <a href="chart.cgi?[% imagebase FILTER html %]&amp;action=assemble">Edit
+    <a href="[% basepath FILTER none %]chart.cgi?[% imagebase FILTER html %]&amp;action=assemble">Edit
     this chart</a>
   </p>
 
index f8b0f3f8057880dbbfc1ab3c30429bf6be1e61f5..5df08277e8d531ea473452aac7bb5299dc336342 100644 (file)
@@ -70,7 +70,7 @@
 [% BLOCK describe_comp %]
   <section id="[% comp.name FILTER html %]" class="component[%- IF comp.name == component_mark %] highlight[% END %]">
     <header>
-      <h2><a href="buglist.cgi?product=[%- product.name FILTER uri %]&amp;component=
+      <h2><a href="[% basepath FILTER none %]buglist.cgi?product=[%- product.name FILTER uri %]&amp;component=
                    [%- comp.name FILTER uri %]&amp;resolution=---">[% comp.name FILTER html %]</a></h2>
     </header>
     <div>
index 58a69b7e05f4a89f6effb725d6a39fef1b96b78f..0b69a482cb2cfef70ab837ce1331286961bdbc7d 100644 (file)
@@ -68,7 +68,7 @@ document.addEventListener("DOMContentLoaded", function(event) {
 
 [% gttext = "Grand Total" %]
 
-<form method="get" action="chart.cgi" name="chartform">
+<form method="get" action="[% basepath FILTER none %]chart.cgi" name="chartform">
 
   <table cellpadding="2" cellspacing="2" border="0">
     [% IF NOT category OR category.size == 0 %]
@@ -180,12 +180,12 @@ document.addEventListener("DOMContentLoaded", function(event) {
 
             <td align="center">
               [% IF user.id == series.creator_id OR user.in_group("admin") %]
-               <a href="chart.cgi?action=edit&amp;series_id=
+               <a href="[% basepath FILTER none %]chart.cgi?action=edit&amp;series_id=
                        [% series.series_id %]">Edit</a> |
-               <a href="chart.cgi?action=confirm-delete&amp;series_id=
+               <a href="[% basepath FILTER none %]chart.cgi?action=confirm-delete&amp;series_id=
                        [%- series.series_id %]">Delete</a> |
               [% END %]
-              <a href="buglist.cgi?cmdtype=dorem&amp;namedcmd=
+              <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;namedcmd=
                 [% series.category FILTER uri %]%20/%20
                 [% series.subcategory FILTER uri %]%20/%20
                 [% series.name FILTER uri -%]&amp;series_id=
@@ -260,7 +260,7 @@ document.addEventListener("DOMContentLoaded", function(event) {
     or start with a clean slate.
   </p>
 
-  <form action="chart.cgi" id="create_series" name="create_series" method="GET">
+  <form action="[% basepath FILTER none %]chart.cgi" id="create_series" name="create_series" method="GET">
     <input type="hidden" name="action" value="convert_search">
     <label for="series_from_search">Based on:</label>
     <select id="series_from_search" name="series_from_search">
index a25cd1ea5fc131bcd59f0ada248203e372919c5b..954c4eb3d6473021ba6c286738f98bfbf838c062 100644 (file)
@@ -51,9 +51,9 @@
 <p class="areyoureallyreallysure">Are you sure you want to delete this series?</p>
 
 <p>
-  <a href="chart.cgi?action=delete&amp;series_id=[% series.series_id FILTER html %]&amp;token=
+  <a href="[% basepath FILTER none %]chart.cgi?action=delete&amp;series_id=[% series.series_id FILTER html %]&amp;token=
            [%- issue_hash_token([series.id, series.name]) FILTER uri %]">Yes, delete</a> |
-  <a href="chart.cgi">No, go back to the charts page</a>
+  <a href="[% basepath FILTER none %]chart.cgi">No, go back to the charts page</a>
 </p>
 
 [% PROCESS global/footer.html.tmpl %]
index 8d27bb9765f19392fd4ea4fa91222d66c3811623..6ac325f03438ff1210d11a9e1c77667e2c5c3686 100644 (file)
@@ -80,7 +80,7 @@
             [% column.reverse_sort = reverse ? 0 : 1 %]
           [% END %]
           <th class="[% column.name FILTER html %]">
-            <a href="duplicates.cgi?sortby=[% column.name FILTER uri %]
+            <a href="[% basepath FILTER none %]duplicates.cgi?sortby=[% column.name FILTER uri %]
                      [% IF column.reverse_sort.defined %]
                       [%- %]&amp;reverse=[% column.reverse_sort FILTER uri %]
                      [% END %]
index f95fe3762a5addf6d6ae5492a21dcf4bebd68580..64c38eb92653fe11536870ba8f083db8129e4e0f 100644 (file)
@@ -60,7 +60,7 @@
 
 <h3 id="params">Change Parameters</h3>
 
-<form method="get" action="duplicates.cgi" data-no-csrf>
+<form method="get" action="[% basepath FILTER none %]duplicates.cgi" data-no-csrf>
   <input type="hidden" name="sortby" value="[% sortby FILTER html %]">
   <input type="hidden" name="reverse" value="[% reverse FILTER html %]">
   <input type="hidden" name="bug_id" value="[% bug_ids_string FILTER html %]">
   <input type="submit" id="change" value="Change">
 </form>
 
-<form method="post" action="buglist.cgi" data-no-csrf>
+<form method="post" action="[% basepath FILTER none %]buglist.cgi" data-no-csrf>
   <input type="hidden" name="bug_id" value="[% bug_ids_string FILTER html %]">
   Or just give this to me as a <input type="submit" id="list"
                                       value="[% terms.bug %] list">.
   <li>If your problem not listed:</li>
 
   <ul>
-    <li><a href="query.cgi">Try and locate a similar [% terms.bug %]</a>
+    <li><a href="[% basepath FILTER none %]query.cgi">Try and locate a similar [% terms.bug %]</a>
       that has already been filed.</li>
     <li>If you find your [% terms.bug %] in [% terms.Bugzilla %],
       feel free to comment with any new or additional data you may have.</li>
     <li>If you cannot find your problem already documented in
       [%+ terms.Bugzilla %],
-      <a href="enter_bug.cgi">file a new [% terms.bug %]</a>.</li>
+      <a href="[% basepath FILTER none %]enter_bug.cgi">file a new [% terms.bug %]</a>.</li>
   </ul>
 </ul>
 
index 3169d3c9308cdfc6a578e788a5762593ec7ed11a..e746d31fc6bddbd273574dfd9fec7eac8f9cfd2a 100644 (file)
@@ -35,7 +35,7 @@
   </p>
 [% END %]
 
-<form method="get" action="chart.cgi" name="chartform">
+<form method="get" action="[% basepath FILTER none %]chart.cgi" name="chartform">
 
   [% PROCESS reports/series.html.tmpl
      button_name = "Change Data Set" %]
@@ -63,9 +63,9 @@ set.
 </p>
 
 <p>
-  <a href="query.cgi?[% default.query FILTER html %]">View
+  <a href="[% basepath FILTER none %]query.cgi?[% default.query FILTER html %]">View
     series search parameters</a> |
-  <a href="buglist.cgi?cmdtype=dorem&amp;namedcmd=
+  <a href="[% basepath FILTER none %]buglist.cgi?cmdtype=dorem&amp;namedcmd=
     [% default.category FILTER uri %]-
     [% default.subcategory FILTER uri %]-
     [% default.name FILTER uri %]&amp;remaction=runseries&amp;series_id=
index 491bac78e6527e3e91641089f3775662ba7c19db..e725677bba96095199ca9a864816a7b7f3c28178 100644 (file)
@@ -57,7 +57,7 @@
 </script>
 
 <p>
-  <a href="[% urlbase FILTER html %]?show_inactive_keywords=[% show_inactive_keywords ? "1" : "0" FILTER none %]"
+  <a href="[% basepath FILTER html %]?show_inactive_keywords=[% show_inactive_keywords ? "1" : "0" FILTER none %]"
      id="keywords_show_hide">[% show_inactive_keywords ? "Show" : "Hide" FILTER html %] inactive keywords</a>
 </p>
 
@@ -80,7 +80,7 @@
     <td>[% keyword.is_active ? "Yes" : "No" FILTER html %]</td>
     <td align="center">
       [% IF keyword.bug_count > 0 %]
-        <a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]&amp;resolution=---">
+        <a href="[% basepath FILTER none %]buglist.cgi?keywords=[% keyword.name FILTER uri %]&amp;resolution=---">
           Search</a>
       [% ELSE %]
         none
@@ -88,7 +88,7 @@
     </td>
     <td align="right">
       [% IF keyword.bug_count > 0 %]
-        <a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]">
+        <a href="[% basepath FILTER none %]buglist.cgi?keywords=[% keyword.name FILTER uri %]">
           [% keyword.bug_count %]</a>
       [% ELSE %]
         none
 
 [% IF caneditkeywords %]
   <p>
-    <a href="editkeywords.cgi">Edit keywords</a>.
+    <a href="[% basepath FILTER none %]editkeywords.cgi">Edit keywords</a>.
   </p>
 [% END %]
 
index f5e9c4664e1595e90fa80b43c20326d8fca18d72..8951d3a2bb0f8602ad483251dfbe4a2d87b3978b 100644 (file)
 
 <ul>
   <li id="report_search">
-    <strong><a href="query.cgi">Search</a></strong> -
+    <strong><a href="[% basepath FILTER none %]query.cgi">Search</a></strong> -
     list sets of [% terms.bugs %].
   </li>
   <li id="report_tabular">
     <strong>
-      <a href="query.cgi?format=report-table">Tabular reports</a>
+      <a href="[% basepath FILTER none %]query.cgi?format=report-table">Tabular reports</a>
     </strong> -
     tables of [% terms.bug %] counts in 1, 2 or 3 dimensions, as HTML or CSV.
   </li>
   [% IF feature_enabled('graphical_reports') %]
     <li id="report_graphical">
       <strong>
-        <a href="query.cgi?format=report-graph">Graphical reports</a>
+        <a href="[% basepath FILTER none %]query.cgi?format=report-graph">Graphical reports</a>
       </strong> -
       line graphs, bar and pie charts.
     </li>
   [% END %]
   <li id="report_duplicates">
-    <strong><a href="duplicates.cgi">Duplicates</a></strong> -
+    <strong><a href="[% basepath FILTER none %]duplicates.cgi">Duplicates</a></strong> -
     list of most frequently reported [% terms.bugs %].
   </li>
   [% Hook.process('current_state') %]
   <ul>
     [% IF feature_enabled('old_charts') %]
       <li id="old_charts">
-        <strong><a href="reports.cgi">Old Charts</a></strong> -
+        <strong><a href="[% basepath FILTER none %]reports.cgi">Old Charts</a></strong> -
         plot the status and/or resolution of [% terms.bugs %] against
         time, for each product in your database.
       </li>
     [% END %]
     [% IF feature_enabled('new_charts') AND user.in_group(Param("chartgroup")) %]
       <li id="new_charts">
-        <strong><a href="chart.cgi">New Charts</a></strong> -
+        <strong><a href="[% basepath FILTER none %]chart.cgi">New Charts</a></strong> -
         plot any arbitrary search against time. Far more powerful.
       </li>
     [% END %]
index 38e17121b35626201010c7631e1d6367e2086d7a..8558f38d9d6345cd3aa50f5c0c8f99e04415578b 100644 (file)
@@ -32,7 +32,7 @@
     <img src="[% url_image FILTER html %]">
     <br clear="both">
   [% ELSE %]
-    <form id="choose_product" method="get" action="reports.cgi" data-no-csrf>
+    <form id="choose_product" method="get" action="[% basepath FILTER none %]reports.cgi" data-no-csrf>
       <table border="1" cellpadding="5" cellspacing="2">
         <tr>
           <th>Product:</th>
index af2eef5f3014907b030c41ba44bc22ee6604817e..4b3ec4881bc8b645e0d7c2ef3f35d57551ab2cf3 100644 (file)
@@ -37,7 +37,7 @@
 [% col_field_disp = field_descs.$col_field || col_field %]
 [% row_field_disp = field_descs.$row_field || row_field %]
 
-[% urlbase = BLOCK %]buglist.cgi?[% buglistbase FILTER html %][% END %]
+[% urlbase = BLOCK %][% basepath FILTER none %]buglist.cgi?[% buglistbase FILTER html %][% END %]
 [% IF tbl == "-total-" %]
   [% IF tbl_vals %]
     [% urlbase = urlbase _ "&amp;" _ tbl_vals %]
index 8c580fd9402274c59859bc08a17039df68687cbd..9d864ba589b9202d4af652c6c410e9898cb55f6b 100644 (file)
                        { name => "line",  description => "Line" },
                        { name => "table", description => "Table" } ] %]
 
-        [% formaturl = "report.cgi?$switchbase&amp;width=$width" _
+        [% formaturl = basepath _ "report.cgi?$switchbase&amp;width=$width" _
                        "&amp;height=$height&amp;action=wrap" %]
         [% FOREACH other_format = formats %]
           [% NEXT IF other_format.name == "pie" AND row_field AND col_field %]
 
   <p>
     [% IF format == "table" %]
-      <a href="query.cgi?[% switchbase %]&amp;format=report-table">Edit
+      <a href="[% basepath FILTER none %]query.cgi?[% switchbase %]&amp;format=report-table">Edit
       this report</a>
     [% ELSE %]
-      <a href="query.cgi?[% switchbase %]&amp;chart_format=
+      <a href="[% basepath FILTER none %]query.cgi?[% switchbase %]&amp;chart_format=
         [% format FILTER uri %]&amp;format=report-graph&amp;cumulate=[% cumulate %]">
         Edit this report
       </a>
index 3246c16dc3a4bbd94e880c085bfbe2242dc4bdcc..44d3933ca3e62d48a3a3b5887ec1e35ee4953867 100644 (file)
@@ -63,7 +63,7 @@ When you are logged out, all pending requests that are not restricted
 to some group are shown by default.
 </p>
 
-<form id="request_form" name="request_form" action="request.cgi" method="get">
+<form id="request_form" name="request_form" action="[% basepath FILTER none %]request.cgi" method="get">
   <input type="hidden" name="action" value="queue">
 
   <table id="filtering">
@@ -221,7 +221,7 @@ to some group are shown by default.
   [% END %]
   [% PROCESS display_buglist %]
   <br><br>
-  <a href="request.cgi?[% urlquerypart FILTER html %]&amp;ctype=csv">(view entire list as CSV)</a>
+  <a href="[% basepath FILTER none %]request.cgi?[% urlquerypart FILTER html %]&amp;ctype=csv">(view entire list as CSV)</a>
 [% END %]
 
 [% PROCESS global/footer.html.tmpl %]
@@ -249,16 +249,16 @@ to some group are shown by default.
 [% END %]
 
 [% BLOCK display_bug %]
-  <a href="show_bug.cgi?id=[% request.bug_id %]"
+  <a href="[% basepath FILTER none %]show_bug.cgi?id=[% request.bug_id %]"
      [%- ' class="bz_secure"' IF request.restricted %]>
     [% request.bug_id %] ([% request.priority FILTER html %]/[% request.bug_severity FILTER html %]): [%+ request.bug_summary FILTER html %]</a>
 [% END %]
 
 [% BLOCK display_attachment %]
   [% IF request.attach_id %]
-    <a href="attachment.cgi?id=[% request.attach_id %]">
+    <a href="[% basepath FILTER none %]attachment.cgi?id=[% request.attach_id %]">
       [% request.attach_id %]: [%+ request.attach_summary FILTER html %]</a>
-    [<a href="attachment.cgi?id=[% request.attach_id %]&amp;action=edit">details</a>]
+    [<a href="[% basepath FILTER none %]attachment.cgi?id=[% request.attach_id %]&amp;action=edit">details</a>]
   [% ELSE %]
     N/A
   [% END %]
@@ -279,7 +279,7 @@ to some group are shown by default.
 [% BLOCK display_buglist %]
   </table>
   [% NEXT UNLESS buglist.keys.size %]
-  <a href="buglist.cgi?bug_id=
+  <a href="[% basepath FILTER none %]buglist.cgi?bug_id=
            [%- buglist.keys.nsort.join(",") FILTER html %]">(view as
   [%+ terms.bug %] list)</a>
 [% END %]
index 25bd2233c740b369eea02f696de43cdeaef87bc4..7899449a3d5a3f969388299d30f628fd56df47b2 100644 (file)
@@ -10,7 +10,7 @@
 <html>
   <head>
     <title>Bugzilla::REST::API</title>
-    <link href="[% urlbase FILTER none %][% 'skins/standard/global.css' FILTER version %]"
+    <link href="[% 'skins/standard/global.css' FILTER version %]"
           rel="stylesheet" type="text/css">
   </head>
   <body>
index a4f8aed248f21bae354d3cd1840316d15aa85983..2b4a01e331d67a07f3a02eaf38583a73e83ac227 100644 (file)
@@ -1,23 +1,23 @@
 User-agent: *
-Disallow: /
+Disallow: [% basepath FILTER none %]
 Crawl-delay: 30
 
 [% IF NOT Bugzilla.localconfig.urlbase.matches("bugzilla-dev") %]
 
-Allow: /$
-Allow: /index.cgi
+Allow: [% basepath FILTER none %]$
+Allow: [% basepath FILTER none %]index.cgi
 
-Allow: /page.cgi
-Disallow: /page.cgi*id=voting*
-Disallow: /page.cgi*id=productdashboard*
-Disallow: /page.cgi*id=user_activity*
+Allow: [% basepath FILTER none %]page.cgi
+Disallow: [% basepath FILTER none %]page.cgi*id=voting*
+Disallow: [% basepath FILTER none %]page.cgi*id=productdashboard*
+Disallow: [% basepath FILTER none %]page.cgi*id=user_activity*
 
-Allow: /show_bug.cgi
-Disallow: /show_bug.cgi*ctype=*
-Disallow: /show_bug.cgi*format=multiple*
+Allow: [% basepath FILTER none %]show_bug.cgi
+Disallow: [% basepath FILTER none %]show_bug.cgi*ctype=*
+Disallow: [% basepath FILTER none %]show_bug.cgi*format=multiple*
 
-Allow: /describecomponents.cgi
-Allow: /describekeywords.cgi
+Allow: [% basepath FILTER none %]describecomponents.cgi
+Allow: [% basepath FILTER none %]describekeywords.cgi
 
 [% FILTER remove('#.*') %]
 [% Hook.process("end") %]
index f5e317bc6aee0e6acf690a0bb2e2de470865b2f8..337cbd87ed69a0bcab38e47722880a6d36d2ef42 100644 (file)
@@ -84,7 +84,7 @@
 
 [% IF userdefaultquery %]
   <p>
-    <a href="query.cgi?nukedefaultquery=1&amp;token=
+    <a href="[% basepath FILTER none %]query.cgi?nukedefaultquery=1&amp;token=
        [%- issue_hash_token(['nukedefaultquery']) FILTER uri %]">
       Set my default search back to the system default</a>.
   </p>
index b519067741f9e1c97fac6ccf78a940d3ec54c844..0dacbaa07445ca8250f515e14c58550a5d6ffc3b 100644 (file)
@@ -59,7 +59,7 @@ function remove_token() {
 
 <p id="search_help">Hover your mouse over each field label to get help for that field.</p>
 
-<form method="post" action="buglist.cgi" name="queryform" id="queryform"
+<form method="post" action="[% basepath FILTER none %]buglist.cgi" name="queryform" id="queryform"
       onsubmit="remove_token()" data-no-csrf>
 
 [% PROCESS search/form.html.tmpl %]
index ec88fb03850d0cb7099756bc146435c256dc19a7..98104ffb953f167d82784976f91e6e5fed9bb41e 100644 (file)
@@ -40,7 +40,7 @@
   doc_section = "reporting.html#charts-new-series"
 %]
 
-<form method="get" action="chart.cgi" name="chartform">
+<form method="get" action="[% basepath FILTER none %]chart.cgi" name="chartform">
 
 [% PROCESS search/form.html.tmpl %]
 
index d8869528432944be30da85f961ba9b0a5476efcd..2be55c609601120d277c41efcb818ea7437609ac 100644 (file)
@@ -65,7 +65,7 @@ var queryform = "reportform"
 
 [% button_name = "Generate Report" %]
 
-<form method="get" action="report.cgi" name="reportform" id="reportform">
+<form method="get" action="[% basepath FILTER none %]report.cgi" name="reportform" id="reportform">
 
 <table align="center">
   <tr>
index 08c6523fec0d1cf8efbd9e2d87abd0cde4a70e5f..473e4b1ae26e8ff85241e5aaddae7f3cd1af1cce 100644 (file)
@@ -48,7 +48,7 @@ var queryform = "reportform"
 
 [% button_name = "Generate Report" %]
 
-<form method="get" action="report.cgi" name="reportform" id="reportform">
+<form method="get" action="[% basepath FILTER none %]report.cgi" name="reportform" id="reportform">
 
 <table align="center">
   <tr>
index 704fcbc32ea60c0ffe631cf9b77250f0a068c615..11f79cbe7ae3192f1432a5305c4431c2015eae7b 100644 (file)
@@ -39,7 +39,7 @@ For example, if the [% terms.bug %] you are looking for is a browser crash when
 for "crash secure SSL flash".
 </p>
 
-<form name="queryform" method="get" action="buglist.cgi" data-no-csrf>
+<form name="queryform" method="get" action="[% basepath FILTER none %]buglist.cgi" data-no-csrf>
 <input type="hidden" name="query_format" value="specific">
 <input type="hidden" name="order" value="relevance desc">
 
index 74ab0ca5b187c5230b78365eaed151751c453c7a..984589dfcd838e2194f40b8ebdf95f0d53457a94 100644 (file)
 
 [% WRAPPER global/tabs.html.tmpl
      tabs = [ { name => 'instant', label => "Instant Search",
-                link => "query.cgi?format=instant" },
+                link => basepath _ "query.cgi?format=instant" },
               { name => 'specific', label => "Simple Search",
-                link => "query.cgi?format=specific" },
+                link => basepath _ "query.cgi?format=specific" },
               { name => 'advanced', label => "Advanced Search",
-                link => "query.cgi?format=advanced" },
+                link => basepath _ "query.cgi?format=advanced" },
               { name => 'google',  label => 'Google Search',
-                link => "query.cgi?format=google" } ]
+                link => basepath _ "query.cgi?format=google" } ]
      current_tab_name = query_format || format || "advanced"
 %]
 
index 11d70a6ead3a420bdbea13732f9f7a7ca91c46cd..a0fddad9bcc1b5144981386462019c504301a960 100644 (file)
   your installation correctly.</p>
 
   <p>As an administrator, you have access to all administrative pages, accessible from
-  the <a href="admin.cgi">Administration</a> link visible at the bottom of this page.
+  the <a href="[% basepath FILTER none %]admin.cgi">Administration</a> 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 <a href="editparams.cgi">Parameters</a> page, from where you can set all important
+  the <a href="[% basepath FILTER none %]editparams.cgi">Parameters</a> page, from where you can set all important
   parameters for this installation; among others:</p>
 
   <ul>
-    <li><a href="editparams.cgi?section=general#maintainer_desc">maintainer</a>,
+    <li><a href="[% basepath FILTER none %]editparams.cgi?section=general#maintainer_desc">maintainer</a>,
       the person responsible for this installation if something is
       running wrongly.</li>
   </ul>
   <p>Also important are the following parameters:</p>
 
   <ul>
-    <li><a href="editparams.cgi?section=auth#requirelogin_desc">requirelogin</a>, if turned
+    <li><a href="[% basepath FILTER none %]editparams.cgi?section=auth#requirelogin_desc">requirelogin</a>, 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.</li>
 
-    <li><a href="editparams.cgi?section=auth#createemailregexp_desc">createemailregexp</a>
+    <li><a href="[% basepath FILTER none %]editparams.cgi?section=auth#createemailregexp_desc">createemailregexp</a>
     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
@@ -62,7 +62,7 @@
     installation, you must absolutely set this parameter to something different from
     the default.</li>
 
-    <li><a href="editparams.cgi?section=mta#mail_delivery_method_desc">mail_delivery_method</a>
+    <li><a href="[% basepath FILTER none %]editparams.cgi?section=mta#mail_delivery_method_desc">mail_delivery_method</a>
     defines the method used to send emails, such as sendmail or SMTP. You have to set
     it correctly to send emails.</li>
   </ul>
index c991ddfa17df83573826a2af13e8c76e615f9f2f..fda9d5d9c99d4dbb718b17a03c3be3d1b1e861ed 100644 (file)
@@ -62,7 +62,7 @@
 
 <p>
   Searches come from saved searches, which are created by executing a <a
-  href="query.cgi">search</a>, then telling [% terms.Bugzilla %] to remember
+  href="[% basepath FILTER none %]query.cgi">search</a>, 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
@@ -75,7 +75,7 @@
   All times are server local time ([% local_timezone FILTER html %]).
 </p>
 
-<form method="post" action="editwhines.cgi">
+<form method="post" action="[% basepath FILTER none %]editwhines.cgi">
 [%# This hidden submit button must be here to set default behavior when
     the user presses return on a form input field #%]
 <input type="submit" value="Update / Commit" name="commit"
     </select>
 
   [% ELSE %]
-    Please visit the <a href="query.cgi">Search</a> page and save a query
+    Please visit the <a href="[% basepath FILTER none %]query.cgi">Search</a> page and save a query
   [% END %]
 
 [%+ END %]