Skip to content
Snippets Groups Projects
Commit 33694a5a authored by Mike Greiling's avatar Mike Greiling
Browse files

use gitlab global root url as canonical base url for all javascript set cookies (closes #20435)

parent 6fb46b60
No related branches found
No related tags found
No related merge requests found
Loading
@@ -4,6 +4,7 @@ v 8.12.0 (unreleased)
Loading
@@ -4,6 +4,7 @@ v 8.12.0 (unreleased)
- Add two-factor recovery endpoint to internal API !5510 - Add two-factor recovery endpoint to internal API !5510
- Change merge_error column from string to text type - Change merge_error column from string to text type
- Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel) - Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel)
- Set path for all JavaScript cookies to honor GitLab's subdirectory setting !5627 (Mike Greiling)
- Optimistic locking for Issues and Merge Requests (title and description overriding prevention) - Optimistic locking for Issues and Merge Requests (title and description overriding prevention)
- Add `wiki_page_events` to project hook APIs (Ben Boeckel) - Add `wiki_page_events` to project hook APIs (Ben Boeckel)
- Add Sentry logging to API calls - Add Sentry logging to API calls
Loading
Loading
Loading
@@ -26,7 +26,7 @@
Loading
@@ -26,7 +26,7 @@
event_filters = $.cookie("event_filter"); event_filters = $.cookie("event_filter");
filter = sender.attr("id").split("_")[0]; filter = sender.attr("id").split("_")[0];
$.cookie("event_filter", (event_filters !== filter ? filter : ""), { $.cookie("event_filter", (event_filters !== filter ? filter : ""), {
path: '/' path: gon.relative_url_root || '/'
}); });
if (event_filters !== filter) { if (event_filters !== filter) {
return sender.closest('li').toggleClass("active"); return sender.closest('li').toggleClass("active");
Loading
Loading
Loading
@@ -288,7 +288,7 @@
Loading
@@ -288,7 +288,7 @@
new Aside(); new Aside();
if ($window.width() < 1024 && $.cookie('pin_nav') === 'true') { if ($window.width() < 1024 && $.cookie('pin_nav') === 'true') {
$.cookie('pin_nav', 'false', { $.cookie('pin_nav', 'false', {
path: '/', path: gon.relative_url_root || '/',
expires: 365 * 10 expires: 365 * 10
}); });
$('.page-with-sidebar').toggleClass('page-sidebar-collapsed page-sidebar-expanded').removeClass('page-sidebar-pinned'); $('.page-with-sidebar').toggleClass('page-sidebar-collapsed page-sidebar-expanded').removeClass('page-sidebar-pinned');
Loading
@@ -313,7 +313,7 @@
Loading
@@ -313,7 +313,7 @@
$topNav.removeClass('header-pinned-nav').toggleClass('header-collapsed header-expanded'); $topNav.removeClass('header-pinned-nav').toggleClass('header-collapsed header-expanded');
} }
$.cookie('pin_nav', doPinNav, { $.cookie('pin_nav', doPinNav, {
path: '/', path: gon.relative_url_root || '/',
expires: 365 * 10 expires: 365 * 10
}); });
if ($.cookie('pin_nav') === 'true' || doPinNav) { if ($.cookie('pin_nav') === 'true' || doPinNav) {
Loading
Loading
Loading
@@ -320,6 +320,7 @@
Loading
@@ -320,6 +320,7 @@
frequentlyUsedEmojis = this.getFrequentlyUsedEmojis(); frequentlyUsedEmojis = this.getFrequentlyUsedEmojis();
frequentlyUsedEmojis.push(emoji); frequentlyUsedEmojis.push(emoji);
return $.cookie('frequently_used_emojis', frequentlyUsedEmojis.join(','), { return $.cookie('frequently_used_emojis', frequentlyUsedEmojis.join(','), {
path: gon.relative_url_root || '/',
expires: 365 expires: 365
}); });
}; };
Loading
Loading
Loading
@@ -17,19 +17,15 @@
Loading
@@ -17,19 +17,15 @@
return $(this).parents('form').submit(); return $(this).parents('form').submit();
}); });
$('.hide-no-ssh-message').on('click', function(e) { $('.hide-no-ssh-message').on('click', function(e) {
var path;
path = '/';
$.cookie('hide_no_ssh_message', 'false', { $.cookie('hide_no_ssh_message', 'false', {
path: path path: gon.relative_url_root || '/'
}); });
$(this).parents('.no-ssh-key-message').remove(); $(this).parents('.no-ssh-key-message').remove();
return e.preventDefault(); return e.preventDefault();
}); });
$('.hide-no-password-message').on('click', function(e) { $('.hide-no-password-message').on('click', function(e) {
var path;
path = '/';
$.cookie('hide_no_password_message', 'false', { $.cookie('hide_no_password_message', 'false', {
path: path path: gon.relative_url_root || '/'
}); });
$(this).parents('.no-password-message').remove(); $(this).parents('.no-password-message').remove();
return e.preventDefault(); return e.preventDefault();
Loading
Loading
Loading
@@ -30,7 +30,7 @@
Loading
@@ -30,7 +30,7 @@
} }
if (!triggered) { if (!triggered) {
return $.cookie("collapsed_gutter", $('.right-sidebar').hasClass('right-sidebar-collapsed'), { return $.cookie("collapsed_gutter", $('.right-sidebar').hasClass('right-sidebar-collapsed'), {
path: '/' path: gon.relative_url_root || '/'
}); });
} }
}); });
Loading
Loading
Loading
@@ -7,10 +7,8 @@
Loading
@@ -7,10 +7,8 @@
}); });
this.initTabs(); this.initTabs();
$('.hide-project-limit-message').on('click', function(e) { $('.hide-project-limit-message').on('click', function(e) {
var path;
path = '/';
$.cookie('hide_project_limit_message', 'false', { $.cookie('hide_project_limit_message', 'false', {
path: path path: gon.relative_url_root || '/'
}); });
$(this).parents('.project-limit-message').remove(); $(this).parents('.project-limit-message').remove();
return e.preventDefault(); return e.preventDefault();
Loading
Loading
Loading
@@ -11,7 +11,7 @@
Loading
@@ -11,7 +11,7 @@
/*= require ./fixtures/emoji_menu */ /*= require ./fixtures/emoji_menu */
   
(function() { (function() {
var awardsHandler, lazyAssert; var awardsHandler, lazyAssert, urlRoot;
   
awardsHandler = null; awardsHandler = null;
   
Loading
@@ -27,6 +27,7 @@
Loading
@@ -27,6 +27,7 @@
}; };
   
gon.award_menu_url = '/emojis'; gon.award_menu_url = '/emojis';
urlRoot = gon.relative_url_root;
   
lazyAssert = function(done, assertFn) { lazyAssert = function(done, assertFn) {
return setTimeout(function() { return setTimeout(function() {
Loading
@@ -45,9 +46,14 @@
Loading
@@ -45,9 +46,14 @@
return cb(); return cb();
}; };
})(this)); })(this));
return spyOn(jQuery, 'get').and.callFake(function(req, cb) { spyOn(jQuery, 'get').and.callFake(function(req, cb) {
return cb(window.emojiMenu); return cb(window.emojiMenu);
}); });
spyOn(jQuery, 'cookie');
});
afterEach(function() {
// restore original url root value
gon.relative_url_root = urlRoot;
}); });
describe('::showEmojiMenu', function() { describe('::showEmojiMenu', function() {
it('should show emoji menu when Add emoji button clicked', function(done) { it('should show emoji menu when Add emoji button clicked', function(done) {
Loading
@@ -189,6 +195,28 @@
Loading
@@ -189,6 +195,28 @@
return expect($thumbsUpEmoji.data("original-title")).toBe('sam'); return expect($thumbsUpEmoji.data("original-title")).toBe('sam');
}); });
}); });
describe('::addEmojiToFrequentlyUsedList', function() {
it('should set a cookie with the correct default path', function() {
gon.relative_url_root = '';
awardsHandler.addEmojiToFrequentlyUsedList('sunglasses');
expect(jQuery.cookie)
.toHaveBeenCalledWith('frequently_used_emojis', 'sunglasses', {
path: '/',
expires: 365
})
;
});
it('should set a cookie with the correct custom root path', function() {
gon.relative_url_root = '/gitlab/subdir';
awardsHandler.addEmojiToFrequentlyUsedList('alien');
expect(jQuery.cookie)
.toHaveBeenCalledWith('frequently_used_emojis', 'alien', {
path: '/gitlab/subdir',
expires: 365
})
;
});
});
describe('search', function() { describe('search', function() {
return it('should filter the emoji', function() { return it('should filter the emoji', function() {
$('.js-add-award').eq(0).click(); $('.js-add-award').eq(0).click();
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment