summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/lib/utils/common_utils.js
blob: c829bc0b378bca58568ef66a3f39a9f3ad546759 (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
(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];
  };
  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);