vigiboard / vigiboard / public / js / main.js @ db6fbc92
History | View | Annotate | Download (4.69 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 TreeGroup({ |
47 |
url: app_path + '/get_groups', |
48 |
app_path: app_path,
|
49 |
title: _("Select a group") |
50 |
}); |
51 |
$('search_form_supitemgroup').addEvent('click', selector.selectGroup.bind(selector)); |
52 |
selector.addEvent('select', function (item) { |
53 |
$('search_form_supitemgroup.ui').set('value', item.options.label); |
54 |
$('search_form_supitemgroup.value').set('value', item.options.data); |
55 |
}); |
56 |
$('search_form_supitemgroup.clear').addEvent('click', function () { |
57 |
$('search_form_supitemgroup.ui').set('value', ''); |
58 |
$('search_form_supitemgroup.value').set('value', ''); |
59 |
}); |
60 |
|
61 |
add_autocompleter('search_form_host', 'host', app_path + '/autocomplete/host'); |
62 |
add_autocompleter('search_form_service', 'service', app_path + '/autocomplete/service'); |
63 |
|
64 |
change_refresh_rate(refresh_status); |
65 |
|
66 |
$$('.date_field_button').addEvent('click', function () { |
67 |
$$(".calendar").setStyles({"zIndex": window.search_dialog.domObj.getStyle('zIndex').toInt()}); |
68 |
}); |
69 |
}); |
70 |
|
71 |
function change_fontsize(size) { |
72 |
document.body.style.fontSize = size; |
73 |
var req = new Request.JSON({ |
74 |
link: 'cancel', |
75 |
url: app_path + '/set_fontsize', |
76 |
onFailure: function () { |
77 |
alert(_('Unable to save preferences'));
|
78 |
} |
79 |
}); |
80 |
req.post({fontsize: size});
|
81 |
|
82 |
vigiloLog.log("Font size set to " + size + "."); |
83 |
} |
84 |
|
85 |
var refresh_timeout = null; |
86 |
function change_refresh_rate(enabled) { |
87 |
var delay = refresh_delay;
|
88 |
if (refresh_timeout) refresh_timeout = $clear(refresh_timeout); |
89 |
if (parseInt(enabled) && delay) refresh_timeout = refresh_page.periodical(delay * 1000); |
90 |
} |
91 |
|
92 |
function set_refresh() { |
93 |
var enabled = $$('refresh').get('checked') ? 1 : 0; |
94 |
var req = new Request.JSON({ |
95 |
link: 'cancel', |
96 |
url: app_path + '/set_refresh', |
97 |
onFailure: function () { |
98 |
alert(_('Unable to save preferences'));
|
99 |
} |
100 |
}); |
101 |
req.post({'refresh': enabled});
|
102 |
change_refresh_rate(enabled); |
103 |
} |
104 |
|
105 |
function refresh_page() { |
106 |
var dialogs = $$(".jxDialog"); |
107 |
for (var i=0; i<dialogs.length; i++) { |
108 |
if (dialogs[i].getStyle('display') != 'none') { |
109 |
vigiloLog.log("A dialog is active on the page ('" + dialogs[i].getElement('.jxDialogLabel').get('text') + "'): refresh is not possible."); |
110 |
return;
|
111 |
} |
112 |
} |
113 |
|
114 |
vigiloLog.log("No active dialog on the page: refreshing...");
|
115 |
window.location.reload(true);
|
116 |
} |
117 |
|
118 |
function change_theme(theme_id, theme_name) { |
119 |
var req = new Request.JSON({ |
120 |
link: 'cancel', |
121 |
url: app_path + '/set_theme', |
122 |
onFailure: function () { |
123 |
alert(_('Unable to save preferences'));
|
124 |
} |
125 |
}); |
126 |
req.post({'theme': theme_id});
|
127 |
setActiveStyleSheet(theme_name); |
128 |
|
129 |
vigiloLog.log("Theme set to '" + theme_name + "'."); |
130 |
} |
131 |
|
132 |
function setActiveStyleSheet(theme_name) { |
133 |
$$('link[rel~=stylesheet][title]').each(function (link_obj) { |
134 |
link_obj.set('disabled', true); |
135 |
if (link_obj.get('title') == theme_name) |
136 |
link_obj.set('disabled', false); |
137 |
}) |
138 |
} |
139 |
|
140 |
function add_autocompleter(elem, varname, url) { |
141 |
new Autocompleter.Request.VigiloJSON(elem, url, {
|
142 |
// ATTENTION: domObj n'est pas documenté dans l'API.
|
143 |
zIndex: window.search_dialog.domObj.getStyle('zIndex').toInt(), |
144 |
minLength: 1, |
145 |
selectMode: 'pick', |
146 |
postVar: varname,
|
147 |
overflow: true |
148 |
}); |
149 |
} |
150 |
|