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