You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by eh...@apache.org on 2015/05/22 16:53:06 UTC

svn commit: r1681135 - in /lucene/dev/branches/branch_5x/solr/webapp/web: js/angular/controllers/analysis.js partials/analysis.html

Author: ehatcher
Date: Fri May 22 14:53:05 2015
New Revision: 1681135

URL: http://svn.apache.org/r1681135
Log:
SOLR-7579: Fix Angular admin UI analysis screen drop-down issue

Modified:
    lucene/dev/branches/branch_5x/solr/webapp/web/js/angular/controllers/analysis.js
    lucene/dev/branches/branch_5x/solr/webapp/web/partials/analysis.html

Modified: lucene/dev/branches/branch_5x/solr/webapp/web/js/angular/controllers/analysis.js
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/webapp/web/js/angular/controllers/analysis.js?rev=1681135&r1=1681134&r2=1681135&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/webapp/web/js/angular/controllers/analysis.js (original)
+++ lucene/dev/branches/branch_5x/solr/webapp/web/js/angular/controllers/analysis.js Fri May 22 14:53:05 2015
@@ -17,20 +17,7 @@
 
 solrAdminApp.controller('AnalysisController',
   function($scope, $location, $routeParams, Luke, Analysis) {
-    $scope.resetMenu("analysis");
-
-    // Read initial values from URL:
-    $scope.init = function() {
-      var params = $location.search();
-      $scope.indexText = params["analysis.fieldvalue"];
-      $scope.queryText = params["analysis.query"];
-      if (params["analysis.fieldname"]) {
-        $scope.fieldOrType = "fieldname=" + params["analysis.fieldname"];
-      } else {
-        $scope.fieldOrType = "fieldtype=" + params["analysis.fieldtype"];
-      }
-      $scope.verbose = params["verboxe_output"]=="1";
-    };
+      $scope.resetMenu("analysis");
 
       $scope.refresh = function() {
         Luke.schema({core: $routeParams.core}, function(data) {
@@ -49,20 +36,9 @@ solrAdminApp.controller('AnalysisControl
           }
         });
 
+        $scope.parseQueryString();
         // @todo - if URL param, set $scope.verbose;
         // @todo - set defaultSearchField either to context["analysis.fieldname"] or context["analysis.fieldtype"]
-        /** @todo: not sure:
-                      var fields = 0;
-              for( var key in context.params )
-              {
-                if( 'string' === typeof context.params[key] && 0 !== context.params[key].length )
-                {
-                  fields++;
-                  $( '[name="' + key + '"]', analysis_form )
-                    .val( context.params[key] );
-                }
-              }
-          */
 
       };
       $scope.verbose = true;
@@ -111,62 +87,85 @@ solrAdminApp.controller('AnalysisControl
         return tokens;
       };
 
-      var mangle = function(data) {
-        response = [];
-        for (var i=0; i < data.length; i+=2) {
-          var component = {
-            name: data[i],
-            short: getShortComponentName(data[i]),
-            captions: getCaptionsForComponent(data[i+1]),
-            tokens: getTokensForComponent(data[i+1])
-          };
-          response.push(component);
+      var extractComponents = function(data, result, name) {
+        if (data) {
+            result[name] = [];
+            for (var i = 0; i < data.length; i += 2) {
+                var component = {
+                    name: data[i],
+                    short: getShortComponentName(data[i]),
+                    captions: getCaptionsForComponent(data[i + 1]),
+                    tokens: getTokensForComponent(data[i + 1])
+                };
+                result[name].push(component);
+            }
         }
-        return response;
       };
 
       var processAnalysisData = function(analysis, fieldOrType) {
         var fieldname;
-        console.log(fieldOrType);
-        console.dir(analysis[fieldOrType]);
         for (fieldname in analysis[fieldOrType]) {console.log(fieldname);break;}
-        var index = mangle(analysis[fieldOrType][fieldname].index);
-        var query = mangle(analysis[fieldOrType][fieldname].query);
-        response = {index: index, query: query};
+        var response = {};
+        extractComponents(analysis[fieldOrType][fieldname].index, response, "index");
+        extractComponents(analysis[fieldOrType][fieldname].query, response, "query");
         return response;
       };
 
-      $scope.analyse = function() {
+      $scope.updateQueryString = function() {
+
         var parts = $scope.fieldOrType.split("=");
-        var fieldOrType = parts[0] == "fieldname" ? "field_names" : "field_types";
+        var fieldOrType = parts[0];
+        var name = parts[1];
 
-        params = {
-          "analysis.fieldvalue": $scope.indexText,
-          "analysis.query": $scope.queryText
-        };
+        if ($scope.indexText) {
+            $location.search("analysis.fieldvalue", $scope.indexText);
+        }
+        if ($scope.queryText) {
+          $location.search("analysis.query", $scope.queryText);
+        }
 
-        if (fieldOrType == "field_names") {
-          params["analysis.fieldname"] = parts[1];
+        if (fieldOrType == "fieldname") {
+          $location.search("analysis.fieldname", name);
+          $location.search("analysis.fieldtype", null);
         } else {
-          params["analysis.fieldtype"] = parts[1];
+          $location.search("analysis.fieldtype", name);
+          $location.search("analysis.fieldname", null);
         }
+      };
 
-        $location.search("analysis.fieldname", null);
-        $location.search("analysis.fieldtype", null);
-        for (var param in params) {
-          $location.search(param, params[param]);
-        }
+      $scope.parseQueryString = function () {
+          var params = {};
+          var search = $location.search();
 
-        params.core = $routeParams.core;
-        Analysis.field(params, function(data) {
-          $scope.analysis = data;
-          $scope.result = processAnalysisData(data.analysis, fieldOrType);
-        });
+          if (Object.keys(search).length == 0) {
+              return;
+          }
+          for (var key in search) {
+              params[key]=search[key];
+          }
+          $scope.indexText = search["analysis.fieldvalue"];
+          $scope.queryText = search["analysis.query"];
+          if (search["analysis.fieldname"]) {
+              $scope.fieldOrType = "fieldname=" + search["analysis.fieldname"];
+          } else {
+              $scope.fieldOrType = "fieldtype=" + search["analysis.fieldtype"];
+          }
+          $scope.verbose = search["verbose_output"] == "1";
+
+          if ($scope.fieldOrType || $scope.indexText || $scope.queryText) {
+            params.core = $routeParams.core;
+            var parts = $scope.fieldOrType.split("=");
+            var fieldOrType = parts[0] == "fieldname" ? "field_names" : "field_types";
+
+              Analysis.field(params, function(data) {
+              $scope.result = processAnalysisData(data.analysis, fieldOrType);
+            });
+          }
       };
 
+
       $scope.toggleVerbose = function() {$scope.verbose = !$scope.verbose};
 
-      $scope.init();
       $scope.refresh();
     }
 );

Modified: lucene/dev/branches/branch_5x/solr/webapp/web/partials/analysis.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/webapp/web/partials/analysis.html?rev=1681135&r1=1681134&r2=1681135&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/webapp/web/partials/analysis.html (original)
+++ lucene/dev/branches/branch_5x/solr/webapp/web/partials/analysis.html Fri May 22 14:53:05 2015
@@ -41,13 +41,13 @@ limitations under the License.
           <li class="settings-holder clearfix">
             <div class="settings clearfix">
               <label for="type_or_name">Analyse Fieldname / FieldType:</label>
-              <select chosen id="type_or_name" ng-model="fieldOrType" ng-options="f.value as f.label group by f.group for f in fieldsAndTypes"></select>
+              <select style="width:130px" chosen id="type_or_name" ng-model="fieldOrType" ng-options="f.value as f.label group by f.group for f in fieldsAndTypes"></select>
 
               <a id="tor_schema" href="#"><span>Schema Browser</span>&nbsp;</a>
 
               <div class="buttons clearfix">
 
-                <button type="submit" ng-click="analyse()"><span>Analyse Values</span></button>
+                <button type="submit" ng-click="updateQueryString()"><span>Analyse Values</span></button>
 
                 <div class="verbose_output" ng-class="{active:verbose}">
                   <a ng-click="toggleVerbose()">Verbose Output</a>