old-dir-support removed, image-indexing rebuilt, smallscreen/touchpad moved to

stylesheetPrefix, menuEntries added, Extend devStateIcon, js setting of attr
values in detail screen, live slider update in detail and room view



git-svn-id: https://svn.fhem.de/fhem/trunk@2786 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2013-02-22 17:41:29 +00:00
parent 97c57ffd35
commit 6f307b3012
10 changed files with 462 additions and 535 deletions

View File

@ -85,6 +85,10 @@
- feature: floorplan added js-extension from Dirk - feature: floorplan added js-extension from Dirk
- feature: hour resolution in SVG - feature: hour resolution in SVG
- feature: ZWave support for MULTI_CHANNEL class - feature: ZWave support for MULTI_CHANNEL class
- feature: FHEMWEB: old-dir-support removed, image-indexing rebuilt,
smallscreen/touchpad moved to stylesheetPrefix, menuEntries
added, Extend devStateIcon, js setting of attr values in detail
screen, live slider update in detail and room view
- 2012-10-28 (5.3) - 2012-10-28 (5.3)
- feature: added functions trim, ltrim, rtrim, UntoggleDirect, - feature: added functions trim, ltrim, rtrim, UntoggleDirect,

File diff suppressed because it is too large Load Diff

View File

@ -19,123 +19,123 @@
<div id="right"> <div id="right">
<!-- <!--
<div id="dist"> <div class="dist">
<a href="#faq1"> <a href="#faq1">
1. I get a <code>Can't call method "opened"</code> message when starting 1. I get a <code>Can't call method "opened"</code> message when starting
fhem. Why?</a> fhem. Why?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq2"> <a href="#faq2">
2. I get "undefined" messages in the log after upgrading fhem.pl</a> 2. I get "undefined" messages in the log after upgrading fhem.pl</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq3"> <a href="#faq3">
3. I switched on a FS20 device directly (without the remote), but the 3. I switched on a FS20 device directly (without the remote), but the
fhem.pl did not noticed it. Is it a bug?</a> fhem.pl did not noticed it. Is it a bug?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq4"> <a href="#faq4">
4. I have some FS20/FHT/HMS devices. How do I know their housecode?</a> 4. I have some FS20/FHT/HMS devices. How do I know their housecode?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq5"> <a href="#faq5">
5. I have the code for my devices in the ELV notation, which contains 1,2,3 5. I have the code for my devices in the ELV notation, which contains 1,2,3
and 4, but you require a hex code. How should I convert it?</a> and 4, but you require a hex code. How should I convert it?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq6"> <a href="#faq6">
6. I replaced my FHZ1X00PC, now the FHT80b's does not work anymore. Help 6. I replaced my FHZ1X00PC, now the FHT80b's does not work anymore. Help
me!</a> me!</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq7"> <a href="#faq7">
7. I can specify an optional ml/raincounter for a KS300. Why do you think 7. I can specify an optional ml/raincounter for a KS300. Why do you think
that 255 should be the default?</a> that 255 should be the default?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq8"> <a href="#faq8">
8. The time specification of the builtin <code>at</code> command is not very flexible. 8. The time specification of the builtin <code>at</code> command is not very flexible.
Please add day/month/weekday to it.</a> Please add day/month/weekday to it.</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq9"> <a href="#faq9">
9. I defined my FS20STR as an FHT device, but I do not get any data from 9. I defined my FS20STR as an FHT device, but I do not get any data from
it.</a> it.</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq10"> <a href="#faq10">
10. How to convert the FHT80b code seen in its display to the hex code needed 10. How to convert the FHT80b code seen in its display to the hex code needed
by fhem.pl?</a> by fhem.pl?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq11"> <a href="#faq11">
11. I'd like to use this sunrise/sunset stuff, can you help me?</a> 11. I'd like to use this sunrise/sunset stuff, can you help me?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq12"> <a href="#faq12">
12. I'd like to switch on the ventilator if the FHT tells me its too hot. How 12. I'd like to switch on the ventilator if the FHT tells me its too hot. How
to tell fhem to do that?</a> to tell fhem to do that?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq13"> <a href="#faq13">
13. I'd like to see directly in the Web frontend if a window is open. How to 13. I'd like to see directly in the Web frontend if a window is open. How to
do that?</a> do that?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq14"> <a href="#faq14">
14. In the summer I get a lot of "actuator:lime-protection" messages from my 14. In the summer I get a lot of "actuator:lime-protection" messages from my
FHT80b. How to switch back to the actuator:0% messages?</a> FHT80b. How to switch back to the actuator:0% messages?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq15"> <a href="#faq15">
15. My notify/filelog does not work, help me!</a> 15. My notify/filelog does not work, help me!</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq16"> <a href="#faq16">
16. Setting auto-mode from manual for the FHT won't change the desired 16. Setting auto-mode from manual for the FHT won't change the desired
temperature!</a> temperature!</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq17"> <a href="#faq17">
17. I have problem receiving data, I get "Bad CRC" or "Oversized 17. I have problem receiving data, I get "Bad CRC" or "Oversized
message."</a> message."</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq18"> <a href="#faq18">
18. My FHZ1X00PC gets all time automatically disconnected and reconnected. My 18. My FHZ1X00PC gets all time automatically disconnected and reconnected. My
log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear". log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear".
What is wrong with my USB?</a> What is wrong with my USB?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq19"> <a href="#faq19">
19. How do I set the dim100% from the at command?</a> 19. How do I set the dim100% from the at command?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq20"> <a href="#faq20">
20. Why do my Sunrise/Sunset times differ from the ones on website 20. Why do my Sunrise/Sunset times differ from the ones on website
XXX?</a> XXX?</a>
</div> </div>
<div id="dist"> <div class="dist">
<a href="#faq21"> <a href="#faq21">
21. What is "unknown message: EOB" from a CUL device?</a> 21. What is "unknown message: EOB" from a CUL device?</a>
</div> </div>

