Loading .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -7,3 +7,4 @@ /mobile/src/common/constants/api.ts /mobile/%ProgramData%/Microsoft/Windows/UUS/State/_active.uusver /mobile/assets/audio_prueba.mp3 .vscode/settings.json web/src/components/admin_panel_navbar/admin_navbar.tsx +2 −2 Original line number Diff line number Diff line Loading @@ -3,14 +3,14 @@ import { faSignOut, faUser } from "@fortawesome/free-solid-svg-icons"; import { Link } from "react-router-dom"; import './assets/styles/style.css'; import { UserRole } from "../../constants/roles"; import { useAdminNavbar } from "../../hooks/useAdminNavbar"; import { useUserData } from "../../hooks/useUserData"; interface props{ windowActive: boolean; } export const AdminPanelNavBar = ({windowActive}:props) => { const {user, handleLogout, setToggle, toggle, userData} = useAdminNavbar(); const {user, handleLogout, setToggle, toggle, userData} = useUserData(); if(!user ){ return null; Loading web/src/components/admin_panel_places/admin_panel_place_list/admin_panel_place_list.tsx 0 → 100644 +42 −0 Original line number Diff line number Diff line import DataTable, { TableColumn } from 'react-data-table-component'; import { usePlace } from '../../../hooks/usePlace'; import './assets/css/styles.css'; import { Place } from '../../../infraestructure/entities/place'; import { LoadingSpinner } from '../../loading_spinner/loading_spinner'; interface props{ idTown: number; } export const AdminPanelPlaceList = ({idTown}: props) => { const { placeList, pending } = usePlace(idTown); const columns : TableColumn<Place>[] = [ { name: "Identificador", selector: row => row.idPlace || 0 }, { name: "Nombre", selector: row => row.name, sortable: true }, { name: "Estado", selector: row => row.available } ]; return ( <div className="place_list_cnt"> <DataTable noDataComponent="No hay lugares que mostrar" progressPending={pending} progressComponent={ <LoadingSpinner style={{display: 'flex'}}/> } columns={columns} data={placeList} selectableRows className="data_table"/> </div> ); } No newline at end of file web/src/components/sa_panel_town/sa_panel_town_list/sa_panel_town_list_element/assets/css/styles.css→web/src/components/admin_panel_places/admin_panel_place_list/assets/css/styles.css +7 −1 Original line number Diff line number Diff line .town_list_table { .place_list_cnt{ display: flex; height: 100%; width: 100%; } .data_table{ height: 100%; } Loading web/src/components/admin_panel_places/admin_panel_place_register/admin_panel_place_register.tsx +6 −63 Original line number Diff line number Diff line Loading @@ -3,18 +3,19 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Dispatch, SetStateAction} from "react"; import "./assets/css/styles.css"; import { MapComponent } from "../../map/map"; import { usePlaceRegister } from "../../../hooks/usePlaceRegister"; import { usePlace } from "../../../hooks/usePlace"; import { languaguesList } from "../../../constants/languages"; import { ToastContainer, toast } from "react-toastify"; import { LoadingScreen } from "../../loading_screen/loading_screen"; import { MultipleImagesDropzone } from "../../multiple_images_dropzone/multiple_images_dropzone"; import { AvailableDays, availableDaysList } from "../../../infraestructure/entities/place"; interface props { setIsWindowActive: Dispatch<SetStateAction<boolean>>; idTown: number; forceRenderList: () => void; } export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { export const AdminPanelPlaceRegister = ({setIsWindowActive, idTown, forceRenderList}: props) => { const { register, handleSubmit, Loading @@ -26,14 +27,11 @@ export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { setDescriptions, setLanguageDescriptionIndexSelected, isLoading, statesList, updateTownsList, townsList, updateTimeForm, availableDays, setAvailableDays, resetField, } = usePlaceRegister(); } = usePlace(idTown, forceRenderList, setIsWindowActive); return ( <div className="place_register_wrap"> Loading Loading @@ -166,53 +164,6 @@ export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { <p className="error">{errors.available?.message || errors.startDate?.message || errors.endDate?.message}</p> </div> <div className="input"> <div className="input_header"> Pueblo mágico al que pertenece el lugar </div> <div className="town_select_cnt"> <div> Estado <select name="state_select" onChange={(event) => { updateTownsList(Number(event.target.value), event.target.options[event.target.selectedIndex].text); }} > {statesList === null || statesList.length===0 ? <option disabled defaultValue="" value="">No hay estados</option> : <> <option disabled selected value="">Selecciona el estado</option> {statesList.map((state, index) => { return ( <option key={state.stateId} value={state.stateId}>{state.name}</option> ); })} </> } </select> </div> <div> Pueblo mágico <select {...register("idTown")}> { townsList === null || townsList.length===0 ? <option disabled defaultValue="" value="">No hay pueblos</option> : townsList.map((towns) => { return ( <option key={towns.idTown} value={towns.idTown}>{towns.name}</option> ); }) } </select> </div> </div> <p className="error">{errors.idTown?.message}</p> </div> <MultipleImagesDropzone setValue={setValue}/> <p className="error">{errors.imagesList?.message}</p> <input type="submit"/> Loading @@ -227,14 +178,6 @@ export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { <p className="error">{errors.latitude?.message}</p> </div> </div> <ToastContainer position='bottom-right' autoClose = {1000} hideProgressBar = {true} closeOnClick rtl={false} pauseOnFocusLoss /> </form> </div> </div> Loading Loading
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -7,3 +7,4 @@ /mobile/src/common/constants/api.ts /mobile/%ProgramData%/Microsoft/Windows/UUS/State/_active.uusver /mobile/assets/audio_prueba.mp3 .vscode/settings.json
web/src/components/admin_panel_navbar/admin_navbar.tsx +2 −2 Original line number Diff line number Diff line Loading @@ -3,14 +3,14 @@ import { faSignOut, faUser } from "@fortawesome/free-solid-svg-icons"; import { Link } from "react-router-dom"; import './assets/styles/style.css'; import { UserRole } from "../../constants/roles"; import { useAdminNavbar } from "../../hooks/useAdminNavbar"; import { useUserData } from "../../hooks/useUserData"; interface props{ windowActive: boolean; } export const AdminPanelNavBar = ({windowActive}:props) => { const {user, handleLogout, setToggle, toggle, userData} = useAdminNavbar(); const {user, handleLogout, setToggle, toggle, userData} = useUserData(); if(!user ){ return null; Loading
web/src/components/admin_panel_places/admin_panel_place_list/admin_panel_place_list.tsx 0 → 100644 +42 −0 Original line number Diff line number Diff line import DataTable, { TableColumn } from 'react-data-table-component'; import { usePlace } from '../../../hooks/usePlace'; import './assets/css/styles.css'; import { Place } from '../../../infraestructure/entities/place'; import { LoadingSpinner } from '../../loading_spinner/loading_spinner'; interface props{ idTown: number; } export const AdminPanelPlaceList = ({idTown}: props) => { const { placeList, pending } = usePlace(idTown); const columns : TableColumn<Place>[] = [ { name: "Identificador", selector: row => row.idPlace || 0 }, { name: "Nombre", selector: row => row.name, sortable: true }, { name: "Estado", selector: row => row.available } ]; return ( <div className="place_list_cnt"> <DataTable noDataComponent="No hay lugares que mostrar" progressPending={pending} progressComponent={ <LoadingSpinner style={{display: 'flex'}}/> } columns={columns} data={placeList} selectableRows className="data_table"/> </div> ); } No newline at end of file
web/src/components/sa_panel_town/sa_panel_town_list/sa_panel_town_list_element/assets/css/styles.css→web/src/components/admin_panel_places/admin_panel_place_list/assets/css/styles.css +7 −1 Original line number Diff line number Diff line .town_list_table { .place_list_cnt{ display: flex; height: 100%; width: 100%; } .data_table{ height: 100%; } Loading
web/src/components/admin_panel_places/admin_panel_place_register/admin_panel_place_register.tsx +6 −63 Original line number Diff line number Diff line Loading @@ -3,18 +3,19 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Dispatch, SetStateAction} from "react"; import "./assets/css/styles.css"; import { MapComponent } from "../../map/map"; import { usePlaceRegister } from "../../../hooks/usePlaceRegister"; import { usePlace } from "../../../hooks/usePlace"; import { languaguesList } from "../../../constants/languages"; import { ToastContainer, toast } from "react-toastify"; import { LoadingScreen } from "../../loading_screen/loading_screen"; import { MultipleImagesDropzone } from "../../multiple_images_dropzone/multiple_images_dropzone"; import { AvailableDays, availableDaysList } from "../../../infraestructure/entities/place"; interface props { setIsWindowActive: Dispatch<SetStateAction<boolean>>; idTown: number; forceRenderList: () => void; } export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { export const AdminPanelPlaceRegister = ({setIsWindowActive, idTown, forceRenderList}: props) => { const { register, handleSubmit, Loading @@ -26,14 +27,11 @@ export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { setDescriptions, setLanguageDescriptionIndexSelected, isLoading, statesList, updateTownsList, townsList, updateTimeForm, availableDays, setAvailableDays, resetField, } = usePlaceRegister(); } = usePlace(idTown, forceRenderList, setIsWindowActive); return ( <div className="place_register_wrap"> Loading Loading @@ -166,53 +164,6 @@ export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { <p className="error">{errors.available?.message || errors.startDate?.message || errors.endDate?.message}</p> </div> <div className="input"> <div className="input_header"> Pueblo mágico al que pertenece el lugar </div> <div className="town_select_cnt"> <div> Estado <select name="state_select" onChange={(event) => { updateTownsList(Number(event.target.value), event.target.options[event.target.selectedIndex].text); }} > {statesList === null || statesList.length===0 ? <option disabled defaultValue="" value="">No hay estados</option> : <> <option disabled selected value="">Selecciona el estado</option> {statesList.map((state, index) => { return ( <option key={state.stateId} value={state.stateId}>{state.name}</option> ); })} </> } </select> </div> <div> Pueblo mágico <select {...register("idTown")}> { townsList === null || townsList.length===0 ? <option disabled defaultValue="" value="">No hay pueblos</option> : townsList.map((towns) => { return ( <option key={towns.idTown} value={towns.idTown}>{towns.name}</option> ); }) } </select> </div> </div> <p className="error">{errors.idTown?.message}</p> </div> <MultipleImagesDropzone setValue={setValue}/> <p className="error">{errors.imagesList?.message}</p> <input type="submit"/> Loading @@ -227,14 +178,6 @@ export const AdminPanelPlaceRegister = ({setIsWindowActive}: props) => { <p className="error">{errors.latitude?.message}</p> </div> </div> <ToastContainer position='bottom-right' autoClose = {1000} hideProgressBar = {true} closeOnClick rtl={false} pauseOnFocusLoss /> </form> </div> </div> Loading