Преглед на файлове

Added title to file entity

FE_dev
bronjaermin преди 3 години
родител
ревизия
fa6a174e75

+ 28
- 28
src/AppRoutes.js Целия файл

@@ -5,8 +5,8 @@ import { refreshUserToken } from "./store/actions/login/loginActions";
import { useLocation } from "react-router-dom";

import {
ADS_PAGE,
AD_DETAILS_PAGE,
// ADS_PAGE,
// AD_DETAILS_PAGE,
FORGOT_PASSWORD_PAGE,
FORGOT_PASSWORD_CONFIRMATION_PAGE,
NOT_FOUND_PAGE,
@@ -14,23 +14,23 @@ import {
BASE_PAGE,
RESET_PASSWORD_PAGE,
USERS_PAGE,
CANDIDATES_PAGE,
// CANDIDATES_PAGE,
USER_DETAILS_PAGE,
CANDIDATES_DETAILS_PAGE,
SELECTION_PROCESS_PAGE,
SELECTION_PROCESS_OF_APPLICANT_PAGE,
PATTERNS_PAGE,
PATTERN_DETAILS_PAGE,
SCHEDULE_PAGE,
STATS_PAGE,
// CANDIDATES_DETAILS_PAGE,
// SELECTION_PROCESS_PAGE,
// SELECTION_PROCESS_OF_APPLICANT_PAGE,
// PATTERNS_PAGE,
// PATTERN_DETAILS_PAGE,
// SCHEDULE_PAGE,
// STATS_PAGE,
REGISTER_PAGE,
CREATE_AD_PAGE,
// CREATE_AD_PAGE,
FILES_PAGE,
FILES_VIEW_PAGE,
} from "./constants/pages";

import LoginPage from "./pages/LoginPage/LoginPageMUI";
import AdsPage from "./pages/AdsPage/AdsPage";
// import AdsPage from "./pages/AdsPage/AdsPage";
import NotFoundPage from "./pages/ErrorPages/NotFoundPage";
import ErrorPage from "./pages/ErrorPages/ErrorPage";
import ForgotPasswordPage from "./pages/ForgotPasswordPage/ForgotPasswordPageMUI";
@@ -38,18 +38,18 @@ import PrivateRoute from "./components/Router/PrivateRoute";
import ForgotPasswordConfirmationPage from "./pages/ForgotPasswordPage/ForgotPasswordConfirmationPageMUI";
import ResetPasswordPage from "./pages/ForgotPasswordPage/ResetPasswordPageMUI";
import UsersPage from "./pages/UsersPage/UsersPage";
import CandidatesPage from "./pages/CandidatesPage/CandidatesPage";
import AdDetailsPage from "./pages/AdsPage/AdDetailsPage";
// import CandidatesPage from "./pages/CandidatesPage/CandidatesPage";
// import AdDetailsPage from "./pages/AdsPage/AdDetailsPage";
import UserDetails from "./pages/UsersPage/UserDetails";
import CandidateDetailsPage from "./pages/CandidatesPage/CandidateDetailsPage";
import SelectionProcessPage from "./pages/SelectionProcessPage/SelectionProcessPage";
import SelectionProcessOfApplicantPage from "./pages/SelectionProcessPage/SelectionProcessOfApplicantPage";
import PatternsPage from "./pages/PatternsPage/PatternsPage";
import PatternDetailsPage from "./pages/PatternsPage/PatternDetailsPage";
import SchedulePage from "./pages/SchedulePage/SchedulePage";
import StatsPage from "./pages/StatsPage/StatsPage";
// import CandidateDetailsPage from "./pages/CandidatesPage/CandidateDetailsPage";
// import SelectionProcessPage from "./pages/SelectionProcessPage/SelectionProcessPage";
// import SelectionProcessOfApplicantPage from "./pages/SelectionProcessPage/SelectionProcessOfApplicantPage";
// import PatternsPage from "./pages/PatternsPage/PatternsPage";
// import PatternDetailsPage from "./pages/PatternsPage/PatternDetailsPage";
// import SchedulePage from "./pages/SchedulePage/SchedulePage";
// import StatsPage from "./pages/StatsPage/StatsPage";
import RegisterPage from "./pages/RegisterPage/RegisterPage";
import CreateAdPage from "./pages/AdsPage/CreateAdPage";
// import CreateAdPage from "./pages/AdsPage/CreateAdPage";
import FilesPage from "./pages/FilesPage/FilesPage";
import FilesViewPage from "./pages/FilesPage/FilesViewPage";

@@ -77,15 +77,15 @@ const AppRoutes = () => {
/>
<Route exact path={REGISTER_PAGE} component={RegisterPage} />
<Route path={RESET_PASSWORD_PAGE} component={ResetPasswordPage} />
<PrivateRoute exact path={ADS_PAGE} component={AdsPage} />
<PrivateRoute exact path={AD_DETAILS_PAGE} component={AdDetailsPage} />
{/* <PrivateRoute exact path={ADS_PAGE} component={AdsPage} /> */}
{/* <PrivateRoute exact path={AD_DETAILS_PAGE} component={AdDetailsPage} /> */}
<PrivateRoute exact path={USER_DETAILS_PAGE} component={UserDetails} />
<PrivateRoute exact path={USERS_PAGE} component={UsersPage} />
<PrivateRoute exact path={CANDIDATES_PAGE} component={CandidatesPage} />
<PrivateRoute exact path={CREATE_AD_PAGE} component={CreateAdPage} />
{/* <PrivateRoute exact path={CANDIDATES_PAGE} component={CandidatesPage} />
<PrivateRoute exact path={CREATE_AD_PAGE} component={CreateAdPage} /> */}
<PrivateRoute exact path={FILES_PAGE} component={FilesPage} />
<PrivateRoute exact path={FILES_VIEW_PAGE} component={FilesViewPage} />
<PrivateRoute
{/* <PrivateRoute
exact
path={CANDIDATES_DETAILS_PAGE}
component={CandidateDetailsPage}
@@ -107,7 +107,7 @@ const AppRoutes = () => {
/>
<PrivateRoute exact path={PATTERNS_PAGE} component={PatternsPage} />
<PrivateRoute exact path={SCHEDULE_PAGE} component={SchedulePage} />
<PrivateRoute exact path={STATS_PAGE} component={StatsPage} />
<PrivateRoute exact path={STATS_PAGE} component={StatsPage} /> */}
<Redirect from="*" to={NOT_FOUND_PAGE} />
</Switch>
);

+ 10
- 0
src/assets/styles/components/_files.scss Целия файл

@@ -13,6 +13,12 @@
margin-bottom: 1rem;
}

