Skip to content

Commit

Permalink
Visualization list eui (#31686)
Browse files Browse the repository at this point in the history
* Fixing bugs from #31599
* Make listing item links instead of buttons
* restore dashboard edit button behavior
  • Loading branch information
lizozom committed Feb 25, 2019
1 parent ad06c96 commit 209069e
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 8 deletions.
7 changes: 5 additions & 2 deletions src/legacy/core_plugins/kibana/public/dashboard/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,11 @@ uiRoutes
$scope.find = (search) => {
return services.dashboards.find(search, $scope.listingLimit);
};
$scope.edit = ({ id }) => {
kbnUrl.redirect(createDashboardEditUrl(id));
$scope.editItem = ({ id }) => {
kbnUrl.redirect(`${createDashboardEditUrl(id)}?_a=(viewMode:edit)`);
};
$scope.getViewUrl = ({ id }) => {
return chrome.addBasePath(`#${createDashboardEditUrl(id)}`);
};
$scope.delete = (ids) => {
return services.dashboards.delete(ids);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ class DashboardListingUi extends React.Component {
sortable: true,
render: (field, record) => (
<EuiLink
onClick={() => this.props.editItem(record)}
href={this.props.getViewUrl(record)}
data-test-subj={`dashboardListingTitleLink-${record.title.split(' ').join('-')}`}
>
{field}
Expand All @@ -185,6 +185,7 @@ DashboardListingUi.propTypes = {
findItems: PropTypes.func.isRequired,
deleteItems: PropTypes.func.isRequired,
editItem: PropTypes.func.isRequired,
getViewUrl: PropTypes.func.isRequired,
listingLimit: PropTypes.number.isRequired,
hideWriteControls: PropTypes.bool.isRequired,
initialFilter: PropTypes.string,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ test('renders empty page in before initial fetch to avoid flickering', () => {
deleteItems={() => {}}
createItem={() => {}}
editItem={() => {}}
getViewUrl={() => {}}
listingLimit={1000}
hideWriteControls={false}
/>);
Expand All @@ -77,6 +78,7 @@ describe('after fetch', () => {
deleteItems={() => {}}
createItem={() => {}}
editItem={() => {}}
getViewUrl={() => {}}
listingLimit={1000}
hideWriteControls={false}
initialFilter="my dashboard"
Expand All @@ -96,6 +98,7 @@ describe('after fetch', () => {
deleteItems={() => {}}
createItem={() => {}}
editItem={() => {}}
getViewUrl={() => {}}
listingLimit={1000}
hideWriteControls={false}
/>);
Expand All @@ -114,6 +117,7 @@ describe('after fetch', () => {
deleteItems={() => {}}
createItem={() => {}}
editItem={() => {}}
getViewUrl={() => {}}
listingLimit={1}
hideWriteControls={false}
/>);
Expand All @@ -132,6 +136,7 @@ describe('after fetch', () => {
deleteItems={() => {}}
createItem={() => {}}
editItem={() => {}}
getViewUrl={() => {}}
listingLimit={1}
hideWriteControls={true}
/>);
Expand All @@ -150,6 +155,7 @@ describe('after fetch', () => {
deleteItems={() => {}}
createItem={() => {}}
editItem={() => {}}
getViewUrl={() => {}}
listingLimit={1}
hideWriteControls={false}
/>);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<dashboard-listing
create-item="create"
edit-item="edit"
get-view-url="getViewUrl"
edit-item="editItem"
find-items="find"
delete-items="delete"
listing-limit="listingLimit"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@
find-items="listingController.fetchItems"
delete-items="listingController.deleteSelectedItems"
create-item="listingController.createNewVis"
edit-item="listingController.edit"
get-view-url="listingController.getViewUrl"
edit-item="listingController.editItem"
></visualize-listing-table>

<new-vis-modal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,15 @@ export function VisualizeListingController($injector, createNewVis) {
this.showNewVisModal = true;
};

this.edit = ({ id }) => {
this.editItem = ({ id }) => {
// for visualizations the edit and view URLs are the same
kbnUrl.change(createVisualizeEditUrl(id));
};

this.getViewUrl = ({ id }) => {
return chrome.addBasePath(`#${createVisualizeEditUrl(id)}`);
};

this.closeNewVisModal = () => {
this.showNewVisModal = false;
// In case the user came via a URL to this page, change the URL to the regular landing page URL after closing the modal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class VisualizeListingTableUi extends Component {
sortable: true,
render: (field, record) => (
<EuiLink
onClick={() => this.props.editItem(record)}
href={this.props.getViewUrl(record)}
data-test-subj={`visListingTitleLink-${record.title.split(' ').join('-')}`}
>
{field}
Expand Down Expand Up @@ -219,6 +219,7 @@ VisualizeListingTableUi.propTypes = {
deleteItems: PropTypes.func.isRequired,
findItems: PropTypes.func.isRequired,
createItem: PropTypes.func.isRequired,
getViewUrl: PropTypes.func.isRequired,
editItem: PropTypes.func.isRequired,
};

Expand Down
2 changes: 1 addition & 1 deletion test/functional/page_objects/visualize_page.js
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ export function VisualizePageProvider({ getService, getPageObjects }) {

async clickVisualizationByName(vizName) {
log.debug('clickVisualizationByLinkText(' + vizName + ')');
return find.clickByButtonText(vizName);
return find.clickByPartialLinkText(vizName);
}

async loadSavedVisualization(vizName, { navigateToVisualize = true } = {}) {
Expand Down

0 comments on commit 209069e

Please sign in to comment.