CsvImport: Warnungen: Uninitialisierte Variablen
[kivitendo-erp.git] / js / kivi.js
index e17294a..41b3762 100644 (file)
@@ -61,8 +61,16 @@ namespace("kivi", function(ns) {
 
     amount = amount.replace(/[\',]/g, "")
 
+    // Make sure no code wich is not a math expression ends up in eval().
+    if (!amount.match(/^[0-9 ()\-+*/.]*$/))
+      return 0;
+
     /* jshint -W061 */
-    return eval(amount);
+    try {
+      return eval(amount);
+    } catch (err) {
+      return 0;
+    }
   };
 
   ns.round_amount = function(amount, places) {
@@ -235,10 +243,7 @@ namespace("kivi", function(ns) {
       $(elt).datepicker();
     });
 
-    if (ns.PartPicker)
-      ns.run_once_for('input.part_autocomplete', 'part_picker', function(elt) {
-        kivi.PartPicker($(elt));
-      });
+    if (ns.Part) ns.Part.reinit_widgets();
 
     if (ns.ProjectPicker)
       ns.run_once_for('input.project_autocomplete', 'project_picker', function(elt) {
@@ -352,13 +357,13 @@ namespace("kivi", function(ns) {
       params.dialog || { },
       { // Options that must not be changed:
         close: function(event, ui) {
+          dialog.dialog('close');
+
           if (custom_close)
             custom_close();
 
           if (params.url || params.html)
             dialog.remove();
-          else
-            dialog.dialog('close');
         }
       });
 
@@ -438,7 +443,7 @@ namespace("kivi", function(ns) {
   ns.run = function(function_name, args) {
     var fn = ns.get_function_by_name(function_name);
     if (fn)
-      return fn.apply({}, args);
+      return fn.apply({}, args || []);
 
     console.error('kivi.run("' + function_name + '"): No function by that name found');
     return undefined;