Skip to content

Commit 18c564c

Browse files
authored
Fixes missing actions on table, unused query parameter ?, and some aesthetics (opensearch-project#103)
1 parent 34cafc7 commit 18c564c

File tree

11 files changed

+28
-54
lines changed

11 files changed

+28
-54
lines changed

index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default function (kibana) {
2727
name: "opendistro_index_management_kibana",
2828
uiExports: {
2929
app: {
30-
title: "Index Management Kibana",
30+
title: "Index Management",
3131
description: "Kibana plugin for Index Management",
3232
main: "plugins/opendistro_index_management_kibana/app",
3333
category: DEFAULT_APP_CATEGORIES.management,

public/pages/ManagedIndices/containers/ManagedIndices/ManagedIndices.tsx

+7-5
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import _ from "lodash";
4040
import { ContentPanel, ContentPanelActions } from "../../../../components/ContentPanel";
4141
import ManagedIndexControls from "../../components/ManagedIndexControls";
4242
import ManagedIndexEmptyPrompt from "../../components/ManagedIndexEmptyPrompt";
43-
import { ACTIONS, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_QUERY_PARAMS } from "../../utils/constants";
43+
import { DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_QUERY_PARAMS } from "../../utils/constants";
4444
import { BREADCRUMBS, DEFAULT_EMPTY_DATA, PLUGIN_NAME, ROUTES } from "../../../../utils/constants";
4545
import InfoModal from "../../components/InfoModal";
4646
import PolicyModal from "../../../../components/PolicyModal";
@@ -126,7 +126,9 @@ export default class ManagedIndices extends Component<ManagedIndicesProps, Manag
126126
truncateText: false,
127127
width: "150px",
128128
// @ts-ignore
129-
render: (action: string) => ACTIONS[action] || DEFAULT_EMPTY_DATA,
129+
render: (action: string) => (
130+
<span style={{ textTransform: "capitalize" }}>{(action || DEFAULT_EMPTY_DATA).split("_").join(" ")}</span>
131+
),
130132
},
131133
{
132134
field: "managedIndexMetaData.info",
@@ -143,7 +145,7 @@ export default class ManagedIndices extends Component<ManagedIndicesProps, Manag
143145
},
144146
{
145147
field: "index", // we don't care about the field as we're using the whole item in render
146-
name: "Status",
148+
name: "Job Status",
147149
sortable: false,
148150
truncateText: false,
149151
width: "150px",
@@ -238,7 +240,7 @@ export default class ManagedIndices extends Component<ManagedIndicesProps, Manag
238240
if (failures) {
239241
toastNotifications.addDanger(
240242
`Failed to remove policy from ${failedIndices
241-
.map(failedIndex => `[${failedIndex.indexName}, ${failedIndex.reason}]`)
243+
.map((failedIndex) => `[${failedIndex.indexName}, ${failedIndex.reason}]`)
242244
.join(", ")}`
243245
);
244246
}
@@ -345,7 +347,7 @@ export default class ManagedIndices extends Component<ManagedIndicesProps, Manag
345347
selectedItems.length === 1 ? `policy from ${selectedItems[0].index}` : `policies from ${selectedItems.length} indices`
346348
} permanently? This action cannot be undone.`,
347349
actionMessage: "Remove",
348-
onAction: () => this.onClickRemovePolicy(selectedItems.map(item => item.index)),
350+
onAction: () => this.onClickRemovePolicy(selectedItems.map((item) => item.index)),
349351
}),
350352
},
351353
},

public/pages/ManagedIndices/containers/ManagedIndices/__snapshots__/ManagedIndices.test.tsx.snap

+2-2
Original file line numberDiff line numberDiff line change
@@ -459,9 +459,9 @@ exports[`<ManagedIndices /> spec renders the component 1`] = `
459459
>
460460
<span
461461
class="euiTableCellContent__text"
462-
title="Status"
462+
title="Job Status"
463463
>
464-
Status
464+
Job Status
465465
</span>
466466
</div>
467467
</th>

public/pages/ManagedIndices/models/interfaces.ts

-12
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,3 @@ export interface ManagedIndicesQueryParams {
2323
sortField: keyof ManagedIndexItem;
2424
sortDirection: Direction;
2525
}
26-
27-
export interface Actions {
28-
[action: string]: string;
29-
30-
rollover: string;
31-
delete: string;
32-
open: string;
33-
close: string;
34-
transition: string;
35-
read_only: string;
36-
read_write: string;
37-
}

public/pages/ManagedIndices/utils/constants.ts

+1-14
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* permissions and limitations under the License.
1414
*/
1515

16-
import { Actions, ManagedIndicesQueryParams } from "../models/interfaces";
16+
import { ManagedIndicesQueryParams } from "../models/interfaces";
1717

1818
export const DEFAULT_PAGE_SIZE_OPTIONS = [5, 10, 20, 50];
1919
export const DEFAULT_QUERY_PARAMS: ManagedIndicesQueryParams = {
@@ -23,16 +23,3 @@ export const DEFAULT_QUERY_PARAMS: ManagedIndicesQueryParams = {
2323
sortField: "index",
2424
sortDirection: "desc",
2525
};
26-
27-
export const ACTIONS: Actions = {
28-
rollover: "Rollover",
29-
delete: "Delete",
30-
transition: "Transition",
31-
open: "Open",
32-
close: "Close",
33-
read_only: "Read only",
34-
read_write: "Read write",
35-
replica_count: "Replica count",
36-
notification: "Notification",
37-
force_merge: "Force merge",
38-
};

public/services/IndexService.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export default class IndexService {
2727
}
2828

2929
getIndices = async (queryParamsString: string): Promise<ServerResponse<GetIndicesResponse>> => {
30-
const url = `..${NODE_API._INDICES}?${queryParamsString}`;
30+
let url = `..${NODE_API._INDICES}`;
31+
if (queryParamsString) url += `?${queryParamsString}`;
3132
const response = (await this.httpClient.get(url)) as IHttpResponse<ServerResponse<GetIndicesResponse>>;
3233
return response.data;
3334
};
@@ -47,14 +48,12 @@ export default class IndexService {
4748
};
4849

4950
searchPolicies = async (searchValue: string, source: boolean = false): Promise<ServerResponse<SearchResponse<any>>> => {
51+
const str = searchValue.trim();
5052
const mustQuery = {
5153
query_string: {
5254
default_field: "policy.policy_id",
5355
default_operator: "AND",
54-
query: `*${searchValue
55-
.trim()
56-
.split(" ")
57-
.join("* *")}*`,
56+
query: str ? `*${str.split(" ").join("* *")}*` : "*",
5857
},
5958
};
6059
const body = {

public/services/ManagedIndexService.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ export default class ManagedIndexService {
3636
};
3737

3838
getManagedIndices = async (queryParamsString: string): Promise<ServerResponse<GetManagedIndicesResponse>> => {
39-
const response = (await this.httpClient.get(`..${NODE_API.MANAGED_INDICES}?${queryParamsString}`)) as IHttpResponse<
40-
ServerResponse<GetManagedIndicesResponse>
41-
>;
39+
let url = `..${NODE_API.MANAGED_INDICES}`;
40+
if (queryParamsString) url += `?${queryParamsString}`;
41+
const response = (await this.httpClient.get(url)) as IHttpResponse<ServerResponse<GetManagedIndicesResponse>>;
4242
return response.data;
4343
};
4444

public/services/PolicyService.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe("PolicyService spec", () => {
4545
await policyService.putPolicy(policy, policyId);
4646

4747
expect(httpClientMock.put).toHaveBeenCalledTimes(1);
48-
expect(httpClientMock.put).toHaveBeenCalledWith(`..${NODE_API.POLICIES}/${policyId}?`, policy);
48+
expect(httpClientMock.put).toHaveBeenCalledWith(`..${NODE_API.POLICIES}/${policyId}`, policy);
4949
});
5050

5151
it("calls delete policy nodejs route when calling deletePolicy", async () => {

public/services/PolicyService.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ export default class PolicyService {
2828
}
2929

3030
getPolicies = async (queryParamsString: string): Promise<ServerResponse<GetPoliciesResponse>> => {
31-
const url = `..${NODE_API.POLICIES}?${queryParamsString}`;
31+
let url = `..${NODE_API.POLICIES}`;
32+
if (queryParamsString) url += `?${queryParamsString}`;
3233
const response = (await this.httpClient.get(url)) as IHttpResponse<ServerResponse<GetPoliciesResponse>>;
3334
return response.data;
3435
};
@@ -40,7 +41,8 @@ export default class PolicyService {
4041
primaryTerm?: number
4142
): Promise<ServerResponse<PutPolicyResponse>> => {
4243
const queryParamsString = queryString.stringify({ seqNo, primaryTerm });
43-
const url = `..${NODE_API.POLICIES}/${policyId}?${queryParamsString}`;
44+
let url = `..${NODE_API.POLICIES}/${policyId}`;
45+
if (queryParamsString) url += `?${queryParamsString}`;
4446
const response = (await this.httpClient.put(url, policy)) as IHttpResponse<ServerResponse<PutPolicyResponse>>;
4547
return response.data;
4648
};

server/services/IndexService.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,9 @@ export default class IndexService {
5454
sortField: string;
5555
sortDirection: string;
5656
};
57+
const str = search.trim();
5758
const params = {
58-
index: `*${search
59-
.trim()
60-
.split(" ")
61-
.join("* *")}*`,
59+
index: str ? `*${str.split(" ").join("* *")}*` : "*",
6260
format: "json",
6361
s: `${sortField}:${sortDirection}`,
6462
};
@@ -128,7 +126,7 @@ export default class IndexService {
128126
response: {
129127
failures: addResponse.failures,
130128
updatedIndices: addResponse.updated_indices,
131-
failedIndices: addResponse.failed_indices.map(failedIndex => ({
129+
failedIndices: addResponse.failed_indices.map((failedIndex) => ({
132130
indexName: failedIndex.index_name,
133131
indexUuid: failedIndex.index_uuid,
134132
reason: failedIndex.reason,

server/utils/helpers.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,13 @@ export function transformManagedIndexMetaData(metaData: ExplainAPIManagedIndexMe
5050
}
5151

5252
export function getMustQuery<T extends string>(field: T, search: string): MatchAllQuery | QueryStringQuery<T> {
53+
const str = search.trim();
5354
if (search.trim()) {
5455
return {
5556
query_string: {
5657
default_field: field,
5758
default_operator: "AND",
58-
query: `*${search
59-
.trim()
60-
.split(" ")
61-
.join("* *")}*`,
59+
query: str ? `*${str.split(" ").join("* *")}*` : "*",
6260
},
6361
};
6462
}

0 commit comments

Comments
 (0)