summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/lib/utils/common_utils.js
blob: 21efe2d76dd11236c0048762ccfd4083b152c938 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* eslint-disable */
(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;
      }
    };
    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');
    };

    return jQuery.timefor = function(time, suffix, expiredLabel) {
      var suffixFromNow, timefor;
      if (!time) {
        return '';
      }
      suffix || (suffix = 'remaining');
      expiredLabel || (expiredLabel = 'Past due');
      jQuery.timeago.settings.allowFuture = true;
      suffixFromNow = jQuery.timeago.settings.strings.suffixFromNow;
      jQuery.timeago.settings.strings.suffixFromNow = suffix;
      timefor = $.timeago(time);
      if (timefor.indexOf('ago') > -1) {
        timefor = expiredLabel;
      }
      jQuery.timeago.settings.strings.suffixFromNow = suffixFromNow;
      return timefor;
    };
  })(window);

}).call(this);