Skip to content

Commit

Permalink
Merge pull request wso2#6597 from PasinduYeshan/address-comments-pr-4175
Browse files Browse the repository at this point in the history
  • Loading branch information
pavinduLakshan authored Jul 25, 2024
2 parents 05605b9 + 7317d8e commit 62ff493
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 33 deletions.
2 changes: 1 addition & 1 deletion features/admin.claims.v1/api/claims.ts
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ export const getServerSupportedClaimsForSchema = (id: string): Promise<ServerSup
* Fetch all local claims.
*
* @param params - limit, offset, sort, attributes, filter.
*
* @returns response.
* @throws IdentityAppsApiException
*/
Expand Down
1 change: 0 additions & 1 deletion features/admin.users.v1/api/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,6 @@ export const addBulkUsers = (data: SCIMBulkEndpointInterface): Promise<any> => {
const requestConfig: RequestConfigInterface = {
data,
headers: {
"Access-Control-Allow-Origin": store.getState().config.deployment.clientHost,
"Content-Type": "application/json"
},
method: HttpMethods.POST,
Expand Down
18 changes: 7 additions & 11 deletions features/admin.users.v1/components/bulk-import-response-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
* under the License.
*/

import { AlertTitle } from "@mui/material";
import Alert from "@oxygen-ui/react/Alert";
import AlertTitle from "@oxygen-ui/react/AlertTitle";
import Tab from "@oxygen-ui/react/Tab";
import Tabs from "@oxygen-ui/react/Tabs";
import Typography from "@oxygen-ui/react/Typography";
Expand Down Expand Up @@ -59,10 +59,6 @@ interface BulkImportResponseListProps {
successAlert?: ReactElement;
}

const ALL_STATUS: string = "ALL";

type FilterStatus = BulkUserImportStatus | typeof ALL_STATUS;

/**
* Users info page.
*
Expand All @@ -84,7 +80,7 @@ export const BulkImportResponseList: React.FunctionComponent<BulkImportResponseL

const [ triggerClearQuery, setTriggerClearQuery ] = useState<boolean>(false);
const [ searchQuery, setSearchQuery ] = useState<string>("");
const [ selectedStatus, setSelectedStatus ] = useState<FilterStatus>(ALL_STATUS);
const [ selectedStatus, setSelectedStatus ] = useState<BulkUserImportStatus>(BulkUserImportStatus.ALL);
const [ filteredResponseList, setFilteredResponseList ] = useState<BulkUserImportOperationResponse[]>([]);
const [ responseOperationType, setResponseOperationType ] =
useState<BulkImportResponseOperationTypes>(BulkImportResponseOperationTypes.USER_CREATION);
Expand All @@ -99,7 +95,7 @@ export const BulkImportResponseList: React.FunctionComponent<BulkImportResponseL
const listItemLimit: number = UIConstants.DEFAULT_RESOURCE_LIST_ITEM_LIMIT;

const statusOptions: DropdownItemProps[] = [
{ key: 0, text: "All", value: ALL_STATUS },
{ key: 0, text: "All", value: BulkUserImportStatus.ALL },
{
key: 1,
text: t("user:modals.bulkImportUserWizard.wizardSummary.tableStatus.success"),
Expand Down Expand Up @@ -139,7 +135,7 @@ export const BulkImportResponseList: React.FunctionComponent<BulkImportResponseL
*/
useEffect(() => {
handleSearchQueryClear();
setSelectedStatus(ALL_STATUS);
setSelectedStatus(BulkUserImportStatus.ALL);
filterResponseListByOperationType();
}, [ responseOperationType ]);

Expand Down Expand Up @@ -238,7 +234,7 @@ export const BulkImportResponseList: React.FunctionComponent<BulkImportResponseL

filteredList = filteredList.filter((item: BulkUserImportOperationResponse) => {
if (
selectedStatus !== ALL_STATUS
selectedStatus !== BulkUserImportStatus.ALL
&& item.statusCode !== selectedStatus
) return false;

Expand All @@ -257,7 +253,7 @@ export const BulkImportResponseList: React.FunctionComponent<BulkImportResponseL
});
}

if (selectedStatus !== ALL_STATUS) {
if (selectedStatus !== BulkUserImportStatus.ALL) {
filteredList = filteredList.filter((item: BulkUserImportOperationResponse) => {
return item.statusCode === selectedStatus && item.operationType === responseOperationType;
});
Expand All @@ -283,7 +279,7 @@ export const BulkImportResponseList: React.FunctionComponent<BulkImportResponseL
};

const handleStatusDropdownChange = (event: React.MouseEvent<HTMLAnchorElement>, data: DropdownProps) => {
const newStatus: FilterStatus = data.value as FilterStatus;
const newStatus: BulkUserImportStatus = data.value as BulkUserImportStatus;

setSelectedStatus(newStatus);
setTriggerClearQuery(!triggerClearQuery);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ import {
ClaimDialect,
ExternalClaim,
HttpMethods,
IdentifiableComponentInterface,
RolesInterface,
SCIMResource,
SCIMSchemaExtension,
TestableComponentInterface
SCIMSchemaExtension
} from "@wso2is/core/models";
import { addAlert } from "@wso2is/core/store";
import {
Expand Down Expand Up @@ -99,7 +99,6 @@ import {
import {
BulkResponseSummary,
BulkUserImportOperationResponse,
BulkUserImportOperationStatus,
MultipleInviteMode,
SCIMBulkEndpointInterface,
SCIMBulkOperation,
Expand All @@ -112,10 +111,9 @@ import { BulkImportResponseList } from "../bulk-import-response-list";
/**
* Prototypes for the BulkImportUserWizardComponent.
*/
interface BulkImportUserInterface extends TestableComponentInterface {
interface BulkImportUserInterface extends IdentifiableComponentInterface {
closeWizard: () => void;
userstore: string;
["data-componentid"]?: string;
}

interface CSVAttributeMapping {
Expand Down Expand Up @@ -170,7 +168,11 @@ const FILE_IMPORT_TIMEOUT: number = 60000; // 1 minutes.
export const BulkImportUserWizard: FunctionComponent<BulkImportUserInterface> = (
props: BulkImportUserInterface
): ReactElement => {
const { closeWizard, userstore, ["data-componentid"]: componentId } = props;
const {
closeWizard,
userstore,
["data-componentid"]: componentId
} = props;

const { t } = useTranslation();
const { isSubOrganization } = useGetCurrentOrganizationType();
Expand Down Expand Up @@ -1409,7 +1411,7 @@ export const BulkImportUserWizard: FunctionComponent<BulkImportUserInterface> =
* @param statusCode - Status code from the bulk response.
* @returns - Status message.
*/
const getStatusFromCode = (statusCode: number): BulkUserImportOperationStatus => {
const getStatusFromCode = (statusCode: number): string => {
if (statusCode === 201 || statusCode === 200) return t(
"user:modals.bulkImportUserWizard.wizardSummary.tableStatus.success" );
if (statusCode === 202) return t(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ export class UserManagementConstants {

// ID of the form used in the invite parent organization user component.
public static readonly INVITE_PARENT_ORG_USER_FORM_ID: string = "invite-parent-org-user-form";
public static readonly USERNAME_REGEX_ERROR_CODE: string = "31301"
public static readonly USERNAME_REGEX_ERROR_CODE: string = "31301";

// Query param to exclude roles and groups from getUserList API call.
public static readonly GROUPS_AND_ROLES_ATTRIBUTE: string = "groups,roles";
Expand Down Expand Up @@ -237,6 +237,7 @@ export enum UserAddOptionTypes {
export enum BulkUserImportStatus {
FAILED = "FAILED",
SUCCESS = "SUCCESS",
ALL = "ALL"
}

/**
Expand Down
7 changes: 1 addition & 6 deletions features/admin.users.v1/models/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -345,17 +345,12 @@ export interface PayloadInterface {
schemas: string[];
}

/**
* Type of the bulk user import operation status.
*/
export type BulkUserImportOperationStatus = "Success" | "Failed" | "Warning";

/**
* Interface for the bulk user import operation response.
*/
export interface BulkUserImportOperationResponse {
resourceIdentifier: string;
status: BulkUserImportOperationStatus;
status: string;
message: string;
statusCode: BulkUserImportStatus;
operationType?: BulkImportResponseOperationTypes;
Expand Down
10 changes: 4 additions & 6 deletions modules/react-components/src/components/alert/wizard-alert.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* under the License.
*/

import { AlertLevels } from "@wso2is/core/models";
import { AlertLevels, IdentifiableComponentInterface } from "@wso2is/core/models";
import React, { ReactElement, useState } from "react";
import { Message } from "semantic-ui-react";

Expand All @@ -31,10 +31,6 @@ export interface WizardAlert {
level: AlertLevels;
}

interface WizardAlertProps {
["data-componentid"]?: string;
}

/**
* The type of the array returned by the `useWizardAlert` hook.
*/
Expand All @@ -51,7 +47,9 @@ type UseWizardAlertHookReturnType = [ WizardAlert, React.Dispatch<React.SetState
*
* @returns An array containing the state, setState function and the alert React element.
*/
export const useWizardAlert = (props?: WizardAlertProps): UseWizardAlertHookReturnType => {
export const useWizardAlert = (props: IdentifiableComponentInterface = {
"data-componentid": "wizard-alert"
}): UseWizardAlertHookReturnType => {

const { ["data-componentid"]: componentId } = props || { "data-componentid": "wizard-alert" };
const [ alert, setAlert ] = useState<WizardAlert>(null);
Expand Down

0 comments on commit 62ff493

Please sign in to comment.