|
@@ -1,86 +1,104 @@
|
|
|
-<div class="page-action-bar" ng-hide="!ctrl.hasFilters && ctrl.sections.length === 0">
|
|
|
|
|
- <label class="gf-form gf-form--grow gf-form--has-input-icon">
|
|
|
|
|
- <input type="text" class="gf-form-input max-width-30" placeholder="Find Dashboard by name" tabindex="1" give-focus="true" ng-model="ctrl.query.query" ng-model-options="{ debounce: 500 }" spellcheck='false' ng-change="ctrl.onQueryChange()" />
|
|
|
|
|
- <i class="gf-form-input-icon fa fa-search"></i>
|
|
|
|
|
- </label>
|
|
|
|
|
- <div class="page-action-bar__spacer"></div>
|
|
|
|
|
- <a class="btn btn-success" href="/dashboard/new?folderId={{ctrl.folderId}}">
|
|
|
|
|
- <i class="fa fa-plus"></i>
|
|
|
|
|
- Dashboard
|
|
|
|
|
- </a>
|
|
|
|
|
- <a class="btn btn-success" href="/dashboards/folder/new" ng-if="!ctrl.folderId">
|
|
|
|
|
- <i class="fa fa-plus"></i>
|
|
|
|
|
- Folder
|
|
|
|
|
- </a>
|
|
|
|
|
-</div>
|
|
|
|
|
|
|
+<div class="dashboard-list">
|
|
|
|
|
+ <div class="page-action-bar page-action-bar--narrow" ng-hide="!ctrl.hasFilters && ctrl.sections.length === 0">
|
|
|
|
|
+ <label class="gf-form gf-form--grow gf-form--has-input-icon">
|
|
|
|
|
+ <input type="text" class="gf-form-input max-width-30" placeholder="Find Dashboard by name" tabindex="1" give-focus="true" ng-model="ctrl.query.query" ng-model-options="{ debounce: 500 }" spellcheck='false' ng-change="ctrl.onQueryChange()" />
|
|
|
|
|
+ <i class="gf-form-input-icon fa fa-search"></i>
|
|
|
|
|
+ </label>
|
|
|
|
|
+ <div class="page-action-bar__spacer"></div>
|
|
|
|
|
+ <a class="btn btn-success" href="/dashboard/new?folderId={{ctrl.folderId}}">
|
|
|
|
|
+ <i class="fa fa-plus"></i>
|
|
|
|
|
+ Dashboard
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <a class="btn btn-success" href="/dashboards/folder/new" ng-if="!ctrl.folderId">
|
|
|
|
|
+ <i class="fa fa-plus"></i>
|
|
|
|
|
+ Folder
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
-<div class="gf-form" ng-if="ctrl.query.tag.length">
|
|
|
|
|
- Filters:
|
|
|
|
|
- <span ng-repeat="tagName in ctrl.query.tag">
|
|
|
|
|
- <a ng-click="ctrl.removeTag(tagName, $event)" tag-color-from-name="tagName" class="label label-tag">
|
|
|
|
|
- <i class="fa fa-remove"></i>
|
|
|
|
|
- {{tagName}}
|
|
|
|
|
- </a>
|
|
|
|
|
- </span>
|
|
|
|
|
-</div>
|
|
|
|
|
|
|
+ <div class="page-action-bar page-action-bar--narrow" ng-hide="(!ctrl.hasFilters && ctrl.sections.length === 0) || !ctrl.hasFilters">
|
|
|
|
|
+ <div class="gf-form-inline">
|
|
|
|
|
+ <div class="gf-form" ng-show="ctrl.query.tag.length > 0">
|
|
|
|
|
+ <label class="gf-form-label width-4">
|
|
|
|
|
+ Tags
|
|
|
|
|
+ </label>
|
|
|
|
|
+ <div class="gf-form-input gf-form-input--plaintext" ng-show="ctrl.query.tag.length > 0">
|
|
|
|
|
+ <span ng-repeat="tagName in ctrl.query.tag">
|
|
|
|
|
+ <a ng-click="ctrl.removeTag(tagName, $event)" tag-color-from-name="tagName" class="tag label label-tag">
|
|
|
|
|
+ <i class="fa fa-remove"></i> {{tagName}}
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="gf-form" ng-show="ctrl.query.starred">
|
|
|
|
|
+ <label class="gf-form-label">
|
|
|
|
|
+ <a class="pointer" ng-click="ctrl.removeStarred()">
|
|
|
|
|
+ <i class="fa fa-fw fa-check"></i> Starred
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="gf-form">
|
|
|
|
|
+ <label class="gf-form-label">
|
|
|
|
|
+ <a class="pointer" ng-click="ctrl.clearFilters()">
|
|
|
|
|
+ <i class="fa fa-remove"></i> Clear current search query and filters
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
-<div class="gf-form">
|
|
|
|
|
- <div class="gf-form-button-row" ng-show="ctrl.hasFilters">
|
|
|
|
|
- <button
|
|
|
|
|
- type="button"
|
|
|
|
|
- class="btn gf-form-button btn-inverse btn-small"
|
|
|
|
|
- ng-click="ctrl.clearFilters()">
|
|
|
|
|
- <i class="fa fa-close"></i> Clear current search query and filters
|
|
|
|
|
- </button>
|
|
|
|
|
|
|
+ <div class="search-results" ng-show="ctrl.hasFilters && ctrl.sections.length === 0">
|
|
|
|
|
+ <em class="muted">
|
|
|
|
|
+ No dashboards matching your query were found.
|
|
|
|
|
+ </em>
|
|
|
</div>
|
|
</div>
|
|
|
-</div>
|
|
|
|
|
|
|
|
|
|
-<div class="dashboard-list" ng-show="ctrl.sections.length > 0">
|
|
|
|
|
- <div class="search-results-filter-row">
|
|
|
|
|
- <gf-form-switch
|
|
|
|
|
- on-change="ctrl.onSelectAllChanged()"
|
|
|
|
|
- checked="ctrl.selectAllChecked"
|
|
|
|
|
- switch-class="gf-form-switch--transparent gf-form-switch--search-result-filter-row__checkbox"
|
|
|
|
|
- />
|
|
|
|
|
- <div class="search-results-filter-row__filters">
|
|
|
|
|
- <select
|
|
|
|
|
- class="search-results-filter-row__filters-item gf-form-input"
|
|
|
|
|
- ng-model="ctrl.selectedStarredFilter"
|
|
|
|
|
- ng-options="t.text disable when t.disabled for t in ctrl.starredFilterOptions"
|
|
|
|
|
- ng-change="ctrl.onStarredFilterChange()"
|
|
|
|
|
- ng-show="!(ctrl.canMove || ctrl.canDelete)"
|
|
|
|
|
|
|
+ <div class="search-results" ng-show="ctrl.sections.length > 0">
|
|
|
|
|
+ <div class="search-results-filter-row">
|
|
|
|
|
+ <gf-form-switch
|
|
|
|
|
+ on-change="ctrl.onSelectAllChanged()"
|
|
|
|
|
+ checked="ctrl.selectAllChecked"
|
|
|
|
|
+ switch-class="gf-form-switch--transparent gf-form-switch--search-result-filter-row__checkbox"
|
|
|
/>
|
|
/>
|
|
|
- <select
|
|
|
|
|
- class="search-results-filter-row__filters-item gf-form-input"
|
|
|
|
|
- ng-model="ctrl.selectedTagFilter"
|
|
|
|
|
- ng-options="t.term disable when t.disabled for t in ctrl.tagFilterOptions"
|
|
|
|
|
- ng-change="ctrl.onTagFilterChange()"
|
|
|
|
|
- ng-show="!(ctrl.canMove || ctrl.canDelete)"
|
|
|
|
|
- />
|
|
|
|
|
- <div class="gf-form-button-row" ng-show="ctrl.canMove || ctrl.canDelete">
|
|
|
|
|
- <button type="button"
|
|
|
|
|
- class="btn gf-form-button btn-inverse"
|
|
|
|
|
- ng-disabled="!ctrl.canMove"
|
|
|
|
|
- ng-click="ctrl.moveTo()"
|
|
|
|
|
- bs-tooltip="ctrl.canMove ? '' : 'Select a dashboard to move (cannot move folders)'"
|
|
|
|
|
- data-placement="bottom">
|
|
|
|
|
- <i class="fa fa-exchange"></i> Move
|
|
|
|
|
- </button>
|
|
|
|
|
- <button type="button"
|
|
|
|
|
- class="btn gf-form-button btn-danger"
|
|
|
|
|
- ng-click="ctrl.delete()"
|
|
|
|
|
- ng-disabled="!ctrl.canDelete">
|
|
|
|
|
- <i class="fa fa-trash"></i> Delete
|
|
|
|
|
- </button>
|
|
|
|
|
|
|
+ <div class="search-results-filter-row__filters">
|
|
|
|
|
+ <select
|
|
|
|
|
+ class="search-results-filter-row__filters-item gf-form-input"
|
|
|
|
|
+ ng-model="ctrl.selectedStarredFilter"
|
|
|
|
|
+ ng-options="t.text disable when t.disabled for t in ctrl.starredFilterOptions"
|
|
|
|
|
+ ng-change="ctrl.onStarredFilterChange()"
|
|
|
|
|
+ ng-show="!(ctrl.canMove || ctrl.canDelete)"
|
|
|
|
|
+ />
|
|
|
|
|
+ <select
|
|
|
|
|
+ class="search-results-filter-row__filters-item gf-form-input"
|
|
|
|
|
+ ng-model="ctrl.selectedTagFilter"
|
|
|
|
|
+ ng-options="t.term disable when t.disabled for t in ctrl.tagFilterOptions"
|
|
|
|
|
+ ng-change="ctrl.onTagFilterChange()"
|
|
|
|
|
+ ng-show="!(ctrl.canMove || ctrl.canDelete)"
|
|
|
|
|
+ />
|
|
|
|
|
+ <div class="gf-form-button-row" ng-show="ctrl.canMove || ctrl.canDelete">
|
|
|
|
|
+ <button type="button"
|
|
|
|
|
+ class="btn gf-form-button btn-inverse"
|
|
|
|
|
+ ng-disabled="!ctrl.canMove"
|
|
|
|
|
+ ng-click="ctrl.moveTo()"
|
|
|
|
|
+ bs-tooltip="ctrl.canMove ? '' : 'Select a dashboard to move (cannot move folders)'"
|
|
|
|
|
+ data-placement="bottom">
|
|
|
|
|
+ <i class="fa fa-exchange"></i> Move
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <button type="button"
|
|
|
|
|
+ class="btn gf-form-button btn-danger"
|
|
|
|
|
+ ng-click="ctrl.delete()"
|
|
|
|
|
+ ng-disabled="!ctrl.canDelete">
|
|
|
|
|
+ <i class="fa fa-trash"></i> Delete
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="search-results-container">
|
|
|
|
|
- <dashboard-search-results
|
|
|
|
|
- results="ctrl.sections"
|
|
|
|
|
- editable="true"
|
|
|
|
|
- on-selection-changed="ctrl.selectionChanged()"
|
|
|
|
|
- on-tag-selected="ctrl.filterByTag($tag)" />
|
|
|
|
|
|
|
+ <div class="search-results-container">
|
|
|
|
|
+ <dashboard-search-results
|
|
|
|
|
+ results="ctrl.sections"
|
|
|
|
|
+ editable="true"
|
|
|
|
|
+ on-selection-changed="ctrl.selectionChanged()"
|
|
|
|
|
+ on-tag-selected="ctrl.filterByTag($tag)" />
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|