0; else noClientsTemplate">
diff --git a/ogWebconsole/src/app/components/groups/groups.component.ts b/ogWebconsole/src/app/components/groups/groups.component.ts
index f8df428..01d1d69 100644
--- a/ogWebconsole/src/app/components/groups/groups.component.ts
+++ b/ogWebconsole/src/app/components/groups/groups.component.ts
@@ -23,6 +23,7 @@ import { ClassroomViewDialogComponent } from './shared/classroom-view/classroom-
import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
import { MatPaginator } from '@angular/material/paginator';
+import {CreateMultipleClientComponent} from "./shared/clients/create-multiple-client/create-multiple-client.component";
enum NodeType {
OrganizationalUnit = 'organizational-unit',
@@ -330,6 +331,20 @@ export class GroupsComponent implements OnInit, OnDestroy {
});
}
+ addMultipleClients(event: MouseEvent, organizationalUnit: TreeNode | null = null): void {
+ event.stopPropagation();
+ const dialogRef = this.dialog.open(CreateMultipleClientComponent, {
+ data: { organizationalUnit },
+ width: '900px',
+ });
+ dialogRef.afterClosed().subscribe(() => {
+ this.refreshOrganizationalUnits();
+ if (organizationalUnit && organizationalUnit['@id']) {
+ this.refreshClientsForNode(organizationalUnit);
+ }
+ });
+ }
+
private refreshOrganizationalUnits(): void {
const expandedNodeIds = this.treeControl.dataNodes
? this.treeControl.dataNodes
diff --git a/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.css b/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.css
index b7bc183..fcf40bd 100644
--- a/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.css
+++ b/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.css
@@ -1,161 +1,63 @@
-.create-client-container {
+h1 {
+ text-align: center;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 400;
+ color: #3f51b5;
+ margin-bottom: 20px;
+}
+
+.network-form {
display: flex;
flex-direction: column;
- padding: 16px;
- font-family: Arial, sans-serif;
- font-size: 14px;
- align-items: center;
+ gap: 15px;
}
-h1, h3, h4 {
- margin: 0 0 16px;
- color: #333;
- font-weight: 600;
-}
-
-h1 {
- font-size: 20px;
-}
-
-h3 {
- font-size: 18px;
-}
-
-h4 {
- font-size: 16px;
- margin-top: 16px;
-}
-
-.inputs-container {
- display: flex;
- gap: 24px;
- margin-top: 16px;
+.form-field {
+ width: 100%;
+ margin-top: 10px;
}
.mat-dialog-content {
- flex: 1;
- background-color: #f9f9f9;
- border-radius: 8px;
- padding: 16px;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
- min-width: 600px;
- max-width: 90vw;
- width: 800px;
+ padding: 50px;
}
-.create-multiple-client-container {
- flex: 1;
- background-color: #f9f9f9;
- border-radius: 8px;
- padding: 16px;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+button {
+ text-transform: none;
+ font-size: 16px;
+ font-weight: 500;
}
-.client-form {
+.mat-slide-toggle {
+ margin-top: 20px;
+}
+
+mat-option .unit-name {
+ display: block;
+}
+
+mat-option .unit-path {
+ display: block;
+ font-size: 0.8em;
+ color: gray;
+}
+
+.loading-spinner {
+ display: block;
+ margin: 0 auto;
+ align-items: center;
+ justify-content: center;
+}
+
+.create-client-container {
+ position: relative;
+}
+
+.grid-form {
display: grid;
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
- gap: 16px;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 20px;
}
.form-field {
width: 100%;
}
-
-.mat-form-field {
- width: 100%;
-}
-
-.scrollable-table {
- max-height: 200px;
- overflow-y: auto;
- margin-top: 16px;
- border: 1px solid #ddd;
- border-radius: 8px;
-}
-
-table {
- width: 100%;
- border-collapse: collapse;
-}
-
-th, td {
- text-align: left;
- padding: 8px;
- border-bottom: 1px solid #ddd;
-}
-
-th {
- background-color: #f1f1f1;
- font-weight: bold;
-}
-
-tr:hover {
- background-color: #f9f9f9;
-}
-
-button {
- margin-right: 8px;
-}
-
-button:last-child {
- margin-right: 0;
-}
-
-.mat-dialog-actions {
- margin-top: 16px;
- display: flex;
- justify-content: space-between;
-}
-
-button.mat-raised-button {
- text-transform: none;
- font-weight: 600;
-}
-
-.loading-spinner {
- margin: 16px auto;
- display: block;
-}
-
-.toggle-button {
- background: none;
- border: none;
- color: #007BFF;
- cursor: pointer;
- font-size: 14px;
- text-decoration: underline;
-}
-
-.toggle-button:hover {
- text-decoration: none;
-}
-
-.mat-divider {
- margin: 0 16px;
-}
-
-.upload-container {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- gap: 8px;
-}
-
-input[type="file"] {
- display: none;
-}
-
-@media (max-width: 768px) {
- .inputs-container {
- flex-direction: column;
- gap: 16px;
- }
-
- .mat-dialog-content, .create-multiple-client-container {
- padding: 12px;
- }
-
- .scrollable-table {
- max-height: 150px;
- }
-}
diff --git a/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.html b/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.html
index 2697534..156f782 100644
--- a/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.html
+++ b/ogWebconsole/src/app/components/groups/shared/clients/create-client/create-client.component.html
@@ -1,155 +1,111 @@
-
-
{{ 'addClientTitle' | translate }}s
-