.files-page-card-content input {
border: 1px solid #e4e4e4 !important;
padding: 16.5px 20px !important;
border-radius: 4px;
}

.files-page-card-content-checkboxes {
padding: 0 9px !important;
display: flex;
@@ -33,4 +39,8 @@

.files-page-drag-and-drop {
word-break: break-all !important;
}

.headingRowFiles th {
padding-right: 35px !important;
}

+ 0
- 6
src/components/MUI/NavbarComponent.js Целия файл

@@ -38,12 +38,6 @@ import en from "../../assets/images/en.png";

const NavbarComponent = () => {
const navItems = [
"ads",
"selectionFlow",
"candidates",
"schedule",
"patterns",
"statistics",
"users",
"files",
"filesView",

+ 22
- 5
src/pages/FilesPage/FilesPage.js Целия файл

@@ -18,6 +18,7 @@ import { uploadFileReq } from "../../store/actions/uploadFile/uploadFileActions"
const FilesPage = () => {
const [dropzoneActive, setDropzoneActive] = useState(false);
const [pdfFile, setPdfFile] = useState(null);
const [title, setTitle] = useState("");
const dispatch = useDispatch();
const categories = useSelector(selectCategories);
const tags = useSelector(selectTags);
@@ -30,9 +31,9 @@ const FilesPage = () => {
}, []);

const onSuccessUploadFile = () => {
dispatch(resetIsCheckedTagsValue())
setPdfFile(null)
}
dispatch(resetIsCheckedTagsValue());
setPdfFile(null);
};

const handleDrop = (e) => {
e.preventDefault();
@@ -60,16 +61,32 @@ const FilesPage = () => {

dispatch(
uploadFileReq({
title,
categoryId: selectedCategory,
tagsIds,
fileToUpload: pdfFile,
onSuccessUploadFile
onSuccessUploadFile,
})
);
};

return (
<div className="files-page">
<div className="files-page-card">
<div className="files-page-card-title">
<h1>Title</h1>
</div>
<div className="files-page-card-content">
<input
type="text"
className="create-ad-form-control-first-step-input"
onChange={(e) => setTitle(e.target.value)}
value={title}
placeholder="Document Title"
/>
</div>
</div>

<div className="files-page-card">
<div className="files-page-card-title">
<h1>Categories</h1>
@@ -78,7 +95,7 @@ const FilesPage = () => {
<Select
labelId="files-page-card-content-select"
id="files-page-card-content-selectt"
sx={{ width: "100%" }}
sx={{ width: "100%", borderColor: "#e4e4e4 !important" }}
onChange={selectCategoryHandler}
value={selectedCategory}
>

+ 7
- 1
src/pages/FilesPage/FilesViewPage.js Целия файл

@@ -128,10 +128,15 @@ const FilesViewPage = () => {
} // style={{ width: "893.56px" }}
>
<thead>
<tr className="headingRow">
<tr className="headingRow headingRowFiles">
<th>
{/* {t("users.fullName")} */}
{/* Document name */}
Putanja dokumenta
</th>
<th>
{/* {t("users.title")} */}
{/* Document name */}
Naziv dokumenta
</th>
<th>
@@ -156,6 +161,7 @@ const FilesViewPage = () => {
{data && data.data?.length > 0 && data.data?.map((n, index) => (
<tr key={index} className="secondaryRow">
<td className="docs-name">{n.fileName}</td>
<td className="docs-name">{n.title}</td>
<td>{n.file_type && n.file_type}</td>
<td className="profession">{n.cached_file_size}kB</td>
</tr>

+ 1
- 0
src/store/saga/filesSaga.js Целия файл

@@ -18,6 +18,7 @@ export function* uploadFileSaga({ payload }) {
const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN);
yield call(addHeaderToken, JwtToken);
const formData = new FormData();
formData.append("title", payload.title);
formData.append("categoryId", payload.categoryId);
for (let i = 0; i < payload.tagsIds.length; i++)
formData.append("tagsIds[]", payload.tagsIds[i]);

Loading…
Отказ
Запис