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
134 lines
4.8 KiB
JavaScript
134 lines
4.8 KiB
JavaScript
$(function () {
|
|
|
|
var f = 'dd.mm.yyyy', mode;
|
|
|
|
module("dateuifield", {
|
|
setup: function(){
|
|
fx = $('#async-fixture');
|
|
$.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) {
|
|
format = format.replace('yyyy', 'yy');
|
|
return $.datepicker.formatDate(format, date);
|
|
}
|
|
|
|
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-dateuifield.php">'+d+'</a>').appendTo(fx).editable({
|
|
format: f,
|
|
viewformat: f,
|
|
datepicker: {
|
|
firstDay: 1
|
|
}
|
|
}),
|
|
nextD = '16.05.1984',
|
|
finalD = '17.05.1984';
|
|
|
|
$.mockjax({
|
|
url: 'post-dateuifield.php',
|
|
response: function(settings) {
|
|
equal(settings.data.value, finalD, 'submitted value correct');
|
|
}
|
|
});
|
|
|
|
//testing func, run twice!
|
|
var func = function() {
|
|
var df = $.Deferred();
|
|
|
|
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('img').click();
|
|
|
|
equal(p.find('input').length, 1, 'input is single');
|
|
|
|
var picker = p.find('input').datepicker('widget');
|
|
|
|
ok(picker.is(':visible'), 'picker shown');
|
|
ok(picker.find('a.ui-state-active').is(':visible'), 'active day is visible');
|
|
equal(picker.find('a.ui-state-active').text(), 15, 'day shown correct');
|
|
equal(picker.find('.ui-datepicker-calendar > thead > tr > th').eq(0).find('span').text(), 'Mo', 'weekStart correct');
|
|
|
|
//set new day by picker
|
|
picker.find('a.ui-state-active').parent().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('a.ui-state-active').text(), 17, 'picker active date updated');
|
|
|
|
//prevent page reload in case of error
|
|
p.find('form').submit(function(e){
|
|
if(!e.isDefaultPrevented()) {
|
|
e.preventDefault();
|
|
ok(false, 'form submit not prevented!');
|
|
}
|
|
})
|
|
|
|
//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');
|
|
df.resolve();
|
|
}, timeout);
|
|
|
|
return df.promise();
|
|
};
|
|
|
|
|
|
$.when(func()).then(function() {
|
|
e.editable('setValue', d, true);
|
|
$.when(func()).then(function() {
|
|
e.remove();
|
|
start();
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
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');
|
|
});
|
|
|
|
}); |