mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-11-03 20:27:50 +00:00 
			
		
		
		
	highlight the filter by search result
This commit is contained in:
		
							parent
							
								
									ad73163c0e
								
							
						
					
					
						commit
						49b54cff1a
					
				@ -59,7 +59,7 @@ public class Search extends Controller
 | 
			
		||||
            }
 | 
			
		||||
            catch(NumberFormatException e)
 | 
			
		||||
            {
 | 
			
		||||
                Logger.error("Dataset Controller getPagedDatasets wrong page parameter. Error message: " +
 | 
			
		||||
                Logger.error("Dataset Controller searchByKeyword wrong page parameter. Error message: " +
 | 
			
		||||
                        e.getMessage());
 | 
			
		||||
                page = 1;
 | 
			
		||||
            }
 | 
			
		||||
@ -79,13 +79,14 @@ public class Search extends Controller
 | 
			
		||||
            }
 | 
			
		||||
            catch(NumberFormatException e)
 | 
			
		||||
            {
 | 
			
		||||
                Logger.error("Dataset Controller getPagedDatasets wrong page parameter. Error message: " +
 | 
			
		||||
                Logger.error("Dataset Controller searchByKeyword wrong page parameter. Error message: " +
 | 
			
		||||
                        e.getMessage());
 | 
			
		||||
                size = 10;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        result.put("status", "ok");
 | 
			
		||||
        Boolean isDefault = false;
 | 
			
		||||
        if (StringUtils.isBlank(category))
 | 
			
		||||
        {
 | 
			
		||||
            category = "datasets";
 | 
			
		||||
@ -94,25 +95,47 @@ public class Search extends Controller
 | 
			
		||||
        {
 | 
			
		||||
            source = "all";
 | 
			
		||||
        }
 | 
			
		||||
        else if (source.equalsIgnoreCase("default"))
 | 
			
		||||
        {
 | 
			
		||||
            source = "all";
 | 
			
		||||
            isDefault = true;
 | 
			
		||||
        }
 | 
			
		||||
        if (category.toLowerCase().equalsIgnoreCase("metric"))
 | 
			
		||||
        {
 | 
			
		||||
            result.set("result", SearchDAO.getPagedMetricByKeyword(keyword, page, size));
 | 
			
		||||
            result.set("result", SearchDAO.getPagedMetricByKeyword(category, keyword, page, size));
 | 
			
		||||
        }
 | 
			
		||||
        else if (category.toLowerCase().equalsIgnoreCase("flows"))
 | 
			
		||||
        {
 | 
			
		||||
            result.set("result", SearchDAO.getPagedFlowByKeyword(keyword, page, size));
 | 
			
		||||
            result.set("result", SearchDAO.getPagedFlowByKeyword(category, keyword, page, size));
 | 
			
		||||
        }
 | 
			
		||||
        else if (category.toLowerCase().equalsIgnoreCase("jobs"))
 | 
			
		||||
        {
 | 
			
		||||
            result.set("result", SearchDAO.getPagedJobByKeyword(keyword, page, size));
 | 
			
		||||
            result.set("result", SearchDAO.getPagedJobByKeyword(category, keyword, page, size));
 | 
			
		||||
        }
 | 
			
		||||
        else if (category.toLowerCase().equalsIgnoreCase("comments"))
 | 
			
		||||
        {
 | 
			
		||||
            result.set("result", SearchDAO.getPagedCommentsByKeyword(keyword, page, size));
 | 
			
		||||
            result.set("result", SearchDAO.getPagedCommentsByKeyword(category, keyword, page, size));
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            result.set("result", SearchDAO.getPagedDatasetByKeyword(keyword, source, page, size));
 | 
			
		||||
            ObjectNode node = SearchDAO.getPagedDatasetByKeyword(category, keyword, source, page, size);
 | 
			
		||||
            if (isDefault && node != null && node.has("count"))
 | 
			
		||||
            {
 | 
			
		||||
                Long count = node.get("count").asLong();
 | 
			
		||||
                if (count != null && count == 0)
 | 
			
		||||
                {
 | 
			
		||||
                    node = SearchDAO.getPagedFlowByKeyword("flows", keyword, page, size);
 | 
			
		||||
                    if (node!= null && node.has("count"))
 | 
			
		||||
                    {
 | 
			
		||||
                        Long flowCount = node.get("count").asLong();
 | 
			
		||||
                        if (flowCount != null && flowCount == 0)
 | 
			
		||||
                        {
 | 
			
		||||
                            node = SearchDAO.getPagedJobByKeyword("jobs", keyword, page, size);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            result.set("result", node);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return ok(result);
 | 
			
		||||
 | 
			
		||||
@ -162,7 +162,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
		return autoCompleteList;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ObjectNode getPagedDatasetByKeyword(String keyword, String source, int page, int size)
 | 
			
		||||
	public static ObjectNode getPagedDatasetByKeyword(String category, String keyword, String source, int page, int size)
 | 
			
		||||
	{
 | 
			
		||||
    	List<Dataset> pagedDatasets = new ArrayList<Dataset>();
 | 
			
		||||
		final JdbcTemplate jdbcTemplate = getJdbcTemplate();
 | 
			
		||||
@ -212,6 +212,8 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
				ObjectNode resultNode = Json.newObject();
 | 
			
		||||
				resultNode.put("count", count);
 | 
			
		||||
				resultNode.put("page", page);
 | 
			
		||||
				resultNode.put("category", category);
 | 
			
		||||
				resultNode.put("source", source);
 | 
			
		||||
				resultNode.put("itemsPerPage", size);
 | 
			
		||||
				resultNode.put("totalPages", (int)Math.ceil(count/((double)size)));
 | 
			
		||||
				resultNode.set("data", Json.toJson(pagedDatasets));
 | 
			
		||||
@ -223,7 +225,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ObjectNode getPagedMetricByKeyword(String keyword, int page, int size)
 | 
			
		||||
	public static ObjectNode getPagedMetricByKeyword(final String category, String keyword, int page, int size)
 | 
			
		||||
	{
 | 
			
		||||
		List<Metric> pagedMetrics = new ArrayList<Metric>();
 | 
			
		||||
		final JdbcTemplate jdbcTemplate = getJdbcTemplate();
 | 
			
		||||
@ -290,6 +292,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
				ObjectNode resultNode = Json.newObject();
 | 
			
		||||
				resultNode.put("count", count);
 | 
			
		||||
				resultNode.put("page", page);
 | 
			
		||||
				resultNode.put("category", category);
 | 
			
		||||
				resultNode.put("itemsPerPage", size);
 | 
			
		||||
				resultNode.put("totalPages", (int)Math.ceil(count/((double)size)));
 | 
			
		||||
				resultNode.set("data", Json.toJson(pagedMetrics));
 | 
			
		||||
@ -301,7 +304,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ObjectNode getPagedFlowByKeyword(String keyword, int page, int size)
 | 
			
		||||
	public static ObjectNode getPagedFlowByKeyword(String category, String keyword, int page, int size)
 | 
			
		||||
	{
 | 
			
		||||
		final List<FlowJob> pagedFlows = new ArrayList<FlowJob>();
 | 
			
		||||
		final JdbcTemplate jdbcTemplate = getJdbcTemplate();
 | 
			
		||||
@ -349,6 +352,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
				resultNode.put("count", count);
 | 
			
		||||
				resultNode.put("isFlowJob", true);
 | 
			
		||||
				resultNode.put("page", page);
 | 
			
		||||
				resultNode.put("category", category);
 | 
			
		||||
				resultNode.put("itemsPerPage", size);
 | 
			
		||||
				resultNode.put("totalPages", (int)Math.ceil(count/((double)size)));
 | 
			
		||||
				resultNode.set("data", Json.toJson(pagedFlows));
 | 
			
		||||
@ -360,7 +364,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ObjectNode getPagedJobByKeyword(String keyword, int page, int size)
 | 
			
		||||
	public static ObjectNode getPagedJobByKeyword(String category, String keyword, int page, int size)
 | 
			
		||||
	{
 | 
			
		||||
		final List<FlowJob> pagedFlowJobs = new ArrayList<FlowJob>();
 | 
			
		||||
		final JdbcTemplate jdbcTemplate = getJdbcTemplate();
 | 
			
		||||
@ -413,6 +417,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
				resultNode.put("count", count);
 | 
			
		||||
				resultNode.put("isFlowJob", true);
 | 
			
		||||
				resultNode.put("page", page);
 | 
			
		||||
				resultNode.put("category", category);
 | 
			
		||||
				resultNode.put("itemsPerPage", size);
 | 
			
		||||
				resultNode.put("totalPages", (int)Math.ceil(count/((double)size)));
 | 
			
		||||
				resultNode.set("data", Json.toJson(pagedFlowJobs));
 | 
			
		||||
@ -424,7 +429,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ObjectNode getPagedCommentsByKeyword(String keyword, int page, int size)
 | 
			
		||||
	public static ObjectNode getPagedCommentsByKeyword(String category, String keyword, int page, int size)
 | 
			
		||||
	{
 | 
			
		||||
		List<Dataset> pagedDatasets = new ArrayList<Dataset>();
 | 
			
		||||
		final JdbcTemplate jdbcTemplate = getJdbcTemplate();
 | 
			
		||||
@ -466,6 +471,7 @@ public class SearchDAO extends AbstractMySQLOpenSourceDAO
 | 
			
		||||
				ObjectNode resultNode = Json.newObject();
 | 
			
		||||
				resultNode.put("count", count);
 | 
			
		||||
				resultNode.put("page", page);
 | 
			
		||||
				resultNode.put("category", category);
 | 
			
		||||
				resultNode.put("itemsPerPage", size);
 | 
			
		||||
				resultNode.put("totalPages", (int)Math.ceil(count/((double)size)));
 | 
			
		||||
				resultNode.set("data", Json.toJson(pagedDatasets));
 | 
			
		||||
 | 
			
		||||
@ -1648,60 +1648,60 @@
 | 
			
		||||
        <div class="btn-group" role="group">
 | 
			
		||||
          <button
 | 
			
		||||
            type="button"
 | 
			
		||||
            {{bind-attr class=":btn :dropdown-toggle :btn-default"}}
 | 
			
		||||
            {{bind-attr class=":btn :dropdown-toggle isDatasets:btn-primary:btn-default"}}
 | 
			
		||||
            data-toggle="dropdown"
 | 
			
		||||
            aria-expanded="false">
 | 
			
		||||
            Datasets
 | 
			
		||||
            {{datasetTitle}}
 | 
			
		||||
            <span class="caret"></span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <ul class="dropdown-menu" role="menu">
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="all" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="all" page=1)}}
 | 
			
		||||
                All
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="hdfs" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="HDFS" page=1)}}
 | 
			
		||||
                HDFS
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="oracle" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Oracle" page=1)}}
 | 
			
		||||
                Oracle
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="teradata" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Teradata" page=1)}}
 | 
			
		||||
                Teradata
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="espresso" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Espresso" page=1)}}
 | 
			
		||||
                Espresso
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="salesforce" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Salesforce" page=1)}}
 | 
			
		||||
                Salesforce
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="kafka" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Kafka" page=1)}}
 | 
			
		||||
                Kafka
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="pinot" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Pinot" page=1)}}
 | 
			
		||||
                Pinot
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="hive" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="Hive" page=1)}}
 | 
			
		||||
                Hive
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
            <li>
 | 
			
		||||
            {{#link-to 'search' (query-params category="Dataset" source="external" page=1)}}
 | 
			
		||||
            {{#link-to 'search' (query-params category="Datasets" source="External" page=1)}}
 | 
			
		||||
                External
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            </li>
 | 
			
		||||
@ -1709,19 +1709,19 @@
 | 
			
		||||
        </div>
 | 
			
		||||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          class="btn btn-default"
 | 
			
		||||
          {{bind-attr class=":btn isComments:btn-primary:btn-default"}}
 | 
			
		||||
          {{action 'switchSearchToComments' keyword}}>
 | 
			
		||||
          Comments
 | 
			
		||||
        </button>
 | 
			
		||||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          class="btn btn-default"
 | 
			
		||||
          {{bind-attr class=":btn isFlows:btn-primary:btn-default"}}
 | 
			
		||||
          {{action 'switchSearchToFlow' keyword}}>
 | 
			
		||||
          Flows
 | 
			
		||||
        </button>
 | 
			
		||||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          class="btn btn-default"
 | 
			
		||||
          {{bind-attr class=":btn isJobs:btn-primary:btn-default"}}
 | 
			
		||||
          {{action 'switchSearchToJob' keyword}}>
 | 
			
		||||
          Jobs
 | 
			
		||||
        </button>
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,56 @@ App.SearchController = Ember.Controller.extend({
 | 
			
		||||
    ],
 | 
			
		||||
    keywords: null,
 | 
			
		||||
    category: null,
 | 
			
		||||
    datasetTitle: function(){
 | 
			
		||||
        var model = this.get("model");
 | 
			
		||||
        if (model && model.source) {
 | 
			
		||||
            if (model.source.toLocaleLowerCase() != 'all')
 | 
			
		||||
            {
 | 
			
		||||
                return model.source;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return "Datasets";
 | 
			
		||||
    }.property('model.source'),
 | 
			
		||||
    isDatasets: function(){
 | 
			
		||||
        var model = this.get("model");
 | 
			
		||||
        if (model && model.category) {
 | 
			
		||||
            if (model.category.toLocaleLowerCase() === 'datasets')
 | 
			
		||||
            {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }.property('model.category'),
 | 
			
		||||
    isComments: function(){
 | 
			
		||||
        var model = this.get("model");
 | 
			
		||||
        if (model && model.category) {
 | 
			
		||||
            if (model.category.toLocaleLowerCase() === 'comments')
 | 
			
		||||
            {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }.property('model.category'),
 | 
			
		||||
    isFlows: function(){
 | 
			
		||||
        var model = this.get("model");
 | 
			
		||||
        if (model && model.category) {
 | 
			
		||||
            if (model.category.toLocaleLowerCase() === 'flows')
 | 
			
		||||
            {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }.property('model.category'),
 | 
			
		||||
    isJobs: function(){
 | 
			
		||||
        var model = this.get("model");
 | 
			
		||||
        if (model && model.category) {
 | 
			
		||||
            if (model.category.toLocaleLowerCase() === 'jobs')
 | 
			
		||||
            {
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }.property('model.category'),
 | 
			
		||||
    source: null,
 | 
			
		||||
    page: null,
 | 
			
		||||
    loading: true,
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,8 @@
 | 
			
		||||
                if (inputObj) {
 | 
			
		||||
                    var keyword = inputObj.val();
 | 
			
		||||
                    if (keyword) {
 | 
			
		||||
                        window.location = '/#/search?keywords=' + keyword + '&category=Dataset&source=all&page=1';
 | 
			
		||||
                        window.location = '/#/search?keywords=' + keyword +
 | 
			
		||||
                            '&category=Datasets&source=default&page=1';
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@ -235,7 +236,8 @@
 | 
			
		||||
                var keyword = inputObj.val();
 | 
			
		||||
                if (keyword)
 | 
			
		||||
                {
 | 
			
		||||
                    window.location = '/#/search?keywords=' + keyword + '&category=Datasets&source=all&page=1';
 | 
			
		||||
                    window.location = '/#/search?keywords=' + keyword +
 | 
			
		||||
                        '&category=Datasets&source=default&page=1';
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user