Commit 8784d362 authored by Filipa Lacerda's avatar Filipa Lacerda

Exports all the methods in the same place

parent 57c97a10
window.gl = window.gl || {};
window.gl.utils = window.gl.utils || {};
export const getPagePath = (index = 0) => $('body').data('page').split(':')[index]; export const getPagePath = (index = 0) => $('body').data('page').split(':')[index];
window.gl.utils.getPagePath = getPagePath;
export const isInGroupsPage = () => getPagePath() === 'groups'; export const isInGroupsPage = () => getPagePath() === 'groups';
window.gl.utils.isInGroupsPage = isInGroupsPage;
export const isInProjectPage = () => getPagePath() === 'projects'; export const isInProjectPage = () => getPagePath() === 'projects';
window.gl.utils.isInProjectPage = isInProjectPage;
export const getProjectSlug = () => { export const getProjectSlug = () => {
if (isInProjectPage()) { if (isInProjectPage()) {
...@@ -16,7 +11,6 @@ export const getProjectSlug = () => { ...@@ -16,7 +11,6 @@ export const getProjectSlug = () => {
} }
return null; return null;
}; };
window.gl.utils.getProjectSlug = getProjectSlug;
export const getGroupSlug = () => { export const getGroupSlug = () => {
if (isInGroupsPage()) { if (isInGroupsPage()) {
...@@ -24,7 +18,6 @@ export const getGroupSlug = () => { ...@@ -24,7 +18,6 @@ export const getGroupSlug = () => {
} }
return null; return null;
}; };
window.gl.utils.getGroupSlug = getGroupSlug;
export const isInIssuePage = () => { export const isInIssuePage = () => {
const page = getPagePath(1); const page = getPagePath(1);
...@@ -32,21 +25,18 @@ export const isInIssuePage = () => { ...@@ -32,21 +25,18 @@ export const isInIssuePage = () => {
return page === 'issues' && action === 'show'; return page === 'issues' && action === 'show';
}; };
window.gl.utils.isInIssuePage = isInGroupsPage;
export const ajaxGet = url => $.ajax({ export const ajaxGet = url => $.ajax({
type: 'GET', type: 'GET',
url, url,
dataType: 'script', dataType: 'script',
}); });
window.gl.utils.ajaxGet = ajaxGet;
export const ajaxPost = (url, data) => $.ajax({ export const ajaxPost = (url, data) => $.ajax({
type: 'POST', type: 'POST',
url, url,
data, data,
}); });
window.gl.utils.ajaxPost = ajaxPost;
export const rstrip = (val) => { export const rstrip = (val) => {
if (val) { if (val) {
...@@ -54,10 +44,8 @@ export const rstrip = (val) => { ...@@ -54,10 +44,8 @@ export const rstrip = (val) => {
} }
return val; return val;
}; };
window.gl.utils.rstrip = rstrip;
export const updateTooltipTitle = ($tooltipEl, newTitle) => $tooltipEl.attr('title', newTitle).tooltip('fixTitle'); export const updateTooltipTitle = ($tooltipEl, newTitle) => $tooltipEl.attr('title', newTitle).tooltip('fixTitle');
window.gl.utils.updateTooltipTitle = updateTooltipTitle;
export const disableButtonIfEmptyField = (fieldSelector, buttonSelector, eventName = 'input') => { export const disableButtonIfEmptyField = (fieldSelector, buttonSelector, eventName = 'input') => {
const field = $(fieldSelector); const field = $(fieldSelector);
...@@ -73,7 +61,6 @@ export const disableButtonIfEmptyField = (fieldSelector, buttonSelector, eventNa ...@@ -73,7 +61,6 @@ export const disableButtonIfEmptyField = (fieldSelector, buttonSelector, eventNa
return closestSubmit.enable(); return closestSubmit.enable();
}); });
}; };
window.gl.utils.disableButtonIfEmptyField = disableButtonIfEmptyField;
// automatically adjust scroll position for hash urls taking the height of the navbar into account // automatically adjust scroll position for hash urls taking the height of the navbar into account
// https://github.com/twitter/bootstrap/issues/1768 // https://github.com/twitter/bootstrap/issues/1768
...@@ -111,7 +98,6 @@ export const handleLocationHash = () => { ...@@ -111,7 +98,6 @@ export const handleLocationHash = () => {
window.scrollBy(0, adjustment); window.scrollBy(0, adjustment);
} }
}; };
window.gl.utils.handleLocationHash = handleLocationHash;
// Check if element scrolled into viewport from above or below // Check if element scrolled into viewport from above or below
// Courtesy http://stackoverflow.com/a/7557433/414749 // Courtesy http://stackoverflow.com/a/7557433/414749
...@@ -125,14 +111,12 @@ export const isInViewport = (el) => { ...@@ -125,14 +111,12 @@ export const isInViewport = (el) => {
rect.right <= window.innerWidth rect.right <= window.innerWidth
); );
}; };
window.gl.utils.isInViewport = isInViewport;
export const parseUrl = (url) => { export const parseUrl = (url) => {
const parser = document.createElement('a'); const parser = document.createElement('a');
parser.href = url; parser.href = url;
return parser; return parser;
}; };
window.gl.utils.parseUrl = parseUrl;
export const parseUrlPathname = (url) => { export const parseUrlPathname = (url) => {
const parsedUrl = parseUrl(url); const parsedUrl = parseUrl(url);
...@@ -140,7 +124,6 @@ export const parseUrlPathname = (url) => { ...@@ -140,7 +124,6 @@ export const parseUrlPathname = (url) => {
// We have to make sure we always have an absolute path. // We have to make sure we always have an absolute path.
return parsedUrl.pathname.charAt(0) === '/' ? parsedUrl.pathname : `/${parsedUrl.pathname}`; return parsedUrl.pathname.charAt(0) === '/' ? parsedUrl.pathname : `/${parsedUrl.pathname}`;
}; };
window.gl.utils.parseUrlPathname = parseUrlPathname;
// We can trust that each param has one & since values containing & will be encoded // We can trust that each param has one & since values containing & will be encoded
// Remove the first character of search as it is always ? // Remove the first character of search as it is always ?
...@@ -148,17 +131,14 @@ export const getUrlParamsArray = () => window.location.search.slice(1).split('&' ...@@ -148,17 +131,14 @@ export const getUrlParamsArray = () => window.location.search.slice(1).split('&'
const split = param.split('='); const split = param.split('=');
return [decodeURI(split[0]), split[1]].join('='); return [decodeURI(split[0]), split[1]].join('=');
}); });
window.gl.utils.getUrlParamsArray = getUrlParamsArray;
export const isMetaKey = e => e.metaKey || e.ctrlKey || e.altKey || e.shiftKey; export const isMetaKey = e => e.metaKey || e.ctrlKey || e.altKey || e.shiftKey;
window.gl.utils.isMetaKey = isMetaKey;
// Identify following special clicks // Identify following special clicks
// 1) Cmd + Click on Mac (e.metaKey) // 1) Cmd + Click on Mac (e.metaKey)
// 2) Ctrl + Click on PC (e.ctrlKey) // 2) Ctrl + Click on PC (e.ctrlKey)
// 3) Middle-click or Mouse Wheel Click (e.which is 2) // 3) Middle-click or Mouse Wheel Click (e.which is 2)
export const isMetaClick = e => e.metaKey || e.ctrlKey || e.which === 2; export const isMetaClick = e => e.metaKey || e.ctrlKey || e.which === 2;
window.gl.utils.isMetaClick = isMetaClick;
export const scrollToElement = ($el) => { export const scrollToElement = ($el) => {
const top = $el.offset().top; const top = $el.offset().top;
...@@ -169,7 +149,6 @@ export const scrollToElement = ($el) => { ...@@ -169,7 +149,6 @@ export const scrollToElement = ($el) => {
scrollTop: top - mrTabsHeight - headerHeight, scrollTop: top - mrTabsHeight - headerHeight,
}, 200); }, 200);
}; };
window.gl.utils.scrollToElement = scrollToElement;
/** /**
this will take in the `name` of the param you want to parse in the url this will take in the `name` of the param you want to parse in the url
...@@ -185,7 +164,6 @@ export const getParameterByName = (name, urlToParse) => { ...@@ -185,7 +164,6 @@ export const getParameterByName = (name, urlToParse) => {
if (!results[2]) return ''; if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' ')); return decodeURIComponent(results[2].replace(/\+/g, ' '));
}; };
window.gl.utils.getParameterByName = getParameterByName;
export const getSelectedFragment = () => { export const getSelectedFragment = () => {
const selection = window.getSelection(); const selection = window.getSelection();
...@@ -198,7 +176,6 @@ export const getSelectedFragment = () => { ...@@ -198,7 +176,6 @@ export const getSelectedFragment = () => {
return documentFragment; return documentFragment;
}; };
window.gl.utils.getSelectedFragment = getSelectedFragment;
// TODO: Update this name, there is a gl.text.insertText function. // TODO: Update this name, there is a gl.text.insertText function.
export const insertText = (target, text) => { export const insertText = (target, text) => {
...@@ -226,7 +203,6 @@ export const insertText = (target, text) => { ...@@ -226,7 +203,6 @@ export const insertText = (target, text) => {
event.initEvent('autosize:update', true, false); event.initEvent('autosize:update', true, false);
target.dispatchEvent(event); target.dispatchEvent(event);
}; };
window.gl.utils.insertText = insertText;
export const nodeMatchesSelector = (node, selector) => { export const nodeMatchesSelector = (node, selector) => {
const matches = Element.prototype.matches || const matches = Element.prototype.matches ||
...@@ -253,7 +229,6 @@ export const nodeMatchesSelector = (node, selector) => { ...@@ -253,7 +229,6 @@ export const nodeMatchesSelector = (node, selector) => {
const matchingNodes = parentNode.querySelectorAll(selector); const matchingNodes = parentNode.querySelectorAll(selector);
return Array.prototype.indexOf.call(matchingNodes, node) !== -1; return Array.prototype.indexOf.call(matchingNodes, node) !== -1;
}; };
window.gl.utils.nodeMatchesSelector = nodeMatchesSelector;
/** /**
this will take in the headers from an API response and normalize them this will take in the headers from an API response and normalize them
...@@ -432,3 +407,31 @@ export const setCiStatusFavicon = (pageUrl) => { ...@@ -432,3 +407,31 @@ export const setCiStatusFavicon = (pageUrl) => {
}, },
}); });
}; };
window.gl = window.gl || {};
window.gl.utils = {
...(window.gl.utils || {}),
getPagePath,
isInGroupsPage,
isInProjectPage,
getProjectSlug,
getGroupSlug,
isInIssuePage,
ajaxGet,
ajaxPost,
rstrip,
updateTooltipTitle,
disableButtonIfEmptyField,
handleLocationHash,
isInViewport,
parseUrl,
parseUrlPathname,
getUrlParamsArray,
isMetaKey,
isMetaClick,
scrollToElement,
getParameterByName,
getSelectedFragment,
insertText,
nodeMatchesSelector,
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment