ソースを参照

Added title to file entity

FE_dev
bronjaermin 3年前
コミット
fa6a174e75

+ 28
- 28
src/AppRoutes.js ファイルの表示

import { useLocation } from "react-router-dom"; import { useLocation } from "react-router-dom";


import { import {
ADS_PAGE,
AD_DETAILS_PAGE,
// ADS_PAGE,
// AD_DETAILS_PAGE,
FORGOT_PASSWORD_PAGE, FORGOT_PASSWORD_PAGE,
FORGOT_PASSWORD_CONFIRMATION_PAGE, FORGOT_PASSWORD_CONFIRMATION_PAGE,
NOT_FOUND_PAGE, NOT_FOUND_PAGE,
BASE_PAGE, BASE_PAGE,
RESET_PASSWORD_PAGE, RESET_PASSWORD_PAGE,
USERS_PAGE, USERS_PAGE,
CANDIDATES_PAGE,
// CANDIDATES_PAGE,
USER_DETAILS_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, REGISTER_PAGE,
CREATE_AD_PAGE,
// CREATE_AD_PAGE,
FILES_PAGE, FILES_PAGE,
FILES_VIEW_PAGE, FILES_VIEW_PAGE,
} from "./constants/pages"; } from "./constants/pages";


import LoginPage from "./pages/LoginPage/LoginPageMUI"; 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 NotFoundPage from "./pages/ErrorPages/NotFoundPage";
import ErrorPage from "./pages/ErrorPages/ErrorPage"; import ErrorPage from "./pages/ErrorPages/ErrorPage";
import ForgotPasswordPage from "./pages/ForgotPasswordPage/ForgotPasswordPageMUI"; import ForgotPasswordPage from "./pages/ForgotPasswordPage/ForgotPasswordPageMUI";
import ForgotPasswordConfirmationPage from "./pages/ForgotPasswordPage/ForgotPasswordConfirmationPageMUI"; import ForgotPasswordConfirmationPage from "./pages/ForgotPasswordPage/ForgotPasswordConfirmationPageMUI";
import ResetPasswordPage from "./pages/ForgotPasswordPage/ResetPasswordPageMUI"; import ResetPasswordPage from "./pages/ForgotPasswordPage/ResetPasswordPageMUI";
import UsersPage from "./pages/UsersPage/UsersPage"; 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 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 RegisterPage from "./pages/RegisterPage/RegisterPage";
import CreateAdPage from "./pages/AdsPage/CreateAdPage";
// import CreateAdPage from "./pages/AdsPage/CreateAdPage";
import FilesPage from "./pages/FilesPage/FilesPage"; import FilesPage from "./pages/FilesPage/FilesPage";
import FilesViewPage from "./pages/FilesPage/FilesViewPage"; import FilesViewPage from "./pages/FilesPage/FilesViewPage";


/> />
<Route exact path={REGISTER_PAGE} component={RegisterPage} /> <Route exact path={REGISTER_PAGE} component={RegisterPage} />
<Route path={RESET_PASSWORD_PAGE} component={ResetPasswordPage} /> <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={USER_DETAILS_PAGE} component={UserDetails} />
<PrivateRoute exact path={USERS_PAGE} component={UsersPage} /> <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_PAGE} component={FilesPage} />
<PrivateRoute exact path={FILES_VIEW_PAGE} component={FilesViewPage} /> <PrivateRoute exact path={FILES_VIEW_PAGE} component={FilesViewPage} />
<PrivateRoute
{/* <PrivateRoute
exact exact
path={CANDIDATES_DETAILS_PAGE} path={CANDIDATES_DETAILS_PAGE}
component={CandidateDetailsPage} component={CandidateDetailsPage}
/> />
<PrivateRoute exact path={PATTERNS_PAGE} component={PatternsPage} /> <PrivateRoute exact path={PATTERNS_PAGE} component={PatternsPage} />
<PrivateRoute exact path={SCHEDULE_PAGE} component={SchedulePage} /> <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} /> <Redirect from="*" to={NOT_FOUND_PAGE} />
</Switch> </Switch>
); );

+ 10
- 0
src/assets/styles/components/_files.scss ファイルの表示

margin-bottom: 1rem; 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 { .files-page-card-content-checkboxes {
padding: 0 9px !important; padding: 0 9px !important;
display: flex; display: flex;


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

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

+ 0
- 6
src/components/MUI/NavbarComponent.js ファイルの表示



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

+ 22
- 5
src/pages/FilesPage/FilesPage.js ファイルの表示

const FilesPage = () => { const FilesPage = () => {
const [dropzoneActive, setDropzoneActive] = useState(false); const [dropzoneActive, setDropzoneActive] = useState(false);
const [pdfFile, setPdfFile] = useState(null); const [pdfFile, setPdfFile] = useState(null);
const [title, setTitle] = useState("");
const dispatch = useDispatch(); const dispatch = useDispatch();
const categories = useSelector(selectCategories); const categories = useSelector(selectCategories);
const tags = useSelector(selectTags); const tags = useSelector(selectTags);
}, []); }, []);


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


const handleDrop = (e) => { const handleDrop = (e) => {
e.preventDefault(); e.preventDefault();


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


return ( return (
<div className="files-page"> <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">
<div className="files-page-card-title"> <div className="files-page-card-title">
<h1>Categories</h1> <h1>Categories</h1>
<Select <Select
labelId="files-page-card-content-select" labelId="files-page-card-content-select"
id="files-page-card-content-selectt" id="files-page-card-content-selectt"
sx={{ width: "100%" }}
sx={{ width: "100%", borderColor: "#e4e4e4 !important" }}
onChange={selectCategoryHandler} onChange={selectCategoryHandler}
value={selectedCategory} value={selectedCategory}
> >

+ 7
- 1
src/pages/FilesPage/FilesViewPage.js ファイルの表示

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

+ 1
- 0
src/store/saga/filesSaga.js ファイルの表示

const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN);
yield call(addHeaderToken, JwtToken); yield call(addHeaderToken, JwtToken);
const formData = new FormData(); const formData = new FormData();
formData.append("title", payload.title);
formData.append("categoryId", payload.categoryId); formData.append("categoryId", payload.categoryId);
for (let i = 0; i < payload.tagsIds.length; i++) for (let i = 0; i < payload.tagsIds.length; i++)
formData.append("tagsIds[]", payload.tagsIds[i]); formData.append("tagsIds[]", payload.tagsIds[i]);

読み込み中…
キャンセル
保存