Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Management] Saved objects to React/EUI! #17426

Merged
merged 64 commits into from
May 17, 2018
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
0e1687d
Not working proto code
chrisronline Mar 6, 2018
1d4c6e1
More proto code
chrisronline Mar 6, 2018
5dfb6df
Work in progress
chrisronline Mar 7, 2018
556e842
Just go back to non interactive searching, much easier
chrisronline Mar 8, 2018
7d3c293
This should be on the server
chrisronline Mar 8, 2018
dccf0a6
Revert "[@kbn/ui-framework] move ui-framework to a package (#17085)"
chrisronline Mar 13, 2018
529d4a5
Revert "Revert "[@kbn/ui-framework] move ui-framework to a package (#…
chrisronline Mar 13, 2018
09fc903
Use BasicTable properly
chrisronline Mar 14, 2018
02a5e2e
Table improvements
chrisronline Mar 15, 2018
8d4ff4a
Small tweaks to the table
chrisronline Mar 15, 2018
6756cfc
Improvements
chrisronline Mar 16, 2018
eafdd56
Flyout mostly working
chrisronline Mar 20, 2018
34c4dd1
Remove in memory table
chrisronline Mar 20, 2018
367dbd4
Getting close
chrisronline Mar 21, 2018
9967d82
Tweaks
chrisronline Mar 22, 2018
243f0dd
Revamping server code, still need to support editing
chrisronline Mar 24, 2018
6cacfba
Progress
chrisronline Mar 25, 2018
47f542e
Fix export
chrisronline Mar 25, 2018
95d1262
Updates and passing functional tests
chrisronline Mar 26, 2018
2349be1
Better links in relationships flyout
chrisronline Mar 26, 2018
57c15df
Add skip import option
chrisronline Mar 26, 2018
690777b
Fixes around importing and removing unnecessary code
chrisronline Mar 27, 2018
bb3f16e
Remove tags for now
chrisronline Mar 27, 2018
55348f3
Tests for lib/
chrisronline Mar 27, 2018
4de9b14
Some fixes
chrisronline Mar 27, 2018
4943a3b
Ensure we clear index pattern cache
chrisronline Mar 27, 2018
a9e0e91
Parity with master
chrisronline Mar 27, 2018
10f0005
Revert any changes in package.json
chrisronline Mar 27, 2018
b63b269
Reset any changes in this file
chrisronline Mar 27, 2018
b79ed1c
Move the new argumen to the end to prevent test failures
chrisronline Mar 27, 2018
c2163f9
Fix functional tests
chrisronline Mar 27, 2018
1c3791c
Add relationship tests
chrisronline Mar 28, 2018
800351a
Fix tests
chrisronline Mar 28, 2018
02f1333
API integration tests for relationships
chrisronline Mar 28, 2018
d4b7d63
Ensure we're properly waiting for things to happen
chrisronline Mar 28, 2018
809687e
Fix test issue
chrisronline Mar 28, 2018
9a43a24
Wait for the table to finish loading instead of the whole page
chrisronline Mar 28, 2018
811c29f
Tests for objects_table
chrisronline Mar 28, 2018
da82bcd
Componentry tests
chrisronline Mar 28, 2018
10cdac2
Ensure this is grabbing the right field
chrisronline Mar 29, 2018
bcdea61
Update snapshot
chrisronline Mar 29, 2018
6fcb9cc
Fixes with importing index patterns
chrisronline Apr 2, 2018
c681a8a
PR feedback
chrisronline Apr 2, 2018
de27b33
PR feedback
chrisronline Apr 4, 2018
5f60ec6
PR feedback
chrisronline Apr 4, 2018
6d21094
Merge in master
chrisronline Apr 13, 2018
3d2660f
Update snapshot
chrisronline Apr 13, 2018
50b852e
PR feedback
chrisronline Apr 16, 2018
85ac712
Update snapshot
chrisronline Apr 17, 2018
5dde799
Respect the savedObjects:perPage config
chrisronline Apr 18, 2018
409dda3
Merge in master
chrisronline Apr 18, 2018
cbebf5c
Merge remote-tracking branch 'elastic/master' into eui/saved_objects
chrisronline Apr 26, 2018
ac6c223
Merge remote-tracking branch 'elastic/master' into eui/saved_objects
chrisronline Apr 30, 2018
a1826d4
Updates from PR feedback
chrisronline May 1, 2018
2d270ac
More updates from PR feedback
chrisronline May 2, 2018
6aebeec
Make this more efficient
chrisronline May 2, 2018
8980845
Add debugging for functional test failures
chrisronline May 2, 2018
a55153a
Wait longer
chrisronline May 2, 2018
9b38f8b
Wrap each button accessor with a retry.try
chrisronline May 3, 2018
9ec447b
Try wrapping this in a retry.try
chrisronline May 3, 2018
c7fdff3
Debug
chrisronline May 3, 2018
2a08b9d
Lets make sure it is visible
chrisronline May 4, 2018
7cd235d
Maybe the short timeout is affecting this - use the default timeout w…
chrisronline May 4, 2018
30c4de3
Rewrite this per suggestions from stacey
chrisronline May 8, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/core_plugins/kibana/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { scrollSearchApi } from './server/routes/api/scroll_search';
import { importApi } from './server/routes/api/import';
import { exportApi } from './server/routes/api/export';
import { homeApi } from './server/routes/api/home';
import { managementApi } from './server/routes/api/management';
import scripts from './server/routes/api/scripts';
import { registerSuggestionsApi } from './server/routes/api/suggestions';
import { registerFieldFormats } from './server/field_formats/register';
Expand Down Expand Up @@ -150,6 +151,7 @@ export default function (kibana) {
importApi(server);
exportApi(server);
homeApi(server);
managementApi(server);
registerSuggestionsApi(server);
registerFieldFormats(server);
registerTutorials(server);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,212 +1,5 @@
<kbn-management-app section="kibana" class="kuiView">
<kbn-management-objects class="kuiViewContent kuiViewContent--constrainedWidth">
<!-- Header -->
<div class="kuiViewContentItem kuiBar kuiVerticalRhythm">
<div class="kuiBarSection">
<h1 class="euiTitle">
Edit Saved Objects
</h1>
</div>

<div class="kuiBarSection">
<button
class="kuiButton kuiButton--basic kuiButton--iconText"
data-test-subj="exportAllObjects"
ng-click="exportAll()"
>
<span class="kuiButton__inner">
<span aria-hidden="true" class="kuiButton__icon kuiIcon fa-download"></span>
<span>Export Everything</span>
</span>
</button>

<file-upload
on-read="importAll(fileContents)"
upload-selector="[data-import-saved-objects-button]"
>
<button
class="kuiButton kuiButton--basic kuiButton--iconText"
data-import-saved-objects-button
>
<span class="kuiButton__inner">
<span aria-hidden="true" class="kuiButton__icon kuiIcon fa-upload"></span>
<span>Import</span>
</span>
</button>
</file-upload>
</div>
</div>

<!-- Intro -->
<div class="euiText">
<p class="kuiViewContentItem">
From here you can delete saved objects, such as saved searches. You can also edit the raw data of saved objects. Typically objects are only modified via their associated application, which is probably what you should use instead of this screen. Each tab is limited to 100 results. You can use the filter to find objects not in the default list.
</p>
</div>

<div class="euiSpacer euiSpacer--m"></div>

<!-- Tabs -->
<div class="kuiViewContentItem kuiVerticalRhythm">
<div class="kuiTabs">
<button
class="kuiTab kbn-management-tab"
ng-class="{ 'kuiTab-isSelected': state.tab === service.title }"
ng-repeat="service in services"
ng-click="changeTab(service)"
data-test-subj="objectsTab-{{ service.title }}"
>
{{ service.title }}
<small aria-label="{{:: service.data.length + ' of ' + service.total + ' ' + service.title }}">
({{service.data.length}}<span ng-show="service.total > service.data.length"> of {{service.total}}</span>)
</small>
</button>
</div>
</div>

<!-- ControlledTable -->
<div
class="kuiViewContentItem kuiControlledTable kuiVerticalRhythm"
ng-repeat="service in services track by $index"
ng-show="state.tab === service.title"
>
<!-- ToolBar -->
<div class="kuiToolBar">
<div class="kuiToolBarSearch">
<div
class="kuiToolBarSearchBox"
role="search"
>
<div class="kuiToolBarSearchBox__icon kuiIcon fa-search"></div>
<input
class="kuiToolBarSearchBox__input"
type="text"
placeholder="Search..."
aria-label="Search"
ng-model="managementObjectsController.advancedFilter"
>
</div>
</div>

<div class="kuiToolBarSection">
<!-- Bulk delete button -->
<button
class="kuiButton kuiButton--danger kuiButton--iconText"
ng-click="bulkDelete()"
aria-label="Delete selected objects"
ng-disabled="selectedItems.length == 0"
>
<span class="kuiButton__inner">
<span aria-hidden="true" class="kuiButton__icon kuiIcon fa-trash"></span>
<span>Delete</span>
</span>
</button>

<!-- Bulk export button -->
<button
class="kuiButton kuiButton--basic kuiButton--iconText"
ng-click="bulkExport()"
aria-label="Export selected objects"
ng-disabled="selectedItems.length == 0"
>
<span class="kuiButton__inner">
<span aria-hidden="true" class="kuiButton__icon kuiIcon fa-download"></span>
<span>Export</span>
</span>
</button>
</div>

<div class="kuiToolBarSection">
<!-- We need an empty section for the buttons to be positioned consistently. -->
</div>
</div>

<!-- NoResults -->
<div
class="kuiPanel kuiPanel--centered kuiPanel--withToolBar"
ng-if="!service.data.length"
>
<div class="kuiTableInfo">
No {{service.title}} matched your search.
</div>
</div>

<!-- Table -->
<table class="kuiTable" ng-if="service.data.length" data-test-subj="objectsTable-{{service.title}}">
<thead>
<tr>
<th scope="col" class="kuiTableHeaderCell kuiTableHeaderCell--checkBox">
<div class="kuiTableHeaderCell__liner">
<input
type="checkbox"
aria-label="Select All"
class="kuiCheckBox"
ng-checked="managementObjectsController.areAllRowsChecked()"
ng-click="toggleAll()"
aria-label="{{managementObjectsController.areAllRowsChecked() ? 'Deselect all rows' : 'Select all rows'}}"
>
</div>
</th>

<th scope="col" class="kuiTableHeaderCell">
<div class="kuiTableHeaderCell__liner">
Title
</div>
</th>
</tr>
</thead>

<tbody>
<tr
ng-repeat="item in service.data | orderBy:'title'"
class="kuiTableRow"
data-test-subj="objectsTableRow"
>
<td class="kuiTableRowCell kuiTableRowCell--checkBox">
<div class="kuiTableRowCell__liner">
<input
type="checkbox"
class="kuiCheckBox"
ng-click="toggleItem(item)"
ng-checked="selectedItems.indexOf(item) >= 0"
>
</div>
</td>
<td class="kuiTableRowCell">
<div class="kuiTableRowCell__liner">
<a class="kuiLink" href="" ng-click="edit(service, item)">
{{ item.title }}
</a>

<button
class="kuiMicroButton kuiTableRowHoverReveal"
ng-click="open(item)"
aria-label="View"
tooltip="View in app"
>
<span
aria-hidden="true"
class="kuiIcon fa-eye"
></span>
</button>
</div>
</td>
</tr>

</tbody>
</table>

<!-- ToolBarFooter -->
<div class="kuiToolBarFooter">
<div class="kuiToolBarFooterSection">
<div class="kuiToolBarText" ng-hide="selectedItems.length === 0">
{{ selectedItems.length }} selected
</div>
</div>
<div class="kuiToolBarFooterSection">
<!-- We need an empty section for the buttons to be positioned consistently. -->
</div>
</div>
</div>
<div id="reactSavedObjectsTable"></div>
</kbn-management-objects>
</kbn-management-app>
Loading