summaryrefslogtreecommitdiffstats
path: root/extensions/BugModal/template/en/default/bug_modal/header.html.tmpl
blob: 13c146ed543e8f28ec4089134cf382605c666701 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]

[%
  PROCESS global/variables.none.tmpl;

  # <title>
  IF bugs.defined;
    bug = bugs.0;
  END;
  title = "$bug.bug_id - ";
  IF bug.alias;
    title = title _ "($bug.alias) ";
  END;
  unfiltered_title = title _ bug.short_desc;
  filtered_desc = bug.short_desc FILTER html;
  title = title _ filtered_desc;

  generate_api_token = 1;

  # these aren't always defined
  UNLESS bodyclasses.defined;
    bodyclasses = [];
  END;
  UNLESS javascript_urls.defined;
    javascript_urls = [];
  END;
  UNLESS style_urls.defined;
    style_urls = [];
  END;
  UNLESS jquery.defined;
    jquery = [];
  END;

  # right now we need yui for tracking flags and needinfo extensions
  no_yui = 0;

  # add body classes for sec-groups, etc
  FOREACH group IN bug.groups_in;
    bodyclasses.push("bz_group_$group.name");
  END;
  bodyclasses.push("bug_modal");

  # assets
  javascript_urls.push(
    "extensions/ProdCompSearch/web/js/prod_comp_search.js",
    "extensions/BugModal/web/bug_modal.js",
    "extensions/BugModal/web/ZeroClipboard/ZeroClipboard.min.js",
    "js/field.js",
    "js/comments.js",
    "js/util.js"
  );
  jquery.push(
    "datetimepicker",
  );
  style_urls.push(
    "extensions/BugModal/web/bug_modal.css",
    "skins/custom/bug_groups.css",
    "js/jquery/plugins/datetimepicker/datetimepicker.css",
  );

  IF user.in_group('canconfirm');
    style_urls.push('extensions/TagNewUsers/web/style.css');
  END;
%]

[% javascript = BLOCK %]
  [%# add tracking flags json if available %]
  [% IF tracking_flags %]
    [% javascript_urls.push("extensions/TrackingFlags/web/js/tracking_flags.js") %]
    TrackingFlags = [% tracking_flags_json FILTER none %];
  [% END %]

  [%# update last-visited %]
  [% IF user.id && user.is_involved_in_bug(bug) %]
    $(function() {
      bugzilla_ajax({
          url: 'rest/bug_user_last_visit/[% bug.id FILTER none %]',
          type: 'POST'
      });
    });
  [% END %]

  [%# expose useful data to js %]
  BUGZILLA.bug_id = [% bug.id FILTER none %];
  BUGZILLA.bug_title = '[% unfiltered_title FILTER js %]';
  BUGZILLA.user = {
    id: [% user.id FILTER none %],
    login: '[% user.login FILTER js %]',
    is_insider: [% user.is_insider ? "true" : "false" %],
    settings: {
      quote_replies: '[% user.settings.quote_replies.value FILTER js %]',
      zoom_textareas: [% user.settings.zoom_textareas.value == "on" ? "true" : "false" %]
    }
  };
  [% IF user.id %]
    BUGZILLA.default_assignee   = '[% bug.component_obj.default_assignee.login FILTER js %]';
    BUGZILLA.default_qa_contact = '[% bug.component_obj.default_qa_contact.login FILTER js %]';
  [% END %]
[% END %]

[% Hook.process("end") %]