summaryrefslogtreecommitdiffstats
path: root/extensions/BugModal
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-06-15 02:50:08 +0200
committerKohei Yoshino <kohei.yoshino@gmail.com>2018-06-15 02:50:08 +0200
commit404dc5496967203c5f99755340f43d712420446a (patch)
treeb369a872bb1fa58c0ad95e249347dc5f8905e337 /extensions/BugModal
parent69e02e0576fc834de982ab6fa3d5b77ce7fe472a (diff)
downloadbugzilla-404dc5496967203c5f99755340f43d712420446a.tar.gz
bugzilla-404dc5496967203c5f99755340f43d712420446a.tar.xz
Bug 1468848 - Change presentation of show_bug.cgi urls to be /bug/ID or /bug/ALIAS.
Diffstat (limited to 'extensions/BugModal')
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/header.html.tmpl1
-rw-r--r--extensions/BugModal/web/bug_modal.js18
2 files changed, 12 insertions, 7 deletions
diff --git a/extensions/BugModal/template/en/default/bug_modal/header.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/header.html.tmpl
index 38b6b572f..a21e9c268 100644
--- a/extensions/BugModal/template/en/default/bug_modal/header.html.tmpl
+++ b/extensions/BugModal/template/en/default/bug_modal/header.html.tmpl
@@ -94,6 +94,7 @@
[%# expose useful data to js %]
BUGZILLA.bug_id = [% bug.id FILTER none %];
BUGZILLA.bug_title = '[% unfiltered_title FILTER js %]';
+ BUGZILLA.bug_alias = '[% bug.alias FILTER js %]';
BUGZILLA.user = {
id: [% user.id FILTER none %],
login: '[% user.login FILTER js %]',
diff --git a/extensions/BugModal/web/bug_modal.js b/extensions/BugModal/web/bug_modal.js
index bf5c300e1..9d2701e51 100644
--- a/extensions/BugModal/web/bug_modal.js
+++ b/extensions/BugModal/web/bug_modal.js
@@ -1344,15 +1344,19 @@ function confirmUnsafeURL(url) {
// fix url after bug creation/update
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);
+ let bug_id = BUGZILLA.bug_id;
+ let bug_alias = BUGZILLA.bug_alias;
+ let bug_slug = bug_alias || bug_id;
+ let url = new URL(document.location.href);
+ if (!url.pathname.match(/^bug\/[0-9]+/)) {
+ url.searchParams.delete("id");
+ let new_url = url.search ? `/bug/${bug_slug}${url.search}` : `/bug/${bug_slug}`;
+ if (url.hash) {
+ new_url += url.hash;
+ }
+ history.replaceState(null, BUGZILLA.bug_title, new_url);
document.title = BUGZILLA.bug_title;
}
- if (href.match(/show_bug\.cgi\?.*list_id=/)) {
- href = href.replace(/[\?&]+list_id=(\d+|cookie)/, '');
- history.replaceState(null, BUGZILLA.bug_title, href);
- }
}
// ajax wrapper, to simplify error handling and auth