You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by st...@apache.org on 2013/01/23 22:49:47 UTC

svn commit: r1437760 - in /lucene/dev/trunk/solr: CHANGES.txt webapp/web/css/styles/schema-browser.css webapp/web/js/scripts/schema-browser.js webapp/web/tpl/schema-browser.html

Author: steffkes
Date: Wed Jan 23 21:49:47 2013
New Revision: 1437760

URL: http://svn.apache.org/viewvc?rev=1437760&view=rev
Log:
SOLR-4339: Admin UI - Display Field-Flags on Schema-Browser

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/webapp/web/css/styles/schema-browser.css
    lucene/dev/trunk/solr/webapp/web/js/scripts/schema-browser.js
    lucene/dev/trunk/solr/webapp/web/tpl/schema-browser.html

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1437760&r1=1437759&r2=1437760&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Wed Jan 23 21:49:47 2013
@@ -74,6 +74,9 @@ Bug Fixes
 Optimizations
 ----------------------
 
+* SOLR-4339: Admin UI - Display Field-Flags on Schema-Browser
+  (steffkes)
+
 Other Changes
 ----------------------
 

Modified: lucene/dev/trunk/solr/webapp/web/css/styles/schema-browser.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/styles/schema-browser.css?rev=1437760&r1=1437759&r2=1437760&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/styles/schema-browser.css (original)
+++ lucene/dev/trunk/solr/webapp/web/css/styles/schema-browser.css Wed Jan 23 21:49:47 2013
@@ -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,

Modified: lucene/dev/trunk/solr/webapp/web/js/scripts/schema-browser.js
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/js/scripts/schema-browser.js?rev=1437760&r1=1437759&r2=1437760&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/js/scripts/schema-browser.js (original)
+++ lucene/dev/trunk/solr/webapp/web/js/scripts/schema-browser.js Wed Jan 23 21:49:47 2013
@@ -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;
 

Modified: lucene/dev/trunk/solr/webapp/web/tpl/schema-browser.html
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/tpl/schema-browser.html?rev=1437760&r1=1437759&r2=1437760&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/tpl/schema-browser.html (original)
+++ lucene/dev/trunk/solr/webapp/web/tpl/schema-browser.html Wed Jan 23 21:49:47 2013
@@ -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">