vigiboard / vigiboard / public / js / main.js @ a6979553
History | View | Annotate | Download (4.55 KB)
1 |
/*
|
---|---|
2 |
* Vigiboard
|
3 |
*
|
4 |
* Copyright (C) 2009-2011 CS-SI
|
5 |
*/
|
6 |
|
7 |
var vigiloLog = new Log; |
8 |
// Activation ou désactivation du log en fonction de valeur de la variable debug.
|
9 |
if (debug_mode) {
|
10 |
vigiloLog.enableLog(); |
11 |
} else {
|
12 |
vigiloLog.disableLog(); |
13 |
} |
14 |
|
15 |
|
16 |
window.search_dialog = null;
|
17 |
window.dlg_open_handler = function () { this.isOpen = true; }; |
18 |
window.dlg_close_handler = function () { this.isOpen = false; }; |
19 |
|
20 |
window.addEvent('domready', function (){ |
21 |
/**
|
22 |
* HACK: le closed: True est nécessaire pour éviter que
|
23 |
* JxLib affiche le panel lors de la création du dialogue
|
24 |
* (affiche des rectangles blancs). Avec cette modification,
|
25 |
* le dialogue apparaît replié, mais est considéré comme
|
26 |
* déplié par Jx.Dialog. Les toggleCollapse permettent de
|
27 |
* marquer le Dialog comme replié dans Jx.Dialog avant de
|
28 |
* le déplier pour qu'il soit affiché correctement.
|
29 |
*/
|
30 |
window.search_dialog = new Jx.Dialog({
|
31 |
id: "SearchDialog", |
32 |
label: _('Search Event'), |
33 |
modal: false, |
34 |
resize: false, |
35 |
move: true, |
36 |
content: "search_form", |
37 |
onOpen: window.dlg_open_handler,
|
38 |
onClose: window.dlg_close_handler,
|
39 |
width: 400, |
40 |
height: 325, |
41 |
closed: true |
42 |
}); |
43 |
window.search_dialog.toggleCollapse(); |
44 |
window.search_dialog.toggleCollapse(); |
45 |
|
46 |
var selector = new SelectGroupTree({ |
47 |
title: _("Select a group"), |
48 |
labelId: "search_form_supitemgroup.ui", |
49 |
idId: "search_form_supitemgroup.value" |
50 |
}); |
51 |
selector.load(); |
52 |
$('search_form_supitemgroup').addEvent('click', function() { |
53 |
selector.open(); |
54 |
}); |
55 |
$('search_form_supitemgroup.clear').addEvent('click', function () { |
56 |
$('search_form_supitemgroup.ui').set('value', ''); |
57 |
$('search_form_supitemgroup.value').set('value', ''); |
58 |
}); |
59 |
|
60 |
add_autocompleter('search_form_host', 'host', app_path + '/autocomplete/host'); |
61 |
add_autocompleter('search_form_service', 'service', app_path + '/autocomplete/service'); |
62 |
|
63 |
change_refresh_rate(refresh_status); |
64 |
|
65 |
$$('.date_field_button').addEvent('click', function () { |
66 |
$$(".calendar").setStyles({"zIndex": window.search_dialog.domObj.getStyle('zIndex').toInt()}); |
67 |
}); |
68 |
}); |
69 |
|
70 |
function change_fontsize(size) { |
71 |
document.body.style.fontSize = size; |
72 |
var req = new Request.JSON({ |
73 |
link: 'cancel', |
74 |
url: app_path + '/set_fontsize', |
75 |
onFailure: function () { |
76 |
alert(_('Unable to save preferences'));
|
77 |
} |
78 |
}); |
79 |
req.post({fontsize: size});
|
80 |
|
81 |
vigiloLog.log("Font size set to " + size + "."); |
82 |
} |
83 |
|
84 |
var refresh_timeout = null; |
85 |
function change_refresh_rate(enabled) { |
86 |
var delay = refresh_delay;
|
87 |
if (refresh_timeout) refresh_timeout = $clear(refresh_timeout); |
88 |
if (parseInt(enabled, 10) && delay) refresh_timeout = refresh_page.periodical(delay * 1000); |
89 |
} |
90 |
|
91 |
function set_refresh() { |
92 |
var enabled = $$('refresh').get('checked') ? 1 : 0; |
93 |
var req = new Request.JSON({ |
94 |
link: 'cancel', |
95 |
url: app_path + '/set_refresh', |
96 |
onFailure: function () { |
97 |
alert(_('Unable to save preferences'));
|
98 |
} |
99 |
}); |
100 |
req.post({'refresh': enabled});
|
101 |
change_refresh_rate(enabled); |
102 |
} |
103 |
|
104 |
function refresh_page() { |
105 |
var dialogs = $$(".jxDialog"); |
106 |
for (var i=0; i<dialogs.length; i++) { |
107 |
if (dialogs[i].getStyle('display') != 'none') { |
108 |
vigiloLog.log("A dialog is active on the page ('" + dialogs[i].getElement('.jxDialogLabel').get('text') + "'): refresh is not possible."); |
109 |
return;
|
110 |
} |
111 |
} |
112 |
|
113 |
vigiloLog.log("No active dialog on the page: refreshing...");
|
114 |
window.location.reload(true);
|
115 |
} |
116 |
|
117 |
function change_theme(theme_id, theme_name) { |
118 |
var req = new Request.JSON({ |
119 |
link: 'cancel', |
120 |
url: app_path + '/set_theme', |
121 |
onFailure: function () { |
122 |
alert(_('Unable to save preferences'));
|
123 |
} |
124 |
}); |
125 |
req.post({'theme': theme_id});
|
126 |
setActiveStyleSheet(theme_name); |
127 |
|
128 |
vigiloLog.log("Theme set to '" + theme_name + "'."); |
129 |
} |
130 |
|
131 |
function setActiveStyleSheet(theme_name) { |
132 |
$$('link[rel~=stylesheet][title]').each(function (link_obj) { |
133 |
link_obj.set('disabled', true); |
134 |
if (link_obj.get('title') == theme_name) |
135 |
link_obj.set('disabled', false); |
136 |
}); |
137 |
} |
138 |
|
139 |
function add_autocompleter(elem, varname, url) { |
140 |
new Autocompleter.Request.VigiloJSON(elem, url, {
|
141 |
// ATTENTION: domObj n'est pas documenté dans l'API.
|
142 |
zIndex: window.search_dialog.domObj.getStyle('zIndex').toInt(), |
143 |
minLength: 1, |
144 |
selectMode: 'pick', |
145 |
postVar: varname,
|
146 |
overflow: true |
147 |
}); |
148 |
} |
149 |
|