From aa2875aedfaca44680c8c0cce5c6a579fb5b89de Mon Sep 17 00:00:00 2001 From: apuente Date: Thu, 12 Sep 2024 14:00:56 +0200 Subject: [PATCH] Git status test commit --- ogWebconsole/.env | 1 + ogWebconsole/.vscode/launch.json | 3 +- ogWebconsole/angular.json | 18 +- ogWebconsole/package-lock.json | 695 ++++++++++++++++++ ogWebconsole/package.json | 1 + .../admin/roles/roles/roles.component.ts | 3 +- .../admin/roles/roles/roles.service.ts | 3 +- .../admin/users/users/users.component.ts | 3 +- .../admin/users/users/users.service.ts | 2 +- .../classroom-view.component.ts | 4 +- .../create-client/create-client.component.ts | 7 +- .../edit-client/edit-client.component.ts | 11 +- .../src/app/components/groups/data.service.ts | 18 +- .../app/components/groups/groups.component.ts | 5 +- .../create-organizational-unit.component.ts | 5 +- .../edit-organizational-unit.component.ts | 9 +- .../app/components/login/login.component.ts | 13 +- .../create-image/create-image.component.ts | 7 +- .../components/ogboot/images/data.service.ts | 3 +- .../ogboot/images/images.component.ts | 3 +- .../ogboot-status/ogboot-status.component.ts | 3 +- .../create-pxe-boot-file.component.ts | 7 +- .../ogboot/pxe-boot-files/data.service.ts | 3 +- .../pxe-boot-files.component.ts | 5 +- .../create-pxe-template.component.ts | 5 +- .../app/components/ogboot/pxe/data.service.ts | 3 +- .../components/ogboot/pxe/pxe.component.ts | 3 +- .../add-clients-to-subnet.component.ts | 5 +- .../create-subnet/create-subnet.component.ts | 3 +- .../og-dhcp-subnets.component.ts | 6 +- ogWebconsole/src/env.d.ts | 7 + 31 files changed, 798 insertions(+), 66 deletions(-) create mode 100644 ogWebconsole/.env create mode 100644 ogWebconsole/src/env.d.ts diff --git a/ogWebconsole/.env b/ogWebconsole/.env new file mode 100644 index 0000000..5bd451a --- /dev/null +++ b/ogWebconsole/.env @@ -0,0 +1 @@ +NG_APP_BASE_API_URL=http://127.0.0.1:8090 diff --git a/ogWebconsole/.vscode/launch.json b/ogWebconsole/.vscode/launch.json index 04f6674..fe7db24 100644 --- a/ogWebconsole/.vscode/launch.json +++ b/ogWebconsole/.vscode/launch.json @@ -6,8 +6,7 @@ "name": "ng serve", "type": "chrome", "request": "launch", - "preLaunchTask": "npm: start", - "url": "http://127.0.0.1:8001/" + "preLaunchTask": "npm: start" }, { "name": "ng test", diff --git a/ogWebconsole/angular.json b/ogWebconsole/angular.json index 163f14c..a5fa49e 100644 --- a/ogWebconsole/angular.json +++ b/ogWebconsole/angular.json @@ -27,7 +27,7 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/build-angular:application", + "builder": "@ngx-env/builder:application", "options": { "localize": true, "aot": true, @@ -72,16 +72,20 @@ "sourceMap": true }, "es": { - "localize": ["es-ES"] + "localize": [ + "es-ES" + ] }, "en": { - "localize": ["en-US"] + "localize": [ + "en-US" + ] } }, "defaultConfiguration": "production" }, "serve": { - "builder": "@angular-devkit/build-angular:dev-server", + "builder": "@ngx-env/builder:dev-server", "configurations": { "production": { "buildTarget": "ogWebconsole:build:production" @@ -99,13 +103,13 @@ "defaultConfiguration": "development" }, "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", + "builder": "@ngx-env/builder:extract-i18n", "options": { "buildTarget": "ogWebconsole:build" } }, "test": { - "builder": "@angular-devkit/build-angular:karma", + "builder": "@ngx-env/builder:karma", "options": { "polyfills": [ "zone.js", @@ -129,4 +133,4 @@ "cli": { "analytics": "95fac95c-8936-41a8-8c9c-1fae82fe6912" } -} +} \ No newline at end of file diff --git a/ogWebconsole/package-lock.json b/ogWebconsole/package-lock.json index da93f11..43f10ed 100644 --- a/ogWebconsole/package-lock.json +++ b/ogWebconsole/package-lock.json @@ -30,6 +30,7 @@ "@angular/cli": "^18.0.1", "@angular/compiler-cli": "^18.0.0", "@angular/localize": "^18.1.0", + "@ngx-env/builder": "^18.0.1", "@types/jasmine": "~5.1.0", "jasmine-core": "~5.1.0", "karma": "~6.4.0", @@ -2424,6 +2425,182 @@ "node": ">=10.0.0" } }, + "node_modules/@dotenv-run/core": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@dotenv-run/core/-/core-1.3.5.tgz", + "integrity": "sha512-jwXSX/r4VIGUOd/xqRjD5QUYRhKhKOmhhFSPDaIOsajFL+LVYBGADTFcakZ5O9x2BOGxDjIVUJzIE8jTpJ29JA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "dotenv": "^16.1.4", + "dotenv-expand": "^10.0.0", + "find-up": "^5.0.0" + } + }, + "node_modules/@dotenv-run/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@dotenv-run/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@dotenv-run/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@dotenv-run/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@dotenv-run/core/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenv-run/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@dotenv-run/core/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenv-run/core/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenv-run/core/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenv-run/core/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@dotenv-run/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@dotenv-run/core/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenv-run/webpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dotenv-run/webpack/-/webpack-1.4.0.tgz", + "integrity": "sha512-gQKOdSWs4iYaJ628A3YpPbM0XJvdCg44Wck1kL+UuumRboGcPoq5M35KKmrBQ/abjGeawrZyYimD4T1PiZ9bCA==", + "dev": true, + "dependencies": { + "@dotenv-run/core": "^1.3.4" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -4300,6 +4477,503 @@ "webpack": "^5.54.0" } }, + "node_modules/@ngx-env/builder": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@ngx-env/builder/-/builder-18.0.1.tgz", + "integrity": "sha512-zADxSVnhbRqRSWJI09481JNFdsApAwPynDY1UeHWp5BGFI7Qur1fyqjV8ZMqAHhzOv35Z0Wb4JEm8d1/ukQTIg==", + "dev": true, + "dependencies": { + "@dotenv-run/esbuild": "^1.4.0", + "@dotenv-run/webpack": "^1.4.0", + "glob": "^10.3.10" + } + }, + "node_modules/@ngx-env/builder/node_modules/@dotenv-run/esbuild": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@dotenv-run/esbuild/-/esbuild-1.4.0.tgz", + "integrity": "sha512-pXT4qARGRtWtL+/8MVGNc+oatVeNjK5Y415IjxMnGfriMwYuAwz5cWHB4YHIUTpPjkVCxsnPVb4wwr888IuN3g==", + "dev": true, + "dependencies": { + "@dotenv-run/core": "~1.3.5" + }, + "peerDependencies": { + "esbuild": "0.21.3" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.3.tgz", + "integrity": "sha512-yTgnwQpFVYfvvo4SvRFB0SwrW8YjOxEoT7wfMT7Ol5v7v5LDNvSGo67aExmxOb87nQNeWPVvaGBNfQ7BXcrZ9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/android-arm": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.3.tgz", + "integrity": "sha512-bviJOLMgurLJtF1/mAoJLxDZDL6oU5/ztMHnJQRejbJrSc9FFu0QoUoFhvi6qSKJEw9y5oGyvr9fuDtzJ30rNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/android-arm64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.3.tgz", + "integrity": "sha512-c+ty9necz3zB1Y+d/N+mC6KVVkGUUOcm4ZmT5i/Fk5arOaY3i6CA3P5wo/7+XzV8cb4GrI/Zjp8NuOQ9Lfsosw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/android-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.3.tgz", + "integrity": "sha512-JReHfYCRK3FVX4Ra+y5EBH1b9e16TV2OxrPAvzMsGeES0X2Ndm9ImQRI4Ket757vhc5XBOuGperw63upesclRw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.3.tgz", + "integrity": "sha512-U3fuQ0xNiAkXOmQ6w5dKpEvXQRSpHOnbw7gEfHCRXPeTKW9sBzVck6C5Yneb8LfJm0l6le4NQfkNPnWMSlTFUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/darwin-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.3.tgz", + "integrity": "sha512-3m1CEB7F07s19wmaMNI2KANLcnaqryJxO1fXHUV5j1rWn+wMxdUYoPyO2TnAbfRZdi7ADRwJClmOwgT13qlP3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.3.tgz", + "integrity": "sha512-fsNAAl5pU6wmKHq91cHWQT0Fz0vtyE1JauMzKotrwqIKAswwP5cpHUCxZNSTuA/JlqtScq20/5KZ+TxQdovU/g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.3.tgz", + "integrity": "sha512-tci+UJ4zP5EGF4rp8XlZIdq1q1a/1h9XuronfxTMCNBslpCtmk97Q/5qqy1Mu4zIc0yswN/yP/BLX+NTUC1bXA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-arm": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.3.tgz", + "integrity": "sha512-f6kz2QpSuyHHg01cDawj0vkyMwuIvN62UAguQfnNVzbge2uWLhA7TCXOn83DT0ZvyJmBI943MItgTovUob36SQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-arm64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.3.tgz", + "integrity": "sha512-vvG6R5g5ieB4eCJBQevyDMb31LMHthLpXTc2IGkFnPWS/GzIFDnaYFp558O+XybTmYrVjxnryru7QRleJvmZ6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-ia32": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.3.tgz", + "integrity": "sha512-HjCWhH7K96Na+66TacDLJmOI9R8iDWDDiqe17C7znGvvE4sW1ECt9ly0AJ3dJH62jHyVqW9xpxZEU1jKdt+29A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-loong64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.3.tgz", + "integrity": "sha512-BGpimEccmHBZRcAhdlRIxMp7x9PyJxUtj7apL2IuoG9VxvU/l/v1z015nFs7Si7tXUwEsvjc1rOJdZCn4QTU+Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.3.tgz", + "integrity": "sha512-5rMOWkp7FQGtAH3QJddP4w3s47iT20hwftqdm7b+loe95o8JU8ro3qZbhgMRy0VuFU0DizymF1pBKkn3YHWtsw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.3.tgz", + "integrity": "sha512-h0zj1ldel89V5sjPLo5H1SyMzp4VrgN1tPkN29TmjvO1/r0MuMRwJxL8QY05SmfsZRs6TF0c/IDH3u7XYYmbAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.3.tgz", + "integrity": "sha512-dkAKcTsTJ+CRX6bnO17qDJbLoW37npd5gSNtSzjYQr0svghLJYGYB0NF1SNcU1vDcjXLYS5pO4qOW4YbFama4A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-s390x": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.3.tgz", + "integrity": "sha512-vnD1YUkovEdnZWEuMmy2X2JmzsHQqPpZElXx6dxENcIwTu+Cu5ERax6+Ke1QsE814Zf3c6rxCfwQdCTQ7tPuXA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/linux-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.3.tgz", + "integrity": "sha512-IOXOIm9WaK7plL2gMhsWJd+l2bfrhfilv0uPTptoRoSb2p09RghhQQp9YY6ZJhk/kqmeRt6siRdMSLLwzuT0KQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.3.tgz", + "integrity": "sha512-uTgCwsvQ5+vCQnqM//EfDSuomo2LhdWhFPS8VL8xKf+PKTCrcT/2kPPoWMTs22aB63MLdGMJiE3f1PHvCDmUOw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.3.tgz", + "integrity": "sha512-vNAkR17Ub2MgEud2Wag/OE4HTSI6zlb291UYzHez/psiKarp0J8PKGDnAhMBcHFoOHMXHfExzmjMojJNbAStrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/sunos-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.3.tgz", + "integrity": "sha512-W8H9jlGiSBomkgmouaRoTXo49j4w4Kfbl6I1bIdO/vT0+0u4f20ko3ELzV3hPI6XV6JNBVX+8BC+ajHkvffIJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/win32-arm64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.3.tgz", + "integrity": "sha512-EjEomwyLSCg8Ag3LDILIqYCZAq/y3diJ04PnqGRgq8/4O3VNlXyMd54j/saShaN4h5o5mivOjAzmU6C3X4v0xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/win32-ia32": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.3.tgz", + "integrity": "sha512-WGiE/GgbsEwR33++5rzjiYsKyHywE8QSZPF7Rfx9EBfK3Qn3xyR6IjyCr5Uk38Kg8fG4/2phN7sXp4NPWd3fcw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/@esbuild/win32-x64": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.3.tgz", + "integrity": "sha512-xRxC0jaJWDLYvcUvjQmHCJSfMrgmUuvsoXgDeU/wTorQ1ngDdUBuFtgY3W1Pc5sprGAvZBtWdJX7RPg/iZZUqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ngx-env/builder/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ngx-env/builder/node_modules/esbuild": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.3.tgz", + "integrity": "sha512-Kgq0/ZsAPzKrbOjCQcjoSmPoWhlcVnGAUo7jvaLHoxW1Drto0KGkR1xBNg2Cp43b9ImvxmPEJZ9xkfcnqPsfBw==", + "dev": true, + "hasInstallScript": true, + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.3", + "@esbuild/android-arm": "0.21.3", + "@esbuild/android-arm64": "0.21.3", + "@esbuild/android-x64": "0.21.3", + "@esbuild/darwin-arm64": "0.21.3", + "@esbuild/darwin-x64": "0.21.3", + "@esbuild/freebsd-arm64": "0.21.3", + "@esbuild/freebsd-x64": "0.21.3", + "@esbuild/linux-arm": "0.21.3", + "@esbuild/linux-arm64": "0.21.3", + "@esbuild/linux-ia32": "0.21.3", + "@esbuild/linux-loong64": "0.21.3", + "@esbuild/linux-mips64el": "0.21.3", + "@esbuild/linux-ppc64": "0.21.3", + "@esbuild/linux-riscv64": "0.21.3", + "@esbuild/linux-s390x": "0.21.3", + "@esbuild/linux-x64": "0.21.3", + "@esbuild/netbsd-x64": "0.21.3", + "@esbuild/openbsd-x64": "0.21.3", + "@esbuild/sunos-x64": "0.21.3", + "@esbuild/win32-arm64": "0.21.3", + "@esbuild/win32-ia32": "0.21.3", + "@esbuild/win32-x64": "0.21.3" + } + }, + "node_modules/@ngx-env/builder/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@ngx-env/builder/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -7319,6 +7993,27 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", diff --git a/ogWebconsole/package.json b/ogWebconsole/package.json index e021b3a..b89348c 100644 --- a/ogWebconsole/package.json +++ b/ogWebconsole/package.json @@ -32,6 +32,7 @@ "@angular/cli": "^18.0.1", "@angular/compiler-cli": "^18.0.0", "@angular/localize": "^18.1.0", + "@ngx-env/builder": "^18.0.1", "@types/jasmine": "~5.1.0", "jasmine-core": "~5.1.0", "karma": "~6.4.0", diff --git a/ogWebconsole/src/app/components/admin/roles/roles/roles.component.ts b/ogWebconsole/src/app/components/admin/roles/roles/roles.component.ts index 0cf84fc..07d9eab 100644 --- a/ogWebconsole/src/app/components/admin/roles/roles/roles.component.ts +++ b/ogWebconsole/src/app/components/admin/roles/roles/roles.component.ts @@ -13,6 +13,7 @@ import { ToastrService } from 'ngx-toastr'; styleUrls: ['./roles.component.css'] }) export class RolesComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; dataSource = new MatTableDataSource(); columns = [ { @@ -64,7 +65,7 @@ export class RolesComponent implements OnInit { dialogRef.afterClosed().subscribe(result => { if (result) { - const apiUrl = `http://127.0.0.1:8081/user-groups/${role.uuid}`; + const apiUrl = `${this.baseUrl}/user-groups/${role.uuid}`; this.http.delete(apiUrl).subscribe({ next: () => { diff --git a/ogWebconsole/src/app/components/admin/roles/roles/roles.service.ts b/ogWebconsole/src/app/components/admin/roles/roles/roles.service.ts index cade075..c978c62 100644 --- a/ogWebconsole/src/app/components/admin/roles/roles/roles.service.ts +++ b/ogWebconsole/src/app/components/admin/roles/roles/roles.service.ts @@ -12,7 +12,8 @@ interface Role { providedIn: 'root' }) export class RoleService { - private apiUrl = 'http://127.0.0.1:8081'; + private apiUrl = import.meta.env.NG_APP_BASE_API_URL; + constructor(private http: HttpClient) {} diff --git a/ogWebconsole/src/app/components/admin/users/users/users.component.ts b/ogWebconsole/src/app/components/admin/users/users/users.component.ts index b9a036b..6defba1 100644 --- a/ogWebconsole/src/app/components/admin/users/users/users.component.ts +++ b/ogWebconsole/src/app/components/admin/users/users/users.component.ts @@ -14,6 +14,7 @@ import { ToastrService } from 'ngx-toastr'; styleUrls: ['./users.component.css'] }) export class UsersComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; dataSource = new MatTableDataSource(); columns = [ { @@ -81,7 +82,7 @@ export class UsersComponent implements OnInit { dialogRef.afterClosed().subscribe(result => { if (result) { - const apiUrl = `http://127.0.0.1:8081/users/${user.uuid}`; + const apiUrl = `${this.baseUrl}/users/${user.uuid}`; this.http.delete(apiUrl).subscribe({ next: () => { diff --git a/ogWebconsole/src/app/components/admin/users/users/users.service.ts b/ogWebconsole/src/app/components/admin/users/users/users.service.ts index 75befbf..c11de16 100644 --- a/ogWebconsole/src/app/components/admin/users/users/users.service.ts +++ b/ogWebconsole/src/app/components/admin/users/users/users.service.ts @@ -26,7 +26,7 @@ interface UserGroup { providedIn: 'root' }) export class UserService { - private apiUrl = 'http://127.0.0.1:8081'; + private apiUrl = import.meta.env.NG_APP_BASE_API_URL; constructor(private http: HttpClient) {} diff --git a/ogWebconsole/src/app/components/groups/classroom-view/classroom-view.component.ts b/ogWebconsole/src/app/components/groups/classroom-view/classroom-view.component.ts index 4956af5..8004596 100644 --- a/ogWebconsole/src/app/components/groups/classroom-view/classroom-view.component.ts +++ b/ogWebconsole/src/app/components/groups/classroom-view/classroom-view.component.ts @@ -16,7 +16,7 @@ interface GroupedClients { styleUrls: ['./classroom-view.component.css'] }) export class ClassroomViewComponent implements OnInit, OnChanges { - + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; @Input() clients: any[] = []; @Input() pcInTable: number = 5; groupedClients: GroupedClients[] = []; @@ -85,7 +85,7 @@ export class ClassroomViewComponent implements OnInit, OnChanges { this.groupedClients.forEach(group => { group.clientRows.forEach(row => { row.forEach(client => { - const url = `http://127.0.0.1:8081/clients/${client.uuid}`; + const url = `${this.baseUrl}/clients/${client.uuid}`; const payload = { name: client.name, position: client.position diff --git a/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts b/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts index a8c2797..08e2647 100644 --- a/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts +++ b/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts @@ -12,6 +12,7 @@ import { DataService } from '../../data.service'; styleUrls: ['./create-client.component.css'] }) export class CreateClientComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; clientForm!: FormGroup; parentUnits: any[] = []; hardwareProfiles: any[] = []; @@ -71,7 +72,7 @@ export class CreateClientComponent implements OnInit { loadParentUnits() { this.loading = true; - const url = 'http://127.0.0.1:8081/organizational-units?page=1&itemsPerPage=10000'; + const url = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=10000`; this.http.get(url).subscribe( response => { @@ -87,7 +88,7 @@ export class CreateClientComponent implements OnInit { loadOgLives() { - const url = 'http://127.0.0.1:8081/og-lives?page=1&itemsPerPage=30'; + const url = `${this.baseUrl}/og-lives?page=1&itemsPerPage=30`; this.http.get(url).subscribe( response => { this.ogLives = response['hydra:member']; @@ -104,7 +105,7 @@ export class CreateClientComponent implements OnInit { const formData = this.clientForm.value; formData.ogLive = formData.ogLive; console.log('Form data:', formData ); - this.http.post('http://127.0.0.1:8081/clients', formData).subscribe( + this.http.post(`${this.baseUrl}/clients`, formData).subscribe( response => { this.dialogRef.close(response); this.openSnackBar(false, 'Cliente creado exitosamente'); diff --git a/ogWebconsole/src/app/components/groups/clients/edit-client/edit-client.component.ts b/ogWebconsole/src/app/components/groups/clients/edit-client/edit-client.component.ts index e2c54ad..2a5da08 100644 --- a/ogWebconsole/src/app/components/groups/clients/edit-client/edit-client.component.ts +++ b/ogWebconsole/src/app/components/groups/clients/edit-client/edit-client.component.ts @@ -12,6 +12,7 @@ import { ToastrService } from 'ngx-toastr'; styleUrls: ['./edit-client.component.css'] }) export class EditClientComponent { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; clientForm!: FormGroup; parentUnits: any[] = []; hardwareProfiles: any[] = []; @@ -60,7 +61,7 @@ export class EditClientComponent { } loadParentUnits() { - const url = 'http://127.0.0.1:8081/organizational-units?page=1&itemsPerPage=10000'; + const url = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=10000`; this.http.get(url).subscribe( response => { @@ -84,7 +85,7 @@ export class EditClientComponent { } loadOgLives(): void { - const url = 'http://127.0.0.1:8081/og-lives?page=1&itemsPerPage=10000'; + const url = `${this.baseUrl}/og-lives?page=1&itemsPerPage=10000`; this.http.get(url).subscribe( response => { @@ -98,7 +99,7 @@ export class EditClientComponent { loadData(uuid: string) { this.loading = true; - const url = `http://127.0.0.1:8081/clients/${uuid}`; + const url = `${this.baseUrl}/clients/${uuid}`; this.http.get(url).subscribe( data => { @@ -129,7 +130,7 @@ export class EditClientComponent { if (this.isEditMode) { // Edit mode: Send PUT request to update the unit - const putUrl = `http://127.0.0.1:8081/clients/${this.data.uuid}`; + const putUrl = `${this.baseUrl}/clients/${this.data.uuid}`; const headers = new HttpHeaders({ 'Content-Type': 'application/json' }); this.http.patch(putUrl, formData, { headers }).subscribe( @@ -146,7 +147,7 @@ export class EditClientComponent { ); } else { // Create mode: Send POST request to create a new unit - const postUrl = 'http://127.0.0.1:8081/clients'; + const postUrl = `${this.baseUrl}/clients`; const headers = new HttpHeaders({ 'Content-Type': 'application/json' }); this.http.post(postUrl, formData, { headers }).subscribe( diff --git a/ogWebconsole/src/app/components/groups/data.service.ts b/ogWebconsole/src/app/components/groups/data.service.ts index 8ccc52b..70336a2 100644 --- a/ogWebconsole/src/app/components/groups/data.service.ts +++ b/ogWebconsole/src/app/components/groups/data.service.ts @@ -9,8 +9,10 @@ import { UnidadOrganizativa } from './model'; }) export class DataService { - private apiUrl = 'http://127.0.0.1:8001/organizational-units?page=1&itemsPerPage=1000'; - private clientsUrl = 'http://127.0.0.1:8001/clients?page=1&itemsPerPage=1000'; + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; + + private apiUrl = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=1000`; + private clientsUrl = `${this.baseUrl}/clients?page=1&itemsPerPage=1000`; constructor(private http: HttpClient) {} @@ -68,7 +70,7 @@ export class DataService { } getHardwareProfiles(): Observable { - const url = 'http://127.0.0.1:8001/hardware-profiles'; + const url = `${this.baseUrl}/hardware-profiles`; return this.http.get(url).pipe( map(response => { if (response['hydra:member'] && Array.isArray(response['hydra:member'])) { @@ -86,8 +88,8 @@ export class DataService { deleteElement(uuid: string, type: string): Observable { const url = type === 'client' - ? `http://127.0.0.1:8001/clients/${uuid}` - : `http://127.0.0.1:8001/organizational-units/${uuid}`; + ? `${this.baseUrl}/clients/${uuid}` + : `${this.baseUrl}/organizational-units/${uuid}`; return this.http.delete(url).pipe( catchError(error => { console.error('Error deleting element', error); @@ -97,7 +99,7 @@ export class DataService { } changeParent(uuid: string): Observable { - const url = `http://127.0.0.1:8001/organizational-units/${uuid}/change-parent`; + const url = `${this.baseUrl}/organizational-units/${uuid}/change-parent`; // @ts-ignore return this.http.post(url).pipe( catchError(error => { @@ -149,7 +151,7 @@ export class DataService { } getFilters(): Observable { - return this.http.get('http://127.0.0.1:8001/views?page=1&itemsPerPage=30').pipe( + return this.http.get(`${this.baseUrl}/views?page=1&itemsPerPage=30`).pipe( map(response => { if (response['hydra:member'] && Array.isArray(response['hydra:member'])) { return response['hydra:member']; @@ -165,7 +167,7 @@ export class DataService { } getFilter(id: string): Observable { - return this.http.get('http://127.0.0.1:8001/views/' + id).pipe( + return this.http.get(`${this.baseUrl}/views/` + id).pipe( map(response => { diff --git a/ogWebconsole/src/app/components/groups/groups.component.ts b/ogWebconsole/src/app/components/groups/groups.component.ts index 44d713b..bc69ce3 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.ts +++ b/ogWebconsole/src/app/components/groups/groups.component.ts @@ -24,6 +24,7 @@ import { AcctionsModalComponent } from './acctions-modal/acctions-modal.componen styleUrls: ['./groups.component.css'] }) export class GroupsComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; organizationalUnits: UnidadOrganizativa[] = []; selectedUnidad: UnidadOrganizativa | null = null; selectedDetail: any | null = null; @@ -338,7 +339,7 @@ export class GroupsComponent implements OnInit { } }; - this.http.post('http://127.0.0.1:8081/views', filters).subscribe(response => { + this.http.post(`${this.baseUrl}/views`, filters).subscribe(response => { console.log('Response from server:', response); this.toastService.success('Se ha guardado el filtro correctamente'); }, error => { @@ -350,7 +351,7 @@ export class GroupsComponent implements OnInit { } loadSelectedFilter(savedFilter: any) { - const url = 'http://127.0.0.1:8081/views/' + savedFilter[1]; + const url = `${this.baseUrl}/views/` + savedFilter[1]; console.log('llamando a:', url); this.dataService.getFilter(savedFilter[1]).subscribe(response => { diff --git a/ogWebconsole/src/app/components/groups/organizational-units/create-organizational-unit/create-organizational-unit.component.ts b/ogWebconsole/src/app/components/groups/organizational-units/create-organizational-unit/create-organizational-unit.component.ts index dd6b1de..2e7f363 100644 --- a/ogWebconsole/src/app/components/groups/organizational-units/create-organizational-unit/create-organizational-unit.component.ts +++ b/ogWebconsole/src/app/components/groups/organizational-units/create-organizational-unit/create-organizational-unit.component.ts @@ -11,6 +11,7 @@ import {DataService} from "../../data.service"; styleUrls: ['./create-organizational-unit.component.css'] }) export class CreateOrganizationalUnitComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; isLinear = true; generalFormGroup: FormGroup; additionalInfoFormGroup: FormGroup; @@ -85,7 +86,7 @@ export class CreateOrganizationalUnitComponent implements OnInit { } loadParentUnits() { - const url = 'http://127.0.0.1:8001/organizational-units?page=1&itemsPerPage=10000'; + const url = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=1000`; this.http.get(url).subscribe( response => { @@ -134,7 +135,7 @@ export class CreateOrganizationalUnitComponent implements OnInit { }; console.log('POST data:', formData); - const postUrl = 'http://127.0.0.1:8001/organizational-units'; + const postUrl = `${this.baseUrl}/organizational-units`; const headers = new HttpHeaders({ 'Content-Type': 'application/json' }); this.http.post(postUrl, formData, { headers }).subscribe( diff --git a/ogWebconsole/src/app/components/groups/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts b/ogWebconsole/src/app/components/groups/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts index 2710325..074d484 100644 --- a/ogWebconsole/src/app/components/groups/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts +++ b/ogWebconsole/src/app/components/groups/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts @@ -12,6 +12,7 @@ import {ToastrService} from "ngx-toastr"; styleUrl: './edit-organizational-unit.component.css' }) export class EditOrganizationalUnitComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; isLinear = true; generalFormGroup: FormGroup; additionalInfoFormGroup: FormGroup; @@ -88,7 +89,7 @@ export class EditOrganizationalUnitComponent implements OnInit { } loadParentUnits() { - const url = 'http://127.0.0.1:8081/organizational-units?page=1&itemsPerPage=10000'; + const url = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=10000`; this.http.get(url).subscribe( response => { @@ -112,7 +113,7 @@ export class EditOrganizationalUnitComponent implements OnInit { } loadData(uuid: string) { - const url = `http://127.0.0.1:8081/organizational-units/${uuid}`; + const url = `${this.baseUrl}/organizational-units/${uuid}`; this.http.get(url).subscribe( data => { @@ -172,7 +173,7 @@ export class EditOrganizationalUnitComponent implements OnInit { if (this.isEditMode) { // Edit mode: Send PUT request to update the unit - const putUrl = `http://127.0.0.1:8081/organizational-units/${this.data.uuid}`; + const putUrl = `${this.baseUrl}/organizational-units/${this.data.uuid}`; const headers = new HttpHeaders({ 'Content-Type': 'application/json' }); this.http.put(putUrl, formData, { headers }).subscribe( @@ -187,7 +188,7 @@ export class EditOrganizationalUnitComponent implements OnInit { ); } else { // Create mode: Send POST request to create a new unit - const postUrl = 'http://127.0.0.1:8081/organizational-units'; + const postUrl = `${this.baseUrl}/organizational-units`; const headers = new HttpHeaders({ 'Content-Type': 'application/json' }); this.http.post(postUrl, formData, { headers }).subscribe( diff --git a/ogWebconsole/src/app/components/login/login.component.ts b/ogWebconsole/src/app/components/login/login.component.ts index a689b36..ba945b1 100644 --- a/ogWebconsole/src/app/components/login/login.component.ts +++ b/ogWebconsole/src/app/components/login/login.component.ts @@ -16,6 +16,8 @@ export class LoginComponent { errorMessage: string = ''; isLoading: boolean = false; + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; + constructor( private http: HttpClient, private router: Router, @@ -43,7 +45,8 @@ export class LoginComponent { return; } - this.http.post('http://127.0.0.1:8001/auth/login', this.loginObj).subscribe({ + // Usar la URL base de la variable de entorno + this.http.post(`${this.baseUrl}/auth/login`, this.loginObj).subscribe({ next: (res: any) => { if (res.token) { localStorage.setItem('loginToken', res.token); @@ -56,7 +59,7 @@ export class LoginComponent { }, error: (err) => { this.isLoading = false; - this.openSnackBar(true, 'Error al iniciar sesion: ' + err.error.message); + this.openSnackBar(true, 'Error al iniciar sesión: ' + err.error.message); } }); } @@ -69,12 +72,12 @@ export class LoginComponent { openSnackBar(isError: boolean, message: string) { if (isError) { this.toastService.error(message, 'Error'); - } else + } else { this.toastService.success(message, 'Éxito'); + } } - - //SOLO PARA LA DEMO BORRAR EN PRODUCCION + // SOLO PARA LA DEMO BORRAR EN PRODUCCIÓN redirectToUrl1() { window.location.href = 'http://localhost:4200/auth/login'; } diff --git a/ogWebconsole/src/app/components/ogboot/images/create-image/create-image/create-image.component.ts b/ogWebconsole/src/app/components/ogboot/images/create-image/create-image/create-image.component.ts index c6517d6..dcb6dbc 100644 --- a/ogWebconsole/src/app/components/ogboot/images/create-image/create-image/create-image.component.ts +++ b/ogWebconsole/src/app/components/ogboot/images/create-image/create-image/create-image.component.ts @@ -9,6 +9,7 @@ import { ToastrService } from 'ngx-toastr'; styleUrls: ['./create-image.component.css'] }) export class CreateImageComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; name: string = ''; downloads: any[] = []; selectedDownload: any; @@ -33,7 +34,7 @@ export class CreateImageComponent implements OnInit { } fetchDownloads(): void { - this.http.get('http://127.0.0.1:8081/og-lives/server/get-isos?page=1&itemsPerPage=30') + this.http.get(`${this.baseUrl}/og-lives/server/get-isos?page=1&itemsPerPage=30`) .subscribe({ next: (response: any) => { this.downloads = response.data.downloads; @@ -56,7 +57,7 @@ export class CreateImageComponent implements OnInit { }; if (this.isEditMode && this.imageId) { - this.http.patch(`http://127.0.0.1:8081/og-lives/${this.imageId}`, payload) + this.http.patch(`${this.baseUrl}/og-lives/${this.imageId}`, payload) .subscribe({ next: (response) => { this.toastService.success('Image updated successfully'); @@ -68,7 +69,7 @@ export class CreateImageComponent implements OnInit { } }); } else { - this.http.post('http://127.0.0.1:8081/og-lives', payload) + this.http.post(`${this.baseUrl}/og-lives`, payload) .subscribe({ next: (response) => { this.toastService.success('Image created successfully'); diff --git a/ogWebconsole/src/app/components/ogboot/images/data.service.ts b/ogWebconsole/src/app/components/ogboot/images/data.service.ts index 72d2ea5..89dac83 100644 --- a/ogWebconsole/src/app/components/ogboot/images/data.service.ts +++ b/ogWebconsole/src/app/components/ogboot/images/data.service.ts @@ -7,7 +7,8 @@ import { catchError, map } from 'rxjs/operators'; providedIn: 'root' }) export class DataService { - private apiUrl = 'http://127.0.0.1:8081/og-lives?page=1&itemsPerPage=1000'; + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; + private apiUrl = `${this.baseUrl}/og-lives?page=1&itemsPerPage=1000`; constructor(private http: HttpClient) {} diff --git a/ogWebconsole/src/app/components/ogboot/images/images.component.ts b/ogWebconsole/src/app/components/ogboot/images/images.component.ts index 20eb895..a923dba 100644 --- a/ogWebconsole/src/app/components/ogboot/images/images.component.ts +++ b/ogWebconsole/src/app/components/ogboot/images/images.component.ts @@ -16,6 +16,7 @@ import {DataService} from "./data.service"; styleUrls: ['./images.component.css'] }) export class ImagesComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; images: { downloadUrl: string; name: string; uuid: string }[] = []; dataSource = new MatTableDataSource(); length: number = 0; @@ -62,7 +63,7 @@ export class ImagesComponent implements OnInit { ]; displayedColumns = [...this.columns.map(column => column.columnDef), 'actions']; - private apiUrl = 'http://127.0.0.1:8081/og-lives'; + private apiUrl = `${this.baseUrl}/og-lives`; constructor( public dialog: MatDialog, diff --git a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts index 4a478b1..340f621 100644 --- a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts +++ b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts @@ -7,6 +7,7 @@ import { HttpClient } from '@angular/common/http'; styleUrls: ['./ogboot-status.component.css'] }) export class OgbootStatusComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; diskUsage: any = {}; servicesStatus: any = {}; installedOglives: any[] = []; @@ -30,7 +31,7 @@ export class OgbootStatusComponent implements OnInit { } loadStatus(): void { - this.http.get('http://127.0.0.1:8081/og-boot/status').subscribe(data => { + this.http.get(`${this.baseUrl}/og-boot/status`).subscribe(data => { this.diskUsage = data.disk_usage; this.servicesStatus = data.services_status; this.installedOglives = data.installed_oglives; diff --git a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/create-pxeBootFile/create-pxe-boot-file/create-pxe-boot-file.component.ts b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/create-pxeBootFile/create-pxe-boot-file/create-pxe-boot-file.component.ts index 1d1770a..be0efe0 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/create-pxeBootFile/create-pxe-boot-file/create-pxe-boot-file.component.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/create-pxeBootFile/create-pxe-boot-file/create-pxe-boot-file.component.ts @@ -9,6 +9,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; styleUrls: ['./create-pxe-boot-file.component.css'] }) export class CreatePxeBootFileComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; pxeTemplates: any[] = []; selectedPxeTemplate: string | undefined; clientes: string[] = []; @@ -39,7 +40,7 @@ export class CreatePxeBootFileComponent implements OnInit { } loadPxeTemplates(): void { - this.http.get('http://127.0.0.1:8081/pxe-templates?page=1&itemsPerPage=30') + this.http.get(`${this.baseUrl}/pxe-templates?page=1&itemsPerPage=30`) .subscribe((response: any) => { this.pxeTemplates = response['hydra:member']; }, error => { @@ -60,7 +61,7 @@ export class CreatePxeBootFileComponent implements OnInit { if (this.isEditMode && this.data.bootFile) { // Edit mode: Actualizar boot file existente - this.http.put(`http://127.0.0.1:8081/pxe-boot-files/${this.data.bootFile.uuid}`, payload) + this.http.put(`${this.baseUrl}/pxe-boot-files/${this.data.bootFile.uuid}`, payload) .subscribe({ next: response => { this.toastService.success('PXE actualizado con éxito'); @@ -72,7 +73,7 @@ export class CreatePxeBootFileComponent implements OnInit { }); } else { // Create mode: Crear nuevo boot file - this.http.post('http://127.0.0.1:8081/pxe-boot-files', payload) + this.http.post(`${this.baseUrl}/pxe-boot-files`, payload) .subscribe({ next: response => { this.toastService.success('PXE asignado con éxito'); diff --git a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/data.service.ts b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/data.service.ts index 1af8c4a..c248a52 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/data.service.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/data.service.ts @@ -8,7 +8,8 @@ import { DataService as TemplateDataService } from './../pxe/data.service'; providedIn: 'root' }) export class DataService { - private apiUrl = 'http://127.0.0.1:8081/pxe-boot-files?page=1&itemsPerPage=1000'; + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; + private apiUrl = `${this.baseUrl}/pxe-boot-files?page=1&itemsPerPage=1000`; constructor( private http: HttpClient, diff --git a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts index 13ca398..937bb24 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts @@ -14,7 +14,8 @@ import {DataService} from "./data.service"; styleUrl: './pxe-boot-files.component.css' }) export class PxeBootFilesComponent { - pxeTemplates: any[] = []; // Inicializa el array de plantillas + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; + pxeTemplates: any[] = []; currentPage: number = 1; dataSource = new MatTableDataSource(); length: number = 0; @@ -51,7 +52,7 @@ export class PxeBootFilesComponent { ]; displayedColumns = [...this.columns.map(column => column.columnDef), 'actions']; - private apiUrl = 'http://127.0.0.1:8081/pxe-boot-files'; + private apiUrl = `${this.baseUrl}/pxe-boot-files`; constructor( public dialog: MatDialog, diff --git a/ogWebconsole/src/app/components/ogboot/pxe/create-pxeTemplate/create-pxe-template.component.ts b/ogWebconsole/src/app/components/ogboot/pxe/create-pxeTemplate/create-pxe-template.component.ts index d204962..ce88760 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe/create-pxeTemplate/create-pxe-template.component.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe/create-pxeTemplate/create-pxe-template.component.ts @@ -10,6 +10,7 @@ import { ToastrService } from 'ngx-toastr'; styleUrls: ['./create-pxe-template.component.css'] }) export class CreatePxeTemplateComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; templateForm!: FormGroup; previewContent: string = ''; isEditMode: boolean = false; @@ -46,7 +47,7 @@ export class CreatePxeTemplateComponent implements OnInit { templateContent: formValues.templateContent }; - this.http.post('http://127.0.0.1:8081/pxe-templates', payload).subscribe({ + this.http.post(`${this.baseUrl}/pxe-templates`, payload).subscribe({ next: data => { console.log('Plantilla PXE creada:', data); this.toastService.success('Plantilla PXE creada exitosamente'); @@ -67,7 +68,7 @@ export class CreatePxeTemplateComponent implements OnInit { templateContent: formValues.templateContent }; - this.http.patch(`http://127.0.0.1:8081/pxe-templates/${this.data.uuid}`, payload).subscribe({ + this.http.patch(`${this.baseUrl}/pxe-templates/${this.data.uuid}`, payload).subscribe({ next: data => { console.log('Plantilla PXE actualizada:', data); this.toastService.success('Plantilla PXE actualizada exitosamente'); diff --git a/ogWebconsole/src/app/components/ogboot/pxe/data.service.ts b/ogWebconsole/src/app/components/ogboot/pxe/data.service.ts index 74828e0..5354d14 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe/data.service.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe/data.service.ts @@ -8,7 +8,8 @@ import { catchError, map } from 'rxjs/operators'; providedIn: 'root' }) export class DataService { - private apiUrl = 'http://127.0.0.1:8081/pxe-templates?page=1&itemsPerPage=1000'; + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; + private apiUrl = `${this.baseUrl}/pxe-templates?page=1&itemsPerPage=1000`; constructor(private http: HttpClient) {} diff --git a/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.ts b/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.ts index d7cb448..55cea38 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.ts @@ -15,6 +15,7 @@ import { DataService } from './data.service'; styleUrls: ['./pxe.component.css'] }) export class PxeComponent { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; pxeTemplates: any[] = []; currentPage: number = 1; dataSource = new MatTableDataSource(); @@ -53,7 +54,7 @@ export class PxeComponent { ]; displayedColumns = [...this.columns.map(column => column.columnDef), 'actions']; - private apiUrl = 'http://127.0.0.1:8081/pxe-templates'; + private apiUrl = `${this.baseUrl}/pxe-templates`; constructor( public dialog: MatDialog, diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/add-clients-to-subnet/add-clients-to-subnet.component.ts b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/add-clients-to-subnet/add-clients-to-subnet.component.ts index 07b9dc7..6b4190a 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/add-clients-to-subnet/add-clients-to-subnet.component.ts +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/add-clients-to-subnet/add-clients-to-subnet.component.ts @@ -8,6 +8,7 @@ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; styleUrls: ['./add-clients-to-subnet.component.css'] }) export class AddClientsToSubnetComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; clients: any[] = []; selectedClients: any[] = []; loading: boolean = true; @@ -22,7 +23,7 @@ export class AddClientsToSubnetComponent implements OnInit { console.log('Selected subnet UUID:', this.data); this.loading = true; - this.http.get('http://127.0.0.1:8080/clients?page=1&itemsPerPage=30').subscribe( + this.http.get(`${this.baseUrl}/clients?page=1&itemsPerPage=30`).subscribe( response => { this.clients = response['hydra:member']; this.loading = false; @@ -39,7 +40,7 @@ export class AddClientsToSubnetComponent implements OnInit { clients: JSON.stringify(this.selectedClients.map(client => client.uuid)) }; - this.http.post(`http://127.0.0.1:8080/og-dhcp/server/${this.data.subnetUuid}/post-host`, postData).subscribe( + this.http.post(`${this.baseUrl}/og-dhcp/server/${this.data.subnetUuid}/post-host`, postData).subscribe( response => { console.log('Clients assigned successfully:', response); this.dialogRef.close(this.selectedClients); diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/create-subnet/create-subnet.component.ts b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/create-subnet/create-subnet.component.ts index 8853c6f..af74676 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/create-subnet/create-subnet.component.ts +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/create-subnet/create-subnet.component.ts @@ -9,6 +9,7 @@ import { ToastrService } from 'ngx-toastr'; styleUrls: ['./create-subnet.component.css'] }) export class CreateSubnetComponent implements OnInit { + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; name: string = ''; netmask: string = ''; ipAddress: string = ''; @@ -39,7 +40,7 @@ export class CreateSubnetComponent implements OnInit { bootFileName: this.bootFileName }; - this.http.post('http://127.0.0.1:8080/subnets', payload) + this.http.post(`${this.baseUrl}/subnets`, payload) .subscribe({ next: (response) => { console.log('Success:', response); diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts index f60d09b..71bd6ae 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts @@ -28,7 +28,7 @@ export interface Subnet { styleUrls: ['./og-dhcp-subnets.component.css'] }) export class OgDhcpSubnetsComponent { - + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; displayedColumns: string[] = ['name', 'netmask', 'ipAddress', 'nextServer', 'bootFileName', 'actions']; dataSource = new MatTableDataSource([]); length = 0; @@ -54,7 +54,7 @@ export class OgDhcpSubnetsComponent { } loadSubnets() { - this.http.get(`http://127.0.0.1:8001/subnets?page=1&itemsPerPage=${this.itemsPerPage}`).subscribe({ + this.http.get(`${this.baseUrl}/subnets?page=1&itemsPerPage=${this.itemsPerPage}`).subscribe({ next: (response) => { this.dataSource.data = response['hydra:member']; this.length = response['hydra:totalItems']; @@ -107,7 +107,7 @@ export class OgDhcpSubnetsComponent { dialogRef.afterClosed().subscribe(result => { if (result) { - const apiUrl = `http://127.0.0.1:8081${subnet['@id']}`; + const apiUrl = `${this.baseUrl}${subnet['@id']}`; this.http.delete(apiUrl).subscribe({ next: () => { diff --git a/ogWebconsole/src/env.d.ts b/ogWebconsole/src/env.d.ts new file mode 100644 index 0000000..0da6176 --- /dev/null +++ b/ogWebconsole/src/env.d.ts @@ -0,0 +1,7 @@ +interface ImportMetaEnv { + readonly NG_APP_BASE_API_URL: string; // Define aquí todas las variables que necesitas +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +}