Skip to content

Commit

Permalink
Ajout de nouveau component pour handle les contactPoint update et vie…
Browse files Browse the repository at this point in the history
…w, et test v1 sur Person, ajout de liens externes dans PersonsingleView/edit
  • Loading branch information
SonofaPancak committed May 6, 2024
1 parent 12ca846 commit 9bfc24b
Show file tree
Hide file tree
Showing 7 changed files with 217 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import Select2 from '@/src/common/FormElements/Select2/Select2'
import {SingleEntityMeta} from '@/src/DataTypes/Meta/components/SingleEntityMeta'
import SingleInfo from "@/DataTypes/common/layouts/SingleInfo/SingleInfo";
import SingleSaveEntityReminder from '@/src/DataTypes/common/layouts/SingleSaveEntityReminder/SingleSaveEntityReminder'
import UpdateSocialHandles from '@/src/DataTypes/common/Forms/UpdateSocialHandles/UpdateSocialHandles'

//Context
import {useAuth} from "@/src/authentification/context/auth-context";
Expand All @@ -30,6 +31,7 @@ import Icon from "@/common/widgets/Icon/Icon";
import MainImageDisplay from "@/DataTypes/common/layouts/single/defaultSections/MainImageDisplay/MainImageDisplay";
import {TYPE_TAXONOMY} from '@/src/DataTypes/Entity/Types'
import SubmitEntity from "@/DataTypes/common/Forms/SingleEdit/SubmitEntity";
import UpdateContactPoint from '@/src/DataTypes/common/Forms/UpdateContactPoint/UpdateContactPoint'


const PersonSingleEdit = ({ positiveRequestActions, ...props}) => {
Expand All @@ -50,7 +52,8 @@ const PersonSingleEdit = ({ positiveRequestActions, ...props}) => {
type,
fullName,
createdAt,
equipment,
contactPoint,
url,
updatedAt
} = props?.data;

Expand Down Expand Up @@ -142,7 +145,15 @@ const PersonSingleEdit = ({ positiveRequestActions, ...props}) => {
domains: {
value: domains ?? [],
isValid: true
}
},
contactPoint: {
value: contactPoint ?? "",
isValid: true
},
url: {
value: url ?? [],
isValid: true
},
},
//Pass a set of rules to execute a valid response of an api request
{
Expand Down Expand Up @@ -180,6 +191,14 @@ const PersonSingleEdit = ({ positiveRequestActions, ...props}) => {
}
})
: [],
contactPoint: formState.inputs.contactPoint.value,
url: formState.inputs.url.value.map(function(singleUrl){
return {
label: singleUrl.value.label.value,
url: singleUrl.value.url.value,
subMeta: { order : singleUrl.order }
}
}),
meta: getDefaultUpdateEntityMeta(auth.user, model.meta.requestedBy),
}
};
Expand Down Expand Up @@ -308,22 +327,42 @@ const PersonSingleEdit = ({ positiveRequestActions, ...props}) => {
)

const contentColumnRight = (
<SingleInfo
title={lang.Domains}
>
<Select2
name="domains"
//label={lang.Domains}
formTools={formTools}
creatable={true}
modalType={TYPE_TAXONOMY}
isMulti={true}
fetch={"/taxonomies/list"}
requestData={{category:"domains", name:""}}
searchField={"name"}
selectField={"domains"}
/>
</SingleInfo>
<>
<SingleInfo title={lang.contactInformations}>
<UpdateContactPoint
formTools={formTools}
name="contactPoint"
model={model}
/>

</SingleInfo>
<SingleInfo title={lang.Domains}>
<Select2
name="domains"
//label={lang.Domains}
formTools={formTools}
creatable={true}
modalType={TYPE_TAXONOMY}
isMulti={true}
fetch={"/taxonomies/list"}
requestData={{category:"domains", name:""}}
searchField={"name"}
selectField={"domains"}
/>
</SingleInfo>

<SingleInfo
title={lang.externalLinks}
>
{ /* Url */}
<UpdateSocialHandles
name="url"
label={lang.url}
parentEntity={model}
formTools={formTools}
/>
</SingleInfo>
</>
)

