vigiboard / vigiboard / public / js / main.js @ c94dc931
History | View | Annotate | Download (6.04 KB)
1 | db6fbc92 | Aurelien BOMPARD | /*
|
---|---|---|---|
2 | * Vigiboard
|
||
3 | *
|
||
4 | c94dc931 | Francois POIROTTE | * Copyright (C) 2009-2020 CS-SI
|
5 | db6fbc92 | Aurelien BOMPARD | */
|
6 | |||
7 | eaac00c2 | Francois POIROTTE | var vigiloLog = new Log(); |
8 | 7bde24ad | Francois POIROTTE | // Activation ou désactivation du log en fonction
|
9 | // de la valeur de la variable debug.
|
||
10 | db6fbc92 | Aurelien BOMPARD | if (debug_mode) {
|
11 | vigiloLog.enableLog(); |
||
12 | } else {
|
||
13 | vigiloLog.disableLog(); |
||
14 | } |
||
15 | |||
16 | |||
17 | window.search_dialog = null;
|
||
18 | a6979553 | Aurelien BOMPARD | window.dlg_open_handler = function () { this.isOpen = true; }; |
19 | window.dlg_close_handler = function () { this.isOpen = false; }; |
||
20 | db6fbc92 | Aurelien BOMPARD | |
21 | window.addEvent('domready', function (){ |
||
22 | f2803249 | Francois POIROTTE | // Permet de refermer les dialogues en appuyant sur 'Échap'.
|
23 | document.addEvent('keydown', function(e) { |
||
24 | e = new Event(e);
|
||
25 | if (e.key == 'esc' && Jx.Dialog.Stack.length) |
||
26 | Jx.Dialog.Stack[Jx.Dialog.Stack.length-1].close();
|
||
27 | }); |
||
28 | |||
29 | db6fbc92 | Aurelien BOMPARD | /**
|
30 | * HACK: le closed: True est nécessaire pour éviter que
|
||
31 | * JxLib affiche le panel lors de la création du dialogue
|
||
32 | * (affiche des rectangles blancs). Avec cette modification,
|
||
33 | * le dialogue apparaît replié, mais est considéré comme
|
||
34 | * déplié par Jx.Dialog. Les toggleCollapse permettent de
|
||
35 | * marquer le Dialog comme replié dans Jx.Dialog avant de
|
||
36 | * le déplier pour qu'il soit affiché correctement.
|
||
37 | */
|
||
38 | window.search_dialog = new Jx.Dialog({
|
||
39 | id: "SearchDialog", |
||
40 | label: _('Search Event'), |
||
41 | modal: false, |
||
42 | 5cb28e04 | Francois POIROTTE | resize: true, |
43 | db6fbc92 | Aurelien BOMPARD | move: true, |
44 | content: "search_form", |
||
45 | onOpen: window.dlg_open_handler,
|
||
46 | onClose: window.dlg_close_handler,
|
||
47 | width: 400, |
||
48 | eced9ab0 | Vincent QUEMENER | height: 395, |
49 | db6fbc92 | Aurelien BOMPARD | closed: true |
50 | }); |
||
51 | window.search_dialog.toggleCollapse(); |
||
52 | window.search_dialog.toggleCollapse(); |
||
53 | |||
54 | aa6e5fe9 | Aurelien BOMPARD | var selector = new SelectGroupTree({ |
55 | title: _("Select a group"), |
||
56 | labelId: "search_form_supitemgroup.ui", |
||
57 | idId: "search_form_supitemgroup.value" |
||
58 | db6fbc92 | Aurelien BOMPARD | }); |
59 | aa6e5fe9 | Aurelien BOMPARD | selector.load(); |
60 | $('search_form_supitemgroup').addEvent('click', function() { |
||
61 | selector.open(); |
||
62 | db6fbc92 | Aurelien BOMPARD | }); |
63 | $('search_form_supitemgroup.clear').addEvent('click', function () { |
||
64 | $('search_form_supitemgroup.ui').set('value', ''); |
||
65 | $('search_form_supitemgroup.value').set('value', ''); |
||
66 | }); |
||
67 | |||
68 | add_autocompleter('search_form_host', 'host', app_path + '/autocomplete/host'); |
||
69 | add_autocompleter('search_form_service', 'service', app_path + '/autocomplete/service'); |
||
70 | 3ba1cdd2 | Francois POIROTTE | add_autocompleter('search_form_hls', 'service', app_path + '/autocomplete/hls'); |
71 | db6fbc92 | Aurelien BOMPARD | |
72 | change_refresh_rate(refresh_status); |
||
73 | |||
74 | $$('.date_field_button').addEvent('click', function () { |
||
75 | $$(".calendar").setStyles({"zIndex": window.search_dialog.domObj.getStyle('zIndex').toInt()}); |
||
76 | }); |
||
77 | 6d2f147e | Francois POIROTTE | |
78 | document.fireEvent('board-update');
|
||
79 | db6fbc92 | Aurelien BOMPARD | }); |
80 | |||
81 | function change_fontsize(size) { |
||
82 | document.body.style.fontSize = size; |
||
83 | var req = new Request.JSON({ |
||
84 | link: 'cancel', |
||
85 | url: app_path + '/set_fontsize', |
||
86 | onFailure: function () { |
||
87 | alert(_('Unable to save preferences'));
|
||
88 | } |
||
89 | }); |
||
90 | req.post({fontsize: size});
|
||
91 | |||
92 | vigiloLog.log("Font size set to " + size + "."); |
||
93 | } |
||
94 | |||
95 | var refresh_timeout = null; |
||
96 | function change_refresh_rate(enabled) { |
||
97 | var delay = refresh_delay;
|
||
98 | if (refresh_timeout) refresh_timeout = $clear(refresh_timeout); |
||
99 | a6979553 | Aurelien BOMPARD | if (parseInt(enabled, 10) && delay) refresh_timeout = refresh_page.periodical(delay * 1000); |
100 | db6fbc92 | Aurelien BOMPARD | } |
101 | |||
102 | function set_refresh() { |
||
103 | 8d822583 | Francois POIROTTE | var enabled = $('refresh').get('checked') ? 1 : 0; |
104 | db6fbc92 | Aurelien BOMPARD | var req = new Request.JSON({ |
105 | link: 'cancel', |
||
106 | url: app_path + '/set_refresh', |
||
107 | onFailure: function () { |
||
108 | alert(_('Unable to save preferences'));
|
||
109 | } |
||
110 | }); |
||
111 | req.post({'refresh': enabled});
|
||
112 | change_refresh_rate(enabled); |
||
113 | } |
||
114 | |||
115 | function refresh_page() { |
||
116 | var dialogs = $$(".jxDialog"); |
||
117 | for (var i=0; i<dialogs.length; i++) { |
||
118 | if (dialogs[i].getStyle('display') != 'none') { |
||
119 | vigiloLog.log("A dialog is active on the page ('" + dialogs[i].getElement('.jxDialogLabel').get('text') + "'): refresh is not possible."); |
||
120 | return;
|
||
121 | } |
||
122 | } |
||
123 | |||
124 | vigiloLog.log("No active dialog on the page: refreshing...");
|
||
125 | 04e15401 | Francois POIROTTE | |
126 | /* La page principale est toujours rechargée, mais si on désactive
|
||
127 | * le cache, cela vaut pour TOUTES les ressources. Ici, on veut
|
||
128 | * réutiliser au maximum le contenu du cache.
|
||
129 | * Observations faites sous Fx 3.6.8.
|
||
130 | */
|
||
131 | 7bde24ad | Francois POIROTTE | var req = new Request.HTML({ |
132 | method: "get", |
||
133 | noCache: false, |
||
134 | link: 'cancel', |
||
135 | url: (new URI()), |
||
136 | evalScripts: false, |
||
137 | filter: 'table.vigitable', |
||
138 | onSuccess: function (tree) { |
||
139 | fbbf34f8 | Francois POIROTTE | tree.replaces($$('table.vigitable')[0]); |
140 | 6d2f147e | Francois POIROTTE | document.fireEvent('board-update');
|
141 | 7bde24ad | Francois POIROTTE | }, |
142 | onException: function () { |
||
143 | // En cas d'erreur, on recharge toute la page.
|
||
144 | alert(_('Could not refresh data, reloading the page'));
|
||
145 | window.location.reload(false);
|
||
146 | } |
||
147 | }); |
||
148 | req.send(); |
||
149 | db6fbc92 | Aurelien BOMPARD | } |
150 | |||
151 | function change_theme(theme_id, theme_name) { |
||
152 | var req = new Request.JSON({ |
||
153 | link: 'cancel', |
||
154 | url: app_path + '/set_theme', |
||
155 | onFailure: function () { |
||
156 | alert(_('Unable to save preferences'));
|
||
157 | } |
||
158 | }); |
||
159 | 36f6910e | Francois POIROTTE | req.post({theme: theme_id});
|
160 | db6fbc92 | Aurelien BOMPARD | setActiveStyleSheet(theme_name); |
161 | |||
162 | vigiloLog.log("Theme set to '" + theme_name + "'."); |
||
163 | } |
||
164 | |||
165 | function setActiveStyleSheet(theme_name) { |
||
166 | $$('link[rel~=stylesheet][title]').each(function (link_obj) { |
||
167 | link_obj.set('disabled', true); |
||
168 | if (link_obj.get('title') == theme_name) |
||
169 | link_obj.set('disabled', false); |
||
170 | a6979553 | Aurelien BOMPARD | }); |
171 | db6fbc92 | Aurelien BOMPARD | } |
172 | |||
173 | function add_autocompleter(elem, varname, url) { |
||
174 | new Autocompleter.Request.VigiloJSON(elem, url, {
|
||
175 | // ATTENTION: domObj n'est pas documenté dans l'API.
|
||
176 | zIndex: window.search_dialog.domObj.getStyle('zIndex').toInt(), |
||
177 | minLength: 1, |
||
178 | selectMode: 'pick', |
||
179 | postVar: varname,
|
||
180 | overflow: true |
||
181 | }); |
||
182 | } |
||
183 | 36f6910e | Francois POIROTTE | |
184 | function set_items_per_page(ipp) { |
||
185 | var req = new Request.JSON({ |
||
186 | link: 'cancel', |
||
187 | url: app_path + '/set_items_per_page', |
||
188 | onFailure: function () { |
||
189 | alert(_('Unable to save preferences'));
|
||
190 | }, |
||
191 | onSuccess: function () { |
||
192 | refresh_page(); |
||
193 | } |
||
194 | }); |
||
195 | req.post({items: ipp});
|
||
196 | } |