Merge branch 'oggui/calendar' into develop
commit
251f0e3464
|
@ -86,6 +86,12 @@
|
||||||
},
|
},
|
||||||
"serve": {
|
"serve": {
|
||||||
"builder": "@ngx-env/builder:dev-server",
|
"builder": "@ngx-env/builder:dev-server",
|
||||||
|
"options": {
|
||||||
|
"port": 4200,
|
||||||
|
"ssl": true,
|
||||||
|
"sslKey": "./ssl/oggui.uds-test.net.key.pem",
|
||||||
|
"sslCert": "./ssl/oggui.uds-test.net.crt.pem"
|
||||||
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production": {
|
"production": {
|
||||||
"buildTarget": "ogWebconsole:build:production"
|
"buildTarget": "ogWebconsole:build:production"
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
FROM node:22.1.0
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN npm install -g npm@latest
|
||||||
|
|
||||||
|
RUN npm install -g @angular/cli@^12.0.0
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
EXPOSE 4200
|
||||||
|
|
||||||
|
CMD ["ng", "serve", "--ssl","--host", "0.0.0.0", "--disable-host-check"]
|
|
@ -259,7 +259,6 @@ export class GroupsComponent implements OnInit {
|
||||||
if (type != "client") {
|
if (type != "client") {
|
||||||
const dialogRef = this.dialog.open(EditOrganizationalUnitComponent, { data: { uuid }, width: '700px'});
|
const dialogRef = this.dialog.open(EditOrganizationalUnitComponent, { data: { uuid }, width: '700px'});
|
||||||
} else {
|
} else {
|
||||||
console.log('Editar cliente');
|
|
||||||
const dialogRef = this.dialog.open(EditClientComponent, { data: { uuid }, width: '700px' } );
|
const dialogRef = this.dialog.open(EditClientComponent, { data: { uuid }, width: '700px' } );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,10 +138,12 @@ export class CreateOrganizationalUnitComponent implements OnInit {
|
||||||
response => {
|
response => {
|
||||||
this.unitAdded.emit();
|
this.unitAdded.emit();
|
||||||
this.dialogRef.close();
|
this.dialogRef.close();
|
||||||
|
this.toastService.success('Cliente creado exitosamente', 'Éxito');
|
||||||
this.openSnackBar(false, 'Cliente creado exitosamente');
|
this.openSnackBar(false, 'Cliente creado exitosamente');
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
console.error('Error al realizar POST:', error);
|
console.error('Error al realizar POST:', error);
|
||||||
|
this.toastService.error('Ha ocurrido un error');
|
||||||
this.openSnackBar(true, 'Error al crear la unidad organizativa: ' + error.error['hydra:description']);
|
this.openSnackBar(true, 'Error al crear la unidad organizativa: ' + error.error['hydra:description']);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -46,38 +46,38 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
this.isEditMode = !!data?.uuid;
|
this.isEditMode = !!data?.uuid;
|
||||||
|
|
||||||
this.generalFormGroup = this._formBuilder.group({
|
this.generalFormGroup = this._formBuilder.group({
|
||||||
name: ['', Validators.required],
|
name: [null],
|
||||||
parent: [''],
|
parent: [null],
|
||||||
description: [''],
|
description: [null],
|
||||||
type: ['', Validators.required]
|
type: [null]
|
||||||
});
|
});
|
||||||
|
|
||||||
this.additionalInfoFormGroup = this._formBuilder.group({
|
this.additionalInfoFormGroup = this._formBuilder.group({
|
||||||
comments: [''],
|
comments: [null],
|
||||||
});
|
});
|
||||||
|
|
||||||
this.networkSettingsFormGroup = this._formBuilder.group({
|
this.networkSettingsFormGroup = this._formBuilder.group({
|
||||||
proxy: [''],
|
proxy: [null],
|
||||||
dns: [''],
|
dns: [null],
|
||||||
netmask: [''],
|
netmask: [null],
|
||||||
router: [''],
|
router: [null],
|
||||||
ntp: [''],
|
ntp: [null],
|
||||||
p2pMode: [''],
|
p2pMode: [null],
|
||||||
p2pTime: [0, Validators.min(0)],
|
p2pTime: [null],
|
||||||
mcastIp: [''],
|
mcastIp: [null],
|
||||||
mcastSpeed: [0, Validators.min(0)],
|
mcastSpeed: [null],
|
||||||
mcastPort: [0, Validators.min(0)],
|
mcastPort: [null],
|
||||||
mcastMode: [''],
|
mcastMode: [null],
|
||||||
menu: [null],
|
menu: [null],
|
||||||
hardwareProfile: [null],
|
hardwareProfile: [null],
|
||||||
validation: [false]
|
validation: [false]
|
||||||
});
|
});
|
||||||
|
|
||||||
this.classroomInfoFormGroup = this._formBuilder.group({
|
this.classroomInfoFormGroup = this._formBuilder.group({
|
||||||
location: [''],
|
location: [null],
|
||||||
projector: [false],
|
projector: [false],
|
||||||
board: [false],
|
board: [false],
|
||||||
capacity: [0, Validators.min(0)],
|
capacity: [null],
|
||||||
remoteCalendar: [null]
|
remoteCalendar: [null]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
response => this.calendars = response['hydra:member'],
|
response => this.calendars = response['hydra:member'],
|
||||||
error => {
|
error => {
|
||||||
console.error('Error loading calendars', error);
|
console.error('Error loading calendars', error);
|
||||||
this.openSnackBar(true, 'Error loading calendars');
|
this.toastService.error('Error loading current calendar');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
response => this.currentCalendar = response,
|
response => this.currentCalendar = response,
|
||||||
error => {
|
error => {
|
||||||
console.error('Error loading current calendar', error);
|
console.error('Error loading current calendar', error);
|
||||||
this.openSnackBar(true, 'Error loading current calendar');
|
this.toastService.error('Error loading current calendar');
|
||||||
}
|
}
|
||||||
);}
|
);}
|
||||||
|
|
||||||
|
@ -148,7 +148,6 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
|
|
||||||
this.http.get<any>(url).subscribe(
|
this.http.get<any>(url).subscribe(
|
||||||
data => {
|
data => {
|
||||||
console.log('Data fetched for edit:', data);
|
|
||||||
this.generalFormGroup.patchValue({
|
this.generalFormGroup.patchValue({
|
||||||
name: data.name,
|
name: data.name,
|
||||||
parent: data.parent ? data.parent['@id'] : '',
|
parent: data.parent ? data.parent['@id'] : '',
|
||||||
|
@ -185,7 +184,7 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
|
|
||||||
error => {
|
error => {
|
||||||
console.error('Error fetching data for edit:', error);
|
console.error('Error fetching data for edit:', error);
|
||||||
this.openSnackBar(true, 'Error al cargar la unidad organizativa: ' + error.error['hydra:description'])
|
this.toastService.error('Error fetching data');
|
||||||
this.onNoClick()
|
this.onNoClick()
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -195,8 +194,6 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
if (this.generalFormGroup.valid && this.additionalInfoFormGroup.valid && this.networkSettingsFormGroup.valid) {
|
if (this.generalFormGroup.valid && this.additionalInfoFormGroup.valid && this.networkSettingsFormGroup.valid) {
|
||||||
const parentValue = this.generalFormGroup.value.parent;
|
const parentValue = this.generalFormGroup.value.parent;
|
||||||
|
|
||||||
console.log(this.generalFormGroup.value.remoetCalendar);
|
|
||||||
const formData = {
|
const formData = {
|
||||||
name: this.generalFormGroup.value.name,
|
name: this.generalFormGroup.value.name,
|
||||||
parent: parentValue || null,
|
parent: parentValue || null,
|
||||||
|
@ -209,35 +206,35 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
|
|
||||||
|
|
||||||
if (this.isEditMode) {
|
if (this.isEditMode) {
|
||||||
// Edit mode: Send PUT request to update the unit
|
|
||||||
const putUrl = `${this.baseUrl}/organizational-units/${this.data.uuid}`;
|
const putUrl = `${this.baseUrl}/organizational-units/${this.data.uuid}`;
|
||||||
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
||||||
|
|
||||||
|
console.log('PUT URLLLLL:', formData);
|
||||||
this.http.put<any>(putUrl, formData, { headers }).subscribe(
|
this.http.put<any>(putUrl, formData, { headers }).subscribe(
|
||||||
response => {
|
response => {
|
||||||
console.log('PUT successful:', response);
|
console.log('PUT successful:', response);
|
||||||
this.unitAdded.emit();
|
this.unitAdded.emit();
|
||||||
this.dialogRef.close();
|
this.dialogRef.close();
|
||||||
|
this.toastService.success('Editado exitosamente', 'Éxito');
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
console.error('Error al realizar PUT:', error);
|
console.error('Error al realizar PUT:', error);
|
||||||
|
this.toastService.error('Error al editar:', error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// Create mode: Send POST request to create a new unit
|
|
||||||
const postUrl = `${this.baseUrl}/organizational-units`;
|
const postUrl = `${this.baseUrl}/organizational-units`;
|
||||||
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
||||||
|
|
||||||
this.http.post<any>(postUrl, formData, { headers }).subscribe(
|
this.http.post<any>(postUrl, formData, { headers }).subscribe(
|
||||||
response => {
|
response => {
|
||||||
console.log('POST successful:', response);
|
|
||||||
this.unitAdded.emit();
|
this.unitAdded.emit();
|
||||||
this.dialogRef.close();
|
this.dialogRef.close();
|
||||||
this.openSnackBar(false, 'Cliente creado exitosamente');
|
this.toastService.success('Editado exitosamente', 'Éxito');
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
console.error('Error al realizar POST:', error);
|
console.error('Error al realizar POST:', error);
|
||||||
this.openSnackBar(true, 'Error al crear la unidad organizativa: ' + error.error['hydra:description']);
|
this.toastService.error('Error al editar:', error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -248,10 +245,5 @@ export class EditOrganizationalUnitComponent implements OnInit {
|
||||||
this.dialogRef.close();
|
this.dialogRef.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
openSnackBar(isError: boolean, message: string) {
|
|
||||||
if (isError) {
|
|
||||||
this.toastService.error(' Error al crear el cliente: ' + message, 'Error');
|
|
||||||
} else
|
|
||||||
this.toastService.success('Cliente creado exitosamente', 'Éxito');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEwzCCAqugAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwSTELMAkGA1UEBhMCRVMx
|
||||||
|
DzANBgNVBAgMBk1hZHJpZDEPMA0GA1UEBwwGTWFkcmlkMRgwFgYDVQQDDA9jYS51
|
||||||
|
ZHMtdGVzdC5uZXQwHhcNMjQxMDA5MTQyODM3WhcNMjUxMDE5MTQyODM3WjBMMQsw
|
||||||
|
CQYDVQQGEwJFUzEPMA0GA1UECAwGTWFkcmlkMQ8wDQYDVQQHDAZNYWRyaWQxGzAZ
|
||||||
|
BgNVBAMMEm9nZ3VpLnVkcy10ZXN0Lm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAKlM9SW4QghdIR1JW9Wn8HoagN1vyJ7GKhQXRPQXcL58zLlaZ+w8
|
||||||
|
bDANnOr9ctwVP3ftpfeCUBvuuoAL3PLttR9X1QrJk2N5kzEZyz2ckf9XLpbh5eI+
|
||||||
|
Eoaj5k1NLet9brKjBNN+32zBDqQPHhajtryEdRNq7HPiwhDKhLhyJBFWW36QnpQt
|
||||||
|
blfDRqBpUsDQ56I4fEnX+7hSEe2JSHN/XlCoDEWL0+jwuLtmVtGb4ZSX5akFDGkP
|
||||||
|
XV2YaHTELFzeEQpj+ffVgVT77FUeqrYU/Yh1VSo9G6fX5/6HGz513UIEfDoIwkZN
|
||||||
|
wOLntdXJuMpq216ZReF16stvoZi4cY+F2zcCAwEAAaOBsTCBrjAdBgNVHREEFjAU
|
||||||
|
ghJvZ2d1aS51ZHMtdGVzdC5uZXQwHQYDVR0OBBYEFMEnxET3oXXcuoQq7C9+AcHp
|
||||||
|
VqmyMG4GA1UdIwRnMGWhTaRLMEkxCzAJBgNVBAYTAkVTMQ8wDQYDVQQIDAZNYWRy
|
||||||
|
aWQxDzANBgNVBAcMBk1hZHJpZDEYMBYGA1UEAwwPY2EudWRzLXRlc3QubmV0ghRA
|
||||||
|
nfzWMM2iUx7UNNNmJzg92Si7NDANBgkqhkiG9w0BAQsFAAOCAgEAanwvug9UMaun
|
||||||
|
JakVSM8KPJVL2TFIKJApLbFX/zF1Z860dteJRLEY5jsk7ljZqnyXMIScUBdBVJxW
|
||||||
|
whp4dlGRBx/sLmfimn544s/Vzk90GYqbue+/ozLrFV74bn8suoZAuTQCCOHsclEp
|
||||||
|
v39R6EuvOf+htVi2jhBEtrOVPC2YMnUXCj8uUI4GLwrNlGmfZ2gl247xdsrPbrtT
|
||||||
|
ToU6y/S8AQBO7BuLVlNLGo62jgJmKLPhCkAFhiGZrVFH/3EgDUWaSJCwfs8Lp0yk
|
||||||
|
5GTckf4Ch6h89DMwt4PhD6zY8Rd72FQgNCVjg3F3A5yFE8iZd4KY/h1KBVMqwaeE
|
||||||
|
VjkpH4XzzNwUz0M/13278XLaVoDyOoFuzN8E/lPnfsdUUQjXUy1OlKpI5JerkGnE
|
||||||
|
+LlZbkZwJHwxS4e3sGKPjpMmBh5FOciYUBiCManlYtWwRbhTgKJt28wULBnh2eCw
|
||||||
|
8tdoo8L+5q9q3ke6bLbmfVPtFefKL+3fO7qWyubCTkT79HGetpShGmmansTH7P0G
|
||||||
|
7viwO1ispK2POTKt+DqEw+iuFEEWuw4SiVXxrY9uUs4VIExhsImNGOQoyxnYCz1t
|
||||||
|
kUs+jJ4PAPtuHqjjYdrcf057axQipkO2K2iGjdlG8mp7U3cOZwdpMkmfdhpfiyAW
|
||||||
|
w/L8jq15EtBxR6cINLdTTX/ySpjfV1g=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpTPUluEIIXSEd
|
||||||
|
SVvVp/B6GoDdb8iexioUF0T0F3C+fMy5WmfsPGwwDZzq/XLcFT937aX3glAb7rqA
|
||||||
|
C9zy7bUfV9UKyZNjeZMxGcs9nJH/Vy6W4eXiPhKGo+ZNTS3rfW6yowTTft9swQ6k
|
||||||
|
Dx4Wo7a8hHUTauxz4sIQyoS4ciQRVlt+kJ6ULW5Xw0agaVLA0OeiOHxJ1/u4UhHt
|
||||||
|
iUhzf15QqAxFi9Po8Li7ZlbRm+GUl+WpBQxpD11dmGh0xCxc3hEKY/n31YFU++xV
|
||||||
|
Hqq2FP2IdVUqPRun1+f+hxs+dd1CBHw6CMJGTcDi57XVybjKattemUXhderLb6GY
|
||||||
|
uHGPhds3AgMBAAECggEAAtBl/WvZTSJJ0Ul4M/jypP+ZHL/QPzNesll1//NTyxbF
|
||||||
|
SwoW/XTo/MjSeZAflKDrHnyIwbByJxoKEjl1lrl0xUHvJ0VqecDPktqxkiNEGfvC
|
||||||
|
U9JgFn6e+DXz4ge3t65XZLNo+nWlaRKxwkWuDlpHnfflqkj2B9xrtV5oY63Mrle7
|
||||||
|
hkr+VvddxOfNRYH7c/ofr9sYsCdGDBLNO2x8Zo9WPlw3cBuCLcJ/L7em14mI01Jg
|
||||||
|
Nx5oVpvlM9nUqfLRbOk5dUu7dpgGzxfx1Y1hWF/qMcdzltgKqFv47WZWl89WnGbG
|
||||||
|
ifL3NbCOAQRcTQ1Qex+z/NPLe8JmoftyIdwCqwjU4QKBgQDDZVdEO18HSZq1RQe1
|
||||||
|
b7Hd+1rkKBN1k+6Um4ZToy/6TOw0E/eZ/Xh8grpI5+zfLuVIQZ0JKGwvInybdHns
|
||||||
|
BLnPCMMRUtgf95/sfLXU4bY0aiR0DGPsGC8yfpmxnMelWW0K9HYtkmYxln/LfLM+
|
||||||
|
tugt0Y+6oa0h708pvqvyK7x9CwKBgQDdz5+qunsxuS/jxXdSmDFKXJOEkVOEamCt
|
||||||
|
DUyiAKBbeAgwywzzvyE3oKlCbnOz3FQYMiYGddm/Dea5oDdI3kF3730CayQ35aR6
|
||||||
|
ApT2UWkmGJoxa1SaUP/UMrRi3CKGnlEwjZnUKDWnXqaWWpaWLIjXGcdbGW1aeT/G
|
||||||
|
gc9FpWR+BQKBgDkOYZIiCBi3rH5cHukjKXwZhqvy6+O8g8FPPMU1dLARQDPg1L9Z
|
||||||
|
nZI2FjFtz+RH7FnSFwnyjMyitGIse+Goa52CAHwRhdyn0UIcFHiKREs/508fwxnQ
|
||||||
|
4g9LmpObpUyqNUYqpkueYUr/mGeSDUE15cxjUiX8SfMLz0DwVYNMtCiLAoGBAIWX
|
||||||
|
GZPq8m2VGjm1YVM2ZGFj9ljeag2TQByZqPDdLbdJSK2SbX+UOn5VXfurqDXIWkGk
|
||||||
|
WnCDpBxEVBSyYPmbGpUQgRrmyo572Z6+VVcw2wJdyOhAu1ihtiLoUupDqOupCD8U
|
||||||
|
2XQEr6PZBr4BWzahJd1fIklEvC7EXdvBrMNGhIq9AoGAN7vgV3bFvobIuXsYW/MY
|
||||||
|
F/a+ytH+DNTpuhhgyL/gDgsTYoK4HN1Xf1oJtG19Peo3yxh43cfJpNRXzee8lUMw
|
||||||
|
uVNlNPNvpnPh8UA2RFz6wdQXYmEYPLFbh2Pp07FBDSmQFJ8ZsejIK1RFfWT2x31t
|
||||||
|
BK3S+KNu2bajwPPgfodQPSk=
|
||||||
|
-----END PRIVATE KEY-----
|
Loading…
Reference in New Issue