Project

General

Profile

prewikka-refresh-improved-compatability.diff

revised version of the patch debuged on konqueror, Opera, and IE7 - prmarino1-gmail-com -, 07/24/2007 06:18 AM

Download (9.29 KB)

View differences:

./prewikka/templates/MessageListing.tmpl 2007-07-24 00:06:47.139178463 -0400
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
        document.getElementById("auto_apply_current").innerHTML = Math.floor(second_count / 60) + ":" + pad((second_count % 60))
76

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

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

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

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

  
98

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

  
106

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

  
112

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

  
138

  
139

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

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

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

  
250
     <input type="hidden" name="auto_apply_hidden" value="$auto_apply_hidden">
251
     
252
     <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 />
253
     <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>
254
    </td>
255
  </tr>
256

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

  
330
#block body
331
<body class="$body_class" onload="beginAutoApply()">
332
        <div id="top_view">
333
                <div id="top_view_header">
334
                        <div id="top_view_header_software">$prewikka.software</div>
335
                        <div id="top_view_header_place">$prewikka.place</div>
336
                        <div id="top_view_header_title">$prewikka.title</div>
337
                </div>
338
                $toplayout_content
339
        </div>
340
</body>
341
#end block body
./prewikka/views/alertlisting.py 2007-07-24 00:03:51.305158254 -0400
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 2007-07-24 00:03:51.309158482 -0400
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 2007-07-24 00:03:51.317158938 -0400
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)