Project

General

Profile

prewikka-refresh.diff

Second version of the modified Prewikka refresh patch - Yoann VANDOORSELAERE, 07/16/2007 01:36 PM

Download (10.4 KB)

View differences:

htdocs/js/functions.js (local)
1 1
var cur_visible = null;
2
var autorefresh_enabled = true;
2 3

  
4

  
3 5
function toggleVisibility(section_id) {
4 6
	section = document.getElementById(section_id);
5 7
	
6 8
	if ( section.style.display != 'block' ) {
9
		autorefresh_enabled = false;
7 10
		section.style.display = 'block';
8 11
	} else {
12
		autorefresh_enabled = true;
9 13
		section.style.display = 'none';
10 14
	}
11 15
}
......
19 23
	section = document.getElementById(section_id);
20 24
	if ( cur_visible == section ) {
21 25
		cur_visible = null;
26
		autorefresh_enabled = true;
22 27
		return;
23 28
	}
24 29

  
......
32 37

  
33 38

  
34 39
function toggleFilteredColumnVisibility(column_id) {
35
	columns = new Array("classification", "source", "target", "analyzer");
36

  
37
	for ( var i=0; i < columns.length; i++ ) {
38
		popup = document.getElementById(columns[i]);
39

  
40
		if ( column_id == columns[i] ) {
41
			if ( popup.style.display != 'block' ) {
42
				popup.style.display = 'block';
43
			} else {
44
				popup.style.display = 'none';
45
			}
46
		} else {
47
			popup.style.display = 'none';
48
		}
49
	}
40
	toggleVisibilityUnique(column_id);
50 41
}
51 42

  
52 43
function checkBoxByName(name, value) {
prewikka/templates/MessageListing.tmpl (local)
2 2
#extends prewikka.templates.ClassicLayout
3 3

  
4 4
#def layout_start_hook
5
<form method="post" action="?">
5
<script type="text/javascript">
6

  
7
<!--
8

  
9
var second_reload  = 0;
10
var second_count   = 0;
11

  
12

  
13
function enableAutoRefresh() {
14
        document.viewfilter.auto_apply_value.disabled = ! document.viewfilter.auto_apply_value.disabled;
15
        if ( document.viewfilter.auto_apply_value.disabled == true )
16
                autorefresh_enabled = false;
17
        else
18
                autorefresh_enabled = true;
19
}
20

  
21
function inputFocus() {
22
        autorefresh_enabled = false;
23
}
24

  
25

  
26
function inputBlur() {
27
        if ( second_reload <= second_count )
28
                second_count = 0;
29

  
30
        autorefresh_enabled = true
31
}
32

  
33
function pad(number) 
34
{
35
        if ( number < 10 )
36
            return "0" + number
37
        else
38
            return number;
39
}
40

  
41
function autoApplyTime() {
42
        if ( document.viewfilter.auto_apply_value.value )
43
                var rawtime = document.viewfilter.auto_apply_value.value;
44
        else
45
                var rawtime = "0:00";
46

  
47
        var old = second_reload;
48
        var parselimit = rawtime.split(":");
49

  
50
        if ( parselimit[0] && parselimit[1] && parselimit[2] )
51
                second_reload = parselimit[0] * 3600 + parselimit[1] * 60 + parselimit[2] * 1;
52

  
53
        else if ( parselimit[0] && parselimit[1] )
54
                second_reload = parselimit[0] * 60 + parselimit[1] * 1;
55

  
56
        else
57
                second_reload = rawtime
58
        
59
        if ( second_reload != old ) {
60
                secound_count = 0;
61
                document.viewfilter.auto_apply_hidden.value = rawtime;
62
        }
63
}
64

  
65

  
66
function autoApplyCounter() {
67
        autoApplyTime();
68

  
69
        if ( autorefresh_enabled == false || second_reload == 0 ) {
70
                setTimeout("autoApplyCounter()", 1000);
71
                return;
72
        }
73

  
74
        second_count += 1
75
        status = document.getElementById("auto_apply_current")
76
        status.innerHTML = Math.floor(second_count / 60) + ":" + pad((second_count % 60))
77

  
78
        if ( second_count != second_reload )
79
                setTimeout("autoApplyCounter()", 1000);
80
        
81
        else if ( second_count == second_reload ) {
82
                second_count = 0;
83
                
84
                var yaxis = 0;
85
                if ( window.pageYOffset )
86
                        yaxis = window.pageYOffset;
87

  
88
                else if ( window.documentElement && window.documentElement.scrollTop )
89
                        yaxis = window.documentElement.scrollTop;
90

  
91
                else if ( document.body.scrollTop )
92
                        yaxis = window.body.scrollTop;
93

  
94
                document.viewfilter.y.value = yaxis;
95
                document.viewfilter.submit("Apply");
96
        }
97
}
98

  
99

  
100
function setScrollBar() {
101
        if ( document.viewfilter.y.value ) {
102
                window.scrollTo('0', document.viewfilter.y.value) ;
103
                document.viewfilter.y.value = 0;
104
        }
105
}
106

  
107

  
108
function stopTimerOnClick() {
109
        autorefresh_enabled = false;
110
        alert("clicked stop timer");
111
}
112

  
113

  
114
function beginAutoApply() {
115
#if $auto_apply_enable
116
        autorefresh_enabled = true;
117
#else
118
        autorefresh_enabled = false;
119
#end if
120
    
121
        setScrollBar();
122
        autoApplyCounter();
123
        
124
        var i;
125
        
126
        for ( i = 0; i < document.links.length; i++ ) {
127
                if ( document.links[i].onclick == null )
128
                        document.links[i].onclick = stopTimerOnClick;
129
        }
130
        
131
        for ( i = 0; i < document.viewfilter.elements.length; i++ ) {
132
                var elem = document.viewfilter.elements[i];
133
                
134
                if ( elem.type == "submit" )
135
                        elem.onclick = stopTimerOnClick;
136
        }
137
}
138

  
139

  
140

  
141
//--></script>
142
<form name="viewfilter" method="post" action="?">
6 143
#for $name, $value in $hidden_parameters
7 144
  <input type="hidden" name="$name" value="$value"/>
8 145
#end for
......
99 236
   </td>
100 237
  </tr>
101 238

  
239
  <tr>
240
    <th id="auto_apply_label">$_("Refresh")</th>
241

  
242
    <td colspan="2">
243
    #if $auto_apply_enable
244
        #set $enabled="checked=\"checked\""
245
        #set $disabled=""
246
    #else:
247
        #set $enabled=""
248
        #set $disabled="disabled=\"disabled\""
249
    #end if
250

  
251
     <input type="hidden" name="auto_apply_hidden" value="$auto_apply_hidden">
252
     
253
     <span id="auto_apply_current">0:00</span>/<input type="text" size="2" name="auto_apply_value" value="$auto_apply_hidden" onFocus="javascript:inputFocus()" onBlur="javascript:inputBlur()" $disabled />
254
     <input style="margin-top:0; margin-left: 0; margin-bottom: 0; padding-top: 0; padding-left: 0; padding-bottom: 0;" type="checkbox" name="auto_apply_enable" "$enabled" onclick="javascript:enableAutoRefresh();">Enable</input>
255
    </td>
256
  </tr>
257

  
102 258
  <tr style="text-align: center;">
103 259
      <td colspan=3><input type="submit" name="apply" value="$_("Apply")" />
104 260
      <input type="submit" name="_save" value="$_("Save")" /></td>
......
171 327
#filter Filter
172 328
#end filter
173 329
#end block menu_extra_content
330

  
331
#block body
332
<body class="$body_class" onload="beginAutoApply()">
333
        <div id="top_view">
334
                <div id="top_view_header">
335
                        <div id="top_view_header_software">$prewikka.software</div>
336
                        <div id="top_view_header_place">$prewikka.place</div>
337
                        <div id="top_view_header_title">$prewikka.title</div>
338
                </div>
339
                $toplayout_content
340
        </div>
341
</body>
342
#end block body
prewikka/views/alertlisting.py (local)
1059 1059
        self.dataset["analyzer_aggregations"] = ANALYZER_AGGREGATIONS
1060 1060

  
1061 1061
    def render(self):
1062
        MessageListing.render(self)
1063
    
1062 1064
        self._deleteMessages()
1063 1065
        self._setDatasetConstants()
1064 1066
        
prewikka/views/heartbeatlisting.py (local)
106 106
        self.env.idmef_db.deleteHeartbeat(ident)
107 107

  
108 108
    def render(self):
109
        MessageListing.render(self)
110

  
109 111
        self._deleteMessages()
110 112
        criteria = [ ]
111 113
        start = end = None
prewikka/views/messagelisting.py (local)
109 109
        self.optional("delete", list, [ ])
110 110
        self.optional("apply", str)
111 111
        
112
        self.optional("auto_apply_hidden", str, default="0:00", save=True)
113
        self.optional("auto_apply_enable", str, save=True)
114
        self.optional("auto_apply_value", str)
115
        
112 116
        # submit with an image passes the x and y coordinate values
113 117
        # where the image was clicked
114 118
        self.optional("x", int)
......
132 136
        if not self["timezone"] in ("frontend_localtime", "sensor_localtime", "utc"):
133 137
            raise view.InvalidValueError("timezone", self["timezone"])
134 138
        
135
        # remove the bulshit
136
        try:
137
            del self["x"]
138
            del self["y"]
139
        except KeyError:
140
            pass
141
        
139
        if not self.has_key("auto_apply_enable"):
140
            user.delConfigValue(view_name, "auto_apply_enable")
141
            
142 142
        return do_load
143 143

  
144 144

  
......
211 211
    def _adjustCriteria(self, criteria):
212 212
        pass
213 213
    
214
    def render(self):
215
        self.dataset["auto_apply_hidden"] = self.parameters.get("auto_apply_hidden", "0:00")
216
        self.dataset["auto_apply_enable"] = self.parameters.get("auto_apply_enable", None)
217
        
218
        # We need to remove x/y from parameters, so that they aren't used for link.
219
        self.dataset["hidden_parameters"] = [ ]
220
        
221
        if self.parameters.has_key("x"): 
222
            self.dataset["hidden_parameters"].append( ("x", self.parameters.pop("x")) )
223
        else:
224
            self.dataset["hidden_parameters"].append( ("x", "") )
225
        
226
        if self.parameters.has_key("y"):
227
            self.dataset["hidden_parameters"].append( ("y", self.parameters.pop("y")) )
228
        else:
229
            self.dataset["hidden_parameters"].append( ("y", "") )
230

  
214 231
    def _setHiddenParameters(self):
215
        self.dataset["hidden_parameters"] = [ [ "view", self.view_name ] ]
232
        self.dataset["hidden_parameters"].append( ("view", self.view_name) )
233
        
216 234
        if self.parameters.has_key("timeline_end"):
217 235
            self.dataset["hidden_parameters"].append(("timeline_end", self.parameters["timeline_end"]))
218

  
236
        
219 237
    def _setTimelineNext(self, next):
220 238
        parameters = self.parameters - [ "offset" ] + { "timeline_end": int(next) }
221 239
        self.dataset["timeline.next"] = utils.create_link(self.view_name, parameters)