Files
Facilitor/APPL/MGT/mgt_srtkenmerk.js
Koen Reefman 3d309b0e6f LOGC#90057 Nog beter gefixt ;)
svn path=/Website/branches/v2025.2/; revision=69911
2025-08-04 14:23:31 +00:00

160 lines
5.4 KiB
JavaScript

/*
$Revision$
$Id$
*/
$(function() {
// Cache velden én hun rijen
var $type = $('#attributetype');
var $length = $('#length'),
$decimals = $('#decimals'),
$minimum = $('#minimum'),
$maximum = $('#maximum'),
$domain = $('#domain'),
$unit = $('#unit');
var $lengthRow = $length.closest('tr'),
$decimalsRow = $decimals.closest('tr'),
$minRow = $minimum.closest('tr'),
$maxRow = $maximum.closest('tr'),
$domainRow = $domain.closest('tr'),
$unitRow = $unit.closest('tr');
function updateFields() {
var t;
if ($('#attributetype').length) {
// geval: <select id="attributetype"> bestaat
t = $('#attributetype').val();
} else {
// geval: type is onveranderbaar en zit in een <span class="fld" title="Key: X">...</span>
// we pakken de title, splitsen op ':' en trimmen het uiteinde
var title = $('span.fld[title^="Key:"]').attr('title') || '';
// title is iets als "Key: C"
t = title.split(':')[1].trim(); // wordt "C"
}
// 1) Eerst alle rijen verbergen, alle inputs uitzetten en 'required' weghalen
[$lengthRow, $decimalsRow, $minRow, $maxRow, $domainRow, $unitRow].forEach(function($row) {
$row.hide().find('input,select').prop({
disabled: true,
required: false
});
});
// 2) Per type de juiste rijen tonen, inputs aanzetten en ev. required zetten
switch (t) {
case 'C': // Tekstveld
$lengthRow.show();
$length.prop('disabled', false)
.prop('required', true)
.addClass('required');
break;
case 'N': // Numeriek
$lengthRow.show();
$decimalsRow.show();
$minRow.show();
$maxRow.show();
$unitRow.show();
$length.prop('disabled', false)
.prop('required', true)
.addClass('required');
$decimals.prop('disabled', false)
.prop('required', true)
.addClass('required');
$minimum.prop('disabled', false);
$maximum.prop('disabled', false);
$unit.prop('disabled', false);
break;
case 'D': // Datum
case 'T': // Tijd
$minRow.show();
$maxRow.show();
$minimum.prop('disabled', false);
$maximum.prop('disabled', false);
break;
case 'R': // Referentie (listbox)
case 'r': // Referentie (radio)
case 'S': // Referentie (suggestie)
$domainRow.show();
$domain.prop('disabled', false)
.prop('required', true)
.addClass('required');
break;
case 'M': // Map
case 'E': // Encrypted
case 'F': // File
$unitRow.show();
$unit.prop('disabled', false);
default:
// overige types: alles blijft verborgen/uit
}
FcltMgr.resized();
}
// Eventlistener en initialisatie
$type.on('change', updateFields);
updateFields();
$("#attributetype").change(change_attributetype);
$("#contractpropertytype").change(change_contractpropertytype);
});
function change_attributetype()
{
var ktype = $("#attributetype option:selected").val();
var ktype_lbl_default = (ktype == "l" ? L("mgt_kenmerk_icon") : L("mgt_kenmerk_default"));
var ktype_lbl_readonly = (ktype == "l" ? L("mgt_kenmerk_collapsed") : L("mgt_kenmerk_toonbaar"));
$("label[for*='propertydefault']").html(ktype_lbl_default);
$("label[for*='readonly']").html(ktype_lbl_readonly);
}
function change_contractpropertytype()
{
var ktype = $("#contractpropertytype option:selected").attr("cnt_srtkenmerk_kenmerktype");
var ktype_lbl_default = (ktype == "l" ? L("mgt_kenmerk_icon") : L("mgt_kenmerk_default"));
var ktype_lbl_readonly = (ktype == "l" ? L("mgt_kenmerk_collapsed") : L("mgt_kenmerk_toonbaar"));
$("label[for*='propertydefault']").html(ktype_lbl_default);
$("label[for*='readonly']").html(ktype_lbl_readonly);
}
function pre_submit(params)
{
var params = params || {};
if (params.isMulti)
return true; // te ingewikkeld
// var module: gezet in xxx_kenmerk.asp.
// var property_type: voor nieuw kenmerk uit formfield "property_type".
// voor bestaand kenmerk indien a) wijzigbaar: uit formfield "property_type"
// b) niet wijzigbaar: gezet in xxx_kenmerk.asp
var attributeType = ($("#attributetype").length == 0? property_type : $("#attributetype").val() );
var validation_message = "";
if (attributeType == "C" && $("#length").val() == "")
validation_message = L("mgt_srtkenmerk_lengte_val1");
if (attributeType == "N" && $("#length").val() == "")
validation_message = L("mgt_srtkenmerk_lengte_val1");
if (["R", "r", "S"].includes(attributeType) && $("#domain").val() == -1)
validation_message = L("mgt_srtkenmerk_domein_val1");
if (attributeType == "C"
&& ( $("#length").val() > 4000
|| $("#length").val() < 1
))
validation_message = L("mgt_srtkenmerk_lengte_val2");
if (validation_message != "")
{
FcltMgr.alert(validation_message);
return false;
}
return true;
}