Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. <div class="date-wrapper" id="date-wrapper" >
  2. <label class="label">Delivery Date</label>
  3. <div class="control">
  4. <input class="input-text" type="text" data-bind="datepicker: true" name="delivery_date" id="delivery_date" readonly="true"/>
  5. </div>
  6.  
  7. <label class="label">Comment</label>
  8. <div class="control">
  9. <textarea name="delivery_comment" id="delivery_comment" ></textarea>
  10. </div>
  11. </div>
  12. </br>
  13.  
  14. define([
  15. 'jquery',
  16. 'ko',
  17. 'uiComponent'
  18. ], function ($, ko, Component) {
  19. 'use strict';
  20.  
  21. return Component.extend({
  22. defaults: {
  23. template: 'SR_DeliveryDate/delivery-date-block'
  24. },
  25. initialize: function () {
  26. this._super();
  27. var disabled = window.checkoutConfig.shipping.delivery_date.disabled;
  28. var noday = window.checkoutConfig.shipping.delivery_date.noday;
  29. //var hourMin = parseInt(window.checkoutConfig.shipping.delivery_date.hourMin);
  30. //var hourMax = parseInt(window.checkoutConfig.shipping.delivery_date.hourMax);
  31. var format = window.checkoutConfig.shipping.delivery_date.format;
  32.  
  33. if(!format) {
  34. format = 'yy-mm-dd';
  35. }
  36. var disabledDay = disabled.split(",").map(function(item) {
  37. return parseInt(item, 10);
  38. });
  39.  
  40. ko.bindingHandlers.datepicker = {
  41. init: function (element, valueAccessor, allBindingsAccessor) {
  42. var $el = $(element);
  43. //initialize datetimepicker
  44. if(noday) {
  45. var options = {
  46. minDate: 0,
  47. dateFormat:format
  48.  
  49. };
  50. } else {
  51. var options = {
  52. minDate: 0,
  53. dateFormat:format,
  54. beforeShowDay: function(date) {
  55. var day = date.getDay();
  56. if(disabledDay.indexOf(day) > -1) {
  57. return [false];
  58. } else {
  59. return [true];
  60. }
  61. }
  62. };
  63. }
  64.  
  65. $el.datepicker(options);
  66.  
  67. var writable = valueAccessor();
  68. if (!ko.isObservable(writable)) {
  69. var propWriters = allBindingsAccessor()._ko_property_writers;
  70. if (propWriters && propWriters.datepicker) {
  71. writable = propWriters.datepicker;
  72. } else {
  73. return;
  74. }
  75. }
  76. writable($(element).datepicker("getDate"));
  77. },
  78. update: function (element, valueAccessor) {
  79. var widget = $(element).data("DateTimePicker");
  80. //when the view model is updated, update the widget
  81. if (widget) {
  82. var date = ko.utils.unwrapObservable(valueAccessor());
  83. widget.date(date);
  84. }
  85. }
  86. };
  87.  
  88. return this;
  89. }
  90. });
  91. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement