mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-17 03:48:15 +00:00
DSS-5869 Adds search and advanced search feature routes, templates
This commit is contained in:
parent
5d8b00b3cd
commit
1de7833d89
5
wherehows-web/app/routes/advsearch.js
Normal file
5
wherehows-web/app/routes/advsearch.js
Normal file
@ -0,0 +1,5 @@
|
||||
import Ember from 'ember';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
|
||||
export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||
})
|
64
wherehows-web/app/routes/search.js
Normal file
64
wherehows-web/app/routes/search.js
Normal file
@ -0,0 +1,64 @@
|
||||
import Ember from 'ember';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
|
||||
export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||
queryParams: {
|
||||
category: {
|
||||
refreshModel: true
|
||||
},
|
||||
keywords: {
|
||||
refreshModel: true
|
||||
},
|
||||
source: {
|
||||
refreshModel: true
|
||||
},
|
||||
page: {
|
||||
refreshModel: true
|
||||
}
|
||||
},
|
||||
model: function (params) {
|
||||
this.controller.set('loading', true);
|
||||
var q;
|
||||
if (params) {
|
||||
q = params;
|
||||
}
|
||||
else {
|
||||
q = convertQueryStringToObject();
|
||||
}
|
||||
|
||||
var keyword = atob(q.keywords);
|
||||
var url = 'api/v1/search' + '?page=' + params.page + "&keyword=" + keyword;
|
||||
if (q.category) {
|
||||
url += ("&category=" + q.category.toLowerCase());
|
||||
currentTab = q.category.toProperCase();
|
||||
updateActiveTab();
|
||||
}
|
||||
if (q.source) {
|
||||
url += '&source=' + q.source;
|
||||
}
|
||||
$.get(url, data => {
|
||||
if (data && data.status == "ok") {
|
||||
var result = data.result;
|
||||
var keywords = result.keywords;
|
||||
window.g_currentCategory = result.category;
|
||||
updateSearchCategories(result.category);
|
||||
for (var index = 0; index < result.data.length; index++) {
|
||||
var schema = result.data[index].schema;
|
||||
if (schema) {
|
||||
result.data[index].originalSchema = schema;
|
||||
highlightResults(result.data, index, keyword);
|
||||
}
|
||||
}
|
||||
this.controller.set('model', result);
|
||||
this.controller.set('keyword', keyword);
|
||||
this.controller.set('isMetric', false);
|
||||
if (result.data.length > 0) {
|
||||
this.controller.set('showNoResult', false);
|
||||
} else {
|
||||
this.controller.set('showNoResult', true);
|
||||
}
|
||||
this.controller.set('loading', false)
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
109
wherehows-web/app/templates/advsearch.hbs
Normal file
109
wherehows-web/app/templates/advsearch.hbs
Normal file
@ -0,0 +1,109 @@
|
||||
<div id="pagedSearchResults">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
{{#if model.count}}
|
||||
<div class="search-pagination">
|
||||
<ul class="pager">
|
||||
{{#unless first}}
|
||||
<li class="previous">
|
||||
{{#link-to 'advsearch' (query-params page=previousPage)}}
|
||||
← Prev
|
||||
{{/link-to}}
|
||||
</li>
|
||||
{{/unless}}
|
||||
<li>
|
||||
{{ model.count }} results - page {{ model.page }} of {{ model.totalPages }}
|
||||
</li>
|
||||
{{#unless last}}
|
||||
<li class="next">
|
||||
{{#link-to 'advsearch' (query-params page=nextPage)}}
|
||||
Next →
|
||||
{{/link-to}}
|
||||
</li>
|
||||
{{/unless}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if loading}}
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center">
|
||||
<i
|
||||
class="fa fa-spinner spinning fa-4x"
|
||||
></i>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if model.count}}
|
||||
{{#if model.isFlowJob}}
|
||||
<table id="searchresults" class="search-results searchtable">
|
||||
<tbody>
|
||||
{{#each model.data as |flowJob|}}
|
||||
<tr class="result">
|
||||
<td class="col-xs-12">
|
||||
<div class="dataset-info">
|
||||
<i class="fa fa-random"></i>
|
||||
<a href="{{flowJob.link}}">
|
||||
{{flowJob.displayName}}
|
||||
</a>
|
||||
</div>
|
||||
<p>
|
||||
{{{ flowJob.path }}}
|
||||
</p>
|
||||
<p>source: {{{ flowJob.appCode }}}</p>
|
||||
<div class="schematext" style="margin-top:5px;margin-bottom: 10px;">
|
||||
{{{ flowJob.schema }}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{else}}
|
||||
<table id="searchresults" class="search-results searchtable">
|
||||
<tbody>
|
||||
{{#each model.data as |dataset|}}
|
||||
<tr class="result">
|
||||
<td class="col-xs-12">
|
||||
<div class="dataset-info">
|
||||
{{#if model.isMetrics}}
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
{{#link-to 'metric' dataset.id}}
|
||||
{{{dataset.name}}}
|
||||
{{/link-to}}
|
||||
{{else}}
|
||||
<i class="fa fa-database"></i>
|
||||
{{#link-to 'dataset' dataset.id}}
|
||||
{{{dataset.name}}}
|
||||
{{/link-to}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<p>{{{ dataset.urn }}}</p>
|
||||
{{#if model.isMetrics}}
|
||||
{{#if dataset.source}}
|
||||
<p>source: {{{ dataset.source }}}</p>
|
||||
{{else}}
|
||||
<p>source: Metric</p>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<p>source: {{{ dataset.source }}}</p>
|
||||
{{/if}}
|
||||
<div class="schematext" style="margin-top:5px;margin-bottom: 10px;">
|
||||
{{{ dataset.schema }}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if showNoResult}}
|
||||
<h4>No items found</h4>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
{{outlet}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
413
wherehows-web/app/templates/navbar-advsearch.hbs
Normal file
413
wherehows-web/app/templates/navbar-advsearch.hbs
Normal file
@ -0,0 +1,413 @@
|
||||
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h3 class="modal-title" id="myModalLabel">Advanced Search</h3>
|
||||
</div>
|
||||
<div class="modal-body advSearch">
|
||||
<ul id="advsearchtabs" class="nav nav-tabs">
|
||||
<li id="datasetAdvSearchLink"><a data-toggle="tab" href="#datasetAdvTab">Datasets</a></li>
|
||||
<li><a data-toggle="tab" href="#metricAdvtab">Metrics</a></li>
|
||||
<li><a data-toggle="tab" href="#flowAdvtab">Flows</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div id="datasetAdvTab" class="tab-pane">
|
||||
<div class="row">
|
||||
<div class="col-md-10 rightPartialBorder">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Scope</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="scopeInInput"
|
||||
class="scopeInput"
|
||||
placeholder="<db_name>, <top_level_dir>"
|
||||
title="Scope can be database schema name or top level HDFS directory which is used to narrow down the search range"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="scopeNotInInput"
|
||||
class="scopeInput"
|
||||
placeholder="<db_name_to_exclude>"
|
||||
title="Scope can be database schema name or top level HDFS directory which is used to narrow down the search range"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Table</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="tableInInput"
|
||||
class="tableInput"
|
||||
placeholder="<table_name>, <view_name>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="tableNotInInput"
|
||||
class="tableInput"
|
||||
placeholder="<table_name_to_exclude>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group col-md-12">
|
||||
<label class="control-label">Fields</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Contains Any
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="fieldAnyInput"
|
||||
class="fieldInput"
|
||||
placeholder="<partial_field_name>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Contains All
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="fieldAllInput"
|
||||
class="fieldInput"
|
||||
placeholder="<field_name_1>, <field_name_2>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Doesn't Contain
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="fieldNotInInput"
|
||||
class="fieldInput"
|
||||
placeholder="<field_name_to_exclude>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group col-md-12">
|
||||
<label class="control-label">Comments</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Contains
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="commentsInput"
|
||||
type="text"
|
||||
placeholder="<phrase_in_comment>"
|
||||
class="col-md-4 form-control"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="advSearchSource" class="col-md-2">
|
||||
<h4>Sources</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="metricAdvtab" class="tab-pane">
|
||||
<div class="row">
|
||||
<div class="col-md-12 rightPartialBorder">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Dashboard Name</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="dashInInput"
|
||||
class="dashInput"
|
||||
placeholder="<dashboard1>, <dashboard2>"
|
||||
title="Dashboard Name"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="dashNotInInput"
|
||||
class="dashInput"
|
||||
placeholder="<dashboard_to_exclude>"
|
||||
title="Dashboard Name"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Metric Group</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="groupInInput"
|
||||
class="groupInput"
|
||||
placeholder="<group1>, <group2>"
|
||||
title="Metric Group"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="groupNotInInput"
|
||||
class="groupInput"
|
||||
placeholder="<group_to_exclude>"
|
||||
title="Metric Group"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Metric Category</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="categoryInInput"
|
||||
class="categoryInput"
|
||||
placeholder="<category1>, <category2>"
|
||||
title="Metric Category"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="categoryNotInInput"
|
||||
class="categoryInput"
|
||||
placeholder="<category_to_exclude>"
|
||||
title="Metric Category"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Metric Name</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="metricnameInInput"
|
||||
class="metricnameInput"
|
||||
placeholder="<metric1>, <metric2>"
|
||||
title="Metric"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="metricnameNotInInput"
|
||||
class="metricnameInput"
|
||||
placeholder="<metric_to_exclude>"
|
||||
title="Metric"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="flowAdvtab" class="tab-pane">
|
||||
<div class="row">
|
||||
<div class="col-md-12 rightPartialBorder">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Cluster</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="appcodeInInput"
|
||||
class="appcodeInput"
|
||||
placeholder="<cluster1>, <cluster2>"
|
||||
title="Cluster"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="appcodeNotInInput"
|
||||
class="appcodeInput"
|
||||
placeholder="<cluster_to_exclude>"
|
||||
title="Cluster"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Flow Name</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="flowInInput"
|
||||
class="flowInput"
|
||||
placeholder="<flow_name1>, <flow_name2>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="flowNotInInput"
|
||||
class="flowInput"
|
||||
placeholder="<flow_name_to_exclude>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="control-group col-md-12">
|
||||
<label class="control-label">Job Name</label>
|
||||
<div class="controls">
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="jobInInput"
|
||||
class="jobInput"
|
||||
placeholder="<job_name1>, <job_name2>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3 text-right">
|
||||
Not In
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input
|
||||
id="jobNotInInput"
|
||||
class="jobInput"
|
||||
placeholder="<job_name_to_exclude>"
|
||||
style="width: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
id="advSearchBtn"
|
||||
data-dismiss="modal"
|
||||
class="btn btn-primary">
|
||||
Search
|
||||
</button>
|
||||
<button type="button" id="advSearchResetBtn" class="btn btn-default">Reset</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
188
wherehows-web/app/templates/search.hbs
Normal file
188
wherehows-web/app/templates/search.hbs
Normal file
@ -0,0 +1,188 @@
|
||||
<div class="btn-group" role="group">
|
||||
<p style="display:inline;float:left;margin-right:5px;margin-top:6px;"><b>Filter By:</b></p>
|
||||
<div class="btn-group" role="group">
|
||||
<button type="button"
|
||||
class="btn dropdown-toggle {{if isDatasets 'btn-primary'}} {{unless isDatasets 'btn-default'}}"
|
||||
data-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
{{datasetTitle}}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="all" page=1)}}
|
||||
All
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="HDFS" page=1)}}
|
||||
HDFS
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Oracle" page=1)}}
|
||||
Oracle
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Teradata" page=1)}}
|
||||
Teradata
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Espresso" page=1)}}
|
||||
Espresso
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Salesforce" page=1)}}
|
||||
Salesforce
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Kafka" page=1)}}
|
||||
Kafka
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Pinot" page=1)}}
|
||||
Pinot
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="Hive" page=1)}}
|
||||
Hive
|
||||
{{/link-to}}
|
||||
</li>
|
||||
<li>
|
||||
{{#link-to 'search' (query-params category="Datasets" source="External" page=1)}}
|
||||
External
|
||||
{{/link-to}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<button type="button"
|
||||
class="btn {{if isComments 'btn-primary'}} {{unless isComments 'btn-default'}}"
|
||||
{{action 'switchSearchToComments' keyword}}>
|
||||
Comments
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn {{if isMetrics 'btn-primary'}} {{unless isMetrics 'btn-default'}}"
|
||||
{{action 'switchSearchToMetric' keyword}}>
|
||||
Metrics
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn {{if isFlows 'btn-primary'}} {{unless isFlows 'btn-default'}}"
|
||||
{{action 'switchSearchToFlow' keyword}}>
|
||||
Flows
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn {{if isJobs 'btn-primary'}} {{unless isJobs 'btn-default'}}"
|
||||
{{action 'switchSearchToJob' keyword}}>
|
||||
Jobs
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="pagedSearchResults">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
{{#if model.count}}
|
||||
<div class="search-pagination">
|
||||
<ul class="pager">
|
||||
{{#unless first}}
|
||||
<li class="previous">
|
||||
{{#link-to 'search' (query-params categroy=category source=source page=previousPage)}}
|
||||
← Prev
|
||||
{{/link-to}}
|
||||
</li>
|
||||
{{/unless}}
|
||||
<li>
|
||||
{{ model.count }} results - page {{ model.page }} of {{ model.totalPages }}
|
||||
</li>
|
||||
{{#unless last}}
|
||||
<li class="next">
|
||||
{{#link-to 'search' (query-params categroy=category source=source page=nextPage)}}
|
||||
Next →
|
||||
{{/link-to}}
|
||||
</li>
|
||||
{{/unless}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if loading}}
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-center">
|
||||
<i class="fa fa-spinner spinning fa-4x"></i>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if model.count}}
|
||||
{{#if model.isFlowJob}}
|
||||
<table id="searchresults" class="search-results searchtable">
|
||||
<tbody>
|
||||
{{#each model.data as |flowJob|}}
|
||||
<tr class="result">
|
||||
<td class="col-xs-12">
|
||||
<div class="dataset-info">
|
||||
<i class="fa fa-random"></i>
|
||||
<a href="{{flowJob.link}}">
|
||||
{{flowJob.displayName}}
|
||||
</a>
|
||||
</div>
|
||||
<p>{{ flowJob.path }}</p>
|
||||
<p>source: {{ flowJob.appCode }}</p>
|
||||
<div class="schematext" style="margin-top:5px;margin-bottom: 10px;">
|
||||
{{ flowJob.schema }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{else}}
|
||||
<table id="searchresults" class="search-results searchtable">
|
||||
<tbody>
|
||||
{{#each model.data as |dataset|}}
|
||||
<tr class="result">
|
||||
<td class="col-xs-12">
|
||||
<div class="dataset-info">
|
||||
{{#if model.isMetrics}}
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
{{#link-to 'metrics.metric' dataset.id}}
|
||||
{{{dataset.name}}}
|
||||
{{/link-to}}
|
||||
{{else}}
|
||||
<i class="fa fa-database"></i>
|
||||
{{#link-to 'dataset' dataset.id}}
|
||||
{{{dataset.name}}}
|
||||
{{/link-to}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<p>
|
||||
{{{ dataset.urn }}}
|
||||
</p>
|
||||
{{#if dataset.source}}
|
||||
<p>source: {{{ dataset.source }}}</p>
|
||||
{{else}}
|
||||
<p>source: Metric</p>
|
||||
{{/if}}
|
||||
<div class="schematext" style="margin-top:5px;margin-bottom: 10px;">
|
||||
{{{ dataset.schema }}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if showNoResult}}
|
||||
<h4>No items found</h4>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
{{outlet}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Loading…
x
Reference in New Issue
Block a user