mirror of https://github.com/sfeakes/AqualinkD.git
Bug Fix
parent
64ae9da1b4
commit
2fc70a5cdd
|
@ -501,7 +501,7 @@ void *set_aqualink_light_colormode( void *ptr )
|
|||
waitForButtonState(aq_data, button, OFF, 2);
|
||||
}
|
||||
|
||||
logMessage(LOG_INFO, "Pool Light button press number %d - %s of %d\n", i, "ON", val);
|
||||
logMessage(LOG_INFO, "Finished - Pool Light button press number %d - %s of %d\n", i, "ON", val);
|
||||
send_cmd(code, aq_data);
|
||||
}
|
||||
//waitForButtonState(aq_data, &aq_data->aqbuttons[btn], ON, 2);
|
||||
|
@ -1112,6 +1112,7 @@ bool waitForButtonState(struct aqualinkdata *aq_data, aqkey* button, aqledstate
|
|||
logMessage(LOG_DEBUG, "Programming mode: loop %d of %d looking for state change to '%d' for '%s' \n",i,numMessageReceived,button->led->state,button->name);
|
||||
|
||||
if (button->led->state == state) {
|
||||
logMessage(LOG_INFO, "Programming mode: Button State =%d for %s\n",state,button->name);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
36
aqualinkd.c
36
aqualinkd.c
|
@ -799,17 +799,7 @@ void main_loop() {
|
|||
logMessage(LOG_DEBUG, "RS received packet of type %s length %d\n", get_packet_type(packet_buffer , packet_length), packet_length);
|
||||
|
||||
// **** NSF (Taken out while playing with Panel Simulator, put back in. ************)
|
||||
//send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
|
||||
// Process the packet. This includes deriving general status, and identifying
|
||||
// warnings and errors. If something changed, notify any listeners
|
||||
if (process_packet(packet_buffer, packet_length) != false) {
|
||||
broadcast_aqualinkstate(mgr.active_connections);
|
||||
}
|
||||
|
||||
//send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
// NSF Not 100% yet but better. Still a mess. Delete if and go back to above is problems with messages, this is only
|
||||
// Necessary for simulator mode.
|
||||
// send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
if (! _aqualink_data.simulate_panel ||
|
||||
_aqualink_data.active_thread.thread_id != 0 ||
|
||||
strncasecmp(_aqualink_data.last_display_message, "SELECT", 6) != 0 ||
|
||||
|
@ -821,7 +811,29 @@ void main_loop() {
|
|||
logMessage(LOG_NOTICE, "Delaying ACK due to Simulator mode \n");
|
||||
delayAckCnt++;
|
||||
}
|
||||
|
||||
|
||||
// Process the packet. This includes deriving general status, and identifying
|
||||
// warnings and errors. If something changed, notify any listeners
|
||||
if (process_packet(packet_buffer, packet_length) != false) {
|
||||
broadcast_aqualinkstate(mgr.active_connections);
|
||||
}
|
||||
|
||||
//send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
// NSF Not 100% yet but better. Still a mess. Delete if and go back to above is problems with messages, this is only
|
||||
// Necessary for simulator mode.
|
||||
/*
|
||||
if (! _aqualink_data.simulate_panel ||
|
||||
_aqualink_data.active_thread.thread_id != 0 ||
|
||||
strncasecmp(_aqualink_data.last_display_message, "SELECT", 6) != 0 ||
|
||||
get_aq_cmd_length() > 0 ||
|
||||
delayAckCnt > 5) {
|
||||
send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
delayAckCnt = 0;
|
||||
} else {
|
||||
logMessage(LOG_NOTICE, "Delaying ACK due to Simulator mode \n");
|
||||
delayAckCnt++;
|
||||
}
|
||||
*/
|
||||
|
||||
} else if (packet_length > 0) {
|
||||
// printf("packet not for us %02x\n",packet_buffer[PKT_DEST]);
|
||||
|
|
Binary file not shown.
|
@ -69,7 +69,13 @@ if [ ! -d "$WEBLocation" ]; then
|
|||
mkdir -p $WEBLocation
|
||||
fi
|
||||
|
||||
cp -r $BUILD/../web/* $WEBLocation
|
||||
if [ -f "$WEBLocation/config.js" ]; then
|
||||
echo "$WEBLocation/config.js exists, did not copy overight, please make sure to update manually"
|
||||
rsync -avq --exclude='$BUILD/../web/config.js' $BUILD/../web/* $WEBLocation
|
||||
else
|
||||
cp -r $BUILD/../web/* $WEBLocation
|
||||
fi
|
||||
|
||||
|
||||
systemctl enable $SERVICE
|
||||
systemctl daemon-reload
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
// Display order of devices. Tiles will be displayed in the order below,
|
||||
// any devices you don't want to see you can comment the ID. (with // e.g. `//"Solar_Heater",` )
|
||||
// If the device isn't listed below is will NOT be shown.
|
||||
// For a complete list returned from your particular aqualinkd instance
|
||||
// use the below URL and look at the ID value for each device.
|
||||
// http://aqualink.ip.address/?command=devices
|
||||
var devices = [
|
||||
"Filter_Pump",
|
||||
"Spa_Mode",
|
||||
"Aux_1",
|
||||
"Aux_2",
|
||||
"Aux_3",
|
||||
"Aux_4",
|
||||
"Aux_5",
|
||||
"Aux_6",
|
||||
"Aux_7",
|
||||
"Pool_Heater",
|
||||
"Spa_Heater",
|
||||
"SWG/Percent",
|
||||
"SWG/PPM",
|
||||
"Air",
|
||||
"Pool_Water",
|
||||
"Spa_Water",
|
||||
"Freeze_Protect",
|
||||
//"Solar_Heater",
|
||||
];
|
||||
|
||||
// Add the light program names below, the name index MUST correlate to
|
||||
// the number of pulses. ie (Blue Sea is #2 or 2 pulses)
|
||||
var light_program = [
|
||||
"Voodoo Lounge - Show",
|
||||
"Blue Sea",
|
||||
"Royal Blue",
|
||||
"Afternoon Skies",
|
||||
"Aqua Green",
|
||||
"Emerald",
|
||||
"Cloud White",
|
||||
"Warm Red",
|
||||
"Flamingo",
|
||||
"Vivid Violet",
|
||||
"Sangria",
|
||||
"Twilight - Show",
|
||||
"Tranquility - Show",
|
||||
"Gemstone - Show",
|
||||
"USA - Show",
|
||||
"Mardi Gras - Show",
|
||||
"Cool Cabaret - Show"
|
||||
];
|
||||
/*
|
||||
* BELOW IS NOT RELIVENT FOR simple.html or simple inteface
|
||||
*
|
||||
*/
|
||||
// Background image, delete or leave blank for solid color
|
||||
//var background_url = "http://192.168.144.224/snap.jpeg";
|
||||
var background_url='background.jpg';
|
||||
//var background_url='';
|
||||
// Reload background image every X seconds.(useful if camera snapshot)
|
||||
// 0 means only load once when page loads.
|
||||
//var background_reload = 10;
|
||||
|
||||
var body_background = "#EBEBEA";
|
||||
var body_text = "#000000";
|
||||
|
||||
var options_pane_background = "#F5F5F5";
|
||||
var options_pane_bordercolor = "#7C7C7C";
|
||||
var options_slider_highlight = "#2196F3";
|
||||
var options_slider_lowlight = "#D3D3D3";
|
||||
|
||||
var head_background = "#2B6A8F";
|
||||
var head_text = "#FFFFFF)";
|
||||
var error_background = "#8F2B2B";
|
||||
|
||||
var tile_background = "#DCDCDC";
|
||||
var tile_text = "#6E6E6E";
|
||||
var tile_on_background = "#FFFFFF";
|
||||
var tile_on_text = "#000000";
|
||||
var tile_status_text = "#575757";
|
||||
|
||||
// Dark colors
|
||||
// var body_background = "#000000";
|
||||
// var tile_background = "#646464";
|
||||
// var tile_text = "#B9B9B9";
|
||||
// var tile_status_text = "#B2B2B2";
|
||||
// var head_background = "#000D53";
|
Binary file not shown.
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 23 KiB |
|
@ -3,71 +3,13 @@
|
|||
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>
|
||||
|
||||
<script type='text/javascript'>
|
||||
// Display order of devices. Tiles will be displayed in the order below,
|
||||
// any devices you don't want to see you can comment the ID. (with // e.g. `//"Solar_Heater",` )
|
||||
// If the device isn't listed below is will NOT be shown.
|
||||
// For a complete list returned from your particular aqualinkd instance
|
||||
// use the below URL and look at the ID value for each device.
|
||||
// http://aqualink.ip.address/?command=devices
|
||||
var devices = [
|
||||
"Filter_Pump",
|
||||
"Spa_Mode",
|
||||
"Aux_1",
|
||||
"Aux_2",
|
||||
"Aux_3",
|
||||
"Aux_4",
|
||||
"Aux_5",
|
||||
"Aux_6",
|
||||
"Aux_7",
|
||||
"Pool_Heater",
|
||||
"Spa_Heater",
|
||||
"SWG/Percent",
|
||||
"SWG/PPM",
|
||||
"Air",
|
||||
"Pool_Water",
|
||||
"Spa_Water",
|
||||
"Freeze_Protect",
|
||||
//"Solar_Heater",
|
||||
];
|
||||
|
||||
// Add the light program names below, the name index MUST correlate to
|
||||
// the number of pulses. ie (Blue Sea is #2 or 2 pulses)
|
||||
var light_program = [
|
||||
"Voodoo Lounge - Show",
|
||||
"Blue Sea",
|
||||
"Royal Blue",
|
||||
"Afternoon Skies",
|
||||
"Aqua Green",
|
||||
"Emerald",
|
||||
"Cloud White",
|
||||
"Warm Red",
|
||||
"Flamingo",
|
||||
"Vivid Violet",
|
||||
"Sangria",
|
||||
"Twilight - Show",
|
||||
"Tranquility - Show",
|
||||
"Gemstone - Show",
|
||||
"USA - Show",
|
||||
"Mardi Gras - Show",
|
||||
"Cool Cabaret - Show"
|
||||
];
|
||||
// Background image, delete or leave blank for solid color
|
||||
//var background_url = "http://192.168.144.224/snap.jpeg";
|
||||
//var background_url='background.jpg';
|
||||
//var background_url='';
|
||||
// Reload background image every X seconds.(useful if camera snapshot)
|
||||
// 0 means only load once when page loads.
|
||||
//var background_reload = 10;
|
||||
</script>
|
||||
|
||||
<title>AqualinkD</title>
|
||||
<meta name='viewport' content='width=device-width'>
|
||||
<meta name='apple-mobile-web-app-capable' content='yes'>
|
||||
<meta name='apple-mobile-web-app-status-bar-style' content='black'>
|
||||
<link href="aqualinkd.png" rel="apple-touch-icon">
|
||||
<link href="aqualinkd.png" rel="icon">
|
||||
<script src="/config.js"></script>
|
||||
<style>
|
||||
:root {
|
||||
--tile-width: 100px;
|
||||
|
@ -85,15 +27,17 @@
|
|||
--tile_grid-gap: 20px;
|
||||
--tile_name-lineheight: 1.4;
|
||||
*/
|
||||
--slider-ball: 30;
|
||||
--slider-highlight: #2196F3;
|
||||
--slider-lowlight: #d3d3d3;
|
||||
--slider-height: 20px;
|
||||
|
||||
|
||||
--body_background: rgb(235, 235, 235);
|
||||
--body_text: black;
|
||||
|
||||
--options_pane_background: rgb(245, 245, 245);
|
||||
--options_pane_bordercolor: rgb(124, 124, 124);
|
||||
--options_slider_ball: 30;
|
||||
--options_slider_highlight: #2196F3;
|
||||
--options_slider_lowlight: #d3d3d3;
|
||||
--options_slider_height: 20px;
|
||||
|
||||
--head_background: rgb(43, 106, 143);
|
||||
--head_text: #fff;
|
||||
|
@ -304,7 +248,7 @@
|
|||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: var(--slider-lowlight);
|
||||
background-color: var(--options_slider_lowlight);
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
border-radius: 34px;
|
||||
|
@ -312,8 +256,8 @@
|
|||
.option_switch_slide:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: calc(var(--slider-ball)*1px);
|
||||
width: calc(var(--slider-ball)*1px);
|
||||
height: calc(var(--options_slider_ball)*1px);
|
||||
width: calc(var(--options_slider_ball)*1px);
|
||||
left: 2px;
|
||||
bottom: 2px;
|
||||
background-color: white;
|
||||
|
@ -322,10 +266,10 @@
|
|||
border-radius: 50%;
|
||||
}
|
||||
input:checked+.option_switch_slide {
|
||||
background-color: var(--slider-highlight);
|
||||
background-color: var(--options_slider_highlight);
|
||||
}
|
||||
input:focus+.option_switch_slide {
|
||||
box-shadow: 0 0 1px var(--slider-highlight);
|
||||
box-shadow: 0 0 1px var(--options_slider_highlight);
|
||||
}
|
||||
input:checked+.option_switch_slide:before {
|
||||
-webkit-transform: translateX(26px);
|
||||
|
@ -335,28 +279,28 @@
|
|||
.option_slider {
|
||||
-webkit-appearance: none;
|
||||
width: 300px;
|
||||
height: var(--slider-height);
|
||||
background: var(--slider-lowlight);
|
||||
height: var(--options_slider_height);
|
||||
background: var(--options_slider_lowlight);
|
||||
outline: none;
|
||||
-webkit-transition: .2s;
|
||||
transition: opacity .2s;
|
||||
border-radius: var(--slider-height);
|
||||
border-radius: var(--options_slider_height);
|
||||
}
|
||||
.option_slider::-webkit-slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
width: calc(var(--slider-ball)*1px);
|
||||
height: calc(var(--slider-ball)*1px);
|
||||
background: var(--slider-highlight);
|
||||
width: calc(var(--options_slider_ball)*1px);
|
||||
height: calc(var(--options_slider_ball)*1px);
|
||||
background: var(--options_slider_highlight);
|
||||
cursor: pointer;
|
||||
border-radius: calc(var(--slider-ball)*1px);
|
||||
border-radius: calc(var(--options_slider_ball)*1px);
|
||||
}
|
||||
.option_slider::-moz-range-thumb {
|
||||
width: calc(var(--slider-ball)*1px);
|
||||
height: calc(var(--slider-ball)*1px);
|
||||
background: var(--slider-highlight);
|
||||
width: calc(var(--options_slider_ball)*1px);
|
||||
height: calc(var(--options_slider_ball)*1px);
|
||||
background: var(--options_slider_highlight);
|
||||
cursor: pointer;
|
||||
border-radius: var(--slider-height);
|
||||
border-radius: var(--options_slider_height);
|
||||
}
|
||||
.options_title {
|
||||
/*background-color: rgb(124, 124, 124);
|
||||
|
@ -398,22 +342,50 @@
|
|||
function init() {
|
||||
setSizeSpecifics();
|
||||
option = document.getElementById('pswitch_option_list');
|
||||
fLen = light_program.length;
|
||||
for (i = 0; i < fLen; i++) {
|
||||
var opt = document.createElement('option');
|
||||
opt.value = i + 1;
|
||||
opt.innerHTML = light_program[i];
|
||||
option.appendChild(opt);
|
||||
}
|
||||
try {
|
||||
fLen = light_program.length;
|
||||
for (i = 0; i < fLen; i++) {
|
||||
var opt = document.createElement('option');
|
||||
opt.value = i + 1;
|
||||
opt.innerHTML = light_program[i];
|
||||
option.appendChild(opt);
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
document.getElementById('thermostat_options').classList.remove("hide");
|
||||
document.getElementById('swg_options').classList.remove("hide");
|
||||
document.getElementById('pswitch_options').classList.remove("hide");
|
||||
|
||||
setColors();
|
||||
load_background();
|
||||
showTileOptions(false);
|
||||
startWebsockets();
|
||||
resetBackgroundSize();
|
||||
}
|
||||
|
||||
function setProp(name) {
|
||||
if (typeof window[name] !== 'undefined')
|
||||
document.documentElement.style.setProperty('--'+name, window[name]);
|
||||
}
|
||||
|
||||
function setColors() {
|
||||
setProp("tile_on_background");
|
||||
setProp("tile_on_background-crap");
|
||||
setProp("body_background");
|
||||
setProp("body_text");
|
||||
setProp("options_pane_background");
|
||||
setProp("options_pane_bordercolor");
|
||||
setProp("options_slider_highlight");
|
||||
setProp("options_slider_lowlight");
|
||||
setProp("head_background");
|
||||
setProp("head_text");
|
||||
setProp("error_background");
|
||||
setProp("tile_background");
|
||||
setProp("tile_text");
|
||||
setProp("tile_on_background");
|
||||
setProp("tile_on_text");
|
||||
setProp("tile_status_text");
|
||||
}
|
||||
|
||||
function setSizeSpecifics() {
|
||||
var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
|
||||
|
@ -778,7 +750,7 @@
|
|||
function createTile(object) {
|
||||
if (object.name == 'NONE')
|
||||
return;
|
||||
if (devices.indexOf(object.id) < 0)
|
||||
if ( typeof devices !== 'undefined' && devices.indexOf(object.id) < 0)
|
||||
return;
|
||||
if (object.type == 'switch' || object.type == 'switch_program') {
|
||||
add_tile(object.id, object.name, object.state, 'switch', object.type, object.id + '-off.png', object.id + '-on.png');
|
||||
|
@ -978,6 +950,7 @@
|
|||
}
|
||||
|
||||
function deviceSort(a, b) {
|
||||
try {
|
||||
pa = devices.indexOf(a.id);
|
||||
pb = devices.indexOf(b.id);
|
||||
|
||||
|
@ -985,7 +958,8 @@
|
|||
return 1;
|
||||
else if (pa < pb)
|
||||
return -1;
|
||||
|
||||
} catch (e){}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,56 +3,6 @@
|
|||
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>
|
||||
<script type='text/javascript'>
|
||||
// Display order of devices. Tiles will be displayed in the order below,
|
||||
// any devices you don't want to see you can comment the ID.
|
||||
// If the device isn't listed below is will NOT be shown.
|
||||
// For a complete list returned from your particular aqualinkd instance
|
||||
// use the below URL and look at the ID value for each device.
|
||||
// http://aqualink.ip.address/?command=devices
|
||||
var devices = [
|
||||
"Air",
|
||||
"Pool_Water",
|
||||
"Spa_Water",
|
||||
"SWG/PPM",
|
||||
"Filter_Pump",
|
||||
"Spa_Mode",
|
||||
"Aux_3",
|
||||
"Aux_1",
|
||||
"Aux_2",
|
||||
"Aux_4",
|
||||
"Aux_5",
|
||||
"Aux_6",
|
||||
"Aux_7",
|
||||
"Pool_Heater",
|
||||
"Spa_Heater",
|
||||
"SWG/Percent",
|
||||
"Freeze_Protect",
|
||||
//"Solar_Heater",
|
||||
];
|
||||
// Add the light program names below, the name index MUST correlate to
|
||||
// the number of pulses. ie (Blue Sea is #2 or 2 pulses)
|
||||
var light_program = [
|
||||
"Voodoo Lounge - Show",
|
||||
"Blue Sea",
|
||||
"Royal Blue",
|
||||
"Afternoon Skies",
|
||||
"Aqua Green",
|
||||
"Emerald",
|
||||
"Cloud White",
|
||||
"Warm Red",
|
||||
"Flamingo",
|
||||
"Vivid Violet",
|
||||
"Sangria",
|
||||
"Twilight - Show",
|
||||
"Tranquility - Show",
|
||||
"Gemstone - Show",
|
||||
"USA - Show",
|
||||
"Mardi Gras - Show",
|
||||
"Cool Cabaret - Show"
|
||||
];
|
||||
</script>
|
||||
|
||||
<title>AqualinkD</title>
|
||||
<meta name='viewport' content='width=device-width'>
|
||||
<meta name='apple-mobile-web-app-capable' content='yes'>
|
||||
|
@ -60,6 +10,7 @@
|
|||
<meta name='apple-mobile-web-app-status-bar-style' content='black'>
|
||||
<link href="aqualinkd-white.png" rel="apple-touch-icon">
|
||||
<link href="aqualinkd-white.png" rel="icon">
|
||||
<script src="config.js"></script>
|
||||
<style>
|
||||
:root {
|
||||
--diameter: 30px;
|
||||
|
@ -227,6 +178,7 @@
|
|||
|
||||
var _width;
|
||||
var _height;
|
||||
var _displayNames = [];
|
||||
|
||||
function getSize() {
|
||||
_width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
|
||||
|
@ -247,12 +199,15 @@
|
|||
}
|
||||
|
||||
function deviceSort(a, b) {
|
||||
pa = devices.indexOf(a.id);
|
||||
pb = devices.indexOf(b.id);
|
||||
if (pa > pb)
|
||||
return 1;
|
||||
else if (pa < pb)
|
||||
return -1;
|
||||
try {
|
||||
pa = devices.indexOf(a.id);
|
||||
pb = devices.indexOf(b.id);
|
||||
if (pa > pb)
|
||||
return 1;
|
||||
else if (pa < pb)
|
||||
return -1;
|
||||
} catch (e){}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -263,7 +218,7 @@
|
|||
data['devices'].sort(deviceSort);
|
||||
for (var obj in data['devices']) {
|
||||
if (document.getElementById(data['devices'][obj].id) == null) {
|
||||
//_displayNames[data['devices'][obj].id.replace("Aux_", "AUX")] = data['devices'][obj].name;
|
||||
_displayNames[data['devices'][obj].id.replace("Aux_", "AUX")] = data['devices'][obj].name;
|
||||
//console.log("Create " + data['devices'][obj].id);
|
||||
createTile(data['devices'][obj]);
|
||||
}
|
||||
|
@ -333,6 +288,8 @@
|
|||
cell2.innerHTML = "<select id='selector_"+object.id+"' onchange='update(this);' class='options_selector'><option value='0'>Program</option></select>";
|
||||
cell4.innerHTML = "<div class='switch'><input id='btn-toggle-"+object.id+"' name='"+object.id+"' class='btn-toggle btn-toggle-round' type='checkbox' onclick='update(this);'><label for='btn-toggle-"+object.id+"'></label></div>";
|
||||
option = document.getElementById('selector_'+object.id);
|
||||
|
||||
try {
|
||||
fLen = light_program.length;
|
||||
for (i = 0; i < fLen; i++) {
|
||||
var opt = document.createElement('option');
|
||||
|
@ -340,6 +297,7 @@
|
|||
opt.innerHTML = light_program[i];
|
||||
option.appendChild(opt);
|
||||
}
|
||||
} catch (e) {}
|
||||
setButton(object.id, object.state);
|
||||
} else if (object.type == 'value') {
|
||||
row.deleteCell(2);
|
||||
|
@ -429,19 +387,22 @@
|
|||
function setSlider(id, value) {
|
||||
slider = document.getElementById("slider_"+id);
|
||||
|
||||
try{
|
||||
if (slider.getAttribute('lock') == 'true')
|
||||
return;
|
||||
} catch (e) { return; }
|
||||
|
||||
slider.value = value;
|
||||
setLabel(slider.getAttribute('output_id'), value);
|
||||
}
|
||||
|
||||
function setLabel(id, value) {
|
||||
label = document.getElementById(id);
|
||||
if (value != -999 && value != " ")
|
||||
label.innerHTML = value+label.getAttribute('output_ext');
|
||||
else
|
||||
label.innerHTML = "--";
|
||||
if ( (label = document.getElementById(id)) != null) {
|
||||
if (value != -999 && value != " ")
|
||||
label.innerHTML = value+label.getAttribute('output_ext');
|
||||
else
|
||||
label.innerHTML = "--";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue