VIVO-921: some additional validation work as well as dislaying an indicator when a data property has been ingested in an invalid format.
This commit is contained in:
parent
ced99d7703
commit
a32ee20a40
7 changed files with 199 additions and 43 deletions
|
@ -87,6 +87,17 @@
|
|||
|
||||
<script type="text/javascript">
|
||||
var datatype = "${datatype!}";
|
||||
|
||||
var i18nStrings = {
|
||||
four_digit_year: '${i18n().four_digit_year}',
|
||||
year_numeric: '${i18n().year_numeric}',
|
||||
year_month_day: '${i18n().year_month_day}',
|
||||
minimum_ymd: '${i18n().minimum_ymd}',
|
||||
minimum_hour: '${i18n().minimum_hour}',
|
||||
year_month: '${i18n().year_month}',
|
||||
decimal_only: '${i18n().decimal_only}',
|
||||
whole_number: '${i18n().whole_number}'
|
||||
};
|
||||
</script>
|
||||
|
||||
<#include "defaultFormScripts.ftl">
|
||||
|
|
|
@ -17,6 +17,7 @@ var defaultDataPropertyUtils = {
|
|||
this.textArea = $('textarea.useTinyMce');
|
||||
|
||||
$.extend(this, datatype);
|
||||
$.extend(this, i18nStrings);
|
||||
|
||||
},
|
||||
|
||||
|
@ -42,49 +43,104 @@ var defaultDataPropertyUtils = {
|
|||
}
|
||||
}
|
||||
else {
|
||||
defaultDataPropertyUtils.createLiteralValue();
|
||||
return defaultDataPropertyUtils.createAndValidateLiteralValue();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
},
|
||||
|
||||
createLiteralValue: function() {
|
||||
createAndValidateLiteralValue: function() {
|
||||
var theType = datatype.substring(datatype.lastIndexOf("#") + 1);
|
||||
var temp = "";
|
||||
|
||||
switch (theType) {
|
||||
case 'date':
|
||||
temp = $('#dateTimeField-year').val() + "-"
|
||||
+ $('#dateTimeField-month').val() + "-"
|
||||
+ $('#dateTimeField-day').val();
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'dateTime':
|
||||
temp = $('#dateTimeField-year').val() + "-"
|
||||
+ $('#dateTimeField-month').val() + "-"
|
||||
+ $('#dateTimeField-day').val() + "T"
|
||||
+ $('#dateTimeField-hour').val() + ":"
|
||||
+ $('#dateTimeField-minute').val() + ":"
|
||||
+ $('#dateTimeField-second').val();
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'time':
|
||||
temp = $('#dateTimeField-hour').val() + ":"
|
||||
+ $('#dateTimeField-minute').val() + ":"
|
||||
+ $('#dateTimeField-second').val();
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'gYear':
|
||||
$('#literal').val($('#dateTimeField-year').val());
|
||||
break;
|
||||
case 'gYearMonth':
|
||||
temp = $('#dateTimeField-year').val() + "-" + $('#dateTimeField-month').val();
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'gMonth':
|
||||
temp = "--" + $('#dateTimeField-month').val()
|
||||
$('input#literal').val(temp);
|
||||
break;
|
||||
if ( $('#literal').attr("type") == "hidden" ) {
|
||||
if ( $('#dateTimeField-year').length ) {
|
||||
if ( $('#dateTimeField-year').val().length < 4 ) {
|
||||
alert(defaultDataPropertyUtils.four_digit_year);
|
||||
return false;
|
||||
}
|
||||
var reg = /^\d+$/;
|
||||
if ( !reg.test($('#dateTimeField-year').val()) ) {
|
||||
alert(defaultDataPropertyUtils.year_numeric);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
switch (theType) {
|
||||
case 'date':
|
||||
temp = $('#dateTimeField-year').val() + "-"
|
||||
+ $('#dateTimeField-month').val() + "-"
|
||||
+ $('#dateTimeField-day').val();
|
||||
if ( temp.indexOf("-") == 0 || temp.lastIndexOf("-") == (temp.length - 1) || temp.indexOf("--") > 0 ) {
|
||||
alert(defaultDataPropertyUtils.year_month_day);
|
||||
return false;
|
||||
}
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'dateTime':
|
||||
temp = $('#dateTimeField-year').val() + "-"
|
||||
+ $('#dateTimeField-month').val() + "-"
|
||||
+ $('#dateTimeField-day').val() + "T"
|
||||
+ ($('#dateTimeField-hour').val().length == 0 ? "00" : $('#dateTimeField-hour').val()) + ":"
|
||||
+ ($('#dateTimeField-minute').val().length == 0 ? "00" : $('#dateTimeField-minute').val()) + ":"
|
||||
+ ($('#dateTimeField-second').val().length == 0 ? "00" : $('#dateTimeField-second').val());
|
||||
if ( temp.indexOf("-") == 0 || temp.indexOf("-T") > 0 || temp.indexOf("--") > 0 ) {
|
||||
alert(defaultDataPropertyUtils.minimum_ymd);
|
||||
return false;
|
||||
}
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'time':
|
||||
temp = $('#dateTimeField-hour').val() + ":"
|
||||
+ ($('#dateTimeField-minute').val().length == 0 ? "00" : $('#dateTimeField-minute').val()) + ":"
|
||||
+ ($('#dateTimeField-second').val().length == 0 ? "00" : $('#dateTimeField-second').val());
|
||||
if ( temp.indexOf(":") == 0 ) {
|
||||
alert(defaultDataPropertyUtils.minimum_hour);
|
||||
return false;
|
||||
}
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'gYear':
|
||||
$('#literal').val($('#dateTimeField-year').val());
|
||||
break;
|
||||
case 'gYearMonth':
|
||||
temp = $('#dateTimeField-year').val() + "-" + $('#dateTimeField-month').val();
|
||||
if ( temp.indexOf("-") == 0 || temp.lastIndexOf("-") == (temp.length - 1) ) {
|
||||
alert(defaultDataPropertyUtils.year_month);
|
||||
return false;
|
||||
}
|
||||
$('#literal').val(temp);
|
||||
break;
|
||||
case 'gMonth':
|
||||
if ( $('#dateTimeField-month').val().length == 2 ) {
|
||||
temp = "--" + $('#dateTimeField-month').val()
|
||||
$('input#literal').val(temp);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( $('#literal').attr("type") == "text" ) {
|
||||
switch (theType) {
|
||||
case 'float':
|
||||
if ( $('#literal').val().indexOf(",") > -1 ) {
|
||||
alert(defaultDataPropertyUtils.decimal_only);
|
||||
return false;
|
||||
}
|
||||
$('#literal').val($('#literal').val().replace(",",""));
|
||||
break;
|
||||
case 'integer':
|
||||
if ( $('#literal').val().indexOf(".") > -1 || $('#literal').val().indexOf(",") > 0 ) {
|
||||
alert(defaultDataPropertyUtils.whole_number);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'int':
|
||||
if ( $('#literal').val().indexOf(".") > -1 || $('#literal').val().indexOf(",") > 0 ) {
|
||||
alert(defaultDataPropertyUtils.whole_number);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
parseLiteralValue: function() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue