oldtimer/web/admin/main-es5.js.map
2023-10-10 09:15:19 +02:00

1 line
21 KiB
Plaintext

{"version":3,"sources":["/./$_lazy_route_resource lazy namespace object","/./src/app/app.component.html","/./src/app/app.component.scss","/./src/app/app.component.ts","/./src/app/app.module.ts","/./src/environments/environment.ts","/./src/main.ts"],"names":[],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","module.exports = \"<div class=\\\"page\\\" fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\">\\n <div class=\\\"container\\\">\\n <div style=\\\"text-align:center\\\">\\n <h1>\\n Oldtimer Veteránautó-kölcsönző - Adminisztrációs oldal\\n </h1>\\n <div fxLayout=\\\"row\\\">\\n <p>Ezzel a gombbal újratöltheti a lekérdezéseket:</p>\\n <button mat-raised-button color='primary' (click)=\\\"refresh()\\\">\\n Adatok frissítése\\n <mat-icon>refresh</mat-icon>\\n </button>\\n </div>\\n\\n </div>\\n\\n <h2>Szerver státusz:</h2>\\n <mat-card>\\n <p>\\n Az alábbi gombok jelzik, hogy rendben működik-e az Alkalmazásszerver és az Adatbázis:\\n </p>\\n <table>\\n <tr>\\n <td>Alkalmazásserver státusz:</td>\\n <td>\\n <button mat-button\\n [ngClass]=\\\"{'pending-button':serverStatus.indicator === 'pending',\\n 'offline-button':serverStatus.indicator === 'offline',\\n 'active-button':serverStatus.indicator === 'active'}\\\">\\n <ng-container [ngSwitch]=\\\"serverStatus.indicator\\\">\\n <ng-container *ngSwitchCase=\\\"'pending'\\\">Lekérdezés...</ng-container>\\n <ng-container *ngSwitchCase=\\\"'offline'\\\">Nem elérhető!</ng-container>\\n <ng-container *ngSwitchDefault>Elérhető</ng-container>\\n </ng-container>\\n </button>\\n </td>\\n </tr>\\n <tr>\\n <td>MySQL adatbázis státusz:</td>\\n <td>\\n <button mat-button [ngClass]=\\\"{'pending-button':mysqlStatus.indicator === 'pending',\\n 'offline-button':mysqlStatus.indicator === 'offline',\\n 'active-button':mysqlStatus.indicator === 'active'}\\\">\\n <ng-container [ngSwitch]=\\\"mysqlStatus.indicator\\\">\\n <ng-container *ngSwitchCase=\\\"'pending'\\\">Lekérdezés...</ng-container>\\n <ng-container *ngSwitchCase=\\\"'offline'\\\">Nem elérhető!</ng-container>\\n <ng-container *ngSwitchDefault>Elérhető</ng-container>\\n <ng-container *ngIf=\\\"dbIsNotYetCreated\\\"> Az adatbázist még nem hozták létre.\\n </ng-container>\\n </ng-container>\\n </button>\\n </td>\\n </tr>\\n </table>\\n </mat-card>\\n\\n <h2>SQL lekérdezések eredményei:</h2>\\n <ng-container *ngIf=\\\"sqlTasks; else noEntry\\\">\\n <ng-container *ngFor=\\\"let entry of sqlTasks\\\">\\n\\n <mat-card>\\n <mat-card-header>\\n <h2>{{entry.id}} Feladat:</h2>\\n </mat-card-header>\\n\\n <h4 class=\\\"sql-description\\\">{{entry.description}}</h4>\\n <ng-container *ngIf=\\\"entry.response; else waitingForEntries\\\">\\n <table class=\\\"query-table\\\">\\n <ng-container *ngIf=\\\"entry.response.empty; else resultTemplate\\\">\\n <p><b>Ehhez a feladathoz még nem szerepel SQL lekérdezés a beadandó fájlban\\n (/lekerdezesek/lekerdezesek.sql).</b></p>\\n </ng-container>\\n <ng-template #resultTemplate>\\n <tr>\\n <th *ngFor=\\\"let key of Object.keys(entry?.response[0])\\\">{{key}}</th>\\n </tr>\\n <ng-container *ngFor=\\\"let resultEntry of entry.response\\\">\\n\\n <tr>\\n <td *ngFor=\\\"let val of Object.values(resultEntry)\\\">{{val}}</td>\\n </tr>\\n </ng-container>\\n </ng-template>\\n </table>\\n </ng-container>\\n\\n </mat-card>\\n\\n\\n <mat-divider></mat-divider>\\n </ng-container>\\n </ng-container>\\n <h2>Felhasználói vélemények</h2>\\n <button mat-raised-button color='warn' (click)=\\\"deleteVelemenyek()\\\">Vélemények törlése a szerveren\\n <mat-icon>delete</mat-icon>\\n </button>\\n <button mat-raised-button color='primary' (click)=\\\"reloadVelemenyek()\\\">\\n Vélemények frissítése\\n <mat-icon>refresh</mat-icon>\\n </button>\\n <mat-card *ngIf=\\\"serverStatus.indicator === 'active'; else noServerForVelemenyek\\\">\\n <ng-container *ngIf=\\\"velemenyek; else waitingForVelemenyek\\\">\\n <table class=\\\"query-table\\\">\\n <tr>\\n <th>Bejegyzés</th>\\n <th>Dátum</th>\\n </tr>\\n <ng-container *ngFor=\\\"let entry of velemenyek\\\">\\n <tr>\\n <td *ngFor=\\\"let val of Object.values(entry)\\\">{{val}}</td>\\n </tr>\\n </ng-container>\\n </table>\\n </ng-container>\\n </mat-card>\\n\\n <ng-template #noServerForVelemenyek>\\n <mat-card>\\n <mat-card-header>Az alkalamzás szervernek futnia kell a vélemények betöltéséhez.</mat-card-header>\\n </mat-card>\\n </ng-template>\\n\\n <ng-template #noEntry>\\n Nem sikerült az SQL lekérdezéseket lekérdezni.\\n </ng-template>\\n\\n <ng-template #waitingForEntries>\\n <p>A lekérdezéshez tartozó válasz betöltése nem sikerült.</p>\\n </ng-template>\\n\\n <ng-template #waitingForVelemenyek>\\n <p>A Vélemény bejegyzéseket nem sikerült lekérdezni.</p>\\n </ng-template>\\n\\n </div>\\n</div>\\n\\n\"","module.exports = \".pending-button {\\n background-color: yellow !important;\\n}\\n\\n.offline-button {\\n background-color: red !important;\\n}\\n\\n.active-button {\\n background-color: green !important;\\n}\\n\\n.container {\\n font-family: \\\"Trebuchet MS\\\", Arial, Helvetica, sans-serif;\\n background-color: #d3eadf;\\n padding: 10px;\\n}\\n\\n.query-table {\\n border-collapse: collapse;\\n width: 100%;\\n}\\n\\n.query-table td, .query-table th {\\n border: 1px solid #ddd;\\n padding: 8px;\\n}\\n\\n.query-table tr:nth-child(even) {\\n background-color: #f2f2f2;\\n}\\n\\n.query-table tr:hover {\\n background-color: #ddd;\\n}\\n\\n.query-table th {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n text-align: left;\\n background-color: #4CAF50;\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQzpcXFVzZXJzXFxvcmFjbGVcXERlc2t0b3BcXEZvcmVzdFxcMS43XFxhZG1pbi1sZWbDvGxldC1zb3VyY2Uta8OzZGphXFxhZG1pbi9zcmNcXGFwcFxcYXBwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxtQ0FBQTtBQ0NGOztBREVBO0VBQ0UsZ0NBQUE7QUNDRjs7QURFQTtFQUNFLGtDQUFBO0FDQ0Y7O0FERUE7RUFDRSx5REFBQTtFQUNBLHlCQUFBO0VBQ0EsYUFBQTtBQ0NGOztBREVBO0VBQ0UseUJBQUE7RUFDQSxXQUFBO0FDQ0Y7O0FEQ0U7RUFDRSxzQkFBQTtFQUNBLFlBQUE7QUNDSjs7QURFRTtFQUNFLHlCQUFBO0FDQUo7O0FER0U7RUFDRSxzQkFBQTtBQ0RKOztBRElFO0VBQ0UsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FDRkoiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucGVuZGluZy1idXR0b24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub2ZmbGluZS1idXR0b24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJlZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWN0aXZlLWJ1dHRvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNvbnRhaW5lciB7XHJcbiAgZm9udC1mYW1pbHk6IFwiVHJlYnVjaGV0IE1TXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzZWFkZjtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4ucXVlcnktdGFibGUge1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIHRkLCB0aCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xyXG4gICAgcGFkZGluZzogOHB4O1xyXG4gIH1cclxuXHJcbiAgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XHJcbiAgfVxyXG5cclxuICB0cjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIH1cclxuXHJcbiAgdGgge1xyXG4gICAgcGFkZGluZy10b3A6IDEycHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNENBRjUwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gIH1cclxufVxyXG4iLCIucGVuZGluZy1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3cgIWltcG9ydGFudDtcbn1cblxuLm9mZmxpbmUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG59XG5cbi5hY3RpdmUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIGZvbnQtZmFtaWx5OiBcIlRyZWJ1Y2hldCBNU1wiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNlYWRmO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ucXVlcnktdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5xdWVyeS10YWJsZSB0ZCwgLnF1ZXJ5LXRhYmxlIHRoIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogOHB4O1xufVxuLnF1ZXJ5LXRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG59XG4ucXVlcnktdGFibGUgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xufVxuLnF1ZXJ5LXRhYmxlIHRoIHtcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNENBRjUwO1xuICBjb2xvcjogd2hpdGU7XG59Il19 */\"","import {Component, OnDestroy, OnInit} from '@angular/core';\nimport {Subscription, TimeInterval} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {environment} from '../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit, OnDestroy {\n subscription: Subscription;\n sqlTasks: any;\n sqlTaskSubscriptions = {};\n velemenyek = null;\n dbIsNotYetCreated = false;\n Object = Object; // a template fájlokban is elérhető így\n\n serverStatus: IStatusObject = {\n subscription: null,\n interval: null,\n indicator: StatusIndicator.pending,\n url: '/serverStatus'\n };\n mysqlStatus: IStatusObject = {\n subscription: null,\n interval: null,\n indicator: StatusIndicator.pending,\n url: '/mysqlStatus'\n };\n\n constructor(private http: HttpClient) {\n }\n\n ngOnInit(): void {\n this.reloadSqlTasks();\n this.startMonitoring();\n this.reloadVelemenyek();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.serverStatus.subscription) {\n this.serverStatus.subscription.unsubscribe();\n }\n if (this.mysqlStatus.subscription) {\n this.mysqlStatus.subscription.unsubscribe();\n }\n if (this.serverStatus.interval) {\n clearInterval(this.serverStatus.interval);\n }\n if (this.mysqlStatus.interval) {\n clearInterval(this.mysqlStatus.interval);\n }\n }\n\n startMonitoring() {\n this.startMonitoringInterval(this.serverStatus);\n this.startMonitoringInterval(this.mysqlStatus);\n }\n\n startMonitoringInterval(statusObj: IStatusObject) {\n this.createHttpRequest(statusObj);\n statusObj.interval = setInterval(() => {\n this.createRESTSubscription(statusObj);\n }, 5000);\n }\n\n private createRESTSubscription(statusObj: IStatusObject) {\n if (statusObj.subscription) {\n statusObj.subscription.unsubscribe();\n }\n statusObj.subscription = this.createHttpRequest(statusObj);\n }\n\n private createHttpRequest(statusObj: IStatusObject) {\n return this.http.get(environment.baseUrl + statusObj.url).subscribe((res: any) => {\n if (res && res.alive) {\n statusObj.indicator = StatusIndicator.active;\n } else {\n statusObj.indicator = StatusIndicator.offline;\n }\n }, err => {\n console.error('Error with ', statusObj.url, ' status:', err);\n statusObj.indicator = StatusIndicator.offline;\n });\n }\n\n private reloadSqlTasks() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n\n }\n this.subscription = this.http.get(environment.baseUrl + '/sqltasks').subscribe(res => {\n this.sqlTasks = (res as Array<any>).filter(task => task.adminPage);\n this.requestSqlTaskResults();\n }, err => {\n console.log('err: ', err);\n }\n );\n }\n\n reloadVelemenyek() {\n this.http.get(environment.baseUrl + '/velemeny').subscribe(res => {\n this.velemenyek = res;\n }, err => {\n console.log('err: ', err);\n });\n }\n\n deleteVelemenyek() {\n this.http.delete(environment.baseUrl + '/velemeny').subscribe(res => {\n console.log((res as any).message);\n this.velemenyek = [];\n }, err => {\n console.log('err: ', err);\n this.reloadVelemenyek();\n });\n }\n\n requestSqlTaskResults() {\n this.sqlTasks.forEach(entry => {\n if (this.sqlTaskSubscriptions[entry.id]) {\n this.sqlTaskSubscriptions[entry.id].unsubscribe();\n }\n this.sqlTaskSubscriptions[entry.id] = this.http.get(environment.baseUrl + '/lekerdezes/' + entry.id).subscribe(res => {\n this.dbIsNotYetCreated = false;\n entry.response = res;\n }, err => {\n if (err.error && err.error.error && err.error.error === 'ER_BAD_DB_ERROR') {\n this.dbIsNotYetCreated = true;\n }\n });\n });\n }\n\n refresh() {\n this.serverStatus.indicator = StatusIndicator.pending;\n this.mysqlStatus.indicator = StatusIndicator.pending;\n this.ngOnDestroy();\n this.ngOnInit();\n }\n}\n\nenum StatusIndicator {\n pending = 'pending', active = 'active', offline = 'offline'\n}\n\ninterface IStatusObject {\n subscription: Subscription;\n interval: any;\n indicator: StatusIndicator;\n url: string;\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {NgModule} from '@angular/core';\n\nimport {AppComponent} from './app.component';\nimport {HttpClientModule} from '@angular/common/http';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {MatButtonModule, MatCardModule, MatDividerModule, MatIconModule, MatListModule} from '@angular/material';\nimport {FlexLayoutModule} from '@angular/flex-layout';\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n MatCardModule,\n MatDividerModule,\n MatListModule,\n HttpClientModule,\n MatButtonModule,\n FlexLayoutModule,\n MatIconModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n baseUrl: 'http://localhost:8000/api'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":""}