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
148 lines
5.6 KiB
JavaScript
148 lines
5.6 KiB
JavaScript
$(function () {
|
|
|
|
var dpg, f = 'dd.mm.yyyy hh:ii', mode;
|
|
|
|
module("datetimefield", {
|
|
setup: function(){
|
|
fx = $('#async-fixture');
|
|
dpg = $.fn.datetimepicker.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) {
|
|
//convert to utc
|
|
date = $.fn.editabletypes.datetime.prototype.toUTC(date);
|
|
return dpg.formatDate(date, dpg.parseFormat(format, 'standard'), 'en', 'standard');
|
|
}
|
|
|
|
asyncTest("container should contain datetimepicker with value and save new entered date", function () {
|
|
$.fn.editabletypes.datetimefield.defaults.datetimepicker.weekStart = 1;
|
|
|
|
var d = '15.05.1984 20:30',
|
|
e = $('<a href="#" data-type="datetime" data-pk="1" data-url="post-datetimefield">'+d+'</a>').appendTo(fx).editable({
|
|
format: f,
|
|
datetimepicker: {
|
|
|
|
}
|
|
}),
|
|
nextD = '16.05.1984 21:35';
|
|
|
|
$.mockjax({
|
|
url: 'post-datetimefield',
|
|
response: function(settings) {
|
|
equal(settings.data.value, nextD, 'submitted value correct');
|
|
}
|
|
});
|
|
|
|
//testing func, run twice!
|
|
var func = function() {
|
|
var df = $.Deferred();
|
|
equal(frmt(e.data('editable').value, 'dd.mm.yyyy hh:ii'), d, 'value correct');
|
|
|
|
e.click();
|
|
var cont = tip(e);
|
|
//check input
|
|
ok(cont.find('input[type="text"]').is(':visible'), 'input exists');
|
|
equal(cont.find('input').val(), d, 'value set correct');
|
|
|
|
//open picker
|
|
cont.find('span.add-on').click();
|
|
var p = cont.find('span.add-on').parent().data().datetimepicker.picker;
|
|
|
|
//check date in picker
|
|
ok(p.is(':visible'), 'datetimepicker exists');
|
|
equal(p.length, 1, 'datetimepicker single');
|
|
ok(p.find('.datetimepicker-days').is(':visible'), 'datetimepicker days visible');
|
|
|
|
equal(frmt(e.data('editable').value, f), d, 'day set correct');
|
|
ok(p.find('td.day.active').is(':visible'), 'active day is visible');
|
|
equal(p.find('td.day.active').text(), 15, 'day shown correct');
|
|
equal(p.find('th.dow').eq(0).text(), 'Mo', 'weekStart correct');
|
|
|
|
//set new day
|
|
p.find('.day.active').next().click();
|
|
|
|
//hours appeared?
|
|
ok(p.find('.datetimepicker-hours').is(':visible'), 'datetimepicker hours visible');
|
|
//set hours 21
|
|
p.find('.hour.active').next().click();
|
|
|
|
//minutes appeared?
|
|
ok(p.find('.datetimepicker-minutes').is(':visible'), 'datetimepicker minutes visible');
|
|
//set minutes 21:35
|
|
p.find('.minute.active').next().click();
|
|
|
|
//submit
|
|
cont.find('form').submit();
|
|
|
|
setTimeout(function() {
|
|
ok(!cont.is(':visible'), 'popover closed');
|
|
equal(frmt(e.data('editable').value, f), nextD, 'new date saved to value');
|
|
equal(e.text(), nextD, '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 11:50',
|
|
d = '1984-05-15 11:50',
|
|
e = $('<a href="#" data-type="datetime" data-pk="1">'+dview+'</a>').appendTo('#qunit-fixture').editable({
|
|
format: 'yyyy-mm-dd hh:ii',
|
|
viewformat: 'dd/mm/yyyy hh:ii',
|
|
datetimepicker: {
|
|
|
|
}
|
|
});
|
|
|
|
equal(frmt(e.data('editable').value, 'yyyy-mm-dd hh:ii'), d, 'value correct');
|
|
});
|
|
|
|
test("viewformat, init by value", function () {
|
|
var dview = '15/05/1984 15:45',
|
|
d = '1984-05-15 15:45',
|
|
e = $('<a href="#" data-type="datetime" data-pk="1" data-format="yyyy-mm-dd hh:ii" data-viewformat="dd/mm/yyyy hh:ii" data-value="'+d+'"></a>').appendTo('#qunit-fixture').editable();
|
|
|
|
equal(frmt(e.data('editable').value, 'yyyy-mm-dd hh:ii'), d, 'value correct');
|
|
equal(e.text(), dview, 'text correct');
|
|
});
|
|
|
|
test("incorrect datetime", function () {
|
|
var dview = '15/05/1984 15:45',
|
|
d = '1984-05-15 15:45',
|
|
e = $('<a href="#" data-type="datetime" data-pk="1" data-format="yyyy-mm-dd hh:ii" data-viewformat="dd/mm/yyyy hh:ii" data-value="'+d+'"></a>').appendTo('#qunit-fixture').editable();
|
|
|
|
e.click();
|
|
var p = tip(e);
|
|
ok(p.find('input').is(':visible'), 'input exists');
|
|
|
|
//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');
|
|
});
|
|
|
|
}); |