SGGR#81078 Sensoren: ondersteuning triggerwaarde voor status-sensoren, GUI

svn path=/Website/trunk/; revision=70082
This commit is contained in:
Peter Feij
2025-08-22 14:21:56 +00:00
parent 9ccef0f2b3
commit add30aa203
2 changed files with 106 additions and 2 deletions

View File

@@ -124,6 +124,108 @@ else
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
<script>
$(function () {
// Elementen
const $type = $("#srtdeel_sensortype");
const $step = $("#statestepsize");
const $anchor = $("#stateanchor");
const $threshold = $("#statethreshold");
const $msgShow = $("#stdm_show");
const $msgHidden = $("#stdm");
// Labels (bewaar originele teksten zodat we ze kunnen herstellen)
const $lblStep = $('label[for="statestepsize"]');
const $lblAnchor = $('label[for="stateanchor"]');
const $lblThreshold = $('label[for="statethreshold"]');
const $lblMsg = $('label[for="stdm_show"]');
const originalLabels = {
threshold: $lblThreshold.text().trim(), // "Bovengrenswaarde"
message: $lblMsg.text().trim() // "Melding boven grenswaarde"
};
// Helper: (de)activeren + rij visueel dimmen
function setEnabled($input, enabled) {
if (!$input.length) return;
$input.prop('disabled', !enabled);
// Dim ook het label/rij (optioneel, werkt met bestaande markup)
const $row = $input.closest('tr');
$row.css('opacity', enabled ? 1 : 0.6);
// Voor suggest/readonly veld: zet ook readonly voor zekerheid
if ($input.is('#stdm_show')) {
$input.prop('readonly', !enabled);
}
if (!enabled) {
$input.val('');
// voor hidden veld ook
if ($input.is('#stdm_show')) {
$msgHidden.val('');
}
}
}
function setOnlyThresholdAndMessage() {
// Alleen Bovengrenswaarde (-> Triggerwaarde) en Melding boven grenswaarde (-> Melding bij triggerwaarde)
setEnabled($step, false);
setEnabled($anchor, false);
setEnabled($threshold,true);
setEnabled($msgShow, true);
setEnabled($msgHidden,true);
// Labelteksten aanpassen
$lblThreshold.text(L("lcl_ins_srtdeel_statethreshold1")); //'Triggerwaarde'
$lblMsg.text(L("lcl_ins_srtdeel_statethresholdmld1")); //'Melding bij triggerwaarde'
}
function setAllDisabled() {
// Geen sensor: 4 velden niet beschikbaar
setEnabled($step, false);
setEnabled($anchor, false);
setEnabled($threshold,false);
setEnabled($msgShow, false);
setEnabled($msgHidden,false);
// Labels terug naar origineel
$lblThreshold.text(originalLabels.threshold);
$lblMsg.text(originalLabels.message);
}
function setAllEnabledWithOriginalLabels() {
setEnabled($step, true);
setEnabled($anchor, true);
setEnabled($threshold,true);
setEnabled($msgShow, true);
setEnabled($msgHidden,true);
$lblThreshold.text(originalLabels.threshold);
$lblMsg.text(originalLabels.message);
}
function applyByType(value) {
switch (String(value)) {
case '0': // Geen sensor
setAllDisabled();
break;
case '1': // Status-sensor
setOnlyThresholdAndMessage();
break;
case '2': // Meetwaarde-sensor
default:
setAllEnabledWithOriginalLabels();
break;
}
}
// Init bij laden (pakt de al geselecteerde optie op de pagina)
applyByType($type.val());
// Reageer op wijzigingen
$type.on('change', function () {
applyByType(this.value);
});
});
</script>
</head>
<body class="editmode">
<% SUBFRAME_START();

View File

@@ -161,10 +161,12 @@ oRs.close();
{
BLOCK_START("insSensorinfo", L("lcl_ins_sensorinfo"), {icon: "fa-sensor"});
var srtdeel_sensortypetxt = ([L("lcl_ins_sensortype0"), L("lcl_ins_sensortype1"), L("lcl_ins_sensortype2")])[srtdeel.srtdeel_sensortype];
var srtdeel_statethresholdlbl = (["", L("lcl_ins_srtdeel_statethreshold1"),L("lcl_ins_srtdeel_statethreshold2")])[srtdeel.srtdeel_sensortype];
var srtdeel_statethresholdmldlbl = (["", L("lcl_ins_srtdeel_statethresholdmld1"),L("lcl_ins_srtdeel_statethresholdmld2")])[srtdeel.srtdeel_sensortype];
ROFIELDTR("fld", L("lcl_ins_sensortype"), srtdeel_sensortypetxt );
ROFIELDTR("fld", L("lcl_ins_srtdeel_statestepsize"), srtdeel.statestepsize, {suppressEmpty: true} );
ROFIELDTR("fld", L("lcl_ins_srtdeel_stateanchor"), srtdeel.stateanchor, {suppressEmpty: true} );
ROFIELDTR("fld", L("lcl_ins_srtdeel_statethreshold"), srtdeel.statethreshold, {suppressEmpty: true} );
ROFIELDTR("fld", srtdeel_statethresholdlbl, srtdeel.statethreshold, {suppressEmpty: true} );
if (srtdeel.mld_stdmelding_key)
{
sql = "SELECT "+ lcl.xsqla('s.mld_stdmelding_omschrijving','s.mld_stdmelding_key')
@@ -173,7 +175,7 @@ oRs.close();
oRs = Oracle.Execute(sql);
var stdmelding_omschrijving = oRs("mld_stdmelding_omschrijving").value;
oRs.close();
ROFIELDTR("fld", L("lcl_ins_srtdeel_statethresholdmld"), stdmelding_omschrijving, {suppressEmpty: true} );
ROFIELDTR("fld", srtdeel_statethresholdmldlbl, stdmelding_omschrijving, {suppressEmpty: true} );
}
BLOCK_END();
}