View File

@ -165,7 +165,7 @@
EM1000WZ), FHT80b, HMS, S300 (KS300, S300TH, KS555, S555TH, etc), EM1000WZ), FHT80b, HMS, S300 (KS300, S300TH, KS555, S555TH, etc),
HomeMatic (<a href="commandref.html#CUL_HM">selected</a> devices), HomeMatic (<a href="commandref.html#CUL_HM">selected</a> devices),
La Crosse TX2/TX3.</li> La Crosse TX2/TX3.</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via an attached FHZ1000 or FHZ1300 access to the following protocols: <li>Via an attached FHZ1000 or FHZ1300 access to the following protocols:
FS20 (all devices), FHT80b, HMS, KS300. <b>Note:</b> For the WLAN FS20 (all devices), FHT80b, HMS, KS300. <b>Note:</b> For the WLAN
@ -173,84 +173,84 @@
href="http://www.thinkwiki.org/wiki/User:Akw/FHZ"> href="http://www.thinkwiki.org/wiki/User:Akw/FHZ">
link</a>. link</a>.
</li> </li>
<div id="dist"></div> <div class="dist"></div>
<li>reading and sending X10 events via the CM11 module (with access <li>reading and sending X10 events via the CM11 module (with access
to a X10 computer interface)</li> to a X10 computer interface)</li>
<div id="dist"></div> <div class="dist"></div>
<li>S300 devices via an attached WS300</li> <li>S300 devices via an attached WS300</li>
<div id="dist"></div> <div class="dist"></div>
<li>EM1010PC and attached EM1000WZ, EM1000EM or EM1000GZ</li> <li>EM1010PC and attached EM1000WZ, EM1000EM or EM1000GZ</li>
<div id="dist"></div> <div class="dist"></div>
<li>reading attached SCIVT devices</li> <li>reading attached SCIVT devices</li>
<div id="dist"></div> <div class="dist"></div>
<li>reading attached M232 devices</li> <li>reading attached M232 devices</li>
<div id="dist"></div> <div class="dist"></div>
<li>reading attached WS2000/WS25000 devices, also via raw network <li>reading attached WS2000/WS25000 devices, also via raw network
converters (xport)</li> converters (xport)</li>
<div id="dist"></div> <div class="dist"></div>
<li>extract sensor data from IPWE networked weather data receiver</li> <li>extract sensor data from IPWE networked weather data receiver</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via an attached <a <li>Via an attached <a
href="http://owfs.org/index.php?page=usb-ds9490r">DS9490R</a> or <a href="http://owfs.org/index.php?page=usb-ds9490r">DS9490R</a> or <a
href="http://owfs.org/index.php?page=com-ds9097-passive">DS9097</a> href="http://owfs.org/index.php?page=com-ds9097-passive">DS9097</a>
access to the following Dallas 1-wire sensors: DS18S20, DS1820, access to the following Dallas 1-wire sensors: DS18S20, DS1820,
DS18B20</li> DS18B20</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via an attached KM271 access to the Buderus Logamatic 2107</li> <li>Via an attached KM271 access to the Buderus Logamatic 2107</li>
<div id="dist"></div> <div class="dist"></div>
<li>Allnet devices: Allnet 3076, Temperatures sensors and Allnet 4027 <li>Allnet devices: Allnet 3076, Temperatures sensors and Allnet 4027
relay box connected to an Allnet 4000</li> relay box connected to an Allnet 4000</li>
<div id="dist"></div> <div class="dist"></div>
<li>Davis VantagePro2 weatherstation</li> <li>Davis VantagePro2 weatherstation</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via the RFXCOM RFXtrx433 transceiver (433 Mhz) support for various <li>Via the RFXCOM RFXtrx433 transceiver (433 Mhz) support for various
protocols (ANSLUT, ByeByeStandBy, Chacon EMW200, COCO, DomiaLite, Duewi, protocols (ANSLUT, ByeByeStandBy, Chacon EMW200, COCO, DomiaLite, Duewi,
ELRO AB400/AB600, HomeEasy EU, HomeEasy UK, IMPULS, Intertechno, KD101, ELRO AB400/AB600, HomeEasy EU, HomeEasy UK, IMPULS, Intertechno, KD101,
KlikAanKlikUit (KAKU), NEXA, Oregon Scientific, X10 security and KlikAanKlikUit (KAKU), NEXA, Oregon Scientific, X10 security and
lighting, Visonic, Waveman, X10).</li> lighting, Visonic, Waveman, X10).</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via the old RFXCOM USB or LAN based 433 Mhz RF receivers <li>Via the old RFXCOM USB or LAN based 433 Mhz RF receivers
(order code 80002 and others) the following devices: (order code 80002 and others) the following devices:
Oregon Scientific weather sensors, RFXCOM RFXMeter, Oregon Scientific weather sensors, RFXCOM RFXMeter,
X10 security and X10 lighting devices.</li> X10 security and X10 lighting devices.</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via the ELV USB-WDE1 access to ELV sensors KS200/KS300, S300IA, <li>Via the ELV USB-WDE1 access to ELV sensors KS200/KS300, S300IA,
S300TH, ASH2200, PS 50 and Conrad sensors KS555, S555TH and S300TH, ASH2200, PS 50 and Conrad sensors KS555, S555TH and
ASH555.</li> ASH555.</li>
<div id="dist"></div> <div class="dist"></div>
<li>Via an eQ-3 HomeMatic Lan Configurator access to selected HomeMatic <li>Via an eQ-3 HomeMatic Lan Configurator access to selected HomeMatic
devices. devices.
<div id="dist"></div> <div class="dist"></div>
<li>Via the eibd or a TUL (see <a <li>Via the eibd or a TUL (see <a
href="http://www.busware.de">www.busware.de</a>) access to the EIB/KNX href="http://www.busware.de">www.busware.de</a>) access to the EIB/KNX
protocol. protocol.
<div id="dist"></div> <div class="dist"></div>
<li>Via a TCM120 (e.g. the BSC BOR) or a TCM310 (e.g. busware EUL) access <li>Via a TCM120 (e.g. the BSC BOR) or a TCM310 (e.g. busware EUL) access
to the EnOcean protocol. to the EnOcean protocol.
<div id="dist"></div> <div class="dist"></div>
<li>Via a ZWave USB Dongle (e.g. the Goodway WD6001) access to the ZWave protocol. <li>Via a ZWave USB Dongle (e.g. the Goodway WD6001) access to the ZWave protocol.
<div id="dist"></div> <div class="dist"></div>
<div id="dist"></div> <div class="dist"></div>
<div id="dist"></div> <div class="dist"></div>
A detailed description is to be found in the <a A detailed description is to be found in the <a
href="commandref.html">fhem reference</a>. href="commandref.html">fhem reference</a>.
@ -261,26 +261,26 @@
<a name="Documentation"></a> <a name="Documentation"></a>
<h3>Documentation</h3> <h3>Documentation</h3>
<ul> <ul>
<div id="dist"><a href="Heimautomatisierung-mit-fhem.pdf"> <div class="dist"><a href="Heimautomatisierung-mit-fhem.pdf">
Heimautomatisierung-mit-fhem.pdf</a> (pdf, german)</div> Heimautomatisierung-mit-fhem.pdf</a> (pdf, german)</div>
<div id="dist"><a href="HOWTO.html">HOWTO.html</a> for a short <div class="dist"><a href="HOWTO.html">HOWTO.html</a> for a short
installation/configuration.</div> installation/configuration.</div>
<div id="dist"><a href="commandref.html">commandref.html</a> <div class="dist"><a href="commandref.html">commandref.html</a>
contains a detailed description of all features/modules.</div> contains a detailed description of all features/modules.</div>
<div id="dist">Our wiki at <a <div class="dist">Our wiki at <a
href="http://fhemwiki.de/index.php/FHEM">fhemwiki.de</a></div> href="http://fhemwiki.de/index.php/FHEM">fhemwiki.de</a></div>
<div id="dist">Frequently Asked Questions: <a <div class="dist">Frequently Asked Questions: <a
href="faq.html">faq.html</a></div> href="faq.html">faq.html</a></div>
<div id="dist">Forum: <a href="http://forum.fhem.de"> <div class="dist">Forum: <a href="http://forum.fhem.de">
http://forum.fhem.de</a><br>Although most entries are in german here, http://forum.fhem.de</a><br>Although most entries are in german here,
don't be afraid to ask something in english.</div> don't be afraid to ask something in english.</div>
<div id="dist"><a href="README.contrib">contrib/README</a> describes <div class="dist"><a href="README.contrib">contrib/README</a> describes
some loosely coupled useful modules / scripts which can be used with some loosely coupled useful modules / scripts which can be used with
fhem.</div> fhem.</div>

View File

@ -8,10 +8,10 @@ define telnetPort telnet 7072 global # our TCP/IP port
define WEB FHEMWEB 8083 global define WEB FHEMWEB 8083 global
define WEBphone FHEMWEB 8084 global define WEBphone FHEMWEB 8084 global
attr WEBphone smallscreen attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global define WEBtablet FHEMWEB 8085 global
attr WEBtablet touchpad attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB # Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

View File

@ -40,7 +40,8 @@ right:10px; }
body>div#left { position:fixed; } body>div#left { position:fixed; }
div#block { border:1px solid gray; background: #101010; padding:0.7em; } div#block { border:1px solid gray; background: #101010; padding:0.7em; }
div#dist { padding-top:0.3em; } div#dist { padding-top:0.3em; }
h2,h3,h4 { color:#EEE; line-height:1.3; margin-top:1.5em; font-family:Verdana; } button.dist { margin:10px; background:transparent; border:0px; cursor:pointer; }
h2,h3,h4 { color:#EEE; line-height:1.3; margin-top:1.5em; font-family:Verdana; }
select.attr,input.attr,select.set,input.set { margin-bottom:10px; } select.attr,input.attr,select.set,input.set { margin-bottom:10px; }
a img { border-style:none; } a img { border-style:none; }
@ -53,6 +54,8 @@ select { margin-left:5px; margin-right:5px; }
/* timepicker */ /* timepicker */
.set .set { margin-bottom:2px; margin-top:3px; } .set .set { margin-bottom:2px; margin-top:3px; }
.handle { position:relative; cursor:pointer; width:50px; height:20px; .handle { position:relative; cursor:pointer; width:50px;
line-height:20px; border:2px solid; color:white; text-align:center; } height:20px; line-height:20px;
-webkit-user-select:none; -moz-user-select:none; -user-select:none;
border:2px solid; color:white; text-align:center; }
.downText { margin-top:2px; } .downText { margin-top:2px; }

View File

@ -1,7 +1,6 @@
/*************** LONGPOLL START **************/ /*************** LONGPOLL START **************/
var FW_pollConn; var FW_pollConn;
//The number of the next line in FW_pollConn.responseText to parse var FW_curLine; // Number of the next line in FW_pollConn.responseText to parse
var FW_curLine;
function function
FW_cmd(arg) /* see also FW_devState */ FW_cmd(arg) /* see also FW_devState */
@ -49,6 +48,11 @@ FW_doUpdate()
} }
} }
el = document.getElementById("slider."+d[0]);
if(el) {
var val = d[1].replace(/[^\d\.]/g, ""); // remove non numbers
Slider(el, val);
}
} }
//Next time, we continue at the next line //Next time, we continue at the next line
FW_curLine = lines.length; FW_curLine = lines.length;
@ -85,11 +89,14 @@ FW_delayedStart()
/*************** SLIDER **************/ /*************** SLIDER **************/
function function
Slider(slider, min, stp, max, curr, cmd) Slider(slider, curr)
{ {
var sh = slider.firstChild; var sh = slider.firstChild;
var lastX=-1, offX=0, maxX=0, val=-1; var lastX=-1, offX=0, maxX=0, val=-1;
min = parseFloat(min); max = parseFloat(max); stp = parseFloat(stp); var min = parseFloat(slider.getAttribute("min"));
var stp = parseFloat(slider.getAttribute("stp"));
var max = parseFloat(slider.getAttribute("max"));
var cmd = slider.getAttribute("cmd");
function function
init() init()
@ -196,13 +203,15 @@ addTime(el,cmd)
par.appendChild(document.createElement('br')); par.appendChild(document.createElement('br'));
var sl = document.createElement('div'); var sl = document.createElement('div');
sl.innerHTML = '<div class="slider"><div class="handle">'+val[i]+ sl.innerHTML = '<div class="slider" min="0" stp='+(i==0 ? 1 : 5)+
' max='+(i==0 ? 23 : 55)+
' cmd="js:setTime(slider,"'+(i==0?"H":"M")+'",%)'+
'><div class="handle">'+val[i]+
'</div></div>'; '</div></div>';
par.appendChild(sl); par.appendChild(sl);
sl.setAttribute('class', par.getAttribute('class')); sl.setAttribute('class', par.getAttribute('class'));
Slider(sl.firstChild, 0, (i==0 ? 1 : 5), (i==0 ? 23 : 55), val[i], Slider(sl.firstChild, val[i]);
'js:setTime(slider,"'+(i==0? "H":"M")+'",%)');
} }
} }
@ -219,13 +228,20 @@ FW_selChange(sel, list, elName)
value = nv[1]; break; value = nv[1]; break;
} }
} }
var el = document.getElementsByName(elName)[0]; var el = document.getElementsByName(elName)[0];
var name = el.getAttribute('name'); var name = el.getAttribute('name');
var qFn, qArg;
var devName="";
if(elName.indexOf("val.attr")==0) devName = elName.substring(8);
if(elName.indexOf("val.set")==0) devName = elName.substring(7);
if(value==undefined) { if(value==undefined) {
newEl = document.createElement('input'); newEl = document.createElement('input');
newEl.type='text'; newEl.size=30; newEl.type='text'; newEl.size=30;
qFn = 'qArg.setAttribute("value", "%")';
qArg = newEl;
} else { } else {
var vArr = value.split(","); var vArr = value.split(",");
@ -235,9 +251,12 @@ FW_selChange(sel, list, elName)
max=parseFloat(vArr[3]); max=parseFloat(vArr[3]);
newEl = document.createElement('div'); newEl = document.createElement('div');
newEl.innerHTML= newEl.innerHTML=
'<div class="slider"><div class="handle">'+min+'</div></div>'+ '<div class="slider" id="slider.'+devName+'" min="'+min+'" stp="'+stp+
'" max="'+max+'"><div class="handle">'+min+'</div></div>'+
'<input type="hidden" name="'+name+'" value="'+min+'">'; '<input type="hidden" name="'+name+'" value="'+min+'">';
Slider(newEl.firstChild, min, stp, max, undefined, undefined); Slider(newEl.firstChild, undefined);
qFn = 'FW_querySetSlider(qArg, "%")';
qArg = newEl.firstChild;
} else if(vArr.length == 1 && vArr[0] == "time") { } else if(vArr.length == 1 && vArr[0] == "time") {
newEl = document.createElement('div'); newEl = document.createElement('div');
@ -249,11 +268,55 @@ FW_selChange(sel, list, elName)
for(var j=0; j < vArr.length; j++) { for(var j=0; j < vArr.length; j++) {
newEl.options[j] = new Option(vArr[j], vArr[j]); newEl.options[j] = new Option(vArr[j], vArr[j]);
} }
qFn = 'FW_querySetSelected(qArg, "%")';
qArg = newEl;
} }
} }
newEl.setAttribute('class', el.getAttribute('class')); newEl.setAttribute('class', el.getAttribute('class'));
newEl.setAttribute('name', el.getAttribute('name')); newEl.setAttribute('name', name);
el.parentNode.replaceChild(newEl, el); el.parentNode.replaceChild(newEl, el);
if((typeof qFn == "string")) {
if(elName.indexOf("val.attr")==0)
FW_queryValue('{AttrVal("'+devName+'","'+sel+'","")}', qFn, qArg);
if(elName.indexOf("val.set")==0)
FW_queryValue('{ReadingsVal("'+devName+'","'+sel+'","")}', qFn, qArg);
}
}
/*************** Fill attribute **************/
function
FW_queryValue(cmd, qFn, qArg)
{
var qConn = new XMLHttpRequest();
qConn.onreadystatechange = function() {
if(qConn.readyState != 3)
return;
qFn = qFn.replace("%", qConn.responseText)
.replace(/[\r\n]/g, "");
eval(qFn);
delete qFn;
}
qConn.open("GET", document.location.pathname+"?cmd="+cmd+"&XHR=1", true);
qConn.send(null);
}
function
FW_querySetSelected(el, val)
{
for(var j=0;j<el.options.length;j++)
if(el.options[j].value == val)
el.selectedIndex = j;
}
function
FW_querySetSlider(el, val)
{
val = val.replace(/[^\d\.]/g, ""); // remove non numbers
Slider(el, val);
} }