const Footer = (
Expand Down
25 changes: 22 additions & 3 deletions src/DataTypes/Person/components/layouts/single/PersonSingleView.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import SingleBase from "@/src/DataTypes/common/layouts/single/SingleBase"
import SingleBaseHeader from "@/src/DataTypes/common/layouts/single/defaultSections/SingleBaseHeader"
import SearchTag from '@/src/common/Components/SearchTag';
import SingleInfo from "@/DataTypes/common/layouts/SingleInfo/SingleInfo";
import SingleBaseProgressBar
from '@/src/DataTypes/common/layouts/single/defaultSections/SingleBaseProgressBar/SingleBaseProgressBar'
import SingleBaseProgressBar from '@/src/DataTypes/common/layouts/single/defaultSections/SingleBaseProgressBar/SingleBaseProgressBar'
import SocialHandleDisplay from '@/src/DataTypes/common/layouts/SocialHandlesViews/SocialHandleDisplay';
//Styling

//Utils
Expand All @@ -17,6 +17,7 @@ import Person from "@/DataTypes/Person/models/Person";
import EntitiesTagGrid from "@/DataTypes/Entity/layouts/EntitiesTagGrid";
import {SkillGroup} from "@/DataTypes/common/layouts/skillsGroup/SkillGroup";
import {removeTagsFromString} from '@/src/helpers/html'
import { ContactPointView } from '@/src/DataTypes/common/layouts/ContactPointView/ContactPointView';


const PersonSingleView = ({ data }) => {
Expand All @@ -38,7 +39,9 @@ const PersonSingleView = ({ data }) => {
mainImage,
organisations,
projects,
events
events,
contactPoint,
url
} = data;

//To display occupations in the proper order
Expand Down Expand Up @@ -157,6 +160,15 @@ const PersonSingleView = ({ data }) => {

const ContentColumnRight = (
<>
{/* Contact information */}
<SingleInfo
title={lang.organisationContact}
cardLayout
>
<ContactPointView
contact={model.contactPoint}
/>
</SingleInfo>
{domains.length > 0 &&
<SingleInfo
title={lang.Domains}
Expand All @@ -170,6 +182,13 @@ const PersonSingleView = ({ data }) => {
/>
</SingleInfo>
}
{/* Url */}
{ model && model?.url &&
<SocialHandleDisplay
title={lang.externalLinks}
url={model?.url}
/>
}
</>
)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import React, { useEffect } from 'react';

//context
import { lang } from '@/src/common/Data/GlobalConstants';

//components
import Input from '@/src/common/FormElements/Input/Input';
import { useFormUtils } from '@/src/hooks/useFormUtils/useFormUtils';


const UpdateContactPoint = ({model, name, formTools, ...props}) => {

const contactFormUtils = useFormUtils(
{
tel: {
value: model.contactPoint?.tel?.num ?? "",
isValid: true
},
ext: {
value: model.contactPoint?.tel?.ext ?? "",
isValid: true
},
email: {
value: model.contactPoint?.email?.address ?? "",
isValid: true
},
website: {
value: model.contactPoint?.website?.url ?? "",
isValid: true
},
},
//Pass a set of rules to execute a valid response of an api request
{
displayResMessage: true,
}
)

//Update the main form state
const { inputHandler } = formTools;
useEffect( () => {
inputHandler(name,
{
tel: {
num: contactFormUtils.formState.inputs.tel.value ?? "",
ext: contactFormUtils.formState.inputs.ext.value ?? "",
},
email: {
address: contactFormUtils.formState.inputs.email.value ?? "",
},
website: {
url: contactFormUtils.formState.inputs.website.value ?? "",
},

}, true)
},[contactFormUtils.formState.inputs])

return (
<>
<div className="row">
<Input
className="col py-2"
name="tel"
label={lang.phoneNumber}
formTools={contactFormUtils.formTools}
/>
<Input
className="col py-2"
name="ext"
label={lang.phoneExtension}
formTools={contactFormUtils.formTools}
/>
</div>
<Input
className="py-2"
name="email"
label={lang.email}
formTools={contactFormUtils.formTools}
/>
<Input
className="py-2"
name="website"
label={lang.website}
formTools={contactFormUtils.formTools}
/>
</>
)
};


export default UpdateContactPoint;
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import Button from "@/FormElements/Button/Button"
import Input from '@/src/common/FormElements/Input/Input';
import Repeater from '@/src/common/FormElements/Repeater/Repeater';
import {TYPE_TAXONOMY} from '@/src/DataTypes/Entity/Types';
import {lang} from '@/src/common/Data/GlobalConstants';


const UpdateSkillGroup = ({parentEntity, name, formTools, labelInput, labelSelect, ...props}) => {
Expand Down
34 changes: 34 additions & 0 deletions src/DataTypes/common/layouts/ContactPointView/ContactPointView.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { lang } from "@/src/common/Data/GlobalConstants";

const ContactPointView = ({contact, ...props}) => {
const {tel, email, website} = contact;

const telSection = tel.num !== "" && (
<article className={`d-flex flex-column p-2 mb-2`}>
<h5 className="text-dark mb-2">{lang.phoneNumber}</h5>
{tel.num}{tel.ext !== "" && `#${tel.ext}`}
</article>
)
const emailAddressSection = email.address !== "" && (
<article className={`d-flex flex-column p-2 mb-2`}>
<h5 className="text-dark mb-2">{lang.email}</h5>
{email.address}
</article>
)
const websiteUrlSection = website.url !== "" && (
<article className={`d-flex flex-column p-2 mb-2`}>
<h5 className="text-dark mb-2">{lang.website}</h5>
{website.url}
</article>
)
return (
<>
{telSection}
{emailAddressSection}
{websiteUrlSection}

</>
)
}

export {ContactPointView}
8 changes: 7 additions & 1 deletion src/languages/en-ca/base.js
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,15 @@ export const base = {

//Button
"apply" : "Apply",
"report": "Report",

//Contact us
"message": "Message",
"email": "Email address",
"sendMessage": "Send message"
"sendMessage": "Send message",

//contactPoint
"website": "Website",
"phoneNumber": "Phone",
"phoneExtension": "Extension"
}
8 changes: 7 additions & 1 deletion src/languages/fr-ca/base.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,10 +133,16 @@ const base = {

//Button
"apply" : "Appliquer",
"report": "Signaler",

//Contact us
"message": "Message",
"email": "Adresse courriel",
"sendMessage": "Envoyer le message"
"sendMessage": "Envoyer le message",

//contactPoint
"website": "Site internet",
"phoneNumber": "Téléphone",
"phoneExtension": "Poste"
}
exports.base = base;

0 comments on commit 9bfc24b

Please sign in to comment.