]> wagnertech.de Git - mfinanz.git/blobdiff - js/common.js
kivi.js: parse_amount und parse_date quirks
[mfinanz.git] / js / common.js
index 07317ecc87da6933c42e3afe858507ca48f299a2..ee4737b6e221a42abecb713baf13a60cc6c348a1 100644 (file)
@@ -1,26 +1,3 @@
-function setupPoints(numberformat, wrongFormat) {
-  decpoint = numberformat.substring((numberformat.substring(1, 2).match(/\.|\,|\'/) ? 5 : 4), (numberformat.substring(1, 2).match(/\.|\,|\'/) ? 6 : 5));
-  if (numberformat.substring(1, 2).match(/\.|\,|\'/)) {
-    thpoint = numberformat.substring(1, 2);
-  }
-  else {
-    thpoint = null;
-  }
-  wrongNumberFormat = wrongFormat + " ( " + numberformat + " ) ";
-}
-
-function setupDateFormat(setDateFormat, setWrongDateFormat) {
-  dateFormat = setDateFormat;
-  wrongDateFormat = setWrongDateFormat + " ( " + setDateFormat + " ) ";
-  formatArray = new Array();
-  if(dateFormat.match(/^\w\w\W/)) {
-    seperator = dateFormat.substring(2,3);
-  }
-  else {
-    seperator = dateFormat.substring(4,5);
-  }
-}
-
 function centerParms(width,height,extra) {
   xPos = (screen.width - width) / 2;
   yPos = (screen.height - height) / 2;
 function centerParms(width,height,extra) {
   xPos = (screen.width - width) / 2;
   yPos = (screen.height - height) / 2;
@@ -34,9 +11,9 @@ function centerParms(width,height,extra) {
 }
 
 function check_right_number_format(input_name) {
 }
 
 function check_right_number_format(input_name) {
-  if(decpoint && thpoint && thpoint == decpoint) {
-    return show_alert_and_focus(input_name, wrongNumberFormat);
-  }
+  var decpoint = kivi._number_format.decimalSep;
+  var thpoint  = kivi._number_format.thousandSep;
+
   var test_val = input_name.value;
   if(thpoint && thpoint == ','){
     test_val = test_val.replace(/,/g, '');
   var test_val = input_name.value;
   if(thpoint && thpoint == ','){
     test_val = test_val.replace(/,/g, '');
@@ -52,22 +29,27 @@ function check_right_number_format(input_name) {
   }
   var forbidden = test_val.match(/[^\s\d\(\)\-\+\*\/\.]/g);
   if (forbidden && forbidden.length > 0 ){
   }
   var forbidden = test_val.match(/[^\s\d\(\)\-\+\*\/\.]/g);
   if (forbidden && forbidden.length > 0 ){
-    return show_alert_and_focus(input_name, wrongNumberFormat);
+    return annotate(input_name, kivi.t8('wrongformat'), kivi.myconfig.numberformat);
   }
 
   try{
     eval(test_val);
   }catch(err){
   }
 
   try{
     eval(test_val);
   }catch(err){
-    return show_alert_and_focus(input_name, wrongNumberFormat);
+    return annotate(input_name, kivi.t8('wrongformat'), kivi.myconfig.numberformat);
   }
 
   }
 
+  return annotate(input_name);
 }
 
 function check_right_date_format(input_name) {
   if(input_name.value == "") {
 }
 
 function check_right_date_format(input_name) {
   if(input_name.value == "") {
+    annotate(input_name);
     return true;
   }
 
     return true;
   }
 
+  var dateFormat = kivi.myconfig.dateformat;
+  var seperator  = kivi._date_format.sep;
+
   if ( ( input_name.value.match(/^\d+$/ ) ) && !(dateFormat.lastIndexOf("y") == 3) ) {
     // date shortcuts for entering date without separator for three date styles, e.g.
     // 31122014 -> 12.04.2014
   if ( ( input_name.value.match(/^\d+$/ ) ) && !(dateFormat.lastIndexOf("y") == 3) ) {
     // date shortcuts for entering date without separator for three date styles, e.g.
     // 31122014 -> 12.04.2014
@@ -111,21 +93,35 @@ function check_right_date_format(input_name) {
   if(!(dateFormat.lastIndexOf("y") == 3) && !matching.test(input_name.value)) {
     matching = new RegExp(dateFormat.replace(/\w/g, '\\d') + '\\d\\d\$', "ig");
     if(!matching.test(input_name.value)) {
   if(!(dateFormat.lastIndexOf("y") == 3) && !matching.test(input_name.value)) {
     matching = new RegExp(dateFormat.replace(/\w/g, '\\d') + '\\d\\d\$', "ig");
     if(!matching.test(input_name.value)) {
-      return show_alert_and_focus(input_name, wrongDateFormat);
+      return annotate(input_name, kivi.t8('Falsches Datumsformat!'), kivi.myconfig.dateformat);
     }
   }
   else {
     if (dateFormat.lastIndexOf("y") == 3 && !matching.test(input_name.value)) {
     }
   }
   else {
     if (dateFormat.lastIndexOf("y") == 3 && !matching.test(input_name.value)) {
-      return show_alert_and_focus(input_name, wrongDateFormat);
+      return annotate(input_name, kivi.t8('Falsches Datumsformat!'), kivi.myconfig.dateformat);
     }
   }
     }
   }
+  return annotate(input_name);
 }
 
 }
 
-function show_alert_and_focus(input_name, errorMessage) {
-  input_name.select();
-  alert(errorMessage + "\n\r\n\r--> " + input_name.value);
-  input_name.focus();
-  return false;
+function annotate(input_name, error, expected) {
+  var $e = $(input_name);
+  if (error) {
+    $e.addClass('kivi-validator-invalid');
+    var tooltip = error + ' (' + expected + ')';
+    if ($e.hasClass('tooltipstered'))
+      $e.tooltipster('destroy');
+
+    $e.tooltipster({
+      content: tooltip,
+      theme: 'tooltipster-light',
+    });
+    $e.tooltipster('show');
+  } else {
+    $e.removeClass('kivi-validator-invalid');
+    if ($e.hasClass('tooltipstered'))
+      $e.tooltipster('destroy');
+  }
 }
 
 function get_input_value(input_name) {
 }
 
 function get_input_value(input_name) {