1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
\r
6 <meta name="generator" content="AsciiDoc 8.6.9" />
\r
7 <title>Psensor TODO</title>
\r
8 <style type="text/css">
\r
11 background: #e2e2e2;
\r
13 font-family: Ubuntu,Arial,sans-serif;
\r
15 font-weight: lighter;
\r
16 margin: 1em 2em 2em 2em;
\r
22 margin: 0 0 0.267em 0;
\r
24 font-weight: normal;
\r
29 margin: 0 0 0.375em;
\r
31 font-weight: normal;
\r
36 margin: 0 0 0.522em;
\r
38 font-weight: normal;
\r
43 margin: 0 0 0.615em;
\r
45 font-weight: normal;
\r
56 font-weight: normal;
\r
58 letter-spacing: 0.1em;
\r
59 margin: 0 0 0.923em;
\r
60 text-transform: uppercase;
\r
80 text-decoration: none;
\r
84 text-decoration: underline;
\r
88 font-family: "Ubuntu Mono","Courier New",Courier,monospace;
\r
89 font-weight: normal;
\r
94 background: none repeat scroll 0 0 #e0e0e0;
\r
96 padding: 0.5em 0.5em;
\r
98 white-space: pre-wrap;
\r
99 word-wrap: break-word;
\r
110 font-weight: lighter;
\r
121 background: #ffffff;
\r
123 -moz-box-sizing: border-box;
\r
125 padding: 2em 2em 2em 2em;
\r
127 -moz-border-radius: 4px;
\r
128 -webkit-border-radius: 4px;
\r
129 border-radius: 4px;
\r
131 -webkit-box-shadow: 0 2px 2px 0 #C2C2C2;
\r
132 box-shadow: 0 2px 2px 0 #C2C2C2;
\r
136 background: #ffffff;
\r
137 -moz-box-sizing: border-box;
\r
138 padding: 2em 2em 2em 2em;
\r
140 -moz-border-radius: 4px;
\r
141 -webkit-border-radius: 4px;
\r
142 border-radius: 4px;
\r
144 -webkit-box-shadow: 0 2px 2px 0 #C2C2C2;
\r
145 box-shadow: 0 2px 2px 0 #C2C2C2;
\r
148 #menu-list, #menu-list > li > ul {
\r
149 list-style-type: none;
\r
152 /* menu on left col, content on right col */
\r
167 margin: 0em 0em 2em 0em;
\r
169 background: #ffffff;
\r
170 -moz-box-sizing: border-box;
\r
171 padding: 2em 2em 2em 2em;
\r
173 -moz-border-radius: 4px;
\r
174 -webkit-border-radius: 4px;
\r
175 border-radius: 4px;
\r
177 -webkit-box-shadow: 0 2px 2px 0 #C2C2C2;
\r
178 box-shadow: 0 2px 2px 0 #C2C2C2;
\r
183 <script type="text/javascript">
\r
185 var asciidoc = { // Namespace.
\r
187 /////////////////////////////////////////////////////////////////////
\r
188 // Table Of Contents generator
\r
189 /////////////////////////////////////////////////////////////////////
\r
191 /* Author: Mihai Bazon, September 2002
\r
192 * http://students.infoiasi.ro/~mishoo
\r
194 * Table Of Content generator
\r
197 * Feel free to use this script under the terms of the GNU General Public
\r
198 * License, as long as you do not remove or alter this notice.
\r
201 /* modified by Troy D. Hanson, September 2006. License: GPL */
\r
202 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
\r
204 // toclevels = 1..4.
\r
205 toc: function (toclevels) {
\r
207 function getText(el) {
\r
209 for (var i = el.firstChild; i != null; i = i.nextSibling) {
\r
210 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
\r
212 else if (i.firstChild != null)
\r
213 text += getText(i);
\r
218 function TocEntry(el, text, toclevel) {
\r
221 this.toclevel = toclevel;
\r
224 function tocEntries(el, toclevels) {
\r
225 var result = new Array;
\r
226 var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
\r
227 // Function that scans the DOM tree for header elements (the DOM2
\r
228 // nodeIterator API would be a better technique but not supported by all
\r
230 var iterate = function (el) {
\r
231 for (var i = el.firstChild; i != null; i = i.nextSibling) {
\r
232 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
\r
233 var mo = re.exec(i.tagName);
\r
234 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
\r
235 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
\r
245 var toc = document.getElementById("toc");
\r
250 // Delete existing TOC entries in case we're reloading the TOC.
\r
251 var tocEntriesToRemove = [];
\r
253 for (i = 0; i < toc.childNodes.length; i++) {
\r
254 var entry = toc.childNodes[i];
\r
255 if (entry.nodeName.toLowerCase() == 'div'
\r
256 && entry.getAttribute("class")
\r
257 && entry.getAttribute("class").match(/^toclevel/))
\r
258 tocEntriesToRemove.push(entry);
\r
260 for (i = 0; i < tocEntriesToRemove.length; i++) {
\r
261 toc.removeChild(tocEntriesToRemove[i]);
\r
264 // Rebuild TOC entries.
\r
265 var entries = tocEntries(document.getElementById("content"), toclevels);
\r
266 for (var i = 0; i < entries.length; ++i) {
\r
267 var entry = entries[i];
\r
268 if (entry.element.id == "")
\r
269 entry.element.id = "_toc_" + i;
\r
270 var a = document.createElement("a");
\r
271 a.href = "#" + entry.element.id;
\r
272 a.appendChild(document.createTextNode(entry.text));
\r
273 var div = document.createElement("div");
\r
274 div.appendChild(a);
\r
275 div.className = "toclevel" + entry.toclevel;
\r
276 toc.appendChild(div);
\r
278 if (entries.length == 0)
\r
279 toc.parentNode.removeChild(toc);
\r
283 /////////////////////////////////////////////////////////////////////
\r
284 // Footnotes generator
\r
285 /////////////////////////////////////////////////////////////////////
\r
287 /* Based on footnote generation code from:
\r
288 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
\r
291 footnotes: function () {
\r
292 // Delete existing footnote entries in case we're reloading the footnodes.
\r
294 var noteholder = document.getElementById("footnotes");
\r
298 var entriesToRemove = [];
\r
299 for (i = 0; i < noteholder.childNodes.length; i++) {
\r
300 var entry = noteholder.childNodes[i];
\r
301 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
\r
302 entriesToRemove.push(entry);
\r
304 for (i = 0; i < entriesToRemove.length; i++) {
\r
305 noteholder.removeChild(entriesToRemove[i]);
\r
308 // Rebuild footnote entries.
\r
309 var cont = document.getElementById("content");
\r
310 var spans = cont.getElementsByTagName("span");
\r
313 for (i=0; i<spans.length; i++) {
\r
314 if (spans[i].className == "footnote") {
\r
316 var note = spans[i].getAttribute("data-note");
\r
318 // Use [\s\S] in place of . so multi-line matches work.
\r
319 // Because JavaScript has no s (dotall) regex flag.
\r
320 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
\r
321 spans[i].innerHTML =
\r
322 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
\r
323 "' title='View footnote' class='footnote'>" + n + "</a>]";
\r
324 spans[i].setAttribute("data-note", note);
\r
326 noteholder.innerHTML +=
\r
327 "<div class='footnote' id='_footnote_" + n + "'>" +
\r
328 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
\r
329 n + "</a>. " + note + "</div>";
\r
330 var id =spans[i].getAttribute("id");
\r
331 if (id != null) refs["#"+id] = n;
\r
335 noteholder.parentNode.removeChild(noteholder);
\r
337 // Process footnoterefs.
\r
338 for (i=0; i<spans.length; i++) {
\r
339 if (spans[i].className == "footnoteref") {
\r
340 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
\r
341 href = href.match(/#.*/)[0]; // Because IE return full URL.
\r
343 spans[i].innerHTML =
\r
344 "[<a href='#_footnote_" + n +
\r
345 "' title='View footnote' class='footnote'>" + n + "</a>]";
\r
351 install: function(toclevels) {
\r
354 function reinstall() {
\r
355 asciidoc.footnotes();
\r
357 asciidoc.toc(toclevels);
\r
361 function reinstallAndRemoveTimer() {
\r
362 clearInterval(timerId);
\r
366 timerId = setInterval(reinstall, 500);
\r
367 if (document.addEventListener)
\r
368 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
\r
370 window.onload = reinstallAndRemoveTimer;
\r
374 asciidoc.install(2);
\r
378 <body class="article">
\r
380 <h1>Psensor TODO</h1>
\r
382 <div id="toctitle">Table of Contents</div>
383 <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
387 <div id="preamble">
\r
388 <div class="sectionbody">
\r
389 <div class="paragraph"><p>The last version of this file is available at
\r
390 <a href="http://wpitchoune.net/gitweb/?p=psensor.git;a=blob_plain;f=doc/TODO.html;hb=HEAD">http://wpitchoune.net/gitweb/?p=psensor.git;a=blob_plain;f=doc/TODO.html;hb=HEAD</a>.</p></div>
\r
391 <div class="ulist"><ul>
\r
394 Play a sound when a sensor alert is raised. Note that
\r
395 it can actually be done by using the script support.
\r
400 Use max/crit temperature information provided by
\r
406 Include help/faq directly in psensor UI.
\r
413 <div id="footnotes"><hr /></div>
\r
415 <div id="footer-text">
\r
417 2014-11-20 14:52:59 CET
\r