160 lines
5.4 KiB
JavaScript
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;
|
|
} |