dist
src
test
libs
unit
api.js
checklist.js
combodate.js
common.js
date.js
datefield.js
datetime.js
datetimefield.js
dateui.js
dateuifield.js
select.js
select2.js
text.js
textarea.js
typeahead.js
typeaheadjs.js
wysihtml5.js
coverage
index.html
loader.js
main.js
mocks.js
require.js
style.css
.gitignore
CHANGELOG.txt
Gruntfile.js
LICENSE-MIT
Package.nuspec
README.md
bower.json
composer.json
package.json
135 lines
4.8 KiB
JavaScript
135 lines
4.8 KiB
JavaScript
$(function () {
|
|
|
|
var dpg, f = 'dd.mm.yyyy', mode;
|
|
|
|
module("datefield", {
|
|
setup: function(){
|
|
fx = $('#async-fixture');
|
|
dpg = $.fn.bdatepicker.DPGlobal;
|
|
$.support.transition = false;
|
|
|
|
mode = $.fn.editable.defaults.mode;
|
|
$.fn.editable.defaults.mode = 'inline';
|
|
},
|
|
teardown: function() {
|
|
//restore mode
|
|
$.fn.editable.defaults.mode = mode;
|
|
}
|
|
});
|
|
|
|
function frmt(date, format) {
|
|
return dpg.formatDate(date, dpg.parseFormat(format), 'en');
|
|
}
|
|
|
|
asyncTest("container should contain input with value and save new entered date", function () {
|
|
|
|
var d = '15.05.1984',
|
|
e = $('<a href="#" data-type="date" data-pk="1" data-url="post-datefield.php">'+d+'</a>').appendTo(fx).editable({
|
|
format: f,
|
|
viewformat: f,
|
|
datepicker: {
|
|
weekStart: 1
|
|
}
|
|
}),
|
|
nextD = '16.05.1984',
|
|
finalD = '17.05.1984';
|
|
|
|
$.mockjax({
|
|
url: 'post-datefield.php',
|
|
response: function(settings) {
|
|
equal(settings.data.value, finalD, 'submitted value correct');
|
|
}
|
|
});
|
|
|
|
equal(frmt(e.data('editable').value, 'dd.mm.yyyy'), d, 'value correct');
|
|
|
|
e.click();
|
|
var p = tip(e);
|
|
ok(p.find('input').is(':visible'), 'input exists');
|
|
|
|
equal(p.find('input').val(), d, 'date set correct');
|
|
|
|
//open picker
|
|
p.find('span.add-on').click();
|
|
var picker = p.find('span.add-on').parent().data().datepicker.picker;
|
|
|
|
ok(picker.is(':visible'), 'picker shown');
|
|
ok(picker.find('td.day.active').is(':visible'), 'active day is visible');
|
|
equal(picker.find('td.day.active').text(), 15, 'day shown correct');
|
|
equal(picker.find('th.dow').eq(0).text(), 'Mo', 'weekStart correct');
|
|
|
|
//set new day by picker
|
|
picker.find('td.day.active').next().click();
|
|
ok(!picker.is(':visible'), 'picker closed');
|
|
|
|
equal(p.find('input').val(), nextD, 'next day set correct');
|
|
|
|
p.find('input').val(finalD).trigger('keyup');
|
|
|
|
equal(picker.find('td.day.active').text(), 17, 'picker active date updated');
|
|
|
|
//submit
|
|
p.find('form').submit();
|
|
|
|
setTimeout(function() {
|
|
ok(!p.is(':visible'), 'popover closed');
|
|
ok(!picker.is(':visible'), 'picker closed');
|
|
equal(frmt(e.data('editable').value, f), finalD, 'new date saved to value');
|
|
equal(e.text(), finalD, 'new text shown');
|
|
e.remove();
|
|
start();
|
|
}, timeout);
|
|
|
|
});
|
|
|
|
test("viewformat, init by text", function () {
|
|
|
|
var dview = '15/05/1984',
|
|
d = '1984-05-15',
|
|
e = $('<a href="#" data-type="date" data-pk="1" data-url="post-date1.php">'+dview+'</a>').appendTo('#qunit-fixture').editable({
|
|
format: 'yyyy-mm-dd',
|
|
viewformat: 'dd/mm/yyyy'
|
|
}),
|
|
nextD = '1984-05-16',
|
|
nextDview = '16/05/1984';
|
|
|
|
equal(frmt(e.data('editable').value, 'yyyy-mm-dd'), d, 'value correct');
|
|
});
|
|
|
|
test("viewformat, init by value", function () {
|
|
var dview = '15/05/1984',
|
|
d = '1984-05-15',
|
|
e = $('<a href="#" data-type="date" data-pk="1" data-format="yyyy-mm-dd" data-viewformat="dd/mm/yyyy" data-value="'+d+'"></a>').appendTo('#qunit-fixture').editable();
|
|
|
|
equal(frmt(e.data('editable').value, 'yyyy-mm-dd'), d, 'value correct');
|
|
equal(e.text(), dview, 'text correct');
|
|
});
|
|
|
|
|
|
test("incorrect date", function () {
|
|
var d = '15.05.1984',
|
|
e = $('<a href="#" data-type="date" data-pk="1">'+d+'</a>').appendTo('#qunit-fixture').editable({
|
|
format: f,
|
|
viewformat: f
|
|
}),
|
|
nextD = '16.05.1984';
|
|
|
|
equal(frmt(e.data('editable').value, 'dd.mm.yyyy'), d, 'value correct');
|
|
|
|
e.click();
|
|
var p = tip(e);
|
|
ok(p.find('input').is(':visible'), 'input exists');
|
|
|
|
equal(p.find('input').val(), d, 'date set correct');
|
|
|
|
//enter incorrect date
|
|
p.find('input').val('abcde');
|
|
|
|
//submit
|
|
p.find('form').submit();
|
|
|
|
ok(!p.is(':visible'), 'popover closed');
|
|
equal(e.data('editable').value, null, 'date set to null');
|
|
equal(e.text(), $.fn.editable.defaults.emptytext , 'emptytext shown');
|
|
});
|
|
}); |