Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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