SOLR-4339: Admin UI - Display Field-Flags on Schema-Browser

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1437760 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stefan Matheis 2013-01-23 21:49:47 +00:00
parent f5fa833da7
commit 4c723f6e46
4 changed files with 174 additions and 120 deletions

View File

@ -74,6 +74,9 @@ Bug Fixes
Optimizations
----------------------
* SOLR-4339: Admin UI - Display Field-Flags on Schema-Browser
(steffkes)
Other Changes
----------------------

View File

@ -45,6 +45,11 @@
padding-bottom: 15px;
}
#content #schema-browser #related .ukf-dsf dt
{
display: none;
}
#content #schema-browser #related dl
{
margin-top: 15px;
@ -140,11 +145,60 @@
width: 100px;
}
#content #schema-browser #data #field .field-options .options dd
#content #schema-browser #data #field .field-options .flags
{
margin-right: 5px;
margin-top: 10px;
margin-bottom: 20px;
}
#content #schema-browser #data #field .field-options .flags thead td
{
color: #c0c0c0;
padding-right: 5px;
width: 100px;
}
#content #schema-browser #data #field .field-options .flags tbody td,
#content #schema-browser #data #field .field-options .flags th
{
padding: 2px 5px;
}
#content #schema-browser #data #field .field-options .flags thead td,
#content #schema-browser #data #field .field-options .flags tbody th
{
padding-left: 0;
}
#content #schema-browser #data #field .field-options .flags thead th,
#content #schema-browser #data #field .field-options .flags tbody td
{
border-left: 1px solid #f0f0f0;
}
#content #schema-browser #data #field .field-options .flags tbody th,
#content #schema-browser #data #field .field-options .flags tbody td
{
border-top: 1px solid #f0f0f0;
}
#content #schema-browser #data #field .field-options .flags tbody .check
{
background-color: #fafdfa;
background-image: url( ../../img/ico/tick.png );
background-position: 50% 50%;
text-align: center;
}
#content #schema-browser #data #field .field-options .flags tbody .check span
{
display: none;
}
#content #schema-browser #data #field .field-options .flags tbody .text
{
color: #c0c0c0;
}
#content #schema-browser #data #field .field-options .analyzer,
#content #schema-browser #data #field .field-options .analyzer li,

View File

@ -713,52 +713,6 @@ sammy.get
data_element
.show();
var keystring_to_list = function( keystring, element_class )
{
var key_list = keystring.replace( /-/g, '' ).split( '' );
var list = [];
for( var i in key_list )
{
var option_key = schema_browser_data.key[key_list[i]];
if( !option_key )
{
option_key = schema_browser_data.key[key_list[i].toLowerCase()];
}
if( !option_key )
{
option_key = schema_browser_data.key[key_list[i].toUpperCase()];
}
if( option_key )
{
list.push
(
'<dd ' + ( element_class ? ' class="' + element_class + '"' : '' ) + '>' +
option_key +
',</dd>'
);
}
}
list[list.length-1] = list[key_list.length-1].replace( /,/, '' );
return list;
}
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;
}
// -- head
var head_element = $( '.head', data_element );
@ -786,72 +740,6 @@ sammy.get
$( '.partial', data_element )
.toggle( partial_state );
// -- properties
var properties_element = $( 'dt.properties', options_element );
if( flags )
{
var properties_keys = keystring_to_list( flags, 'properties' );
$( 'dd.properties', options_element )
.remove();
properties_element
.show()
.after( properties_keys.join( "\n" ) );
}
else
{
$( '.properties', options_element )
.hide();
}
// -- schema
var schema_element = $( 'dt.schema', options_element );
if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].schema )
{
var schema_keys = keystring_to_list( schema_browser_data.fields[field].schema, 'schema' );
$( 'dd.schema', options_element )
.remove();
schema_element
.show()
.after( schema_keys.join( "\n" ) );
}
else
{
$( '.schema', options_element )
.hide();
}
// -- index
var index_element = $( 'dt.index', options_element );
if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].index )
{
var index_keys = [];
if( 0 === schema_browser_data.fields[field].index.indexOf( '(' ) )
{
index_keys.push( '<dd class="index">' + schema_browser_data.fields[field].index + '</dd>' );
}
else
{
index_keys = keystring_to_list( schema_browser_data.fields[field].index, 'index' );
}
$( 'dd.index', options_element )
.remove();
index_element
.show()
.after( index_keys.join( "\n" ) );
}
else
{
$( '.index', options_element )
.hide();
}
// -- docs
var docs_element = $( 'dt.docs', options_element );
if( is_f && schema_browser_data.fields[field] && schema_browser_data.fields[field].docs )
@ -920,6 +808,103 @@ sammy.get
$( '.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>' : '&nbsp;' )
+ '</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;

View File

@ -43,12 +43,6 @@ limitations under the License.
<dt class="similarity">Similarity:</dt>
<dt class="properties">Properties:</dt>
<dt class="schema">Schema:</dt>
<dt class="index">Index:</dt>
<dt class="position-increment-gap"><abbr title="Position Increment Gap">PI Gap</abbr>:</dt>
<dt class="docs">Docs:</dt>
@ -57,6 +51,24 @@ limitations under the License.
</dl>
<table class="flags" cellspacing="0" cellpadding="0" border="0">
<thead>
<tr>
<td>Flags:</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
<ul class="analyzer">
<li class="clearfix index">