jq_datatable.anubis 6.15 KB
/*
 * Created by PyramIDE.
 * User: Jeremy
 * Date: 12/09/2012
 * Time: 16:14
 * 
 *
 */

read xlib/web/making_a_web_site.anubis
read xlib/web/jquery.anubis
read xlib/web/jQuery/jq_datatable_types.anubis
read xlib/web/jQuery/jq_datatable_translation.anubis
read tools/basis.anubis
read system/string.anubis
read system/convert.anubis
transmit xlib/web/jQuery/jq_datatable_plugins.anubis

   
/* Initialize jQuery datatables */
public define List(HTML_Head_Tag)
  jquery_datatables_1_9_init
  (
   String web_dir,
  )
  =
    [ 
      css(css_file("css/jquery/jquery.dataTables.css")),
      css(css_file("/css/jquery/jquery.dataTables_themeroller.css")),
      js(js_file("/js/jquery/jquery.dataTables.js")),
      //js(js_file("js/jquery/dataTables/dataTables.jqueryui.js")) ,      only for datatable 1.10
      //css(css_file("js/jquery/dataTables/extensions/Scroller/css/shCore.css")),
      //css(css_file("js/jquery/dataTables/extensions/Scroller/css/shThemeDataTables.css")),
      //css(css_file("js/jquery/dataTables/extensions/Scroller/css/doc.css")),
      css(css_file("js/jquery/dataTables/extensions/Scroller/css/dataTables.scroller.css")),
      js(js_file("js/jquery/dataTables/extensions/Scroller/js/dataTables.scroller.js")),
    ]
  .

public define List(HTML_Head_Tag)
  jquery_datatables_1_10_init
//  (
//   String web_dir,
//  )
  =
    [ 
      //css(css_file("jquery/plug-in/DataTables-1.10.7/media/css/jquery.dataTables.min.css")),
      //css(css_file("jquery/plug-in/DataTables-1.10.7/media/css/jquery.dataTables_themeroller.css")),
      
      js(js_file("js/jquery/plug-in/datatables.min.js")),
      css(css_file("css/jquery/datatables.min.css")),
      //js(js_file("js/jquery/plug-in/DataTables-1.10.7/media/js/jquery.dataTables.min.js")),
      //js(js_file("js/jquery/plug-in/DataTables-1.10.7/media/js/dataTables.jqueryui.js")) ,       //only for datatable 1.10
      //css(css_file("js/jquery/plug-in/DataTables-1.10.7/media/css/dataTables.jqueryui.css")),   //only for datatable 1.10
      //css(css_file("js/jquery/plug-in/DataTables-1.10.7/extensions/Scroller/css/dataTables.scroller.min.css")),
      //js(js_file("js/jquery/plug-in/DataTables-1.10.7/extensions/Scroller/js/dataTables.scroller.js")),
      
//      css(css_file("jquery/plug-in/DataTables-1.10.7/extensions/Responsive/css/dataTables.responsive.css")),
//      js(js_file("jquery/plug-in/DataTables-1.10.7/extensions/responsive/js/dataTables.responsive.js")),
    ]
  .
public define HTML
  jquery_datatable
  (
    String table_id,
    HTML table
  )
  =
    partial_content(jquery_datatables_1_10_init +
      [ js_inline(jquery_ready("$('#"+table_id+"').DataTable();")) ],
      table
    )
  .
  
public define HTML
  jquery_datatable
  (
    String        table_id,
    HTML table,
    Bool          enable_jqueryui,
  )
  =
    if enable_jqueryui then
      partial_content( jquery_datatables_1_10_init +
        [ js_inline(jquery_ready("$('#"+table_id+"').DataTable({\"jQueryUI\":true});")) ],
        table
      )
    else
      jquery_datatable(table_id, table)
  .

  
public define HTML
  jquery_datatable
  (
    String                            table_id,
    HTML              table,
    Bool                              enable_jqueryui,
    Bool                              enable_pagination,
    JQuery_datatable_pagination_type  pagination_type,
    Bool                              scrollX,
    JQuery_datatable_scrollY_type     scrollY,
    Bool                              enable_change_page_length,  // if true, "enable_pagination" must be true too.
    Bool                              enable_search_field,
    Bool                              enable_columns_sorting,
    String                            lang,
    JQuery_datatable_extra_type       extra,
    String                            web_dir
  )
  =
    partial_content( jquery_datatables_1_10_init +
                      [ 
                        js_inline(jquery_ready("
                        $.fn.dataTable.ext.legacy.ajax = true;
                                $('#"+table_id+"').DataTable(
                                {
                                  \"jQueryUI\":"+to_String(enable_jqueryui)+",
                                  \"pagingType\":'"+jquery_datatable_pagination_type_to_string(pagination_type)+"',
                                  \"searching\":"+to_String(enable_search_field)+",
                                  \"paging\":"+to_String(enable_pagination)+","+
              //                     responsive: true,"+
                                  "\"scrollX\": " + to_String(scrollX) + ","+
                                  if scrollY is
                                   {
                                    no_scroll     then "",
                                    scrollY(size) then "\"scrollY\": \""+size+"px\","
                                   }+
                                  "\"stateSave\": true,
                                  \"lengthChange\":"+to_String(enable_change_page_length)+",
                                  \"ordering\":"+to_String(enable_columns_sorting)+","+
                                  get_datatable_translation(lang, web_dir)+
                                  jquery_datatable_extra_to_string(extra)+
                                  "});
                            "
                          )
                        )
                      ],
        table
      )
  .

public define HTML
  jquery_datatable
  (
    String                            table_id,
    HTML                     table,
    Bool                              enable_jqueryui,
    Bool                              enable_pagination,
    JQuery_datatable_pagination_type  pagination_type,
    JQuery_datatable_scrollY_type     scrollY,
    Bool                              enable_change_page_length,  // if true, "enable_pagination" must be true too.
    Bool                              enable_search_field,
    Bool                              enable_columns_sorting,
    String                            web_dir
  ) = 
  jquery_datatable(table_id, table, enable_jqueryui, enable_pagination, pagination_type, false, scrollY, enable_change_page_length, enable_search_field, enable_columns_sorting, "en", no_extra, web_dir).