View File

@ -57,13 +57,14 @@ table#room tr.sel { background: #A0FFFF; }
font-family:Arial, sans-serif; font-size:16px; } font-family:Arial, sans-serif; font-size:16px; }
h2,h3,h4 { color:#52865D; line-height:1.3; h2,h3,h4 { color:#52865D; line-height:1.3;
margin-top:1.5em; font-family:Arial,Sans-serif; } margin-top:1.5em; font-family:Arial,Sans-serif; }
div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; } div.block { border:1px solid gray; background: #F8F8E0; padding:0.7em; }
div#dist { padding-top:0.3em; } div.dist { padding-top:0.3em; }
button.dist { margin:5px; background:transparent; border:0px; cursor:pointer; }
.set,.attr { margin-bottom:5px; float:left;} .set,.attr { margin-bottom:5px; float:left;}
.slider { float:right; width:320px; height:26px; } .slider { float:right; width:320px; height:26px; }
.set .slider { background:#F0F0D8; } .set .slider { background:#F0F0D8; }
.handle { position:relative; cursor:pointer; width:50px; .handle { position:relative; cursor:pointer; width:50px;
height:20px; line-height:20px; user-select:none; height:20px; line-height:20px;
-webkit-user-select:none; -moz-user-select:none; -user-select:none;
border:3px solid; color:#278727; text-align:center; } border:3px solid; color:#278727; text-align:center; }

View File

@ -33,6 +33,7 @@ h2,h3,h4 { color:#52865D; line-height:1.3;
margin-top:1.5em; font-family:Arial,Sans-serif; } margin-top:1.5em; font-family:Arial,Sans-serif; }
div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; } div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; }
div#dist { padding-top:0.3em; } div#dist { padding-top:0.3em; }
button.dist { margin:10px; background:transparent; border:0px; cursor:pointer; }
a img { border-style:none; } a img { border-style:none; }
@ -46,6 +47,7 @@ select { margin-left:5px; margin-right:5px; }
.changed { color:red; } .changed { color:red; }
.handle { position:relative; cursor:pointer; width:50px; .handle { position:relative; cursor:pointer; width:50px;
height:20px; line-height:20px; user-select:none; height:20px; line-height:20px;
-webkit-user-select:none; -moz-user-select:none; -user-select:none;
border:3px solid; color:#278727; text-align:center; } border:3px solid; color:#278727; text-align:center; }
.downText { margin-top:2px; } .downText { margin-top:2px; }

View File

@ -1,9 +1,9 @@
body { background-color: #FFFFE7; body { background-color: #FFFFE7;
font-family:Arial, sans-serif; font-size:16px; font-family:Arial, sans-serif; font-size:18px;
} }
textarea { font-family:Arial, sans-serif; font-size:16px} textarea { font-family:Arial, sans-serif; font-size:18px}
input { font-family:Arial, sans-serif; font-size:16px} input { font-family:Arial, sans-serif; font-size:18px}
select { font-family:Arial, sans-serif; font-size:16px} select { font-family:Arial, sans-serif; font-size:18px}
#logo { position:absolute; top:10px; left:10px; #logo { position:absolute; top:10px; left:10px;
width:120px; height:132px; background-image:url(../icons/fhemicon.png); } width:120px; height:132px; background-image:url(../icons/fhemicon.png); }
#menu { position:absolute; top:152px;left:10px; width:140px; } #menu { position:absolute; top:152px;left:10px; width:140px; }
@ -25,6 +25,10 @@ table { -moz-border-radius:8px; border-radius:8px; }
table#room { border:1px solid gray; width: 100%; background: #D7FFFF; } table#room { border:1px solid gray; width: 100%; background: #D7FFFF; }
table#room tr.sel { background: #A0FFFF; } table#room tr.sel { background: #A0FFFF; }
div.block { border:1px solid gray; background: #F8F8E0; padding:0.7em; }
div.dist { padding-top:0.3em; }
button.dist { margin:10px; background:transparent; border:0px; cursor:pointer; }
/* detail-selector & slider */ /* detail-selector & slider */
select { margin-left:5px; margin-right:5px; } select { margin-left:5px; margin-right:5px; }
.set,.attr { margin-bottom:5px; float:left; } .set,.attr { margin-bottom:5px; float:left; }
@ -35,6 +39,7 @@ select { margin-left:5px; margin-right:5px; }
.changed { color:red; } .changed { color:red; }
.handle { position:relative; cursor:pointer; width:50px; .handle { position:relative; cursor:pointer; width:50px;
height:20px; line-height:20px; user-select:none; height:20px; line-height:20px;
-webkit-user-select:none; -moz-user-select:none; -user-select:none;
border:3px solid; color:#278727; text-align:center; } border:3px solid; color:#278727; text-align:center; }
.downText { margin-top:2px; } .downText { margin-top:2px; }