diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 3989c57..099ca9a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ X-editable changelog Version 1.2.1 wip ---------------------------- +[enh] removed default dataType='json' for submit request. Use 'ajaxOptions' to specify dataType if needed (vitalets) [enh] select: do not show 'sourceError' in element during autotext execution (vitalets) diff --git a/src/editable-form/editable-form.js b/src/editable-form/editable-form.js index f85e170..a8d5b35 100644 --- a/src/editable-form/editable-form.js +++ b/src/editable-form/editable-form.js @@ -273,8 +273,7 @@ Editableform is linked with one of input types, e.g. 'text', 'select' etc. return $.ajax($.extend({ url : this.options.url, data : params, - type : 'post', - dataType: 'json' + type : 'POST' }, this.options.ajaxOptions)); } } diff --git a/test/unit/select.js b/test/unit/select.js index a0e7e06..cb2ea0b 100644 --- a/test/unit/select.js +++ b/test/unit/select.js @@ -295,12 +295,12 @@ $(function () { expect(4); //clear cache - $(document).removeData('groups.php-name1'); + $(document).removeData('groups-cache-sim.php-name1'); var req = 0; $.mockjax({ url: 'groups-cache-sim.php', - responseTime: 200, + responseTime: 50, response: function() { req++; this.responseText = groups; @@ -312,7 +312,6 @@ $(function () { e2 = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="3" data-url="post.php" data-source="groups-cache-sim.php"></a>').appendTo(fx).editable(); setTimeout(function() { - equal(req, 1, 'one request'); equal(e.text(), groups[1], 'text1 correct'); equal(e1.text(), groups[2], 'text2 correct'); @@ -330,7 +329,7 @@ $(function () { expect(4); //clear cache - $(document).removeData('groups.php-name1'); + $(document).removeData('groups-cache-sim-err.php-name1'); var req = 0; $.mockjax({ @@ -342,17 +341,16 @@ $(function () { } }); - var e = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="1" data-autotext="always" data-url="post.php" data-source="groups-cache-sim-err.php">35</a>').appendTo(fx).editable(), - e1 = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="2" data-autotext="always" data-url="post.php" data-source="groups-cache-sim-err.php">35</a>').appendTo(fx).editable(), - e2 = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="3" data-autotext="always" data-url="post.php" data-source="groups-cache-sim-err.php">6456</a>').appendTo(fx).editable(), - errText = $.fn.editabletypes.select.defaults.sourceError; + var e = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="1" data-autotext="always" data-url="post.php" data-source="groups-cache-sim-err.php">11</a>').appendTo(fx).editable(), + e1 = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="2" data-autotext="always" data-url="post.php" data-source="groups-cache-sim-err.php">22</a>').appendTo(fx).editable(), + e2 = $('<a href="#" data-type="select" data-pk="1" data-name="name1" data-value="3" data-autotext="always" data-url="post.php" data-source="groups-cache-sim-err.php"></a>').appendTo(fx).editable(); setTimeout(function() { equal(req, 1, 'one request'); - equal(e.text(), errText, 'text1 correct'); - equal(e1.text(), errText, 'text2 correct'); - equal(e2.text(), errText, 'text3 correct'); + equal(e.text(), '11', 'text1 correct'); + equal(e1.text(), '22', 'text2 correct'); + equal(e2.text(), $.fn.editable.defaults.emptytext, 'text3 correct'); e.remove(); e1.remove(); diff --git a/test/unit/text.js b/test/unit/text.js index fa236ec..7228ac1 100644 --- a/test/unit/text.js +++ b/test/unit/text.js @@ -218,6 +218,9 @@ $(function () { params: { q: 2 }, + ajaxOptions: { + dataType: 'json' + }, success: function(resp) { equal(resp.dataType, 'json', 'dataType ok'); equal(resp.data.pk, 1, 'pk ok'); @@ -243,26 +246,31 @@ $(function () { }); asyncTest("params as function", function () { - var e = $('<a href="#" data-pk="1" data-url="post-resp.php">abc</a>').appendTo(fx).editable({ + var e = $('<a href="#" data-pk="1" data-url="post-params-func.php">abc</a>').appendTo(fx).editable({ name: 'username', params: function(params) { ok(this === e[0], 'scope is ok'); equal(params.pk, 1, 'params in func already have values (pk)'); return { q: 2, pk: 3 }; }, - success: function(resp) { - equal(resp.dataType, 'json', 'dataType ok'); - equal(resp.data.pk, 3, 'pk ok'); - equal(resp.data.name, 'username', 'name ok'); - equal(resp.data.value, newText, 'value ok'); - equal(resp.data.q, 2, 'additional params ok'); - }, ajaxOptions: { headers: {"myHeader": "123"} } }), newText = 'cd<e>;"' + $.mockjax({ + url: 'post-params-func.php', + response: function(settings) { + equal(settings.dataType, undefined, 'dataType undefined (correct)'); + equal(settings.data.pk, 3, 'pk ok'); + equal(settings.data.name, 'username', 'name ok'); + equal(settings.data.value, newText, 'value ok'); + equal(settings.data.q, 2, 'additional params ok'); + } + }); + + e.click() var p = tip(e);