summaryrefslogtreecommitdiffstats
path: root/extensions/BMO/web/js/edit_bug.js
blob: e630eb995eb3da89b09b98cacdad71a34803611f (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
/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1
 * 
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 * 
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 * 
 * The Original Code is the BMO Bugzilla Extension;
 * 
 * The Initial Developer of the Original Code is the Mozilla Foundation.
 * Portions created by the Initial Developer are Copyright (C) 2011 the
 * Initial Developer. All Rights Reserved.
 * 
 * Contributor(s):
 *   Byron Jones <glob@mozilla.com>
 *
 * ***** END LICENSE BLOCK *****
 */

// --- custom flags
var Dom = YAHOO.util.Dom;

function bmo_hide_tracking_flags() {
  for (var field in bmo_custom_flags) {
    var el = Dom.get(field);
    var value = el ? el.value : bmo_custom_flags[field];
    if (el && (value != bmo_custom_flags[field])) {
      bmo_show_tracking_flags();
      return;
    }
    if (value == '---') {
      Dom.addClass('row_' + field, 'bz_hidden');
    } else {
      Dom.addClass(field, 'bz_hidden');
      Dom.removeClass('ro_' + field, 'bz_hidden');
    }
  }
}

function bmo_show_tracking_flags() {
  Dom.addClass('edit_tracking_fields_action', 'bz_hidden');
  for (var field in bmo_custom_flags) {
    if (Dom.get(field).value == '---') {
      Dom.removeClass('row_' + field, 'bz_hidden');
    } else {
      Dom.removeClass(field, 'bz_hidden');
      Dom.addClass('ro_' + field, 'bz_hidden');
    }
  }
}

function init_clone_bug_menu(el, bug_id, product, component) {
  var diff_url = 'enter_bug.cgi?cloned_bug_id=' + bug_id;
  var cur_url = diff_url +
    '&product=' + encodeURIComponent(product) +
    '&component=' + encodeURIComponent(component);
  var menu = new YAHOO.widget.Menu('clone_bug_menu', { position : 'dynamic' });
  menu.addItems([
    { text: 'Clone to the current product', url: cur_url },
    { text: 'Clone to a different product', url: diff_url }
  ]);
  menu.render(document.body);
  YAHOO.util.Event.addListener(el, 'click', show_clone_bug_menu, menu);
}

function show_clone_bug_menu(event, menu) {
  menu.cfg.setProperty('xy', YAHOO.util.Event.getXY(event));
  menu.show();
  event.preventDefault();
}

// -- make attachment table, comments, new comment textarea equal widths

YAHOO.util.Event.onDOMReady(function() {
  var comment_tables = Dom.getElementsByClassName('bz_comment_table', 'table', 'comments');
  if (comment_tables.length) {
    var comment_width = comment_tables[0].getElementsByTagName('td')[0].clientWidth + 'px';
    var attachment_table = Dom.get('attachment_table');
    if (attachment_table)
      attachment_table.style.width = comment_width;
    var new_comment = Dom.get('comment');
    if (new_comment)
      new_comment.style.width = comment_width;
  }
});