]> wagnertech.de Git - mfinanz.git/blobdiff - js/kivi.js
AreaInputTag: kleines Icon neben Input zum Umschalten auf Textarea
[mfinanz.git] / js / kivi.js
index dbf5a0ed2809bfdd429131ebc94b969a3a7f0019..fbe0c953beb3dcfb02e2933726db21a414c59e9f 100644 (file)
@@ -66,7 +66,11 @@ namespace("kivi", function(ns) {
       return 0;
 
     /* jshint -W061 */
-    return eval(amount);
+    try {
+      return eval(amount);
+    } catch (err) {
+      return 0;
+    }
   };
 
   ns.round_amount = function(amount, places) {
@@ -239,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) {
@@ -356,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');
         }
       });
 
@@ -442,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;
@@ -534,6 +535,23 @@ namespace("kivi", function(ns) {
 
     return true;
   };
+
+  ns.switch_areainput_to_textarea = function(id) {
+    var $input = $('#' + id);
+    if (!$input.length)
+      return;
+
+    var $area = $('<textarea></textarea>');
+
+    $area.prop('rows', 3);
+    $area.prop('cols', $input.prop('size') || 40);
+    $area.prop('name', $input.prop('name'));
+    $area.prop('id',   $input.prop('id'));
+    $area.val($input.val());
+
+    $input.parent().replaceWith($area);
+    $area.focus();
+  };
 });
 
 kivi = namespace('kivi');