Closed etika closed 6 years ago
- @schedules.each do |schedule| %tr %td= best_in_place schedule, :arrival_time , as: :datetime, display_with: lambda { |v| schedule.arrival_time.to_datetime.utc.iso8601 }, url: back_schedule_path(id:schedule.id, method: :put),value: schedule.arrival_time.to_datetime.utc.iso8601
I have modified the best_in_helper.js by adding
datetime: { activateForm: function () { 'use strict'; var output = jQuery(document.createElement('form')) .addClass('form_in_place') .attr('action', 'javascript:void(0);') .attr('style', 'display:inline'); var input_elt = jQuery(document.createElement('input')) .attr('type', 'datetime-local') .attr('name', this.attributeName) .val(new Date(this.display_value).toISOString().replace('Z', '')); // alert() // Add class to form input if (this.inner_class) { input_elt.addClass(this.inner_class); } output.append(input_elt); this.placeButtons(output, this); this.element.html(output); this.setHtmlAttributes(); this.element.find("input[type='datetime-local']")[0].select(); this.element.find("form").bind('submit', {editor: this}, BestInPlaceEditor.forms.input.submitHandler); if (this.cancelButton) { this.element.find("input[type='button']").bind('click', {editor: this}, BestInPlaceEditor.forms.input.cancelButtonHandler); } if (!this.okButton) { this.element.find("input[type='datetime-local']").bind('blur', {editor: this}, BestInPlaceEditor.forms.input.inputBlurHandler); } this.element.find("input[type='datetime-local']").bind('keyup', {editor: this}, BestInPlaceEditor.forms.input.keyupHandler); this.blurTimer = null; this.userClicked = false; }, getValue: function () { 'use strict'; return this.sanitizeValue(this.element.find("input").val()); }, // When buttons are present, use a timer on the blur event to give precedence to clicks inputBlurHandler: function (event) { 'use strict'; if (event.data.editor.okButton) { event.data.editor.blurTimer = setTimeout(function () { if (!event.data.editor.userClicked) { event.data.editor.abort(); } }, 500); } else { if (event.data.editor.cancelButton) { event.data.editor.blurTimer = setTimeout(function () { if (!event.data.editor.userClicked) { event.data.editor.update(); } }, 500); } else { event.data.editor.update(); } } }, submitHandler: function (event) { 'use strict'; event.data.editor.userClicked = true; clearTimeout(event.data.editor.blurTimer); event.data.editor.update(); }, cancelButtonHandler: function (event) { 'use strict'; event.data.editor.userClicked = true; clearTimeout(event.data.editor.blurTimer); event.data.editor.abort(); event.stopPropagation(); // Without this, click isn't handled }, keyupHandler: function (event) { 'use strict'; if (event.keyCode === 27) { event.data.editor.abort(); event.stopImmediatePropagation(); } } },
I am able to edit the datetime picker but the value gets updated in the backend but remains same in the frontend
I have modified the best_in_helper.js by adding
I am able to edit the datetime picker but the value gets updated in the backend but remains same in the frontend