misago-datetimepicker.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Form enchancer for datetimes
  2. $(function() {
  3. function enchanceDateTimeField($control) {
  4. var formats = $control.data('input-format').split(" ");
  5. var date_format = formats[0];
  6. var time_format = formats[1].replace(":%S", "");
  7. var $input = $control.find('input');
  8. $input.attr('type', 'hidden');
  9. var $date = $('<input type="text" class="form-control" style="float: left; width: 108px; margin-right: 8px; text-align: center;">');
  10. var $time = $('<input type="text" class="form-control" style="float: left; width: 68px; text-align: center;">');
  11. var $container = $('<div style="overflow: auto;"></div>');
  12. $container.insertAfter($input);
  13. $container.append($date);
  14. $container.append($time);
  15. date_format = date_format.replace('%d', 'DD');
  16. date_format = date_format.replace('%m', 'MM');
  17. date_format = date_format.replace('%y', 'YY');
  18. date_format = date_format.replace('%Y', 'YYYY');
  19. $date.datetimepicker({
  20. format: date_format,
  21. pickDate: true,
  22. pickTime: false
  23. });
  24. var values = $input.val().split(" ");
  25. if (values.length == 2) {
  26. $date.val(values[0]);
  27. var time = values[1].split(":");
  28. $time.val(time[0] + ":" + time[1]);
  29. }
  30. $time.datetimepicker({
  31. format: 'HH:mm',
  32. pickDate: false,
  33. pickSeconds: false,
  34. pick12HourFormat: false
  35. });
  36. function update_value() {
  37. $input.val($date.val() + " " + $time.val());
  38. }
  39. $date.change(update_value);
  40. $time.change(update_value);
  41. }
  42. // discover formatted fields
  43. $('.controls').each(function() {
  44. if ($(this).data('input-format')) {
  45. enchanceDateTimeField($(this));
  46. }
  47. })
  48. })