/* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, no-unused-expressions, no-param-reassign, no-else-return, quotes, object-shorthand, comma-dangle, camelcase, one-var, vars-on-top, one-var-declaration-per-line, no-return-assign, consistent-return, padded-blocks, max-len */ (function() { (function(w) { var base; w.gl || (w.gl = {}); (base = w.gl).utils || (base.utils = {}); w.gl.utils.isInGroupsPage = function() { return gl.utils.getPagePath() === 'groups'; }; w.gl.utils.isInProjectPage = function() { return gl.utils.getPagePath() === 'projects'; }; w.gl.utils.getProjectSlug = function() { if (this.isInProjectPage()) { return $('body').data('project'); } else { return null; } }; w.gl.utils.getGroupSlug = function() { if (this.isInGroupsPage()) { return $('body').data('group'); } else { return null; } }; w.gl.utils.ajaxGet = function(url) { return $.ajax({ type: "GET", url: url, dataType: "script" }); }; w.gl.utils.split = function(val) { return val.split(/,\s*/); }; w.gl.utils.extractLast = function(term) { return this.split(term).pop(); }; w.gl.utils.rstrip = function rstrip(val) { if (val) { return val.replace(/\s+$/, ''); } else { return val; } }; w.gl.utils.disableButtonIfEmptyField = function(field_selector, button_selector, event_name) { event_name = event_name || 'input'; var closest_submit, field, that; that = this; field = $(field_selector); closest_submit = field.closest('form').find(button_selector); if (this.rstrip(field.val()) === "") { closest_submit.disable(); } return field.on(event_name, function() { if (that.rstrip($(this).val()) === "") { return closest_submit.disable(); } else { return closest_submit.enable(); } }); }; w.gl.utils.disableButtonIfAnyEmptyField = function(form, form_selector, button_selector) { var closest_submit, updateButtons; closest_submit = form.find(button_selector); updateButtons = function() { var filled; filled = true; form.find('input').filter(form_selector).each(function() { return filled = this.rstrip($(this).val()) !== "" || !$(this).attr('required'); }); if (filled) { return closest_submit.enable(); } else { return closest_submit.disable(); } }; updateButtons(); return form.keyup(updateButtons); }; w.gl.utils.sanitize = function(str) { return str.replace(/<(?:.|\n)*?>/gm, ''); }; w.gl.utils.unbindEvents = function() { return $(document).off('scroll'); }; w.gl.utils.shiftWindow = function() { return w.scrollBy(0, -100); }; gl.utils.updateTooltipTitle = function($tooltipEl, newTitle) { return $tooltipEl.tooltip('destroy').attr('title', newTitle).tooltip('fixTitle'); }; gl.utils.preventDisabledButtons = function() { return $('.btn').click(function(e) { if ($(this).hasClass('disabled')) { e.preventDefault(); e.stopImmediatePropagation(); return false; } }); }; gl.utils.getPagePath = function() { return $('body').data('page').split(':')[0]; }; gl.utils.parseUrl = function (url) { var parser = document.createElement('a'); parser.href = url; return parser; }; gl.utils.cleanupBeforeFetch = function() { // Unbind scroll events $(document).off('scroll'); // Close any open tooltips $('.has-tooltip, [data-toggle="tooltip"]').tooltip('destroy'); }; })(window); }).call(this);