X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fclient_js.js;h=c9a152459c33041a36b3356fb162c95159baa9d7;hb=24d1656ebd75cc1125b15b1c9727cae0fb4417d1;hp=34b254b5a307d21627ef3e486650f8cfeaaf5c83;hpb=2473bd32292484336637336bc6968a0f329d9ad4;p=kivitendo-erp.git diff --git a/js/client_js.js b/js/client_js.js index 34b254b5a..c9a152459 100644 --- a/js/client_js.js +++ b/js/client_js.js @@ -4,12 +4,50 @@ // "scripts/generate_client_js_actions.pl". See the documentation for // SL/ClientJS.pm for instructions. -function eval_json_result(data) { +namespace("kivi", function(ns) { +ns.display_flash = function(type, message, noscroll) { + $('#flash_' + type + '_content').text(message); + $('#flash_' + type).show(); + if (!noscroll && $('#frame-header')[0]) { + $('#frame-header')[0].scrollIntoView(); + } +}; + +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.js || '') != '') + if (data.error) + return ns.display_flash('error', data.error); + + 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) { @@ -56,10 +94,32 @@ function eval_json_result(data) { else if (action[0] == 'removeProp') $(action[1]).removeProp(action[2]); else if (action[0] == 'val') $(action[1]).val(action[2]); + // Class attribute + else if (action[0] == 'addClass') $(action[1]).addClass(action[2]); + else if (action[0] == 'removeClass') $(action[1]).removeClass(action[2]); + else if (action[0] == 'toggleClass') $(action[1]).toggleClass(action[2]); + // Data storage else if (action[0] == 'data') $(action[1]).data(action[2], action[3]); else if (action[0] == 'removeData') $(action[1]).removeData(action[2]); + // Form Events + else if (action[0] == 'focus') kivi.set_focus(action[1]); + + // Generic Event Handling ## + else if (action[0] == 'on') $(action[1]).on(action[2], kivi.get_function_by_name(action[3])); + else if (action[0] == 'off') $(action[1]).off(action[2], kivi.get_function_by_name(action[3])); + else if (action[0] == 'one') $(action[1]).one(action[2], kivi.get_function_by_name(action[3])); + + // ## jQuery UI dialog plugin ## + + // Opening and closing a popup + else if (action[0] == 'dialog:open') kivi.popup_dialog(action[1]); + else if (action[0] == 'dialog:close') $(action[1]).dialog('close'); + + // ## jQuery Form plugin ## + else if (action[0] == 'ajaxForm') $(action[1]).ajaxForm({ success: eval_json_result }); + // ## jstree plugin ## // Operations on the whole tree @@ -76,6 +136,7 @@ function eval_json_result(data) { else if (action[0] == 'jstree:reopen') $.jstree._reference($(action[1])).reopen(); // Modifying nodes + else if (action[0] == 'jstree:create_node') $.jstree._reference($(action[1])).create_node(action[2], action[3], action[4]); else if (action[0] == 'jstree:rename_node') $.jstree._reference($(action[1])).rename_node(action[2], action[3]); else if (action[0] == 'jstree:delete_node') $.jstree._reference($(action[1])).delete_node(action[2]); else if (action[0] == 'jstree:move_node') $.jstree._reference($(action[1])).move_node(action[2], action[3], action[4], action[5]); @@ -85,9 +146,30 @@ function eval_json_result(data) { else if (action[0] == 'jstree:deselect_node') $.jstree._reference($(action[1])).deselect_node(action[2]); else if (action[0] == 'jstree:deselect_all') $.jstree._reference($(action[1])).deselect_all(); + // ## ckeditor stuff ## + else if (action[0] == 'focus_ckeditor') kivi.focus_ckeditor_when_ready(action[1]); + + // ## other stuff ## + else if (action[0] == 'redirect_to') window.location.href = action[1]; + else if (action[0] == 'save_file') kivi.save_file(action[1], action[2], action[3], action[4]); + else if (action[0] == 'flash') kivi.display_flash(action[1], action[2]); + else if (action[0] == 'flash_detail') kivi.display_flash_detail(action[1], action[2]); + else if (action[0] == 'clear_flash') kivi.clear_flash(action[1], action[2]); + else if (action[0] == 'reinit_widgets') kivi.reinit_widgets(); + else if (action[0] == 'run') kivi.run(action[1], action.slice(2, action.length)); + else if (action[0] == 'run_once_for') kivi.run_once_for(action[1], action[2], action[3]); + else if (action[0] == 'scroll_into_view') $(action[1])[0].scrollIntoView(); + else if (action[0] == 'set_cursor_position') kivi.set_cursor_position(action[1], action[2]); + else console.log('Unknown action: ' + action[0]); }); // console.log("current_content_type " + $('#current_content_type').val() + ' ID ' + $('#current_content_id').val()); -} +}; + +}); + +// Local Variables: +// mode: js +// End: