Compare commits
No commits in common. "18926260fc4531080fb290e7a816627ade1fcc22" and "5ab302ab518c825688c4e4764602fdd13f3244e7" have entirely different histories.
18926260fc
...
5ab302ab51
@ -51,7 +51,6 @@ import {
|
|||||||
import FolderModal from "@/components/FolderModal"
|
import FolderModal from "@/components/FolderModal"
|
||||||
import type { FolderData as SDKFolderData, FolderCreated } from "@/lib/4nk/models/FolderData"
|
import type { FolderData as SDKFolderData, FolderCreated } from "@/lib/4nk/models/FolderData"
|
||||||
import { FolderPrivateFields, setDefaultFolderRoles } from "@/lib/4nk/models/FolderData"
|
import { FolderPrivateFields, setDefaultFolderRoles } from "@/lib/4nk/models/FolderData"
|
||||||
import { RhCreated, RhData, RhPrivateFields, setDefaultRhRoles } from "@/lib/4nk/models/RhData"
|
|
||||||
import AuthModal from "@/components/4nk/AuthModal"
|
import AuthModal from "@/components/4nk/AuthModal"
|
||||||
import Iframe from "@/components/4nk/Iframe"
|
import Iframe from "@/components/4nk/Iframe"
|
||||||
import MessageBus from "@/lib/4nk/MessageBus"
|
import MessageBus from "@/lib/4nk/MessageBus"
|
||||||
@ -59,6 +58,7 @@ import EventBus from "@/lib/4nk/EventBus"
|
|||||||
import UserStore from "@/lib/4nk/UserStore"
|
import UserStore from "@/lib/4nk/UserStore"
|
||||||
import ProcessesViewer from "@/components/ProcessesViewer"
|
import ProcessesViewer from "@/components/ProcessesViewer"
|
||||||
import { iframeUrl } from "@/app/page"
|
import { iframeUrl } from "@/app/page"
|
||||||
|
|
||||||
interface FolderData {
|
interface FolderData {
|
||||||
id: number
|
id: number
|
||||||
name: string
|
name: string
|
||||||
@ -356,6 +356,7 @@ export default function FoldersPage() {
|
|||||||
messageBus.isReady().then(() => {
|
messageBus.isReady().then(() => {
|
||||||
messageBus.getProcesses().then((processes: any) => {
|
messageBus.getProcesses().then((processes: any) => {
|
||||||
setProcesses(processes);
|
setProcesses(processes);
|
||||||
|
console.log('getProcesses', processes);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1026,60 +1027,17 @@ export default function FoldersPage() {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
setShowCreateFolderModal(false);
|
setShowCreateFolderModal(false);
|
||||||
showNotification("success", `Dossier "${folderData.name}" créé avec succès sur 4NK`);
|
showNotification("success", `Dossier "${folderData.name}" créé avec succès sur 4NK`);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.error('Erreur lors de la création du dossier 4NK:', error);
|
console.error('Erreur lors de la création du dossier 4NK:', error);
|
||||||
showNotification("error", "Erreur lors de la création du dossier");
|
showNotification("error", "Erreur lors de la création du dossier");
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
[userPairingId, isConnected, iframeUrl, folderType]
|
[userPairingId, isConnected, iframeUrl, folderType]
|
||||||
);
|
);
|
||||||
|
|
||||||
// const handleSaveNewRhFolder = useCallback(
|
|
||||||
// (folderData: RhData) => {
|
|
||||||
// if (!isConnected || !userPairingId) {
|
|
||||||
// console.error('Conditions non remplies:', { isConnected, userPairingId });
|
|
||||||
// showNotification(
|
|
||||||
// "error",
|
|
||||||
// `Vous devez être connecté à 4NK pour créer un dossier (Connected: ${isConnected}, PairingId: ${userPairingId ? 'OK' : 'NULL'})`
|
|
||||||
// );
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const roles = setDefaultRhRoles(userPairingId, [], []);
|
|
||||||
// const folderPrivateFields = RhPrivateFields;
|
|
||||||
|
|
||||||
// MessageBus.getInstance(iframeUrl)
|
|
||||||
// .createRhFolder(folderData, folderPrivateFields, roles)
|
|
||||||
// .then((_folderCreated: RhCreated) => {
|
|
||||||
// const firstStateId = _folderCreated.process.states[0].state_id;
|
|
||||||
// MessageBus.getInstance(iframeUrl)
|
|
||||||
// .notifyProcessUpdate(_folderCreated.processId, firstStateId)
|
|
||||||
// .then(() =>
|
|
||||||
// MessageBus.getInstance(iframeUrl)
|
|
||||||
// .validateState(_folderCreated.processId, firstStateId)
|
|
||||||
// .then(() =>
|
|
||||||
// MessageBus.getInstance(iframeUrl)
|
|
||||||
// .getProcesses()
|
|
||||||
// .then(async (processes: any) => {
|
|
||||||
// setProcesses(processes)
|
|
||||||
// })
|
|
||||||
// )
|
|
||||||
// );
|
|
||||||
|
|
||||||
// setShowCreateFolderModal(false);
|
|
||||||
// showNotification("success", `Dossier (RH) "${folderData.name}" créé avec succès sur 4NK`);
|
|
||||||
// })
|
|
||||||
// .catch((error) => {
|
|
||||||
// console.error('Erreur lors de la création du dossier 4NK:', error);
|
|
||||||
// showNotification("error", "Erreur lors de la création du dossier");
|
|
||||||
// });
|
|
||||||
// },
|
|
||||||
// [userPairingId, isConnected, iframeUrl, folderType]
|
|
||||||
// );
|
|
||||||
|
|
||||||
const handleToggleFavorite = (folderId: number) => {
|
const handleToggleFavorite = (folderId: number) => {
|
||||||
const folder = folders.find((f) => f.id === folderId)
|
const folder = folders.find((f) => f.id === folderId)
|
||||||
if (!folder) return
|
if (!folder) return
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import { isProfileData, type ProfileCreated, type ProfileData } from './models/P
|
|||||||
import { isFolderData, type FolderCreated, type FolderData } from './models/FolderData';
|
import { isFolderData, type FolderCreated, type FolderData } from './models/FolderData';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
import type { RoleDefinition } from './models/Roles';
|
import type { RoleDefinition } from './models/Roles';
|
||||||
import { isRhData, RhCreated, RhData } from './models/RhData';
|
|
||||||
|
|
||||||
export default class MessageBus {
|
export default class MessageBus {
|
||||||
private static instance: MessageBus;
|
private static instance: MessageBus;
|
||||||
@ -408,65 +407,15 @@ export default class MessageBus {
|
|||||||
unsubscribe();
|
unsubscribe();
|
||||||
this.destroyMessageListener();
|
this.destroyMessageListener();
|
||||||
// Return value must contain the data commited in the new process
|
// Return value must contain the data commited in the new process
|
||||||
const data = processCreated.processData;
|
const folderData = processCreated.processData;
|
||||||
if (!data || !isFolderData(data)) reject('Returned invalid process data');
|
if (!folderData || !isFolderData(folderData)) reject('Returned invalid process data');
|
||||||
if (!processCreated.processId || typeof processCreated.processId !== 'string') reject('Returned invalid process id');
|
if (!processCreated.processId || typeof processCreated.processId !== 'string') reject('Returned invalid process id');
|
||||||
// TODO check that process is of type Process
|
// TODO check that process is of type Process
|
||||||
|
|
||||||
const folderCreated: FolderCreated = {
|
const folderCreated: FolderCreated = {
|
||||||
processId: processCreated.processId,
|
processId: processCreated.processId,
|
||||||
process: processCreated.process,
|
process: processCreated.process,
|
||||||
data
|
folderData
|
||||||
};
|
|
||||||
|
|
||||||
resolve(folderCreated);
|
|
||||||
});
|
|
||||||
|
|
||||||
const unsubscribeError = EventBus.getInstance().on('ERROR_PROCESS_CREATED', (responseId: string, error: string) => {
|
|
||||||
if (responseId !== correlationId) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
unsubscribeError();
|
|
||||||
this.destroyMessageListener();
|
|
||||||
reject(error);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.sendMessage({
|
|
||||||
type: 'CREATE_PROCESS',
|
|
||||||
processData: folderData,
|
|
||||||
privateFields: folderPrivateData,
|
|
||||||
roles,
|
|
||||||
accessToken
|
|
||||||
});
|
|
||||||
}).catch(console.error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public createRhFolder(folderData: RhData, folderPrivateData: string[], roles: Record<string, RoleDefinition>): Promise<RhCreated> {
|
|
||||||
return new Promise<RhCreated>((resolve: (folderData: RhCreated) => void, reject: (error: string) => void) => {
|
|
||||||
this.checkToken().then(() => {
|
|
||||||
const userStore = UserStore.getInstance();
|
|
||||||
const accessToken = userStore.getAccessToken()!;
|
|
||||||
|
|
||||||
const correlationId = uuidv4();
|
|
||||||
this.initMessageListener(correlationId);
|
|
||||||
|
|
||||||
const unsubscribe = EventBus.getInstance().on('PROCESS_CREATED', (responseId: string, processCreated: any) => {
|
|
||||||
if (responseId !== correlationId) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
unsubscribe();
|
|
||||||
this.destroyMessageListener();
|
|
||||||
// Return value must contain the data commited in the new process
|
|
||||||
const data = processCreated.processData;
|
|
||||||
if (!data || !isFolderData(data)) reject('Returned invalid process data');
|
|
||||||
if (!processCreated.processId || typeof processCreated.processId !== 'string') reject('Returned invalid process id');
|
|
||||||
// TODO check that process is of type Process
|
|
||||||
|
|
||||||
const folderCreated: RhCreated = {
|
|
||||||
processId: processCreated.processId,
|
|
||||||
process: processCreated.process,
|
|
||||||
data
|
|
||||||
};
|
};
|
||||||
|
|
||||||
resolve(folderCreated);
|
resolve(folderCreated);
|
||||||
|
|||||||
@ -85,7 +85,7 @@ export const FolderPrivateFields = [
|
|||||||
export interface FolderCreated {
|
export interface FolderCreated {
|
||||||
processId: string,
|
processId: string,
|
||||||
process: any, // Process
|
process: any, // Process
|
||||||
data: FolderData,
|
folderData: FolderData,
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setDefaultFolderRoles(ownerId: string, stakeholdersId: string[], customersId: string[]): Record<string, RoleDefinition> {
|
export function setDefaultFolderRoles(ownerId: string, stakeholdersId: string[], customersId: string[]): Record<string, RoleDefinition> {
|
||||||
|
|||||||
@ -83,7 +83,7 @@ export const RhPrivateFields = [
|
|||||||
export interface RhCreated {
|
export interface RhCreated {
|
||||||
processId: string,
|
processId: string,
|
||||||
process: any, // Process
|
process: any, // Process
|
||||||
data: RhData,
|
rhData: RhData,
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setDefaultRhRoles(ownerId: string, rhs: string[], salaries: string[]): Record<string, RoleDefinition> {
|
export function setDefaultRhRoles(ownerId: string, rhs: string[], salaries: string[]): Record<string, RoleDefinition> {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user