X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fkivi.js;h=31a56a4434df811a1b0e6ad07d5c31c6a57f88f2;hb=ee03d15d22eebae4c5224bd68a23b6b4d8a466c0;hp=005cdd0e682f3f9baa380d9f4b8e253cdf3ae90a;hpb=6c90631576a61bfe8ee843d8f454d5759a2a5bb0;p=kivitendo-erp.git diff --git a/js/kivi.js b/js/kivi.js index 005cdd0e6..31a56a443 100644 --- a/js/kivi.js +++ b/js/kivi.js @@ -337,7 +337,8 @@ namespace("kivi", function(ns) { extraPlugins: 'inline_resize', toolbar: buttons, disableAutoInline: true, - title: false + title: false, + disableNativeSpellChecker: false }; config.height = $e.height(); @@ -675,6 +676,49 @@ namespace("kivi", function(ns) { $input.prop('selectionStart', position); $input.prop('selectionEnd', position); }; + + ns._shell_escape = function(str) { + if (str.match(/^[a-zA-Z0-9.,_=+/-]+$/)) + return str; + + return "'" + str.replace(/'/, "'\\''") + "'"; + }; + + ns.call_as_curl = function(params) { + params = params || {}; + var uri = document.documentURI.replace(/\?.*/, ''); + var command = ['curl', '--user', kivi.myconfig.login + ':SECRET', '--request', params.method || 'POST'] + + $(params.data || []).each(function(idx, elt) { + command = command.concat([ '--form-string', elt.name + '=' + (elt.value || '') ]); + }); + + command.push(uri); + + return $.map(command, function(elt, idx) { + return kivi._shell_escape(elt); + }).join(' '); + }; + + ns.serialize = function(source, target = [], prefix, in_array = false) { + let arr_prefix = first => in_array ? (first ? "[+]" : "[]") : ""; + + if (Array.isArray(source) ) { + source.forEach(( val, i ) => { + ns.serialize(val, target, prefix + arr_prefix(i == 0), true); + }); + } else if (typeof source === "object") { + let first = true; + for (let key in source) { + ns.serialize(source[key], target, (prefix !== undefined ? prefix + arr_prefix(first) + "." : "") + key); + first = false; + } + } else { + target.push({ name: prefix + arr_prefix(false), value: source }); + } + + return target; + }; }); kivi = namespace('kivi');