X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fhazelnut%2Fstatic%2Fjs%2Fhazelnut.js;h=ab22c1e443bdffaa05c48ace37ab58b1c3131031;hb=c33f536cc523e21c29cf06d0c906009b01b6f576;hp=89275eee06d6775ddfc638141a7a5d4ea7da4835;hpb=4ff1372de7efe594e67562ab6c28df4b9f1a3b39;p=myslice.git diff --git a/plugins/hazelnut/static/js/hazelnut.js b/plugins/hazelnut/static/js/hazelnut.js index 89275eee..ab22c1e4 100644 --- a/plugins/hazelnut/static/js/hazelnut.js +++ b/plugins/hazelnut/static/js/hazelnut.js @@ -6,9 +6,8 @@ (function($){ - // TEMP var debug=false; - debug=true +// debug=true var Hazelnut = Plugin.extend({ @@ -17,10 +16,17 @@ this._super(options, element); /* Member variables */ - // query status - this.received_all = false; - this.received_set = false; - this.in_set_buffer = Array(); + // in general we expect 2 queries here + // query_uuid refers to a single object (typically a slice) + // query_all_uuid refers to a list (typically resources or users) + // these can return in any order so we keep track of which has been received yet + this.received_all_query = false; + this.received_query = false; + + // an internal buffer for records that are 'in' and thus need to be checked + this.buffered_records_to_check = []; + // an internal buffer for keeping lines and display them in one call to fnAddData + this.buffered_lines = []; /* XXX Events XXX */ // this.$element.on('show.Datatables', this.on_show); @@ -39,17 +45,10 @@ this.listen_query(options.query_uuid); this.listen_query(options.query_all_uuid, 'all'); - /* an internal buffer for keeping lines and display them in one call to fnAddData */ - this.buffered_lines = []; - /* GUI setup and event binding */ this.initialize_table(); }, - default_options: { - 'checkboxes': false - }, - /* PLUGIN EVENTS */ on_show: function(e) @@ -80,10 +79,10 @@ { /* Transforms the table into DataTable, and keep a pointer to it */ var self = this; - actual_options = { + var actual_options = { // Customize the position of Datatables elements (length,filter,button,...) // we use a fluid row on top and another on the bottom, making sure we take 12 grid elt's each time - sDom: "<'row'<'col-md-5'l><'col-md-1'r><'col-md-6'f>>t<'row'<'col-md-5'i><'col-md-7'p>>", + sDom: "<'row'<'col-xs-5'l><'col-xs-1'r><'col-xs-6'f>>t<'row'<'col-xs-5'i><'col-xs-7'p>>", // XXX as of sept. 2013, I cannot locate a bootstrap3-friendly mode for now // hopefully this would come with dataTables v1.10 ? // in any case, search for 'sPaginationType' all over the code for more comments @@ -101,6 +100,12 @@ // xxx DISABLED by jordan: was causing errors in datatables.js // xxx turned back on by Thierry - this is the code that takes python-provided options into account // check your datatables_options tag instead + // however, we have to accumulate in aoColumnDefs from here (above) + // and from the python wrapper (checkboxes management, plus any user-provided aoColumnDefs) + if ( 'aoColumnDefs' in this.options.datatables_options) { + actual_options['aoColumnDefs']=this.options.datatables_options['aoColumnDefs'].concat(actual_options['aoColumnDefs']); + delete this.options.datatables_options['aoColumnDefs']; + } $.extend(actual_options, this.options.datatables_options ); this.table = this.elmt('table').dataTable(actual_options); @@ -142,13 +147,13 @@ return (tabIndex.length > 0) ? tabIndex[0] : -1; }, // getColIndex - checkbox: function (key, value) + checkbox_html : function (key, value) { var result=""; // Prefix id with plugin_uuid result += "