http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss deleted file mode 100755 index 9502a7e..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -.datatype-dialog { - font-family: "Roboto Mono", monospace; - font-size: 0.80rem; - font-weight: 500; -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html deleted file mode 100755 index 1157261..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html +++ /dev/null @@ -1,26 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/--> -<div class="datatype-dialog"> - <p mat-dialog-title>DROP DATATYPE</p> - <mat-dialog-content> - <p>PLEASE GIVE THE NAME OF THE DATATYPE TO DROP</p> - </mat-dialog-content> - <mat-form-field> - <input matInput tabindex="0" [(ngModel)]="data.datatypeName"> - </mat-form-field> - <mat-dialog-actions> - <button mat-button (click)="onClick()" tabindex="1">DROP</button> - <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button> - </mat-dialog-actions> -</div> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss deleted file mode 100755 index 9502a7e..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -.datatype-dialog { - font-family: "Roboto Mono", monospace; - font-size: 0.80rem; - font-weight: 500; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html deleted file mode 100755 index e580a54..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html +++ /dev/null @@ -1,70 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ --> -<div class="container" (click)="onClick()"> - <div class="master"> - <mat-card class="datatypes-card" *ngIf="loaded$ | async as ld"> - <mat-toolbar color="primary" class="datatypes-selector"> - <mat-icon class="icon">menu</mat-icon> - <span>DATATYPES - METADATA</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="datatypes-content"> - <mat-table #table [dataSource]="dataSource" class="datatypes-table" role="treegrid"> - <!-- Datatype Name --> - <ng-container matColumnDef="DatatypeName"> - <mat-header-cell *matHeaderCellDef class="header-datatypename-cell">Datatype Name</mat-header-cell> - <mat-cell *matCellDef="let element" class="datatypes-datatypename-cell">{{element.DatatypeName}} </mat-cell> - </ng-container> - - <!-- Data Type Dataverse Name --> - <ng-container matColumnDef="DataverseName"> - <mat-header-cell *matHeaderCellDef class="header-dataversename-cell">Dataverse Name </mat-header-cell> - <mat-cell *matCellDef="let element" class="datatypes-dataversename-cell">{{element.DataverseName}} </mat-cell> - </ng-container> - - <!-- Timestamp Column --> - <ng-container matColumnDef="Timestamp"> - <mat-header-cell *matHeaderCellDef class="header-timestamp-cell">Timestamp</mat-header-cell> - <mat-cell *matCellDef="let element" class="datatypes-timestamp-cell">{{element.Timestamp}}</mat-cell> - </ng-container> - - <mat-header-row *matHeaderRowDef="['DatatypeName', 'DataverseName', 'Timestamp']"></mat-header-row> - <mat-row *matRowDef="let row; columns: ['DatatypeName', 'DataverseName', 'Timestamp'];" - [ngClass]="{'highlight': selectedRowIndex == row.id}" - (click)="highlight(row)"> - </mat-row> - </mat-table> - </mat-card-content> - <mat-card-actions class="actions"> - <button class="refresh-button" mat-button (click)="openDropDatatypeDialog()">DROP</button> - <span class="error-message">{{errorMessage}}</span> - <span class="spacer"></span> - <button class="refresh-button" mat-button (click)="getDatatypes()">REFRESH</button> - </mat-card-actions> - </mat-card> - <awc-query-metadata #querymetadata class="query"></awc-query-metadata> - </div> - <div class="detail"> - <mat-card class="datatypes-details-card"> - <mat-toolbar color="primary" class="datatypes-selector"> - <mat-icon class="icon">menu</mat-icon> - <span>DATATYPE - METADATA - DETAILS</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="datatypes-content output"> - <span><pre>{{output}}</pre></span> - </mat-card-content> - </mat-card> - </div> -</div> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss deleted file mode 100755 index d4aeffc..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss +++ /dev/null @@ -1,267 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -$datatypes-spacing-unit: 8px; - -.container { - display: flex; - flex-flow: row; - padding: 0; - margin: 0; -} - -.master { - width: 60%; - overflow: hidden; -} - -.detail { - width: 40%; - overflow: hidden; -} - -.datatypes-card { - display: flex; - flex-flow: column; - padding: 0; - margin:0 auto; - margin-top: ($datatypes-spacing-unit * 2); - min-height: 450px; - max-height: 450px; - //min-width: 98%; //(100vw / 2); - //max-width: 98%; // (100vw / 2); - width: 95%; // 98%; - overflow: hidden; -} - -.datatypes-details-card { - display: flex; - flex-flow: column; - padding: 0; - margin:0 auto; - margin: ($datatypes-spacing-unit * 2); - min-height: 716px; - max-height: 716px; - //min-width: 95%; //(100vw / 2); - //max-width: 95%; // (100vw / 2); - overflow: hidden; -} - -.icon { - padding: 0 14px 0 0; - margin: 0; -} - -.spacer { - flex: 1 1 auto; -} - -.datatypes-selector { - min-height: 42px; - max-height: 42px; - justify-content: center; - //align-items: center; - font-size: 0.80rem; - font-weight: 500; - background-color: white; - border: 1px solid rgba(54, 147, 209, 0.87); -} - -.datatypes-content { - position:relative; - top: 0; - left: 0; - margin: 0px; - padding: 0px; - overflow: auto; -} - -.datatypes-table { - margin: $datatypes-spacing-unit !important; - height: 330px; - overflow: auto; -} - -.spacer { - flex: 1 1 auto; -} - -.datatypes-toolbar { - display: block; - min-height: 56px; - height: 56px; -// width: 250px; - font-size: 12px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - letter-spacing: 1px; - font-weight: 400; - background: rgba(0,0,1, .80); -} - -.example-header { - min-height: 64px; - display: flex; - align-items: center; - padding-left: 24px; - font-size: 20px; -} - -.mat-table { - overflow: auto; -} - -.customWidthClass{ - flex: 0 0 75px; -} - -.mat-column-DataverseName { - text-align: left; -} - -.mat-header-cell.mat-column-DataverseName { - text-align: left; -} - -.mat-cell.mat-column-DataverseName { - text-align: left; -} - -.header-datatypename-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $datatypes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($datatypes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 400px; -} - -.datatypes-datatypename-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $datatypes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($datatypes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 400px; -} - -.header-dataversename-cell { - display: flex; - justify-content: center; - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $datatypes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($datatypes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 250px; -} - -.datatypes-dataversename-cell { - display: flex; - justify-content: center; - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $datatypes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($datatypes-spacing-unit * 2); - flex: 0 0 250px; -} - -.header-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $datatypes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($datatypes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 250px; -} - -.datatypes-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $datatypes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($datatypes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - flex: 0 0 250px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-form-field { - font-size: 14px; - flex-grow: 1; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -.actions { - display: flex; - border-top: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(54, 147, 209, 0.87); - padding: $datatypes-spacing-unit; - margin: 0; -} - -.error-message { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(209, 54, 54, 0.87); - padding-top: 10px; - padding-left: 20px; - text-overflow: ellipsis; -} - -.output { - padding-left: ($datatypes-spacing-unit * 2); -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts deleted file mode 100755 index 953a27e..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts +++ /dev/null @@ -1,220 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { Component, ChangeDetectionStrategy, Inject, Input } from '@angular/core'; -import { Datatype } from '../../../shared/models/asterixDB.model' -import { Store } from '@ngrx/store'; -import { Observable } from 'rxjs/Observable'; -import * as datatypeActions from '../../../shared/actions/datatype.actions' -import { ElementRef, ViewChild} from '@angular/core'; -import {DataSource} from '@angular/cdk/collections'; -import {BehaviorSubject} from 'rxjs/BehaviorSubject'; -import 'rxjs/add/operator/startWith'; -import 'rxjs/add/observable/merge'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/debounceTime'; -import 'rxjs/add/operator/distinctUntilChanged'; -import 'rxjs/add/observable/fromEvent'; -import { Subscription } from "rxjs/Rx"; -import { State } from '../../../shared/reducers/datatype.reducer'; -import { MatPaginator } from '@angular/material'; -import { SelectionModel } from '@angular/cdk/collections'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; - -@Component({ - selector: 'awc-datatypes', - templateUrl: 'datatypes.component.html', - styleUrls: ['datatypes.component.scss'] -}) - -export class DatatypeCollection { - displayedColumns = "['datatypeName', 'dataverseName', 'timeStamp']" - /* - datatypeName: string; - dataverseName: string; - derived: DatatypeDerived; - timeStamp: string; - */ - datatypeName: string; - dataSource: DatatypeDataSource | null; - loaded$: Observable<any>; - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild('filter') filter: ElementRef; - selection = new SelectionModel<string>(true, []); - @Input('message') errorMessage: string = "" - dtName = ""; - - constructor(private store: Store<any>, public dialog: MatDialog) { - this.loaded$ = this.store.select('datatype'); - // Watching the name of the latest create datatype - this.store.select(s => s.datatype.createDatatypeName).subscribe((data: any) => { - this.dtName = data; - }) - - // Watching the name of the latest drop datatype - this.store.select(s => s.datatype.dropDatatypeName).subscribe((data: any) => { - this.dtName = data; - }) - - // Watching for the if there is a change in the collection - this.store.select(s => s.datatype.createDatatypeSuccess).subscribe((data: any) => { - if (data === true) { - this.getDatatypes(); - this.errorMessage = "SUCCEED: CREATE DATATYPE " + this.dtName; - } - }) - - // Watching for the if there is a error in a create datatype operation - this.store.select(s => s.datatype.createDatatypeError).subscribe((data: any) => { - if (data.errors) { - this.errorMessage = "ERROR: " + data.errors[0].msg; - } - }) - - // Watching for the success message in a drop datatype operation - this.store.select(s => s.datatype.dropDatatypeSuccess).subscribe((data: any) => { - if (data === true) { - this.getDatatypes(); - this.errorMessage = "SUCCEED: DROP DATATYPE " + this.dtName; - } - }) - - // Watching for the if there is a error in a drop datatype operation - this.store.select(s => s.datatype.dropDatatypeError).subscribe((data: any) => { - if (data.errors) { - this.errorMessage = "ERROR: " + data.errors[0].msg; - } - }) - } - - getDatatypes() { - // Triggers the effect to refresg the datatypes - this.store.dispatch(new datatypeActions.SelectDatatypes('-')); - } - - ngOnInit() { - // Assign the datasource for the table - this.dataSource = new DatatypeDataSource(this.store); - } - - /* - * opens the create datatype dialog - */ - openCreateDatatypeDialog(): void { - let dialogRef = this.dialog.open(DialogCreateDatatype, { - width: '420px', - data: { name: this.datatypeName } - }); - - dialogRef.afterClosed().subscribe(result => { - this.datatypeName = result; - }); - } - - /* - * opens the drop datatype dialog - */ - openDropDatatypeDialog(): void { - let dialogRef = this.dialog.open(DialogDropDatatype, { - width: '420px', - data: { name: this.datatypeName } - }); - - dialogRef.afterClosed().subscribe(result => { - this.datatypeName = result; - }); - } - - onClick(): void { - this.errorMessage = ""; - } - - /* Showing all the datatype metadata information */ - output: any; - - highlight(row){ - this.output = JSON.stringify(row, null, 2); - } - - @ViewChild('querymetadata') inputQuery; - - /* Cleans up error message */ - cleanUp() { - this.errorMessage = ""; - // Cascading - this.inputQuery.cleanUp(); - } -} - -@Component({ - selector: 'datatype-create-dialog', - templateUrl: 'datatype-create-dialog.component.html', - styleUrls: ['datatype-create-dialog.component.scss'] -}) - -export class DialogCreateDatatype { - constructor( private store: Store<any>, - public dialogCreateDtRef: MatDialogRef<DialogCreateDatatype>, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onClick(): void { - this.store.dispatch(new datatypeActions.CreateDatatype(this.data.datasetName)); - this.dialogCreateDtRef.close(); - } - - onNoClick(): void { - this.dialogCreateDtRef.close(); - } -} - -@Component({ - selector: 'datatypes-drop-dialog', - templateUrl: 'datatype-drop-dialog.component.html', - styleUrls: ['datatype-drop-dialog.component.scss'] -}) - -export class DialogDropDatatype { - constructor( private store: Store<any>, - public dialogDropDtRef: MatDialogRef<DialogDropDatatype>, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onClick(): void { - this.store.dispatch(new datatypeActions.DropDatatype(this.data.datatypeName)); - this.dialogDropDtRef.close(); - } - - onNoClick(): void { - this.dialogDropDtRef.close(); - } -} - -export class DatatypeDataSource extends DataSource<any> { - private datatypes$: Observable<any> - - constructor(private store: Store<any>) { - super(); - this.datatypes$ = this.store.select(s => s.datatype.datatypes.results); - } - - /** Connect function called by the table to retrieve one stream containing the data to render. */ - connect(): Observable<Datatype[]> { - const displayDataChanges = [ - this.datatypes$, - // this._filterChange, - ]; - - return this.datatypes$; - } - - disconnect() {} -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html deleted file mode 100755 index 5159e38..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html +++ /dev/null @@ -1,27 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/--> -<div class="dataverse-dialog"> - <p mat-dialog-title>CREATE DATAVERSE</p> - <mat-dialog-content> - <p>GIVE A NAME TO THE NEW DATAVERSE</p> - </mat-dialog-content> - <mat-form-field> - <input matInput tabindex="0" [(ngModel)]="data.dataverseName"> - </mat-form-field> - </div> - <div mat-dialog-actions> - <button mat-button [mat-dialog-close]="data.dataverseName" (click)="onClick()" tabindex="1">CREATE</button> - <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button> -</div> - http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss deleted file mode 100755 index 6371068..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -.dataverse-dialog { - font-family: "Roboto Mono", monospace; - font-size: 0.80rem; - font-weight: 500; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html deleted file mode 100755 index b546a70..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html +++ /dev/null @@ -1,26 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/--> -<div class="dataverse-dialog"> - <p mat-dialog-title>DROP DATAVERSE</p> - <mat-dialog-content> - <p>PLEASE GIVE THE NAME OF THE DATAVERSE TO DROP</p> - </mat-dialog-content> - <mat-form-field> - <input matInput tabindex="0" [(ngModel)]="data.dataverseName"> - </mat-form-field> - <mat-dialog-actions> - <button mat-button (click)="onClick()" tabindex="1">DROP</button> - <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button> - </mat-dialog-actions> -</div> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss deleted file mode 100755 index 6371068..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -.dataverse-dialog { - font-family: "Roboto Mono", monospace; - font-size: 0.80rem; - font-weight: 500; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html deleted file mode 100755 index 4099704..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html +++ /dev/null @@ -1,77 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ --> -<div class="container" (click)="onClick()"> - <div class="master"> - <mat-card class="dataverses-card"> - <mat-toolbar color="primary" class="dataverses-selector"> - <mat-icon class="icon">menu</mat-icon> - <span>DATAVERSES - METADATA</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="dataverses-content"> - <mat-table #table [dataSource]="dataSource" class="dataverses-table" *ngIf="loaded$ | async as ld"> - <!-- Dataverse Name Column --> - <ng-container matColumnDef="DataverseName"> - <mat-header-cell *matHeaderCellDef class="header-name-cell">Dataverse Name</mat-header-cell> - <mat-cell *matCellDef="let element" class="dataverse-name-cell">{{element.DataverseName}}</mat-cell> - </ng-container> - - <!-- Data Format Column --> - <ng-container matColumnDef="DataFormat"> - <mat-header-cell *matHeaderCellDef class="header-dataformat-cell">Data Format</mat-header-cell> - <mat-cell *matCellDef="let element" class="dataverse-dataformat-cell">{{element.DataFormat}}</mat-cell> - </ng-container> - - <!-- Pending Ops --> - <ng-container matColumnDef="PendingOp"> - <mat-header-cell *matHeaderCellDef class="header-pendingop-cell">Pending Ops</mat-header-cell> - <mat-cell *matCellDef="let element" class="dataverse-pendingop-cell">{{element.PendingOp}}</mat-cell> - </ng-container> - - <!-- Timestamp Column --> - <ng-container matColumnDef="Timestamp"> - <mat-header-cell *matHeaderCellDef class="header-timestamp-cell">Timestamp</mat-header-cell> - <mat-cell *matCellDef="let element" class="dataverse-timestamp-cell">{{element.Timestamp}}</mat-cell> - </ng-container> - - <mat-header-row *matHeaderRowDef="['DataverseName', 'DataFormat', 'Timestamp']"></mat-header-row> - <mat-row *matRowDef="let row; columns: ['DataverseName', 'DataFormat', 'Timestamp'];" - [ngClass]="{'highlight': selectedRowIndex == row.id}" - (click)="highlight(row)"> - </mat-row> - </mat-table> - </mat-card-content> - <mat-card-actions class="actions"> - <button class="refresh-button" mat-button (click)="openCreateDataverseDialog()">CREATE</button> - <button class="refresh-button" mat-button (click)="openDropDataverseDialog()">DROP</button> - <span class="error-message">{{errorMessage}}</span> - <span class="spacer"></span> - <button class="refresh-button" mat-button (click)="getDataverse()">REFRESH</button> - </mat-card-actions> - </mat-card> - <awc-query-metadata #querymetadata class="query"></awc-query-metadata> - </div> - <div class="detail"> - <mat-card class="dataverses-details-card"> - <mat-toolbar color="primary" class="dataverses-selector"> - <mat-icon class="icon">menu</mat-icon> - <span>DATAVERSE - METADATA - DETAILS</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="dataverses-content output"> - <span><pre>{{output}}</pre></span> - </mat-card-content> - </mat-card> - </div> -</div> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss deleted file mode 100755 index 2821766..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss +++ /dev/null @@ -1,259 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -$dataverses-spacing-unit: 8px; - -.container { - display: flex; - flex-flow: row; - padding: 0; - margin: 0; -} - -.master { - width: 60%; -} - -.detail { - width: 40%; -} - -.dataverses-card { - display: flex; - flex-flow: column; - padding: 0; - margin:0 auto; - margin-top: ($dataverses-spacing-unit * 2); - min-height: 450px; - max-height: 450px; - //min-width: 98%; //(100vw / 2); - //max-width: 98%; // (100vw / 2); - width: 95%; // 98%; - overflow: hidden; -} - -.dataverses-details-card { - display: flex; - flex-flow: column; - padding: 0; - margin:0 auto; - margin: ($dataverses-spacing-unit * 2); - min-height: 716px; - max-height: 716px; - //min-width: 95%; //(100vw / 2); - //max-width: 95%; // (100vw / 2); - overflow: hidden; -} - -.icon { - padding: 0 14px 0 0; - margin: 0; -} - -.spacer { - flex: 1 1 auto; -} - -.dataverses-selector { - min-height: 42px; - max-height: 42px; - justify-content: center; - font-size: 0.80rem; - font-weight: 500; - background-color: white; - border: 1px solid rgba(54, 147, 209, 0.87); -} - -//.metadata-content-area { -// padding: ($dataverses-spacing-unit * 2); -// margin: 0; -// overflow: auto; -//} - - -.dataverses-content { - position:relative; - top: 0; - left: 0; - margin: 0px; - padding: 0px; - overflow: auto; -} - -.dataverses-table { - margin: $dataverses-spacing-unit !important; - height: 330px; - overflow: auto; -} - -.spacer { - flex: 1 1 auto; -} - -.example-header { - min-height: 64px; - display: flex; - align-items: center; - padding-left: 24px; - font-size: 20px; -} - -.mat-table { - overflow: auto; -} - -.customWidthClass{ - flex: 0 0 75px; -} - -.mat-column-DataverseName { - text-align: left; -} - -.mat-header-cell.mat-column-DataverseName { - text-align: left; -} - -.mat-cell.mat-column-DataverseName { - text-align: left; -} - -.header-name-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $dataverses-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($dataverses-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; - text-transform: uppercase; -} - -.header-dataformat-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $dataverses-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($dataverses-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 400px; - text-transform: uppercase; -} - -.header-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $dataverses-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($dataverses-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 250px; - text-transform: uppercase; -} - -.dataverse-name-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $dataverses-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($dataverses-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.dataverse-dataformat-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $dataverses-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($dataverses-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 400px; -} - -.dataverse-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $dataverses-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($dataverses-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 250px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-form-field { - font-size: 14px; - flex-grow: 1; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -.actions { - display: flex; - border-top: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(54, 147, 209, 0.87); - padding: $dataverses-spacing-unit; - margin: 0; -} - -.error-message { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(209, 54, 54, 0.87); - padding-top: 10px; - padding-left: 20px; - text-overflow: ellipsis; -} - -.highlight{ - background: #42A948; /* green */ -} - -.output { - padding-left: ($dataverses-spacing-unit * 2); -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts deleted file mode 100755 index 981f029..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts +++ /dev/null @@ -1,234 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { Component, ChangeDetectionStrategy, Inject, OnInit, AfterViewChecked, AfterViewInit, Input} from '@angular/core'; -import { Dataverse } from '../../../shared/models/asterixDB.model' -import { Store } from '@ngrx/store'; -import { Observable } from 'rxjs/Observable'; -import * as dataverseActions from '../../../shared/actions/dataverse.actions' -import { ElementRef, ViewChild} from '@angular/core'; -import { DataSource } from '@angular/cdk/collections'; -import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import 'rxjs/add/operator/startWith'; -import 'rxjs/add/observable/merge'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/debounceTime'; -import 'rxjs/add/operator/distinctUntilChanged'; -import 'rxjs/add/observable/fromEvent'; -import { Subscription } from "rxjs/Rx"; -import * as fromRoot from '../../../shared/reducers/dataverse.reducer'; -import { State } from '../../../shared/reducers/dataverse.reducer'; -import { MatPaginator } from '@angular/material'; -import { SelectionModel } from '@angular/cdk/collections'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; - -@Component({ - selector: 'awc-dataverses', - templateUrl: 'dataverses.component.html', - styleUrls: ['dataverses.component.scss'], -}) - -export class DataverseCollection implements OnInit, AfterViewChecked, AfterViewInit { - dataverseName: string; - displayedColumns = ['DataverseName', 'Dataformat', 'Timestamp', 'PendingOp']; - dataSource: DataversesDataSource | null; - loaded$: Observable<any>; - selection = new SelectionModel<string>(true, []); - @Input('message') errorMessage: string = "" - dvName = ""; - - constructor(private store: Store<any>, public dialog: MatDialog) { - this.loaded$ = this.store.select('dataverse'); - - // Watching the name of the latest created dataset - this.store.select(s => s.dataverse.createDataverseName).subscribe((data: any) => { - this.dvName = data; - }) - - // Watching for the success message in a drop dataset operation - this.store.select(s => s.dataverse.dropDataverseName).subscribe((data: any) => { - this.dvName = data; - }) - - // Watching for the if there is a change in the collection - this.store.select(s => s.dataverse.createDataverseSuccess).subscribe((data: any) => { - if (data === true) { - this.getDataverse(); - this.errorMessage = "SUCCEED: CREATED DATAVERSE " + this.dvName + " "; - } - }) - - // Watching for the if there is a error in a create dataverse operation - this.store.select(s => s.dataverse.createDataverseError).subscribe((data: any) => { - if (data.errors) { - this.errorMessage = "ERROR: " + data.errors[0].msg; - } - }) - - // Watching for the if there is a change in the collection - this.store.select(s => s.dataverse.dropDataverseSuccess).subscribe((data: any) => { - if (data === true) { - this.getDataverse(); - this.errorMessage = "SUCCEED: DROP DATAVERSE " + this.dvName; - } - }) - - // Watching for the if there is a error in a drop dataverse operation - this.store.select(s => s.dataverse.dropDataverseError).subscribe((data: any) => { - if (data.errors) { - this.errorMessage = "ERROR: " + data.errors[0].msg; - } - }) - } - - getDataverse() { - // Triggers the effect to refresg the dataverse - this.store.dispatch(new dataverseActions.SelectDataverses('-')); - } - - ngOnInit() { - // Assign the datasource for the table - this.dataSource = new DataversesDataSource(this.store); - } - - ngAfterViewChecked() {} - - ngAfterViewInit() {} - - - /* - * opens the create dataverse dialog - */ - openCreateDataverseDialog(): void { - let dialogRef = this.dialog.open(DialogCreateDataverse, { - width: '420px', - data: { name: this.dataverseName } - }); - - dialogRef.afterClosed().subscribe(result => { - //reference code - //this.dvName = result; - }); - } - - /* - * opens the drop dataverse dialog - */ - openDropDataverseDialog(): void { - let dialogRef = this.dialog.open(DialogDropDataverse, { - width: '420px', - data: { name: this.dataverseName } - }); - - dialogRef.afterClosed().subscribe(result => { - this.dataverseName = result; - }); - } - - /* - * Clean up the error message on the screen - */ - onClick(): void { - this.errorMessage = ""; - } - - selectedRowIndex: number = -1; - - /* Showing all the datatype metadata information */ - output: any; - - highlight(row){ - this.output = JSON.stringify(row, null, 2); - } - - @ViewChild('querymetadata') inputQuery; - - /* Cleans up error message */ - cleanUp() { - this.errorMessage = ""; - // Cascading - this.inputQuery.cleanUp(); - } -} - -@Component({ - selector: 'dataverse-create-dialog', - templateUrl: 'dataverses-create-dialog.component.html', - styleUrls: ['dataverses-create-dialog.component.scss'] -}) - -export class DialogCreateDataverse { - constructor( private store: Store<any>, - public dialogCreateDvRef: MatDialogRef<DialogCreateDataverse>, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onClick(): void { - this.store.dispatch(new dataverseActions.CreateDataverse(this.data.dataverseName)); - this.dialogCreateDvRef.close(this.data.dataverseName); - } - - onNoClick(): void { - this.dialogCreateDvRef.close(); - } -} - -@Component({ - selector: 'dataverse-drop-dialog', - templateUrl: 'dataverses-drop-dialog.component.html', - styleUrls: ['dataverses-drop-dialog.component.scss'] -}) - -export class DialogDropDataverse { - constructor( private store: Store<any>, - public dialogDropDvRef: MatDialogRef<DialogDropDataverse>, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onClick(): void { - this.store.dispatch(new dataverseActions.DropDataverse(this.data.dataverseName)); - this.dialogDropDvRef.close(this.data.dataverseName); - } - - onNoClick(): void { - this.dialogDropDvRef.close(); - } -} - -/** - * Data source to provide what data should be rendered in the table. Note that the data source - * can retrieve its data in any way. In this case, the data source is provided a reference - * to a common data base, ExampleDatabase. It is not the data source's responsibility to manage - * the underlying data. Instead, it only needs to take the data and send the table exactly what - * should be rendered. - */ - export class DataversesDataSource extends DataSource<any> { - dataverse$: Observable<any> - _filterChange = new BehaviorSubject(''); - get filter(): string { return this._filterChange.value; } - set filter(filter: string) { this._filterChange.next(filter); } - - constructor(private store: Store<any>) { - super(); - this.dataverse$ = this.store.select(s => s.dataverse.dataverses.results); - } - - /** Connect function called by the table to retrieve one stream containing the data to render. */ - connect(): Observable<Dataverse[]> { - const displayDataChanges = [ - this.dataverse$, - ]; - - return this.dataverse$; - } - - disconnect() {} - } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html deleted file mode 100755 index aca06fd..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html +++ /dev/null @@ -1,14 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/--> -<!-- Place holder for future expansion --> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss deleted file mode 100755 index 039dcf1..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -.index-dialog { - font-family: "Roboto Mono", monospace; - font-size: 0.80rem; - font-weight: 500; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html deleted file mode 100755 index 5e675d8..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html +++ /dev/null @@ -1,26 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/--> -<div class="index-dialog"> - <p mat-dialog-title>DROP INDEX</p> - <mat-dialog-content> - <p>PLEASE GIVE THE DATAVERSENAME.INDEXNAME OF THE INDEX TO DROP</p> - </mat-dialog-content> - <mat-form-field> - <input matInput tabindex="0" [(ngModel)]="data.indexName"> - </mat-form-field> - <mat-dialog-actions> - <button mat-button (click)="onClick()" tabindex="1">DROP</button> - <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button> - </mat-dialog-actions> -</div> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss deleted file mode 100755 index 039dcf1..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -.index-dialog { - font-family: "Roboto Mono", monospace; - font-size: 0.80rem; - font-weight: 500; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.html deleted file mode 100755 index c63b254..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.html +++ /dev/null @@ -1,94 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ --> -<div class="container" (click)="onClick()"> - <div class="master"> - <mat-card class="indexes-card" *ngIf="loaded$ | async as ld"> - <mat-toolbar color="primary" class="indexes-selector"> - <mat-icon class="icon">menu</mat-icon> - <span>INDEXES - METADATA</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="indexes-content"> - <mat-table #table [dataSource]="dataSource" class="indexes-table"> - <!-- Dataverse Name --> - <ng-container matColumnDef="DataverseName"> - <mat-header-cell *matHeaderCellDef class="header-dataversename-cell"> Dataverse Name </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-dataversename-cell"> {{element.DataverseName}} </mat-cell> - </ng-container> - - <!-- Dataset Name --> - <ng-container matColumnDef="DatasetName"> - <mat-header-cell *matHeaderCellDef class="header-datasetname-cell"> Dataset Name </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-datasetname-cell"> {{element.DatasetName}} </mat-cell> - </ng-container> - - <!-- Index Name --> - <ng-container matColumnDef="IndexName"> - <mat-header-cell *matHeaderCellDef class="header-indexname-cell"> Index Name </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-indexname-cell"> {{element.IndexName}} </mat-cell> - </ng-container> - - <!-- Index Structure --> - <ng-container matColumnDef="IndexStructure"> - <mat-header-cell *matHeaderCellDef class="header-indexestructure-cell"> Index Structure </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-indexstructure-cell"> {{element.IndexStructure}} </mat-cell> - </ng-container> - - <!-- IsPrimary --> - <ng-container matColumnDef="IsPrimary"> - <mat-header-cell *matHeaderCellDef class="header-isprimary-cell"> Is Primary </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-isprimary-cell"> {{element.IsPrimary}} </mat-cell> - </ng-container> - - <!-- Timestamp Column --> - <ng-container matColumnDef="Timestamp"> - <mat-header-cell *matHeaderCellDef class="header-timestamp-cell"> Timestamp </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-timestamp-cell"> {{element.Timestamp}} </mat-cell> - </ng-container> - - <!-- Pending Op Column --> - <ng-container matColumnDef="PendingOp"> - <mat-header-cell *matHeaderCellDef class="header-pendingop-cell"> PendingOp </mat-header-cell> - <mat-cell *matCellDef="let element" class="indexes-dataverse-cell"> {{element.PendingOp}} </mat-cell> - </ng-container> - - <mat-header-row *matHeaderRowDef="['IndexName', 'DatasetName', 'DataverseName', 'IndexStructure', 'IsPrimary', 'Timestamp']"></mat-header-row> - <mat-row *matRowDef="let row; columns: ['IndexName', 'DatasetName', 'DataverseName', 'IndexStructure', 'IsPrimary', 'Timestamp'];" - [ngClass]="{'highlight': selectedRowIndex == row.id}" - (click)="highlight(row)"> - </mat-row> - </mat-table> - </mat-card-content> - <mat-card-actions class="actions"> - <button class="refresh-button" mat-button (click)="openDropIndexDialog()">DROP</button> - <span class="error-message">{{errorMessage}}</span> - <span class="spacer"></span> - <button class="refresh-button" mat-button (click)="getIndexes()">REFRESH</button> - </mat-card-actions> - </mat-card> - <awc-query-metadata #querymetadata class="query"></awc-query-metadata> - </div> - <div class="detail"> - <mat-card class="indexes-details-card"> - <mat-toolbar color="primary" class="indexes-selector"> - <mat-icon class="icon">menu</mat-icon> - <span>INDEX - METADATA - DETAILS</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="indexes-content output"> - <span><pre>{{output}}</pre></span> - </mat-card-content> - </mat-card> - </div> -</div> http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.scss deleted file mode 100755 index 15b364a..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.scss +++ /dev/null @@ -1,398 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -$indexes-spacing-unit: 8px; - -.container { - display: flex; - flex-flow: row; - padding: 0; - margin: 0; -} - -.master { - width: 60%; -} - -.detail { - width: 40%; -} - -.indexes-card { - display: flex; - flex-flow: column; - padding: 0; - margin:0 auto; - margin-top: ($indexes-spacing-unit * 2); - min-height: 450px; - max-height: 450px; - //min-width: 98%; //(100vw / 2); - //max-width: 98%; // (100vw / 2); - width: 95%; // 98%; - overflow: hidden; -} - -.indexes-details-card { - display: flex; - flex-flow: column; - padding: 0; - margin:0 auto; - margin: ($indexes-spacing-unit * 2); - min-height: 716px; - max-height: 716px; - //min-width: 95%; //(100vw / 2); - //max-width: 95%; // (100vw / 2); - overflow: hidden; -} - -.icon { - padding: 0 14px 0 0; - margin: 0; -} - -.spacer { - flex: 1 1 auto; -} - -.indexes-selector { - min-height: 42px; - max-height: 42px; - justify-content: center; - //align-items: center; - font-size: 0.80rem; - font-weight: 500; - background-color: white; - border: 1px solid rgba(54, 147, 209, 0.87); -} - -.indexes-content { - position:relative; - top: 0; - left: 0; - margin: 0px; - padding: 0px; - overflow: auto; -} - -.indexes-table { - margin: $indexes-spacing-unit !important; - height: 330px; - overflow: auto; -} - -.spacer { - flex: 1 1 auto; -} - -//.indexes-toolbar { -// display: block; -// min-height: 56px; -// height: 56px; - //width: 250px; -// font-size: 12px; -// white-space: nowrap; -// overflow: hidden; -// text-overflow: ellipsis; -// letter-spacing: 1px; -// font-weight: 400; -// background: rgba(0,0,1, .80); -//} - -.example-header { - min-height: 64px; - display: flex; - align-items: center; - padding-left: 24px; - font-size: 20px; -} - -.mat-table { - overflow: auto; -} - -.customWidthClass{ - flex: 0 0 75px; -} - -.mat-column-DataverseName { - text-align: left; -} - -.mat-header-cell.mat-column-DataverseName { - text-align: left; -} - -.mat-cell.mat-column-DataverseName { - text-align: left; -} - -.header-dataversename-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-dataversename-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-datasetname-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-datasetname-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-indexname-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-indexname-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-indexestructure-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-indexstructure-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-isprimary-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-isprimary-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: center; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-groupname-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 150px; -} - -.indexes-groupname-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 150px; -} - -.header-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - text-transform: uppercase; - flex: 0 0 250px; -} - -.indexes-timestamp-cell { - border: none; - font-size: 12px; - letter-spacing: 1px; - line-height: $indexes-spacing-unit * 3; - font-weight: 400; - margin: 0; - padding: 0 ($indexes-spacing-unit * 2); - text-align: left; - color: hsla(0,0%,0%,.87); - flex: 0 0 250px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-form-field { - font-size: 14px; - flex-grow: 1; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -.actions { - display: flex; - border-top: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(54, 147, 209, 0.87); - padding: $indexes-spacing-unit; - margin: 0; -} - -.error-message { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(209, 54, 54, 0.87); - padding-top: 10px; - padding-left: 20px; - text-overflow: ellipsis; -} - -.output { - padding-left: ($indexes-spacing-unit * 2); -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.ts ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.ts b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.ts deleted file mode 100755 index 2913470..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/indexes-collection/indexes.component.ts +++ /dev/null @@ -1,230 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { Component, Inject, Input } from '@angular/core'; -import { Index } from '../../../shared/models/asterixDB.model' -import { Store } from '@ngrx/store'; -import { Observable } from 'rxjs/Observable'; -import * as indexActions from '../../../shared/actions/index.actions' -import { ElementRef, ViewChild} from '@angular/core'; -import {DataSource} from '@angular/cdk/collections'; -import {BehaviorSubject} from 'rxjs/BehaviorSubject'; -import 'rxjs/add/operator/startWith'; -import 'rxjs/add/observable/merge'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/debounceTime'; -import 'rxjs/add/operator/distinctUntilChanged'; -import 'rxjs/add/observable/fromEvent'; -import { Subscription } from "rxjs/Rx"; -import { State } from '../../../shared/reducers/index.reducer'; -import { MatPaginator } from '@angular/material'; -import { SelectionModel } from '@angular/cdk/collections'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; - -/** - * Root component - * Defines our application's layout - */ -@Component({ - selector: 'awc-indexes', - templateUrl: 'indexes.component.html', - styleUrls: ['indexes.component.scss'] -}) - -export class IndexCollection { - displayedColumns = "['dataverseName', 'datasetName', 'indexName', 'indexStructure', 'isPrimary', 'timestamp', 'pendingOp']" - /* - dataverseName: string; - datasetName: string; - indexName: string; - indexStructure: string; - searchKey: string[]; - isPrimary: boolean; - timestamp: string; - pendingOp: string; - */ - indexName: string; - dataSource: IndexDataSource | null; - loaded$: Observable<any>; - @Input('message') errorMessage: string = "" - - idxName = ""; - - constructor(private store: Store<any>, public dialog: MatDialog) { - this.loaded$ = this.store.select('index'); - // Watching the name of the latest create index - this.store.select(s => s.index.createIndexName).subscribe((data: any) => { - this.idxName = data; - }) - - // Watching the name of the latest drop index - this.store.select(s => s.index.dropIndexName).subscribe((data: any) => { - this.idxName = data; - }) - - // Watching for the if there is a change in the collection - this.store.select(s => s.index.createIndexSuccess).subscribe((data: any) => { - if (data === true) { - this.getIndexes(); - this.errorMessage = "SUCCEED: CREATE INDEX " + this.idxName; - } - }) - - // Watching for the if there is a error in a create index operation - this.store.select(s => s.index.createIndexError).subscribe((data: any) => { - if (data.errors) { - this.errorMessage = "ERROR: " + data.errors[0].msg; - } - }) - - // Watching for the success message in a drop index operation - this.store.select(s => s.index.dropIndexSuccess).subscribe((data: any) => { - if (data === true) { - this.getIndexes(); - this.errorMessage = "SUCCEED: DROP INDEX " + this.idxName; - } - }) - - // Watching for the if there is a error in a drop index operation - this.store.select(s => s.index.dropIndexError).subscribe((data: any) => { - if (data.errors) { - this.errorMessage = "ERROR: " + data.errors[0].msg; - } - }) - } - - getIndexes() { - // Triggers the effect to refresg the indexes - this.store.dispatch(new indexActions.SelectIndexes('-')); - } - - ngOnInit() { - // Assign the datasource for the table - this.dataSource = new IndexDataSource(this.store); - } - - /* - * opens the create index dialog - */ - openCreateIndexDialog(): void { - let dialogRef = this.dialog.open(DialogCreateIndex, { - width: '420px', - data: { name: this.indexName } - }); - - dialogRef.afterClosed().subscribe(result => { - this.indexName = result; - }); - } - - - /* - * opens the drop index dialog - */ - openDropIndexDialog(): void { - let dialogRef = this.dialog.open(DialogDropIndex, { - width: '420px', - data: { name: this.indexName } - }); - - dialogRef.afterClosed().subscribe(result => { - this.indexName = result; - }); - } - - /* - * Clean up the error message on the screen - */ - onClick(): void { - this.errorMessage = ""; - } - - /* Showing all the index metadata information */ - output: any; - - highlight(row){ - this.output = JSON.stringify(row, null, 2); - } - - @ViewChild('querymetadata') inputQuery; - - /* Cleans up error message */ - cleanUp() { - this.errorMessage = ""; - // Cascading - this.inputQuery.cleanUp(); - } -} - -@Component({ - selector: 'index-create-dialog', - templateUrl: 'index-create-dialog.component.html', - styleUrls: ['index-create-dialog.component.scss'] -}) - -export class DialogCreateIndex { - constructor( private store: Store<any>, - public dialogCreateIdxRef: MatDialogRef<DialogCreateIndex>, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onClick(): void { - this.store.dispatch(new indexActions.CreateIndex(this.data.indexName)); - this.dialogCreateIdxRef.close(); - } - - onNoClick(): void { - this.dialogCreateIdxRef.close(); - } -} - -@Component({ - selector: 'index-drop-dialog', - templateUrl: 'index-drop-dialog.component.html', - styleUrls: ['index-drop-dialog.component.scss'] -}) - -export class DialogDropIndex { - constructor( private store: Store<any>, - public dialogDropIdxRef: MatDialogRef<DialogDropIndex>, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onClick(): void { - console.log(this.data.indexName) - this.store.dispatch(new indexActions.DropIndex(this.data.indexName)); - this.dialogDropIdxRef.close(); - } - - onNoClick(): void { - this.dialogDropIdxRef.close(); - } -} - -export class IndexDataSource extends DataSource<any> { - private indexes$: Observable<any> - - constructor(private store: Store<any>) { - super(); - this.indexes$ = this.store.select(s => s.index.indexes.results); - } - - /** Connect function called by the table to retrieve one stream containing the data to render. */ - connect(): Observable<Index[]> { - const displayDataChanges = [ - this.indexes$, - ]; - - return this.indexes$; - } - - disconnect() {} -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.html deleted file mode 100755 index 939ab06..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.html +++ /dev/null @@ -1,31 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ --> -<mat-card class="input-card" (click)="onClick()"> - <mat-toolbar color="primary" class="input-selector"> - <mat-icon class="toolbar-icon">menu</mat-icon> - <span>INPUT: SQL++</span> - <span class="spacer"></span> - </mat-toolbar> - <mat-card-content class="content-area"> - <div class="codemirror-container"> - <codemirror-metadata class="code" [(ngModel)]="queryMetadataString" [config]="codemirrorMetadataConfig"> - </codemirror-metadata> - </div> - </mat-card-content> - <mat-card-actions class="actions"> - <button mat-button class="query-button" (click)="executeQuery()">RUN</button> - <span class="error-message">{{errorMessage}}</span> - <span class="spacer"></span> - </mat-card-actions> -</mat-card> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.scss deleted file mode 100755 index b98080c..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.scss +++ /dev/null @@ -1,78 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -$query-spacing-unit: 8px; - -.input-card { - display: flex; - flex-flow: column; - padding: 0; - margin: 0 auto; - margin-top: $query-spacing-unit; - height: 250px; - width: 95%; - overflow: hidden; -} - -.toolbar-icon { - padding: 0 14px 0 0; - margin: 0; -} - -.spacer { - flex: 1 1 auto; -} - -.input-selector { - max-height: 42px; - min-height: 42px; - justify-content: center; - //align-items: center; - font-size: 0.80rem; - font-weight: 500; - background-color: white; - border: 1px solid rgba(54, 147, 209, 0.87); -} - -.content-area { - position: relative; - color: hsla(0,0%,0%,.87); - height: 120px; - padding: 0; - margin: $query-spacing-unit * 2; - overflow: none; -} - -.codemirror-container { - width: 100%; - height: 100%; - padding: 0; - margin: 0; - font-size: 14px; - line-height: 1.8; -} - -.actions { - border-top: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(54, 147, 209, 0.87); - padding: $query-spacing-unit; - margin: 0; -} - -.error-message { - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - color: rgba(209, 54, 54, 0.87); - padding-top: 10px; - padding-left: 20px; - text-overflow: ellipsis; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.ts ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.ts b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.ts deleted file mode 100755 index 06b9375..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/input-metadata.component.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -import { Component, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core'; -import { Observable } from 'rxjs/Observable'; -import { Store } from '@ngrx/store'; -import * as sqlQueryActions from '../../shared/actions/query.actions' -import * as dataverseActions from '../../shared/actions/dataverse.actions' -import * as datasetActions from '../../shared/actions/dataset.actions' -import * as datatypeActions from '../../shared/actions/datatype.actions' -import * as indexActions from '../../shared/actions/index.actions' - - -import * as CodeMirror from 'codemirror'; - -/* - * Query metadata component - * has editor (codemirror) for writing some query - */ -@Component({ - moduleId: module.id, - selector: 'awc-query-metadata', - templateUrl:'input-metadata.component.html', - styleUrls: ['input-metadata.component.scss'], -}) - -export class InputQueryMetadataComponent { - private dataverses$: Observable<any>; - private datatypes$: Observable<any>; - private datasets$: Observable<any>; - private indexes$: Observable<any>; - dataverses = []; - datatypes = []; - datasets = []; - indexes = []; - queryMetadataString: string = ""; - loaded$: Observable<any>; - errorMessage: string = ""; - - /** - * Initialize codemirror - */ - codemirrorMetadataConfig = { mode: "asterix", - //lineNumbers: true, - lineWrapping: true, - showCursorWhenSelecting: true, - autofocus: true - }; - - constructor(private store: Store<any>, private changeDetector: ChangeDetectorRef) { - this.store.select("sqlMetadataQuery").subscribe((data: any) => { - if (data.success === false){ - if (data.sqlQueryMetadataError.errors){ - this.errorMessage = "ERROR: " + data.sqlQueryMetadataError.errors[0].msg - this.changeDetector.detectChanges(); - } - } else { - this.errorMessage = "SUCCEED"; - - // Refresh the tables automatically - let stringQuery = data.sqlQueryMetadataString; - stringQuery = stringQuery.toUpperCase(); - - if (stringQuery.includes("CREATE DATAVERSE") || stringQuery.includes("DROP DATAVERSE") ){ - this.store.dispatch(new dataverseActions.SelectDataverses('-')); - } - else if (stringQuery.includes("CREATE DATASET") || stringQuery.includes("DROP DATASET")){ - this.store.dispatch(new datasetActions.SelectDatasets('-')); - } - else if (stringQuery.includes("CREATE TYPE") || stringQuery.includes("DROP TYPE")){ - this.store.dispatch(new datatypeActions.SelectDatatypes('-')); - } - else if (stringQuery.includes("CREATE INDEX") || stringQuery.includes("DROP INDEX")){ - this.store.dispatch(new indexActions.SelectIndexes('-')); - } - - this.changeDetector.detectChanges(); - } - - }) - } - - getQueryResults(queryMetadataString: string) { - this.store.dispatch(new sqlQueryActions.ExecuteMetadataQuery(queryMetadataString)); - } - - executeQuery() { - this.getQueryResults(this.queryMetadataString.replace(/\n/g, " ")); - // Component View Refresh - - } - - onClick() { - this.errorMessage = ""; - } - - /* Cleans up error message */ - cleanUp() { - this.errorMessage = ""; - } -} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.html ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.html b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.html deleted file mode 100755 index a2f3a73..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.html +++ /dev/null @@ -1,36 +0,0 @@ -<!--/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ --> -<mat-tab-group class="metadata-menu" (selectedTabChange)="tabChange()"> - <mat-tab label="DATAVERSES" class="submenu"> - <div class="dataverses"> - <awc-dataverses #dataverses [message]="message" class="dataverses"></awc-dataverses> - </div> - </mat-tab> - <mat-tab label="DATASETS"> - <div class="datasets"> - <awc-datasets #datasets [message]="message" class="datasets"></awc-datasets> - </div> - </mat-tab> - <mat-tab label="DATATYPES"> - <div class="datatypes"> - <awc-datatypes #datatypes [message]="message" class="datatypes"></awc-datatypes> - </div> - </mat-tab> - <mat-tab label="INDEXES" class="indexes"> - <div class="indexes"> - <awc-indexes #indexes [message]="message" class="indexes"></awc-indexes> - </div> - </mat-tab> -</mat-tab-group> - http://git-wip-us.apache.org/repos/asf/asterixdb/blob/3e5815a7/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.scss ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.scss b/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.scss deleted file mode 100755 index 3857d74..0000000 --- a/asterixdb/asterix-dashboard/src/node/src/app/dashboard/metadata/metadata-container.component.scss +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - .dataverses { - margin: 0; - min-height: 750px; - max-height: 750px; - width: 100%; - overflow: hidden; - } - -.datasets { - margin: 0; - min-height: 750px; - max-height: 750px; - width: 100%; - overflow: hidden; -} - -.datatypes { - margin: 0; - min-height: 750px; - max-height: 750px; - width: 100%; - overflow: hidden; -} - -.indexes { - margin: 0; - min-height: 750px; - max-height: 750px; - width: 100%; - overflow: hidden; -} - -.metadata-menu { - /deep/ .mat-tab-label { - font-size: 0.80rem !important; - font-weight: 500 !important; - } -} \ No newline at end of file