From 2890468f26cf9bfb8cc231ea0db959fabd7ce98a Mon Sep 17 00:00:00 2001 From: Joel Quenneville Date: Thu, 26 Apr 2012 14:15:47 -0500 Subject: [PATCH] changed the way the record count is calculated, moved it into a method for subclasses --- lib/ajax-datatables-rails.rb | 6 +++++- lib/generators/ajaxdatatable/USAGE | 4 +--- lib/generators/filterdatatable/USAGE | 2 ++ lib/generators/filterdatatable/filterdatatable.rb | 8 ++++++++ lib/generators/filterdatatable/templates/filter.rb | 8 ++++++++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 lib/generators/filterdatatable/USAGE create mode 100644 lib/generators/filterdatatable/filterdatatable.rb create mode 100644 lib/generators/filterdatatable/templates/filter.rb diff --git a/lib/ajax-datatables-rails.rb b/lib/ajax-datatables-rails.rb index d1419339..aca591da 100644 --- a/lib/ajax-datatables-rails.rb +++ b/lib/ajax-datatables-rails.rb @@ -18,7 +18,7 @@ def as_json(options = {}) { sEcho: params[:sEcho].to_i, iTotalRecords: @model_name.count, - iTotalDisplayRecords: get_raw_records.count, + iTotalDisplayRecords: get_raw_record_count, aaData: data } end @@ -29,6 +29,10 @@ def get_raw_records raise end + def get_raw_record_count + raise + end + def fetch_records search_records(sort_records(paginate_records(get_raw_records))) end diff --git a/lib/generators/ajaxdatatable/USAGE b/lib/generators/ajaxdatatable/USAGE index f2efaf46..70aa4bc9 100644 --- a/lib/generators/ajaxdatatable/USAGE +++ b/lib/generators/ajaxdatatable/USAGE @@ -1,4 +1,2 @@ Description: - The cancan:ability generator creates an Ability class in the models - directory. You can move this file anywhere you want as long as it - is in the load path. \ No newline at end of file + The ajaxdatatable generator creates a *_datatable model in the app/datatables directory. This class inherits from AjaxDatatablesRails \ No newline at end of file diff --git a/lib/generators/filterdatatable/USAGE b/lib/generators/filterdatatable/USAGE new file mode 100644 index 00000000..35bffa0f --- /dev/null +++ b/lib/generators/filterdatatable/USAGE @@ -0,0 +1,2 @@ +Description: + The ajaxdatatable generator creates a *_filter_datatable model in the app/datatables directory. This class overwrites the query in it's parent class \ No newline at end of file diff --git a/lib/generators/filterdatatable/filterdatatable.rb b/lib/generators/filterdatatable/filterdatatable.rb new file mode 100644 index 00000000..1351ee94 --- /dev/null +++ b/lib/generators/filterdatatable/filterdatatable.rb @@ -0,0 +1,8 @@ +class FilterdatatableGenerator < Rails::Generators::Base + source_root File.expand_path('../templates', __FILE__) + argument :model, type: :string + + def generate_ajaxdatatable + template 'filter.rb', File.join('app/datatables', "#{model.tableize}_filter_datatable.rb") + end +end \ No newline at end of file diff --git a/lib/generators/filterdatatable/templates/filter.rb b/lib/generators/filterdatatable/templates/filter.rb new file mode 100644 index 00000000..50665d65 --- /dev/null +++ b/lib/generators/filterdatatable/templates/filter.rb @@ -0,0 +1,8 @@ +class <%= model.classify.pluralize %>FilterDatatable < <%= model.classify.pluralize %>Datatable + +private + + def get_raw_records + # insert query here + end +end