jquery_datepicker icon indicating copy to clipboard operation
jquery_datepicker copied to clipboard

Datepicker stopped working on my app, what happened?

Open pblogs opened this issue 9 years ago • 0 comments

I'm having two issues with the same aspect of my application, the abstract view is this:

The app allows users to view different video clips. On the back-end/admin section the admin can track the views of any particular group of clips. For example, the admin can choose Universal Studios, select a date range: Beginning Date: 2015-01-1, End Date: 2016-01-1 and hit filter, and see the number of total views that Universal received within this range.

The problem is, for one, datepicker is no longer working, so when I click on the date fields, no calendar appears, I manually have to type in the date. And for two, I'm only getting results between furthest: 2015-10-18 and 2016-02-18. When I type in 2015-09-18 or anything earlier it doesn't generate results.

Below is the error when I click inspect element in Chorme,

error: Uncaught TypeError: Cannot read property 'apply' of undefined

 */
 (function($) {
   var _datepicker = jQuery.fn.datepicker;

   $.fn.datepicker = function(options) {
    var $date = _datepicker.apply(this, arguments); <--- this line

application.js requires

// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require jquery-ui/draggable
//= require jquery-ui/sortable
//= require jquery-ui/autocomplete
//= require bootstrap
//= require carousel.js
//= require hover.js
//= require menu_js/modernizr.js
//= require menu_js/dlmenu.js
//= require custom.js
//= require bootstrap-tabs.js
//= require jquery.raty.js
//= require letsrate.js
//= require rails-timeago
//= require tinymce-jquery
//= require scrollTo.js
//= require clips.js
//= require jquery.sticky.js
//= require jquery-ui.min.js
//= require jquery.dynatable.js
//= require playlist.js
//= require index.js.coffee

custom.js

/**
 * Constructor patch for jQuery UI DatePicker
 * Automatically initializes the input with the value from the altField
 */
 (function($) {
   var _datepicker = jQuery.fn.datepicker;

   $.fn.datepicker = function(options) {
    var $date = _datepicker.apply(this, arguments);

    if (options.altFormat && options.altField) {
      var altValue = $(options.altField).val();
      var value = $.datepicker.parseDate(options.altFormat, altValue);
      var dateFormat = _datepicker.call(this, 'option', 'dateFormat');
      $(this).val($.datepicker.formatDate(dateFormat, value));
    }
  };
})(jQuery);

var $date = $("#search_start_date");

$date.datepicker({
  dateFormat: "yy-mm-dd",
  altFormat: "yymmdd"
});

var $end_date = $('#search_end_date');

$end_date.datepicker({
  dateFormat: "yy-mm-dd",
  altFormat: "yymmdd"
});



});

index.html.erb

<%= form_for Search.new, url: statistics_search_saas_admin_statistics_path, html: {method: :get, remote: true} do |f| %>
<table id="table_1" class="table" style="margin-bottom: 5px;">
  <tr>
    <th style="color: black; background: white; border-color: white;">Studio</th>
    <th style="color: black; background: white; border-color: white;">Film</th>
    <th style="color: black; background: white; border-color: white;">Clip</th>
    <th style="color: black; background: white; border-color: white;"></th>
    <th style="color: black; background: white; border-color: white;"></th>
  </tr>
  <tr>
  <td>
    <select multiple id="studio_select" style="height: 150px;">
      <% Studio.all.each do |studio| -%>
      <option value="<%=studio.id %>"><%= studio.name %></option>
      <% end -%>
    </select>
    <%= hidden_field_tag :studio_ids %>
  </td>
  <td>
    <select multiple id="film_select" style="height: 150px;"></select>
    <%= hidden_field_tag :film_ids %>
  </td>
  <td>
    <select multiple id="clip_select" name="search[clip]" style="height: 150px;"></select>
    <%= hidden_field_tag :clip_ids %>
  </td>
</table>

<div class="span10">
<table class="table">
  <tr>
    <th>Beginning Date</th>
    <th>End Date</th>
    <th></th>
  </tr>
  <tr>
    <td><%= f.text_field :start_date, value: 1.month.ago.strftime('%Y-%m-%d')  %></td>
    <td><%= f.text_field :end_date, value: Time.now.strftime('%Y-%m-%d') %></td>
    <td>
      <%= f.submit "Filter", class: "btn btn-danger", data: {disable_with: 'Searching...'} %>
      <%= link_to 'Clear Form', '#', id: "clear", class: 'btn btn-default'  %>
    </td>
  </tr>
</table>
</div>
<% end -%>

pblogs avatar Feb 23 '16 02:02 pblogs