You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ja...@apache.org on 2017/05/18 12:13:59 UTC
[03/17] lucene-solr:master: SOLR-10042: Delete old deprecated Admin UI
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/21384b5b/solr/webapp/web/js/scripts/schema-browser.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/scripts/schema-browser.js b/solr/webapp/web/js/scripts/schema-browser.js
deleted file mode 100644
index c25bafe..0000000
--- a/solr/webapp/web/js/scripts/schema-browser.js
+++ /dev/null
@@ -1,1229 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-var current_core = null;
-var cookie_schema_browser_autoload = 'schema-browser_autoload';
-
-var luke_array_to_struct = function( array )
-{
- var struct = {
- keys : [],
- values : []
- };
- for( var i = 0; i < array.length; i += 2 )
- {
- struct.keys.push( array[i] );
- struct.values.push( array[i+1] );
- }
- return struct;
-}
-
-var luke_array_to_hash = function( array )
-{
- var hash = {};
- for( var i = 0; i < array.length; i += 2 )
- {
- hash[ array[i] ] = array[i+1];
- }
- return hash;
-}
-
-var load_terminfo = function( trigger_element, core_basepath, field, data_element, terminfo_element )
-{
- var luke_url = core_basepath + '/admin/luke?wt=json&fl=' + field;
- var topterms_count_element = $( '.topterms-holder .head input', terminfo_element );
-
- var term_load_count = parseInt( topterms_count_element.val(), 10 );
- if( term_load_count )
- {
- luke_url += '&numTerms=' + term_load_count;
- }
-
- $.ajax
- (
- {
- url : luke_url,
- dataType : 'json',
- context : terminfo_element,
- beforeSend : function( xhr, settings )
- {
- $( 'span', trigger_element )
- .addClass( 'loader' );
- },
- success : function( response, text_status, xhr )
- {
- var additional_styles = [];
- var field_data = response.fields[field];
-
- if( !field_data || !( field_data.topTerms && field_data.histogram ) )
- {
- terminfo_element
- .addClass( 'disabled' );
-
- return false;
- }
-
- var get_width = function get_width()
- {
- return $( this ).width();
- }
-
- var topterms_holder_element = $( '.topterms-holder', data_element );
- var histogram_holder_element = $( '.histogram-holder', data_element );
-
- if( !field_data.topTerms )
- {
- topterms_holder_element
- .hide();
- }
- else
- {
- topterms_holder_element
- .show();
-
- var topterms_table_element = $( 'ul', topterms_holder_element );
-
- var topterms = field_data.topTerms;
- var topterms_count = topterms.length;
-
- var topterms_content = '';
- var topterms_frq_last = null;
-
- for( var i = 0; i < topterms_count; i += 2 )
- {
- if( topterms_frq_last !== topterms[i+1] )
- {
- if( topterms_frq_last )
- {
- topterms_content += '</ul></li>' + "\n";
- }
-
- topterms_frq_last = topterms[i+1];
- topterms_content += '<li class="clearfix">'
- + '<p><span>' + app.format_number( topterms_frq_last ) + '</span></p>' + "\n"
- + '<ul>' + "\n";
- }
-
- var target = '#/' + current_core + '/query?q=' + field.esc() + ':' + encodeURIComponent( '"' + topterms[i] + '"' );
- topterms_content += '<li><a href="' + target + '">' + topterms[i].esc() + '</a></li>' + "\n";
- }
-
- topterms_content += '</li>';
-
- topterms_count = topterms_count / 2;
-
- $( 'input', trigger_element )
- .val( topterms_count );
-
- topterms_table_element
- .html( topterms_content );
-
- var max_width = 10 + Math.max.apply( Math, $( 'p', topterms_table_element ).map( get_width ).get() );
- additional_styles.push
- (
- topterms_table_element.selector + ' p { width: ' + max_width + 'px !important; }' + "\n" +
- topterms_table_element.selector + ' ul { margin-left: ' + ( max_width + 5 ) + 'px !important; }'
- );
-
- topterms_count_element
- .val( topterms_count );
-
- $( 'p.head .max', topterms_holder_element )
- .html( field_data.distinct );
-
- $( 'p.head #query_link', topterms_holder_element )
- .attr( 'href', '#/' + current_core + '/query?q=' + field.esc() + ':[* TO *]' );
-
- $( 'ul li:even', topterms_table_element )
- .addClass( 'odd' );
- }
-
- if( !field_data.histogram )
- {
- histogram_holder_element
- .hide();
- }
- else
- {
- histogram_holder_element
- .show();
-
- var histogram_values = luke_array_to_hash( field_data.histogram );
- var histogram_entries = [];
-
- var histogram_max = null;
- for( var key in histogram_values )
- {
- histogram_max = Math.max( histogram_max, histogram_values[key] );
- }
-
- for( var key in histogram_values )
- {
- histogram_entries.push
- (
- '<li>' + "\n" +
- ' <dl class="clearfix" style="width: ' + ( ( histogram_values[key] / histogram_max ) * 100 ) + '%;">' + "\n" +
- ' <dt><span>' + app.format_number( key ) + '</span></dt>' + "\n" +
- ' <dd><span>' + app.format_number( histogram_values[key] ) + '</span></dd>' + "\n" +
- ' </dl>' + "\n" +
- '</li>'
- );
- }
-
- $( 'ul', histogram_holder_element )
- .html( histogram_entries.join( "\n" ) );
-
- $( 'ul li:even', histogram_holder_element )
- .addClass( 'odd' );
-
- var max_width = 10 + Math.max.apply( Math, $( 'dt', histogram_holder_element ).map( get_width ).get() );
- additional_styles.push
- (
- histogram_holder_element.selector + ' ul { margin-left: ' + max_width + 'px !important; }' + "\n" +
- histogram_holder_element.selector + ' li dt { left: ' + ( max_width * -1 ) + 'px !important; width: ' + max_width + 'px !important; }'
- );
- }
-
- if( additional_styles )
- {
- terminfo_element
- .prepend( '<style type="text/css">' + additional_styles.join( "\n" ) + '</style>' );
- }
- },
- error : function( xhr, text_status, error_thrown)
- {
- terminfo_element
- .addClass( 'disabled' );
- },
- complete : function( xhr, text_status )
- {
- $( 'span', trigger_element )
- .removeClass( 'loader' );
- }
- }
- );
-}
-
-sammy.bind
-(
- 'schema_browser_navi',
- function( event, params )
- {
- var related_navigation_element = $( '#related dl#f-df-t', params.schema_browser_element );
- var related_navigation_meta = $( '#related dl.ukf-dsf', params.schema_browser_element );
- var related_select_element = $( '#related select', params.schema_browser_element )
- var type = 'index';
-
- var sammy_basepath = app.core_menu.find( '.active a' ).attr( 'href' );
-
- if( !related_navigation_meta.hasClass( 'done' ) )
- {
- if( app.schema_browser_data.unique_key_field )
- {
- $( '.unique-key-field', related_navigation_meta )
- .show()
- .after
- (
- '<dd class="unique-key-field"><a href="' + sammy_basepath + '?field=' +
- app.schema_browser_data.unique_key_field + '">' +
- app.schema_browser_data.unique_key_field + '</a></dd>'
- );
- }
-
- if( app.schema_browser_data.default_search_field )
- {
- $( '.default-search-field', related_navigation_meta )
- .show()
- .after
- (
- '<dd class="default-search-field"><a href="' + sammy_basepath + '?field=' +
- app.schema_browser_data.default_search_field + '">' +
- app.schema_browser_data.default_search_field + '</a></dd>'
- );
- }
-
- related_navigation_meta
- .addClass( 'done' );
- }
-
- if( params.route_params )
- {
- var type = params.route_params.type;
- var value = params.route_params.value;
-
- var navigation_data = {
- 'fields' : [],
- 'copyfield_source' : [],
- 'copyfield_dest' : [],
- 'dynamic_fields' : [],
- 'types' : []
- }
-
- $( 'option[value="' + params.route_params.path.esc() + '"]', related_select_element )
- .attr( 'selected', 'selected' );
-
- related_select_element
- .trigger( 'liszt:updated' );
-
- if( 'field' === type )
- {
- navigation_data.fields.push( value );
-
- if( app.schema_browser_data.relations.f_t[value] )
- {
- navigation_data.types.push( app.schema_browser_data.relations.f_t[value] );
- }
-
- if( app.schema_browser_data.relations.f_df[value] )
- {
- navigation_data.dynamic_fields.push( app.schema_browser_data.relations.f_df[value] );
- }
-
- if( app.schema_browser_data.fields[value].copySources && 0 !== app.schema_browser_data.fields[value].copySources.length )
- {
- navigation_data.copyfield_source = app.schema_browser_data.fields[value].copySources;
- }
-
- if( app.schema_browser_data.fields[value].copyDests && 0 !== app.schema_browser_data.fields[value].copyDests.length )
- {
- navigation_data.copyfield_dest = app.schema_browser_data.fields[value].copyDests;
- }
- }
- else if( 'dynamic-field' === type )
- {
- navigation_data.dynamic_fields.push( value );
- navigation_data.types.push( app.schema_browser_data.relations.df_t[value] );
-
- if( app.schema_browser_data.relations.df_f[value] )
- {
- navigation_data.fields = app.schema_browser_data.relations.df_f[value];
- }
- }
- else if( 'type' === type )
- {
- navigation_data.types.push( value );
-
- if( app.schema_browser_data.relations.t_f[value] )
- {
- navigation_data.fields = app.schema_browser_data.relations.t_f[value];
- }
-
- if( app.schema_browser_data.relations.t_df[value] )
- {
- navigation_data.dynamic_fields = app.schema_browser_data.relations.t_df[value];
- }
- }
-
- var navigation_content = '';
-
- if( 0 !== navigation_data.fields.length )
- {
- navigation_data.fields.sort();
- navigation_content += '<dt class="field">Field</dt>' + "\n";
- for( var i in navigation_data.fields )
- {
- var href = sammy_basepath + '?field=' + navigation_data.fields[i];
- navigation_content += '<dd class="field"><a href="' + href + '">' + navigation_data.fields[i] + '</a></dd>' + "\n";
- }
- }
-
- if( 0 !== navigation_data.copyfield_source.length )
- {
- navigation_data.copyfield_source.sort();
- navigation_content += '<dt class="copyfield">Copied from</dt>' + "\n";
- for( var i in navigation_data.copyfield_source )
- {
- var href = sammy_basepath + '?field=' + navigation_data.copyfield_source[i];
- navigation_content += '<dd class="copyfield"><a href="' + href + '">' + navigation_data.copyfield_source[i] + '</a></dd>' + "\n";
- }
- }
-
- if( 0 !== navigation_data.copyfield_dest.length )
- {
- navigation_data.copyfield_dest.sort();
- navigation_content += '<dt class="copyfield">Copied to</dt>' + "\n";
- for( var i in navigation_data.copyfield_dest )
- {
- var href = sammy_basepath + '?field=' + navigation_data.copyfield_dest[i];
- navigation_content += '<dd class="copyfield"><a href="' + href + '">' + navigation_data.copyfield_dest[i] + '</a></dd>' + "\n";
- }
- }
-
- if( 0 !== navigation_data.dynamic_fields.length )
- {
- navigation_data.dynamic_fields.sort();
- navigation_content += '<dt class="dynamic-field">Dynamic Field</dt>' + "\n";
- for( var i in navigation_data.dynamic_fields )
- {
- var href = sammy_basepath + '?dynamic-field=' + navigation_data.dynamic_fields[i];
- navigation_content += '<dd class="dynamic-field"><a href="' + href + '">' + navigation_data.dynamic_fields[i] + '</a></dd>' + "\n";
- }
- }
-
- if( 0 !== navigation_data.types.length )
- {
- navigation_data.types.sort();
- navigation_content += '<dt class="type">Type</dt>' + "\n";
- for( var i in navigation_data.types )
- {
- var href = sammy_basepath + '?type=' + navigation_data.types[i];
- navigation_content += '<dd class="type"><a href="' + href + '">' + navigation_data.types[i] + '</a></dd>' + "\n";
- }
- }
-
- related_navigation_element
- .show()
- .attr( 'class', type )
- .html( navigation_content );
- }
- else
- {
- related_navigation_element
- .hide();
-
- $( 'option:selected', related_select_element )
- .removeAttr( 'selected' );
- }
-
- if( 'field' === type && value === app.schema_browser_data.unique_key_field )
- {
- $( '.unique-key-field', related_navigation_meta )
- .addClass( 'active' );
- }
- else
- {
- $( '.unique-key-field', related_navigation_meta )
- .removeClass( 'active' );
- }
-
- if( 'field' === type && value === app.schema_browser_data.default_search_field )
- {
- $( '.default-search-field', related_navigation_meta )
- .addClass( 'active' );
- }
- else
- {
- $( '.default-search-field', related_navigation_meta )
- .removeClass( 'active' );
- }
-
- if( params.callback )
- {
- params.callback( app.schema_browser_data, $( '#data', params.schema_browser_element ) );
- }
- }
-);
-
-sammy.bind
-(
- 'schema_browser_load',
- function( event, params )
- {
- var core_basepath = params.active_core.attr( 'data-basepath' );
- var content_element = $( '#content' );
-
- if( app.schema_browser_data )
- {
- params.schema_browser_element = $( '#schema-browser', content_element );
-
- sammy.trigger
- (
- 'schema_browser_navi',
- params
- );
- }
- else
- {
- content_element
- .html( '<div id="schema-browser"><div class="loader">Loading ...</div></div>' );
-
- $.ajax
- (
- {
- url : core_basepath + '/admin/luke?numTerms=0&wt=json',
- dataType : 'json',
- beforeSend : function( xhr, settings )
- {
- },
- success : function( response, text_status, xhr )
- {
- app.schema_browser_data = {
- default_search_field : null,
- unique_key_field : null,
- key : {},
- fields : {},
- dynamic_fields : {},
- types : {},
- relations : {
- f_df : {},
- f_t : {},
- df_f : {},
- df_t : {},
- t_f : {},
- t_df : {}
- }
- };
-
- app.schema_browser_data.fields = response.fields;
- app.schema_browser_data.key = response.info.key;
-
- $.ajax
- (
- {
- url : core_basepath + '/admin/luke?show=schema&wt=json',
- dataType : 'json',
- beforeSend : function( xhr, settings )
- {
- },
- success : function( response, text_status, xhr )
- {
- app.schema_browser_data.default_search_field = response.schema.defaultSearchField;
- app.schema_browser_data.unique_key_field = response.schema.uniqueKeyField;
-
- app.schema_browser_data.dynamic_fields = response.schema.dynamicFields;
- app.schema_browser_data.types = response.schema.types;
-
- for( var field in response.schema.fields )
- {
- app.schema_browser_data.fields[field] = $.extend
- (
- {},
- app.schema_browser_data.fields[field],
- response.schema.fields[field]
- );
- }
-
- for( var field in app.schema_browser_data.fields )
- {
- var copy_dests = app.schema_browser_data.fields[field].copyDests;
- for( var i in copy_dests )
- {
- var copy_dest = copy_dests[i];
- if( !app.schema_browser_data.fields[copy_dest] )
- {
- app.schema_browser_data.fields[copy_dest] = {
- partial : true,
- copySources : []
- };
- }
-
- if( app.schema_browser_data.fields[copy_dest].partial )
- {
- app.schema_browser_data.fields[copy_dest].copySources.push( field );
- }
- }
-
- var copy_sources = app.schema_browser_data.fields[field].copySources;
- for( var i in copy_sources )
- {
- var copy_source = copy_sources[i];
- if( !app.schema_browser_data.fields[copy_source] )
- {
- app.schema_browser_data.fields[copy_source] = {
- partial : true,
- copyDests : []
- };
- }
-
- if( app.schema_browser_data.fields[copy_source].partial )
- {
- app.schema_browser_data.fields[copy_source].copyDests.push( field );
- }
- }
-
- app.schema_browser_data.relations.f_t[field] = app.schema_browser_data.fields[field].type;
-
- if( !app.schema_browser_data.relations.t_f[app.schema_browser_data.fields[field].type] )
- {
- app.schema_browser_data.relations.t_f[app.schema_browser_data.fields[field].type] = [];
- }
- app.schema_browser_data.relations.t_f[app.schema_browser_data.fields[field].type].push( field );
-
- if( app.schema_browser_data.fields[field].dynamicBase )
- {
- app.schema_browser_data.relations.f_df[field] = app.schema_browser_data.fields[field].dynamicBase;
-
- if( !app.schema_browser_data.relations.df_f[app.schema_browser_data.fields[field].dynamicBase] )
- {
- app.schema_browser_data.relations.df_f[app.schema_browser_data.fields[field].dynamicBase] = [];
- }
- app.schema_browser_data.relations.df_f[app.schema_browser_data.fields[field].dynamicBase].push( field );
- }
- }
-
- for( var dynamic_field in app.schema_browser_data.dynamic_fields )
- {
- app.schema_browser_data.relations.df_t[dynamic_field] = app.schema_browser_data.dynamic_fields[dynamic_field].type;
-
- if( !app.schema_browser_data.relations.t_df[app.schema_browser_data.dynamic_fields[dynamic_field].type] )
- {
- app.schema_browser_data.relations.t_df[app.schema_browser_data.dynamic_fields[dynamic_field].type] = [];
- }
- app.schema_browser_data.relations.t_df[app.schema_browser_data.dynamic_fields[dynamic_field].type].push( dynamic_field );
- }
-
- $.get
- (
- 'tpl/schema-browser.html',
- function( template )
- {
- content_element
- .html( template );
-
- var schema_browser_element = $( '#schema-browser', content_element );
- var related_element = $( '#related', schema_browser_element );
- var related_select_element = $( 'select', related_element );
- var data_element = $( '#data', schema_browser_element );
-
- var related_options = '';
-
- var fields = [];
- for( var field_name in app.schema_browser_data.fields )
- {
- fields.push
- (
- '<option value="?field=' + field_name.esc() + '">' + field_name.esc() + '</option>'
- );
- }
- if( 0 !== fields.length )
- {
- fields.sort();
- related_options += '<optgroup label="Fields">' + "\n";
- related_options += fields.sort().join( "\n" ) + "\n";
- related_options += '</optgroup>' + "\n";
- }
-
- var dynamic_fields = [];
- for( var type_name in app.schema_browser_data.dynamic_fields )
- {
- dynamic_fields.push
- (
- '<option value="?dynamic-field=' + type_name.esc() + '">' + type_name.esc() + '</option>'
- );
- }
- if( 0 !== dynamic_fields.length )
- {
- dynamic_fields.sort();
- related_options += '<optgroup label="DynamicFields">' + "\n";
- related_options += dynamic_fields.sort().join( "\n" ) + "\n";
- related_options += '</optgroup>' + "\n";
- }
-
- var types = [];
- for( var type_name in app.schema_browser_data.types )
- {
- types.push
- (
- '<option value="?type=' + type_name.esc() + '">' + type_name.esc() + '</option>'
- );
- }
- if( 0 !== types.length )
- {
- types.sort();
- related_options += '<optgroup label="Types">' + "\n";
- related_options += types.sort().join( "\n" ) + "\n";
- related_options += '</optgroup>' + "\n";
- }
-
- related_select_element
- .attr( 'rel', app.core_menu.find( '.active a' ).attr( 'href' ) )
- .append( related_options )
- .chosen();
-
- related_select_element
- .die( 'change' )
- .live
- (
- 'change',
- function( event )
- {
- var select_element = $( this );
- var option_element = $( 'option:selected', select_element );
-
- location.href = select_element.attr( 'rel' ) + option_element.val();
- return false;
- }
- );
-
- params.schema_browser_element = schema_browser_element;
- sammy.trigger
- (
- 'schema_browser_navi',
- params
- );
- }
- );
- },
- error : function( xhr, text_status, error_thrown)
- {
- },
- complete : function( xhr, text_status )
- {
- }
- }
- );
-
- },
- error : function( xhr, text_status, error_thrown)
- {
- },
- complete : function( xhr, text_status )
- {
- }
- }
- );
- }
- }
-);
-
-// #/:core/schema-browser
-sammy.get
-(
- new RegExp( app.core_regex_base + '\\/(schema-browser)$' ),
- function( context )
- {
- var core_basepath = this.active_core.attr( 'data-basepath' );
- current_core = context.params.splat[0];
-
- var trigger_params = {
- active_core : this.active_core
- };
-
- var path = context.path.split( '?' );
- if( path && path[1] )
- {
- var param = path[1].split( '=' );
- trigger_params.route_params = {
- path : '?' + path[1],
- type : param[0],
- value : param[1]
- }
-
- trigger_params.callback = function( schema_browser_data, data_element )
- {
- var field = trigger_params.route_params.value;
-
- var type = trigger_params.route_params.type;
- var is_f = 'field' === type;
- var is_df = 'dynamic-field' === type;
- var is_t = 'type' === type;
-
- var options_element = $( '.options', data_element );
- var sammy_basepath = context.path.indexOf( '/', context.path.indexOf( '/', 2 ) + 1 );
-
- data_element
- .show();
-
- // -- head
-
- var head_element = $( '.head', data_element );
- if( is_f )
- {
- $( '.type', head_element ).html( 'Field' );
- }
- else if( is_df )
- {
- $( '.type', head_element ).html( 'Dynamic Field' );
- }
- else if( is_t )
- {
- $( '.type', head_element ).html( 'Type' );
- }
- $( '.name', head_element ).html( field.esc() );
-
-
- var partial_state = false;
- if( is_f )
- {
- partial_state = !!schema_browser_data.fields[field].partial;
- }
-
- $( '.partial', data_element )
- .toggle( partial_state );
-
- // -- docs
- var docs_element = $( 'dt.docs', options_element );
- if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].docs )
- {
- $( 'dd.docs', options_element )
- .remove();
-
- var target = '#/' + current_core + '/query?q=' + field.esc() + ':[* TO *]';
- docs_element
- .show()
- .after(
- '<dd class="docs">'+
- '<a href="'+target+'">' + schema_browser_data.fields[field].docs + '</a>' +
- '</dd>' );
- }
- else
- {
- $( '.docs', options_element )
- .hide();
- }
-
- // -- distinct
- var distinct_element = $( 'dt.distinct', options_element );
- if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].distinct )
- {
- $( 'dd.distinct', options_element )
- .remove();
-
- distinct_element
- .show()
- .after( '<dd class="distinct">' + schema_browser_data.fields[field].distinct + '</dd>' );
- }
- else
- {
- $( '.distinct', options_element )
- .hide();
- }
-
- // -- position-increment-gap
- var pig_element = $( 'dt.position-increment-gap', options_element );
- if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].positionIncrementGap )
- {
- $( 'dd.position-increment-gap', options_element )
- .remove();
-
- pig_element
- .show()
- .after( '<dd class="position-increment-gap">' + schema_browser_data.fields[field].positionIncrementGap + '</dd>' );
- }
- else
- {
- $( '.position-increment-gap', options_element )
- .hide();
- }
-
- var similarity_element = $( 'dt.similarity', options_element );
- if ( is_t && schema_browser_data.types[field] && schema_browser_data.types[field].similarity ) {
- var similarity = schema_browser_data.types[field].similarity
- if (similarity.details && similarity.className) {
- $( 'dd.similarity', options_element ).remove();
- similarity_element
- .show()
- .after(['<dd class="similarity">', similarity.details.esc(), ' (', similarity.className.esc(), ') </dd>'].join(""));
- }
- } else {
- $( '.similarity', options_element ).hide();
- }
-
-
- // -- flags table
- var flags_table = $( 'table.flags', data_element );
-
- var flags_arr = [];
- for( var key in schema_browser_data.key )
- {
- flags_arr.push( '<th data-key="' + key + '">' + schema_browser_data.key[key] + '</th>' );
- }
-
- $( 'thead tr', flags_table )
- .append( flags_arr.join( "\n" ) );
-
-
- var flags_body = $( 'tbody', flags_table );
- flags_body.empty();
-
- var generate_flags_row = function generate_flags_row( flags_str, title )
- {
- var flags_arr = [ '<th>' + title.esc() + '</th>' ];
-
- if( 0 === flags_str.indexOf( '(' ) )
- {
- flags_arr.push( '<td colspan="2" class="text">' + flags_str + '</td>' );
- }
- else
- {
- var i = 0;
- for( var key in schema_browser_data.key )
- {
- var flag_match = key === flags_str[i];
-
- var flag_cell = '<td '
- + ' data-key="' + key + '"'
- + ' class="' + ( flag_match ? 'check' : '' ) + '"'
- + '>'
- + ( flag_match ? '<span>√</span>' : ' ' )
- + '</td>';
-
- flags_arr.push( flag_cell );
- i++;
- }
- }
-
- flags_body
- .append( '<tr>' + flags_arr.join( "\n" ) + '</tr>' );
- };
-
- var flags = null;
- if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].flags )
- {
- flags = schema_browser_data.fields[field].flags;
- }
- else if( is_df && schema_browser_data.dynamic_fields[field] && schema_browser_data.dynamic_fields[field].flags )
- {
- flags = schema_browser_data.dynamic_fields[field].flags;
- }
-
- if( flags )
- {
- generate_flags_row( flags, 'Properties' );
- }
-
- if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].schema )
- {
- generate_flags_row( schema_browser_data.fields[field].schema, 'Schema' );
- }
-
- if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].index )
- {
- generate_flags_row( schema_browser_data.fields[field].index, 'Index' );
- }
-
-
- if( 0 !== $( 'tr', flags_body ).size() )
- {
- var col_count = 0;
- for( var key in schema_browser_data.key )
- {
- var cols = $( '[data-key="' + key + '"]', flags_table );
-
- var col_used = 0 !== cols.filter( '.check' ).size();
- col_count += col_used;
-
- cols.toggle( col_used );
- }
-
- $( 'td[colspan]', flags_body )
- .attr( 'colspan', col_count );
-
- flags_table.show();
- }
- else
- {
- flags_table.hide();
- }
-
- var analyzer_element = $( '.analyzer', data_element );
- var analyzer_data = null;
-
- var analysis_link = false;
- var analysis_link_elements = $( 'p a', analyzer_element );
- var analysis_target = '#/' + current_core + '/analysis?';
-
- if( is_f )
- {
- analyzer_data = schema_browser_data.types[schema_browser_data.relations.f_t[field]];
-
- analysis_link = true;
- analysis_target += 'analysis.fieldname=' + field;
- }
- else if( is_df )
- {
- analyzer_data = schema_browser_data.types[schema_browser_data.relations.df_t[field]];
- }
- else if( is_t )
- {
- analyzer_data = schema_browser_data.types[field];
-
- analysis_link = true;
- analysis_target += 'analysis.fieldtype=' + field;
- }
-
- if( analysis_link )
- {
- analysis_link_elements
- .addClass( 'analysis' )
- .attr( 'href', analysis_target );
- }
- else
- {
- analysis_link_elements
- .removeClass( 'analysis' )
- .removeAttr( 'href' );
- }
-
-
- if( analyzer_data )
- {
- var transform_analyzer_data_into_list = function( analyzer_data )
- {
- var args = [];
- for( var key in analyzer_data.args )
- {
- var arg_class = '';
- var arg_content = '';
-
- if( 'true' === analyzer_data.args[key] || '1' === analyzer_data.args[key] )
- {
- arg_class = 'ico-1';
- arg_content = key;
- }
- else if( 'false' === analyzer_data.args[key] || '0' === analyzer_data.args[key] )
- {
- arg_class = 'ico-0';
- arg_content = key;
- }
- else
- {
- arg_content = key + ': ';
-
- if( 'synonyms' === key || 'words' === key )
- {
- // @TODO: set link target for file
- arg_content += '<a>' + analyzer_data.args[key] + '</a>';
- }
- else
- {
- arg_content += analyzer_data.args[key];
- }
- }
-
- args.push( '<dd class="' + arg_class + '">' + arg_content + '</dd>' );
- }
-
- var list_content = '<dt>' + analyzer_data.className + '</dt>';
- if( 0 !== args.length )
- {
- args.sort();
- list_content += args.join( "\n" );
- }
-
- return list_content;
- }
-
- // -- field-type
- var field_type_element = $( 'dt.field-type', options_element );
-
- $( 'dd.field-type', options_element )
- .remove();
-
- field_type_element
- .show()
- .after( '<dd class="field-type">' + analyzer_data.className + '</dd>' );
-
- $( '.toggle', analyzer_element )
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- $( this ).closest( 'li' )
- .toggleClass( 'open' );
-
- return false;
- }
- );
-
- for( var key in analyzer_data )
- {
- var key_match = key.match( /^(.+)Analyzer$/ );
- if( !key_match )
- {
- continue;
- }
-
- var analyzer_key_element = $( '.' + key_match[1], analyzer_element );
- var analyzer_key_data = analyzer_data[key];
-
- analyzer_element.show();
- analyzer_key_element.show();
-
- $( 'ul li', analyzer_key_element )
- .removeClass( 'data' )
- .hide();
-
- for( var type in analyzer_key_data )
- {
- if( 'object' !== typeof analyzer_key_data[type] )
- {
- continue;
- }
-
- var type_element = $( '.' + type, analyzer_key_element );
- var type_content = [];
-
- type_element
- .addClass( 'data' )
- .show();
-
- if( analyzer_key_data[type].className )
- {
- type_content.push( transform_analyzer_data_into_list( analyzer_key_data[type] ) );
- }
- else
- {
- for( var entry in analyzer_key_data[type] )
- {
- type_content.push( transform_analyzer_data_into_list( analyzer_key_data[type][entry] ) );
- }
- }
-
- $( 'dl', type_element )
- .empty()
- .append( type_content.join( "\n" ) );
- }
-
- var name_element = $( 'dl:first dt a', analyzer_key_element );
- if( analyzer_key_data.className )
- {
- name_element
- .html( analyzer_key_data.className );
- }
-
- 0 === $( 'ul li.data', analyzer_key_element ).size()
- ? name_element.removeClass( 'toggle' )
- : name_element.addClass( 'toggle' );
- }
- }
-
- var terminfo_element = $( '.terminfo-holder', data_element );
-
- terminfo_element
- .removeClass( 'disabled' )
- .removeClass( 'loaded' );
-
- var trigger_element = $( '.trigger button', terminfo_element );
- var form_element = $( 'form', terminfo_element );
-
- trigger_element
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- form_element
- .trigger( 'submit' );
-
- return false;
- }
- );
-
- form_element
- .clearForm()
- .die( 'submit' )
- .live
- (
- 'submit',
- function( event )
- {
- load_terminfo( trigger_element, core_basepath, field, data_element, terminfo_element );
-
- terminfo_element
- .addClass( 'loaded' );
-
- return false;
- }
- );
-
- $( '.max-holder', terminfo_element )
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- var element = $( this );
-
- $( 'input', element.closest( 'form' ) )
- .val( $( '.max', element ).text() );
-
- form_element
- .trigger( 'submit' );
-
- return false;
- }
- );
-
- $( '.trigger .autoload', terminfo_element )
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- $.cookie( cookie_schema_browser_autoload, $.cookie( cookie_schema_browser_autoload ) ? null : true );
- $( this ).trigger( 'state' );
-
- return false;
- }
- )
- .die( 'state' )
- .live
- (
- 'state',
- function( event )
- {
- $.cookie( cookie_schema_browser_autoload )
- ? $( this ).addClass( 'on' )
- : $( this ).removeClass( 'on' );
- }
- )
- .die( 'init' )
- .live
- (
- 'init',
- function( event )
- {
- if( !$.cookie( cookie_schema_browser_autoload ) )
- {
- return false;
- }
-
- $( this ).trigger( 'state' );
- trigger_element.trigger( 'click' );
- }
- )
- .trigger( 'init' );
-
- $( 'div[class$="-holder"]', terminfo_element )
- .hide();
-
- if( !is_f )
- {
- terminfo_element
- .hide();
- }
- else
- {
- terminfo_element
- .show();
- }
- }
- }
- else
- {
- trigger_params.callback = function( schema_browser_data, data_element )
- {
- data_element
- .hide();
- };
- }
-
- delete app.schema_browser_data;
-
- sammy.trigger
- (
- 'schema_browser_load',
- trigger_params
- );
- }
-);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/21384b5b/solr/webapp/web/js/scripts/segments.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/scripts/segments.js b/solr/webapp/web/js/scripts/segments.js
deleted file mode 100644
index eb5c169..0000000
--- a/solr/webapp/web/js/scripts/segments.js
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-
-var get_tooltip = function( segment_response ) {
- var tooltip =
- '<div>Segment <b>' + segment_response.name + '</b>:</div>' +
- '<div class="label">#docs:</div><div>' + number_format(segment_response.size) +'</div>' +
- '<div class="label">#dels:</div><div>' + number_format(segment_response.delCount) + '</div>' +
- '<div class="label">size:</div><div>' + number_format(segment_response.sizeInBytes) + ' bytes </div>' +
- '<div class="label">age:</div><div>' + segment_response.age + '</div>' +
- '<div class="label">source:</div><div>' + segment_response.source + '</div>';
- return tooltip;
-};
-
-var get_entry = function( segment_response, segment_bytes_max ) {
- //calcualte dimensions of graph
- var dims = calculate_dimensions(segment_response.sizeInBytes,
- segment_bytes_max, segment_response.size, segment_response.delCount)
- //create entry for segment with given dimensions
- var entry = get_entry_item(segment_response.name, dims,
- get_tooltip(segment_response), (segment_response.mergeCandidate)?true:false);
-
- return entry;
-};
-
-var get_entry_item = function(name, dims, tooltip, isMergeCandidate) {
- var entry = '<li>' + "\n" +
- ' <dl class="clearfix" style="width: ' + dims['size'] + '%;">' + "\n" +
- ' <dt><div>' + name + '</div></dt>' + "\n" +
- ' <dd>';
- entry += '<div class="live' + ((isMergeCandidate)?' merge-candidate':'') +
- '" style="width: ' + dims['alive_doc_size'] + '%;"> </div>';
- entry += '<div class="toolitp">' + tooltip +'</div>';
-
- if (dims['deleted_doc_size'] > 0.001) {
- entry += '<div class="deleted" style="width:' + dims['deleted_doc_size']
- + '%;margin-left:' + dims['alive_doc_size'] + '%;"> </div>';
- }
- entry += '</dd></dl></li>';
- return entry;
-};
-
-var get_footer = function(deletions_count, documents_count) {
- return '<li><dl><dt></dt><dd>Deletions: ' +
- (documents_count == 0 ? 0 : round_2(deletions_count/documents_count * 100)) +
- '% </dd></dl></li>';
-};
-
-var calculate_dimensions = function(segment_size_in_bytes, segment_size_in_bytes_max, doc_count, delete_doc_count) {
- var segment_size_in_bytes_log = Math.log(segment_size_in_bytes);
- var segment_size_in_bytes_max_log = Math.log(segment_size_in_bytes_max);
-
- var dims = {};
- //Normalize to 100% size of bar
- dims['size'] = Math.floor((segment_size_in_bytes_log / segment_size_in_bytes_max_log ) * 100);
- //Deleted doc part size
- dims['deleted_doc_size'] = Math.floor((delete_doc_count/(delete_doc_count + doc_count)) * dims['size']);
- //Alive doc part size
- dims['alive_doc_size'] = dims['size'] - dims['deleted_doc_size'];
-
- return dims;
-};
-
-var calculate_max_size_on_disk = function(segment_entries) {
- var max = 0;
- $.each(segment_entries, function(idx, obj) {
- if (obj.sizeInBytes > max) {
- max = obj.sizeInBytes;
- }
- });
- return max;
-};
-
-var round_2 = function(num) {
- return Math.round(num*100)/100;
-};
-
-var number_format = function(x) {
- return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
-};
-
-var prepare_x_axis = function(segment_bytes_max) {
- var factor = 1024*1024; //for MB
-
- var segment_bytes_max_log = Math.log(segment_bytes_max);
-
- var series_entry = '<li>' + "\n" +
- ' <dl class="clearfix" style="width:100%;">' + "\n" +
- ' <dt><div>Size</div></dt>' + "\n" +
- ' <dd>' +
- ' <div class="start">0</div>';
- var step = 0;
- for (var j = 0; j < 3; j+=1) {
- step += segment_bytes_max_log/4;
- var step_value = number_format(Math.floor((Math.pow(Math.E, step))/factor))
- series_entry += '<div class="w5">' + ((step_value > 0.001)?step_value : ' ') + '</div>'
- }
- series_entry += '<div class="end">' + number_format(Math.floor(segment_bytes_max/factor)) + ' MB </div>' +
- ' </dd>' +
- ' </dl>' +
- '</li>';
- return series_entry;
-};
-
-// #/:core/admin/segments
-sammy.get
-(
- new RegExp( app.core_regex_base + '\\/(segments)$' ),
- function( context )
- {
- var core_basepath = this.active_core.attr( 'data-basepath' );
- var content_element = $( '#content' );
-
- $.get
- (
- 'tpl/segments.html',
- function( template )
- {
- content_element.html( template );
-
- var segments_element = $('#segments', content_element);
- var segments_reload = $( '#segments a.reload' );
- var url_element = $('#url', segments_element);
- var result_element = $('#result', segments_element);
- var response_element = $('#response', result_element);
- var segments_holder_element = $('.segments-holder', result_element);
-
- segments_reload
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- $.ajax
- (
- {
- url : core_basepath + '/admin/segments?wt=json',
- dataType : 'json',
- context: this,
- beforeSend : function( arr, form, options )
- {
- loader.show( this );
- },
- success : function( response, text_status, xhr )
- {
- var segments_response = response['segments'],
- segments_entries = [],
- segment_bytes_max = calculate_max_size_on_disk( segments_response );
-
- //scale
- segments_entries.push( prepare_x_axis( segment_bytes_max ) );
-
- var documents_count = 0, deletions_count = 0;
-
- //elements
- $.each( segments_response, function( key, segment_response ) {
- segments_entries.push( get_entry( segment_response, segment_bytes_max ) );
-
- documents_count += segment_response.size;
- deletions_count += segment_response.delCount;
- });
-
- //footer
- segments_entries.push( get_footer( deletions_count, documents_count ) );
-
- $( 'ul', segments_holder_element ).html( segments_entries.join("\n" ) );
- },
- error : function( xhr, text_status, error_thrown )
- {
- $( this )
- .attr( 'title', '/admin/segments is not configured (' + xhr.status + ': ' + error_thrown + ')' );
-
- $( this ).parents( 'li' )
- .addClass( 'error' );
- },
- complete : function( xhr, text_status )
- {
- loader.hide( this );
- }
- }
- );
- return false;
- }
- );
- //initially submit
- segments_reload.click();
- }
- );
- }
-);
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/21384b5b/solr/webapp/web/js/scripts/threads.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/scripts/threads.js b/solr/webapp/web/js/scripts/threads.js
deleted file mode 100644
index 099dd97..0000000
--- a/solr/webapp/web/js/scripts/threads.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-// #/~threads
-sammy.get
-(
- /^#\/(~threads)$/,
- function( context )
- {
- var content_element = $( '#content' );
-
- $.get
- (
- 'tpl/threads.html',
- function( template )
- {
- content_element
- .html( template );
-
- $.ajax
- (
- {
- url : app.config.solr_path + '/admin/info/threads?wt=json',
- dataType : 'json',
- context : $( '#threads', content_element ),
- beforeSend : function( xhr, settings )
- {
- },
- success : function( response, text_status, xhr )
- {
- var self = this;
-
- var threadDumpData = response.system.threadDump;
- var threadDumpContent = [];
- var c = 0;
- for( var i = 1; i < threadDumpData.length; i += 2 )
- {
- var state = threadDumpData[i].state.esc();
- var name = '<a title="' + state +'"><span>' + threadDumpData[i].name.esc() + ' (' + threadDumpData[i].id.esc() + ')</span></a>';
-
- var classes = [state];
- var details = '';
-
- if( 0 !== c % 2 )
- {
- classes.push( 'odd' );
- }
-
- if( threadDumpData[i].lock )
- {
- classes.push( 'lock' );
- name += "\n" + '<p title="Waiting on">' + threadDumpData[i].lock.esc() + '</p>';
- }
-
- if( threadDumpData[i].stackTrace && 0 !== threadDumpData[i].stackTrace.length )
- {
- classes.push( 'stacktrace' );
-
- var stack_trace = threadDumpData[i].stackTrace
- .join( '###' )
- .esc()
- .replace( /\(/g, '​(' )
- .replace( /###/g, '</li><li>' );
-
- name += '<div>' + "\n"
- + '<ul>' + "\n"
- + '<li>' + stack_trace + '</li>'
- + '</ul>' + "\n"
- + '</div>';
- }
-
- var item = '<tr class="' + classes.join( ' ' ) +'">' + "\n"
- + '<td class="name">' + name + '</td>' + "\n"
- + '<td class="time">' + threadDumpData[i].cpuTime.esc() + '<br>' + threadDumpData[i].userTime.esc() + '</td>' + "\n"
- + '</tr>';
-
- threadDumpContent.push( item );
- c++;
- }
-
- var threadDumpBody = $( '#thread-dump tbody', this );
-
- threadDumpBody
- .html( threadDumpContent.join( "\n" ) );
-
- $( '.name a', threadDumpBody )
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- $( this ).closest( 'tr' )
- .toggleClass( 'open' );
- }
- );
-
- $( '.controls a', this )
- .die( 'click' )
- .live
- (
- 'click',
- function( event )
- {
- var threads_element = $( self );
- var is_collapsed = threads_element.hasClass( 'collapsed' );
- var thread_rows = $( 'tr', threads_element );
-
- thread_rows
- .each
- (
- function( index, element )
- {
- if( is_collapsed )
- {
- $( element )
- .addClass( 'open' );
- }
- else
- {
- $( element )
- .removeClass( 'open' );
- }
- }
- );
-
- threads_element
- .toggleClass( 'collapsed' )
- .toggleClass( 'expanded' );
- }
- );
- },
- error : function( xhr, text_status, error_thrown)
- {
- },
- complete : function( xhr, text_status )
- {
- }
- }
- );
- }
- );
- }
-);
\ No newline at end of file