diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 3af977ad0c3..e49beebec47 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -250,6 +250,8 @@ Optimizations * SOLR-3982: Admin UI: Various Dataimport Improvements (steffkes) +* SOLR-4296: Admin UI: Improve Dataimport Auto-Refresh (steffkes) + Bug Fixes ---------------------- diff --git a/solr/webapp/web/css/styles/dataimport.css b/solr/webapp/web/css/styles/dataimport.css index 712d137226f..21732b61809 100644 --- a/solr/webapp/web/css/styles/dataimport.css +++ b/solr/webapp/web/css/styles/dataimport.css @@ -139,14 +139,14 @@ display: none !important; } -#content #dataimport #current_state .time, +#content #dataimport #current_state .last_update, #content #dataimport #current_state .info { display: block; padding-left: 21px; } -#content #dataimport #current_state .time +#content #dataimport #current_state .last_update { color: #c0c0c0; font-size: 11px; diff --git a/solr/webapp/web/js/scripts/dataimport.js b/solr/webapp/web/js/scripts/dataimport.js index 15a65dd8fdf..e70780a2ed0 100644 --- a/solr/webapp/web/js/scripts/dataimport.js +++ b/solr/webapp/web/js/scripts/dataimport.js @@ -431,7 +431,6 @@ sammy.get success : function( response, text_status, xhr ) { var state_element = $( '#current_state', content_element ); - var time_element = $( '.time', state_element ); var status = response.status; var rollback_time = response.statusMessages.Rolledback || null; @@ -448,30 +447,64 @@ sammy.get function dataimport_compute_details( response, details_element, elapsed_seconds ) { - var config = { + details_element + .show(); + + // -- + + var document_config = { 'Requests' : 'Total Requests made to DataSource', 'Fetched' : 'Total Rows Fetched', 'Skipped' : 'Total Documents Skipped', 'Processed' : 'Total Documents Processed' }; - var details = []; - for( var key in config ) + var document_details = []; + for( var key in document_config ) { - var value = parseInt( response.statusMessages[config[key]], 10 ); + var value = parseInt( response.statusMessages[document_config[key]], 10 ); - var detail = '' + key.esc() + ': ' + format_number( value ).esc(); + var detail = '' + key.esc() + ': ' + format_number( value ).esc(); if( elapsed_seconds && 'skipped' !== key.toLowerCase() ) { detail += ' (' + format_number( Math.round( value / elapsed_seconds ) ).esc() + '/s)' } - details.push( detail ); + document_details.push( detail ); }; - details_element - .html( details.join( ', ' ) ) - .show(); + $( '.docs', details_element ) + .html( document_details.join( ', ' ) ); + + // -- + + var dates_config = { + 'Started' : 'Full Dump Started', + 'Aborted' : 'Aborted', + 'Rolledback' : 'Rolledback' + }; + + var dates_details = []; + for( var key in dates_config ) + { + var value = response.statusMessages[dates_config[key]]; + + if( value ) + { + var detail = '' + key.esc() + ': ' + + '' + value.esc() + ''; + dates_details.push( detail ); + } + }; + + var dates_element = $( '.dates', details_element ); + + dates_element + .html( dates_details.join( ', ' ) ); + + $( '.time', dates_element ) + .removeData( 'timeago' ) + .timeago(); }; var get_time_taken = function get_default_time_taken() @@ -524,22 +557,14 @@ sammy.get ); }; - var set_time = function set_time( time_text ) - { - time_element - .text( time_text ) - .removeData( 'timeago' ) - .timeago() - .show(); - } - state_element .removeAttr( 'class' ); - time_element - .empty() - .hide(); - + var current_time = new Date(); + $( '.last_update abbr', state_element ) + .text( current_time.toTimeString().split( ' ' ).shift() ) + .attr( 'title', current_time.toUTCString() ); + $( '.info', state_element ) .removeClass( 'loader' ); @@ -563,26 +588,12 @@ sammy.get : 'Indexing ...'; show_full_info( info_text, elapsed_seconds ); - - if( !app.timeout && autorefresh_status ) - { - app.timeout = window.setTimeout - ( - function() - { - dataimport_fetch_status( true ) - }, - dataimport_timeout - ); - } } else if( rollback_time ) { state_element .addClass( 'failure' ); - set_time( rollback_time ); - show_full_info(); } else if( abort_time ) @@ -590,8 +601,6 @@ sammy.get state_element .addClass( 'aborted' ); - set_time( abort_time ); - show_full_info( 'Aborting current Import ...' ); } else if( 'idle' === status && 0 !== messages_count ) @@ -599,12 +608,6 @@ sammy.get state_element .addClass( 'success' ); - var started_at = response.statusMessages['Full Dump Started']; - if( started_at ) - { - set_time( started_at ); - } - show_full_info(); } else @@ -625,6 +628,18 @@ sammy.get $( '#raw_output_container', content_element ).html( code ); hljs.highlightBlock( code.get(0) ); + + if( !app.timeout && autorefresh_status ) + { + app.timeout = window.setTimeout + ( + function() + { + dataimport_fetch_status( true ) + }, + dataimport_timeout + ); + } }, error : function( xhr, text_status, error_thrown ) { diff --git a/solr/webapp/web/tpl/dataimport.html b/solr/webapp/web/tpl/dataimport.html index 6fd9af12547..17f3e1da0ee 100644 --- a/solr/webapp/web/tpl/dataimport.html +++ b/solr/webapp/web/tpl/dataimport.html @@ -22,11 +22,14 @@ limitations under the License.
- +

Last Update: Unknown

-
+
+
+
+