diff --git a/ajax_list.js b/ajax_list.js index 3217d92..9632527 100644 --- a/ajax_list.js +++ b/ajax_list.js @@ -8,6 +8,12 @@ $=jQuery; $.fn.ajaxList = function (name_list, options) { + if(!options.hasOwnProperty(loading)) { + + $(loading).show(); + + } + table_base=' \
'; @@ -28,11 +34,8 @@ $=jQuery; $(this).children('#'+name_list).append(list_tr); - //alert(new_title_list.attr('id')); -/* - $(new_title_list).html('');*/ + $(loading).hide(); - //new_title_list.show(); return false; } @@ -211,7 +214,206 @@ $=jQuery; this.updateAjax(name_list, options, 0, ''); + $(loading).hide(); + return this; } })( jQuery ); + +(function( $ ){ + + /* Add csrf token */ + + /* options: url: url to get urls, loading: dom id, success: func, pre_callback, separated_data:boolean */ + + $.fn.ajaxListSimple = function (fields, options) { + + if(!options.hasOwnProperty("url")) { + + + list_tr=' \ + No ajax url defined \ + '; + + $(this).append(list_tr); + + return false; + + } + + this.fields=fields; + + this.options=options; + + this.updateAjaxList=function () { + + options=this.options; + + if(options.hasOwnProperty("loading")) { + + $(options.loading).show(); + + } + + if(options.hasOwnProperty("pre_callback")) { + + pre_callback(this); + + } + + //In url you can send, begin_page, num_elements for pagination. + + $.ajax({ + url: options.url, + type: 'GET', + data: {}, + table: this, + success: function (data) { + + $(options.loading).hide(); + + //console.log(table.options); + + if(!data.error) { + + var z=0; + + for (const row of data.items) { + //console.log(element); + + tr=this.table.append(''); + + //for (const property in row) { + for (const field of this.table.fields) { + + //console.log(`${property}: ${row[property]}`); + + $('#row_ajaxlist_'+z).append(''+row[field]+''); + + + } + + z++; + + } + + if(data.hasOwnProperty('total_num_items')) { + + + + } + + if(options.hasOwnProperty("success")) { + + options.success(data); + + } + + } + else { + + if(options.hasOwnProperty("error_data")) { + + options.error_data(data); + + } + + } + + }, + error: function (data) { + + $(options.loading).hide(); + + alert('Error: '+data.status+' '+data.statusText); + + }, + dataType: 'json' + }); + + + }; + + this.updateAjaxList(); + + return this; + + } + + + +})( jQuery ); +/* +function pagination( begin_page, total_elements, num_elements, link ,initial_num_pages=20, variable='begin_page', label='', func_jscript='') { + + css_class='link_pages'; + + pages=''; + + if(begin_page>total_elements) { + + begin_page=0; + } + + // Calculamos el total de todas las páginas + + total_page=Math.ceil(total_elements/num_elements); + + // Calculamos en que página nos encontramos + + actual_page=Math.ceil(begin_page/num_elements); + + // Calculamos el total de intervalos + + total_interval=Math.ceil(total_page/initial_num_pages); + + // Calculamos el intervalo en el que estamos + + actual_interval=Math.floor(actual_page/initial_num_pages); + + //Calculamos el elemento de inicio del intervalo + + initial_page=Math.ceil(actual_interval*initial_num_pages*num_elements); + + last_page=Math.ceil(actual_interval*initial_num_pages*num_elements)+Math.ceil(initial_num_pages*num_elements); + + if (last_page>total_elements) { + + last_page=total_elements; + + } + + if(initial_page>0) { + + initial_link=add_get_parameters(link, **{variable: '0'}); + middle_link=add_get_parameters(link, **{variable: str((initial_page-num_elements)) } ); + pages += "1 << " + + } + + arr_pages={} + + #for(x=initial_page;x"+str(num_page)+" " + arr_pages[begin_page]=''+str(num_page)+' '; + pages += arr_pages[x] + + + if last_page>> "+I18n.lang('common', 'last', 'Last')+"" + + + return pages + +} +*/