diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 880a80f..a4b1502 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,12 @@ X-editable changelog ============================= + +Version 1.5.1 wip +---------------------------- +[bug #374] dateui: clear button does not submit (vitalets) + + Version 1.5.0 Oct 1, 2013 ---------------------------- [enh #362] add twitter typeahead.js (vitalets) diff --git a/src/inputs/dateui/dateui.js b/src/inputs/dateui/dateui.js index d08da60..16b5f82 100644 --- a/src/inputs/dateui/dateui.js +++ b/src/inputs/dateui/dateui.js @@ -119,15 +119,22 @@ $(function(){ clear: function() { this.$input.datepicker('setDate', null); + // submit automatically whe that are no buttons + if(this.isAutosubmit) { + this.submit(); + } }, autosubmit: function() { - this.$input.on('mouseup', 'table.ui-datepicker-calendar a.ui-state-default', function(e){ - var $form = $(this).closest('form'); - setTimeout(function() { - $form.submit(); - }, 200); - }); + this.isAutosubmit = true; + this.$input.on('mouseup', 'table.ui-datepicker-calendar a.ui-state-default', $.proxy(this.submit, this)); + }, + + submit: function() { + var $form = this.$input.closest('form'); + setTimeout(function() { + $form.submit(); + }, 200); } }); diff --git a/test/unit/dateui.js b/test/unit/dateui.js index a0a3061..182d9aa 100644 --- a/test/unit/dateui.js +++ b/test/unit/dateui.js @@ -142,6 +142,48 @@ $(function () { start(); }, 500); - }); + }); + + + asyncTest("clear button in no-buttons mode", function () { + var d = '15.05.1984', + f = 'dd.mm.yyyy', + e = $('<a href="#" data-type="date" data-pk="1" data-url="post-date-clear-no-buttons">'+d+'</a>').appendTo(fx).editable({ + format: f, + showbuttons: false + }); + + $.mockjax({ + url: 'post-date-clear-no-buttons', + response: function(settings) { + equal(settings.data.value, '', 'submitted value correct'); + } + }); + + equal(frmt(e.data('editable').value, 'dd.mm.yyyy'), d, 'value correct'); + + e.click(); + var p = tip(e); + ok(p.find('.ui-datepicker').is(':visible'), 'datepicker exists'); + + equal(frmt(e.data('editable').value, f), d, 'day set correct'); + equal(p.find('a.ui-state-active').text(), 15, 'day shown correct'); + + var clear = p.find('.editable-clear a:visible'); + ok(clear.length, 'clear link shown'); + + //click clear + clear.click(); + + setTimeout(function() { + ok(!p.is(':visible'), 'popover closed'); + equal(e.data('editable').value, null, 'null saved to value'); + equal(e.text(), e.data('editable').options.emptytext, 'empty text shown'); + e.remove(); + start(); + }, 500); + + }); + }); \ No newline at end of file