mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-17 13:20:31 +00:00
feat: add empty status & fix edit project.
This commit is contained in:
@@ -3,6 +3,7 @@ import React from 'react';
|
||||
import moment from 'moment';
|
||||
import intl from 'react-intl-universal';
|
||||
import { Formik } from 'formik';
|
||||
import { Intent } from '@blueprintjs/core';
|
||||
import { AppToaster } from 'components';
|
||||
import ProjectFormContent from './ProjectFormContent';
|
||||
import { CreateProjectFormSchema } from './ProjectForm.schema';
|
||||
|
||||
@@ -65,6 +65,7 @@ function ProjectFormFields() {
|
||||
<FFormGroup
|
||||
label={intl.get('projects.dialog.project_name')}
|
||||
name={'name'}
|
||||
labelInfo={<FieldRequiredHint />}
|
||||
>
|
||||
<FInputGroup name="name" />
|
||||
</FFormGroup>
|
||||
@@ -96,6 +97,7 @@ function ProjectFormFields() {
|
||||
<FFormGroup
|
||||
name={'cost_estimate'}
|
||||
label={intl.get('projects.dialog.cost_estimate')}
|
||||
labelInfo={<FieldRequiredHint />}
|
||||
>
|
||||
<ControlGroup>
|
||||
<InputPrependText text={'USD'} />
|
||||
|
||||
@@ -6,6 +6,7 @@ import { DataTable } from 'components';
|
||||
import { TABLES } from 'common/tables';
|
||||
import TableSkeletonRows from 'components/Datatable/TableSkeletonRows';
|
||||
import TableSkeletonHeader from 'components/Datatable/TableHeaderSkeleton';
|
||||
import ProjectsEmptyStatus from './ProjectsEmptyStatus';
|
||||
import { useProjectsListContext } from './ProjectsListProvider';
|
||||
import { useMemorizedColumnsWidths } from 'hooks';
|
||||
import { useProjectsListColumns, ActionsMenu } from './components';
|
||||
@@ -76,6 +77,11 @@ function ProjectsDataTable({
|
||||
});
|
||||
};
|
||||
|
||||
// Display project empty status instead of the table.
|
||||
if (isEmptyStatus) {
|
||||
return <ProjectsEmptyStatus />;
|
||||
}
|
||||
|
||||
return (
|
||||
<ProjectsTable
|
||||
columns={columns}
|
||||
@@ -97,7 +103,7 @@ function ProjectsDataTable({
|
||||
payload={{
|
||||
onViewDetails: handleViewDetailProject,
|
||||
onEdit: handleEditProject,
|
||||
onDelete:handleDeleteProject,
|
||||
onDelete: handleDeleteProject,
|
||||
onNewTask: handleNewTaskButtonClick,
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
import React from 'react';
|
||||
import { Button, Intent } from '@blueprintjs/core';
|
||||
import { EmptyStatus, FormattedMessage as T } from 'components';
|
||||
import withDialogActions from 'containers/Dialog/withDialogActions';
|
||||
|
||||
import { compose } from 'utils';
|
||||
|
||||
function ProjectsEmptyStatus({
|
||||
// #withDialogActions
|
||||
openDialog,
|
||||
}) {
|
||||
// Handle new project button click.
|
||||
const handleNewProjectClick = () => {
|
||||
openDialog('project-form', {});
|
||||
};
|
||||
|
||||
return (
|
||||
<EmptyStatus
|
||||
title={<T id="projects.empty_status.title" />}
|
||||
description={
|
||||
<p>
|
||||
<T id="projects.empty_status.description" />
|
||||
</p>
|
||||
}
|
||||
action={
|
||||
<React.Fragment>
|
||||
<Button
|
||||
intent={Intent.PRIMARY}
|
||||
large={true}
|
||||
onClick={handleNewProjectClick}
|
||||
>
|
||||
<T id="projects.empty_status.action" />
|
||||
</Button>
|
||||
<Button intent={Intent.NONE} large={true}>
|
||||
<T id={'learn_more'} />
|
||||
</Button>
|
||||
</React.Fragment>
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default compose(withDialogActions)(ProjectsEmptyStatus);
|
||||
@@ -84,7 +84,7 @@ export function useProject(projectId, props, requestProps) {
|
||||
[t.PROJECT, projectId],
|
||||
{ method: 'get', url: `projects/${projectId}`, ...requestProps },
|
||||
{
|
||||
select: (res) => res.data.projects,
|
||||
select: (res) => res.data.project,
|
||||
defaultData: {},
|
||||
...props,
|
||||
},
|
||||
|
||||
@@ -2061,6 +2061,9 @@
|
||||
"projects.dialog.edit_success_message": "The project has been edited successfully.",
|
||||
"projects.alert.delete_message": "The deleted project has been deleted successfully.",
|
||||
"projects.alert.once_delete_this_project": "Once you delete this project, you won't be able to restore it later. Are you sure you want to delete this project?",
|
||||
"projects.empty_status.title":"",
|
||||
"projects.empty_status.description":"",
|
||||
"projects.empty_status.action":"New Project",
|
||||
"project_task.dialog.new_task": "New Task",
|
||||
"project_task.dialog.task_name": "Task Name",
|
||||
"project_task.dialog.estimated_hours": "Estimate Hours",
|
||||
|
||||
Reference in New Issue
Block a user