epic-s6ts
[kivitendo-erp.git] / scripts / generate_client_js_actions.tpl
index 4603266..467344f 100644 (file)
@@ -4,25 +4,50 @@
 // "scripts/generate_client_js_actions.pl". See the documentation for
 // SL/ClientJS.pm for instructions.
 
-function display_flash(type, message) {
+namespace("kivi", function(ns) {
+ns.display_flash = function(type, message, noscroll) {
   $('#flash_' + type + '_content').text(message);
   $('#flash_' + type).show();
-}
+  if (!noscroll) {
+    $('#frame-header')[0].scrollIntoView();
+  }
+};
 
-function eval_json_result(data) {
+ns.display_flash_detail = function(type, message) {
+  $('#flash_' + type + '_detail').html(message);
+  $('#flash_' + type + '_disp').show();
+};
+
+ns.clear_flash = function(category , timeout) {
+  window.setTimeout(function(){
+    $('#flash_' + category).hide();
+    $('#flash_detail_' + category).hide();
+    $('#flash_' + category + '_disp').hide();
+    $('#flash_' + category + '_content').empty();
+    $('#flash_' + category + '_detail').empty();
+  }, timeout);
+};
+
+ns.eval_json_result = function(data) {
   if (!data)
     return;
 
   if (data.error)
-    return display_flash('error', data.error);
+    return ns.display_flash('error', data.error);
 
-  $(['info', 'warning', 'error']).each(function(idx, category) {
-    $('#flash_' + category).hide();
-    $('#flash_' + category + '_content').empty();
-  });
-
-  if ((data.js || '') != '')
+  if (!data.no_flash_clear) {
+    $(['info', 'warning', 'error']).each(function(idx, category) {
+      $('#flash_' + category).hide();
+      $('#flash_detail_' + category).hide();
+      $('#flash_' + category + '_disp').hide();
+      $('#flash_' + category + '_content').empty();
+      $('#flash_' + category + '_detail').empty();
+    });
+  }
+  if ((data.js || '') !== '')
+    // jshint -W061
     eval(data.js);
+    // jshint +W061
 
   if (data.eval_actions)
     $(data.eval_actions).each(function(idx, action) {
@@ -32,13 +57,9 @@ function eval_json_result(data) {
     });
 
   // console.log("current_content_type " + $('#current_content_type').val() + ' ID ' + $('#current_content_id').val());
-}
+};
 
-function submit_ajax_form(url, form_selector, additional_data) {
-  var separator = /\?/.test(url) ? '&' : '?';
-  $.post(url + separator + $(form_selector).serialize(), additional_data, eval_json_result);
-  return true;
-}
+});
 
 // Local Variables:
 // mode: js