You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2018/08/20 14:34:41 UTC
[4/5] incubator-griffin git commit: make ui style consistent
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/job/job.component.html
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/job/job.component.html b/ui/angular/src/app/job/job.component.html
index 813d0c4..2fb87a2 100644
--- a/ui/angular/src/app/job/job.component.html
+++ b/ui/angular/src/app/job/job.component.html
@@ -22,7 +22,8 @@ under the License.
<i class="fa fa-plus"></i>
Create Job
</a> -->
- <a role="button" routerLink="/createjob/batch" class="btn btn-primary btn-o btn-wide dropdown-toggle" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <a role="button" routerLink="/createjob/batch" class="btn btn-primary btn-o btn-wide dropdown-toggle"
+ id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-plus"></i>
Create Job
</a>
@@ -34,105 +35,109 @@ under the License.
<div id="modelContainer">
<table class="table table-striped reco" [mfData]="results" #mf="mfDataTable" [mfRowsOnPage]="10">
<thead>
- <tr style="background-color:#7D95CC">
- <th st-ratio="15">Job Name</th>
- <th st-ratio="15">Previous Fire Time</th>
- <th st-ratio="20">Next Fire Time</th>
- <th st-ratio="15">Job State</th>
- <!-- <th st-ratio="5">Cron Expression</th> -->
- <th st-ratio="5">Action</th>
- <th st-ratio="5">Metric</th>
- </tr>
+ <tr style="background-color:#7D95CC">
+ <th st-ratio="15">Job Name</th>
+ <th st-ratio="15">Previous Fire Time</th>
+ <th st-ratio="20">Next Fire Time</th>
+ <th st-ratio="15">Job State</th>
+ <!-- <th st-ratio="5">Cron Expression</th> -->
+ <th st-ratio="5">Action</th>
+ <th st-ratio="5">Metric</th>
+ </tr>
</thead>
<tbody>
- <tr *ngIf="!results">
- <td colspan="7" style="text-align:center;display:none">
- No content!
- </td>
- <!-- <td class="icon" style="border-top-style:none">
- <span class="fa fa-spinner fa-spin fa-3x fa-fw"></span>
- </td> -->
- </tr>
+ <tr *ngIf="!results">
+ <td colspan="7" style="text-align:center;display:none">
+ No content!
+ </td>
+ <!-- <td class="icon" style="border-top-style:none">
+ <span class="fa fa-spinner fa-spin fa-3x fa-fw"></span>
+ </td> -->
+ </tr>
</tbody>
<tbody *ngFor="let row of mf.data">
- <tr>
- <td (click)="showInstances(row)" [ngClass]="{accordion:true}" style="cursor: pointer;">
- <i *ngIf="!row.showDetail" class="fa fa-chevron-circle-right blue"></i>
- <i *ngIf="row.showDetail" class="fa fa-chevron-circle-down blue"></i> {{row.jobName}}
- <!-- -{{(row.createTime | date: 'yyyy/MM/dd HH:mm:ss') || 'N/A' }} -->
- </td>
- <td [hidden]="row.previousFireTime!=-1">--/--/-- --:--</td>
- <td [hidden]="row.previousFireTime==-1">{{(row.jobState.previousFireTime | date: 'yyyy/MM/dd HH:mm:ss') || 'N/A' }}</td>
- <td>{{(row.jobState.nextFireTime | date: 'yyyy/MM/dd HH:mm:ss') || 'N/A' }}</td>
- <td>
+ <tr>
+ <td (click)="showInstances(row)" [ngClass]="{accordion:true}" style="cursor: pointer;">
+ <i *ngIf="!row.showDetail" class="fa fa-chevron-circle-right blue"></i>
+ <i *ngIf="row.showDetail" class="fa fa-chevron-circle-down blue"></i> {{row.jobName}}
+ <!-- -{{(row.createTime | date: 'yyyy/MM/dd HH:mm:ss') || 'N/A' }} -->
+ </td>
+ <td [hidden]="row.previousFireTime!=-1">--/--/-- --:--</td>
+ <td [hidden]="row.previousFireTime==-1">{{(row.jobState.previousFireTime | date: 'yyyy/MM/dd HH:mm:ss') || 'N/A'
+ }}
+ </td>
+ <td>{{(row.jobState.nextFireTime | date: 'yyyy/MM/dd HH:mm:ss') || 'N/A' }}</td>
+ <td>
<span *ngIf='row.jobState.state == "NORMAL"' class="normal">{{row.jobState.state}}
</span>
- <span *ngIf='row.jobState.state != "NORMAL"' class='unnormal'>{{row.jobState.state}}</span>
- </td>
- <!-- <td>{{row.cronExpression}}</td> -->
- <td>
-
- <a (click)="remove(row)" title="delete" style="text-decoration:none">
- <i class="fa fa-trash-o po"></i>
- </a>
- <a routerLink="/job/{{row.id}}" title="subscribe">
- <i class="fa fa-eye"></i>
- </a>
- <a *ngIf="row.action==='START'" (click)="stateMag(row)" title="Start" style="text-decoration:none">
- <i class="fa fa-play"></i>
- </a>
- <a *ngIf="row.action!=='START'" (click)="stateMag(row)" title="Stop" style="text-decoration:none">
- <i class="fa fa-stop"></i>
- </a>
- </td>
- <td>
-
- <a (click)="show(row)">
- <i class="fa fa-bar-chart po"></i>
- </a>
- </td>
- </tr>
- <tr *ngIf="row.showDetail">
- <td colspan="7" style="padding:20px 30px 10px 30px;">
- <table class="table table-striped co" [mfData]="allInstances" #mf2="mfDataTable" [mfRowsOnPage]="10">
- <thead>
- <tr style="background-color:#7D95CC">
- <th style="width:30%">AppID</th>
- <th style="width:25%">Time</th>
- <th style="width:20%">State</th>
- </tr>
- </thead>
- <tbody>
- <tr *ngIf="!allInstances">
- <td colspan="7" style="text-align:center">No content.</td>
- </tr>
- <tr *ngFor="let item of mf2.data">
- <td><a href={{item.appUri}} target="_blank" style="color:white">{{item.appId}}</a></td>
- <td>{{item.timestamp | date: 'yyyy/MM/dd HH:mm:ss'}}</td>
- <td>{{item.state}}</td>
- </tr>
- </tbody>
- <tfoot>
- <tr>
- <td class="text-center" colspan="8" style="background-color:#1f1f1f;" id="pagination">
- <mfBootstrapPaginator></mfBootstrapPaginator>
- </td>
- </tr>
- </tfoot>
- </table>
- </td>
- </tr>
+ <span *ngIf='row.jobState.state != "NORMAL"' class='unnormal'>{{row.jobState.state}}</span>
+ </td>
+ <!-- <td>{{row.cronExpression}}</td> -->
+ <td>
+
+ <a (click)="remove(row)" title="delete" style="text-decoration:none">
+ <i class="fa fa-trash-o po"></i>
+ </a>
+ <a routerLink="/job/{{row.id}}" title="subscribe">
+ <i class="fa fa-eye"></i>
+ </a>
+ <a *ngIf="row.action==='START'" (click)="stateMag(row)" title="Start" style="text-decoration:none">
+ <i class="fa fa-play"></i>
+ </a>
+ <a *ngIf="row.action!=='START'" (click)="stateMag(row)" title="Stop" style="text-decoration:none">
+ <i class="fa fa-stop"></i>
+ </a>
+ </td>
+ <td>
+
+ <a (click)="show(row)">
+ <i class="fa fa-bar-chart po"></i>
+ </a>
+ </td>
+ </tr>
+ <tr *ngIf="row.showDetail">
+ <td colspan="7" style="padding:20px 30px 10px 30px;">
+ <table class="table table-striped co" [mfData]="allInstances" #mf2="mfDataTable" [mfRowsOnPage]="10">
+ <thead>
+ <tr style="background-color:#7D95CC">
+ <th style="width:30%">AppID</th>
+ <th style="width:25%">Time</th>
+ <th style="width:20%">State</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr *ngIf="!allInstances">
+ <td colspan="7" style="text-align:center">No content.</td>
+ </tr>
+ <tr *ngFor="let item of mf2.data">
+ <td><a href={{item.appUri}} target="_blank" style="color:white">{{item.appId}}</a></td>
+ <td>{{item.timestamp | date: 'yyyy/MM/dd HH:mm:ss'}}</td>
+ <td>{{item.state}}</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td class="text-center" colspan="8" style="background-color:#1f1f1f;" id="pagination">
+ <mfBootstrapPaginator></mfBootstrapPaginator>
+ </td>
+ </tr>
+ </tfoot>
+ </table>
+ </td>
+ </tr>
</tbody>
<tfoot>
- <tr>
- <td colspan="8" class="text-right">
- <mfBootstrapPaginator></mfBootstrapPaginator>
- </td>
- </tr>
+ <tr>
+ <td colspan="8" class="text-right">
+ <mfBootstrapPaginator></mfBootstrapPaginator>
+ </td>
+ </tr>
</tfoot>
</table>
</div>
- <div class="modal fade" id="deleteJobConfirmation" role="dialog" tabindex="-1" [ngClass]="{'in': visibleAnimate}" *ngIf="deletedRow" [ngStyle]="{'display': visible ? 'block' : 'none', 'opacity': visibleAnimate ? 1 : 0}" (click)="onContainerClicked($event)">
+ <div class="modal fade" id="deleteJobConfirmation" role="dialog" tabindex="-1" [ngClass]="{'in': visibleAnimate}"
+ *ngIf="deletedRow" [ngStyle]="{'display': visible ? 'block' : 'none', 'opacity': visibleAnimate ? 1 : 0}"
+ (click)="onContainerClicked($event)">
<div class="modal-dialog modal-xg modal-lg">
<div class="modal-content">
<div class="modal-header">
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/job/job.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/job/job.component.spec.ts b/ui/angular/src/app/job/job.component.spec.ts
index 2caf041..a8c0ede 100644
--- a/ui/angular/src/app/job/job.component.spec.ts
+++ b/ui/angular/src/app/job/job.component.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { JobComponent } from './job.component';
+import {JobComponent} from './job.component';
describe('JobComponent', () => {
let component: JobComponent;
@@ -26,9 +26,9 @@ describe('JobComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ JobComponent ]
+ declarations: [JobComponent]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/job/job.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/job/job.component.ts b/ui/angular/src/app/job/job.component.ts
index 1334f2f..f558de3 100644
--- a/ui/angular/src/app/job/job.component.ts
+++ b/ui/angular/src/app/job/job.component.ts
@@ -16,13 +16,13 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { Component, OnInit } from "@angular/core";
-import { HttpClient } from "@angular/common/http";
-import { DataTableModule } from "angular2-datatable";
-import { ServiceService } from "../service/service.service";
-import { DatePipe } from "@angular/common";
-import { Router } from "@angular/router";
-import { ToasterModule, ToasterService, ToasterConfig } from "angular2-toaster";
+import {Component, OnInit} from "@angular/core";
+import {HttpClient} from "@angular/common/http";
+import {DataTableModule} from "angular2-datatable";
+import {ServiceService} from "../service/service.service";
+import {DatePipe} from "@angular/common";
+import {Router} from "@angular/router";
+import {ToasterModule, ToasterService, ToasterConfig} from "angular2-toaster";
import * as $ from "jquery";
@Component({
@@ -43,8 +43,8 @@ export class JobComponent implements OnInit {
deleteId: string;
deleteIndex: number;
action: string;
- modalWndMsg:string;
- isStop:boolean;
+ modalWndMsg: string;
+ isStop: boolean;
private toasterService: ToasterService;
@@ -80,28 +80,28 @@ export class JobComponent implements OnInit {
show(row) {
var curjob = row.jobName;
- this.router.navigate(['/detailed/'+curjob]);
+ this.router.navigate(['/detailed/' + curjob]);
}
confirmDelete() {
- let self=this;
- if(this.isStop){
+ let self = this;
+ if (this.isStop) {
$("#save").attr("disabled", "true");
let actionUrl = this.serviceService.config.uri.modifyJobs + "/" + this.deleteId + "?action=" + "stop";
this.http.put(actionUrl, {}).subscribe(data => {
- let self=this;
- self.hide();
- var result = JSON.parse(JSON.stringify(data));
- self.results[self.deleteIndex].action = 'START';
- self.results[self.deleteIndex].jobState.state = result["job.state"].state;
- self.isStop=false;
- },
- err => {
- this.toasterService.pop("error", "Error!", "Failed to manage job state!");
- console.log("Error when manage job state");
- });
+ let self = this;
+ self.hide();
+ var result = JSON.parse(JSON.stringify(data));
+ self.results[self.deleteIndex].action = 'START';
+ self.results[self.deleteIndex].jobState.state = result["job.state"].state;
+ self.isStop = false;
+ },
+ err => {
+ this.toasterService.pop("error", "Error!", "Failed to manage job state!");
+ console.log("Error when manage job state");
+ });
}
- else{
+ else {
let deleteJob = this.serviceService.config.uri.deleteJob;
let deleteUrl = deleteJob + "/" + this.deleteId;
$("#save").attr("disabled", "true");
@@ -109,7 +109,7 @@ export class JobComponent implements OnInit {
data => {
let self = this;
self.hide();
- setTimeout(function() {
+ setTimeout(function () {
self.results.splice(self.deleteIndex, 1);
}, 0);
},
@@ -122,8 +122,8 @@ export class JobComponent implements OnInit {
}
- stateMag(row){
- if(row.action.toLowerCase()=="stop"){
+ stateMag(row) {
+ if (row.action.toLowerCase() == "stop") {
$("#save").removeAttr("disabled");
this.isStop = true;
this.modalWndMsg = "Stop the job with the below information?";
@@ -133,17 +133,17 @@ export class JobComponent implements OnInit {
this.deleteIndex = this.results.indexOf(row);
this.deleteId = row.id;
}
- else{
+ else {
let actionUrl = this.serviceService.config.uri.modifyJobs + "/" + row.id + "?action=" + row.action.toLowerCase();
this.http.put(actionUrl, {}).subscribe(data => {
- var result = JSON.parse(JSON.stringify(data));
- row.action = (row.action === 'STOP' ? 'START' : 'STOP');
- row.jobState.state = result["job.state"].state;
- },
- err => {
- this.toasterService.pop("error", "Error!", "Failed to manage job state!");
- console.log("Error when manage job state");
- });
+ var result = JSON.parse(JSON.stringify(data));
+ row.action = (row.action === 'STOP' ? 'START' : 'STOP');
+ row.jobState.state = result["job.state"].state;
+ },
+ err => {
+ this.toasterService.pop("error", "Error!", "Failed to manage job state!");
+ console.log("Error when manage job state");
+ });
}
}
@@ -161,7 +161,7 @@ export class JobComponent implements OnInit {
this.http.get(getInstanceUrl).subscribe(data => {
row.showDetail = !row.showDetail;
this.allInstances = data;
- setTimeout(function() {
+ setTimeout(function () {
$(".pagination").css("marginBottom", "-10px");
}, 0);
});
@@ -169,7 +169,9 @@ export class JobComponent implements OnInit {
}
toCamel(myString): string {
- return myString.replace(/[.]([a-z])/g, function(g) { return g[1].toUpperCase(); })
+ return myString.replace(/[.]([a-z])/g, function (g) {
+ return g[1].toUpperCase();
+ })
}
swapJson(json): any {
@@ -184,13 +186,13 @@ export class JobComponent implements OnInit {
var self = this;
let allJobs = this.serviceService.config.uri.allJobs;
this.http.get(allJobs).subscribe(data => {
- let trans = Object.keys(data).map(function(index) {
+ let trans = Object.keys(data).map(function (index) {
let job = self.swapJson(data[index]);
job.showDetail = false;
job.action = (job.jobState.toStart === true) ? 'START' : 'STOP';
return job;
});
- this.results = Object.assign([],trans).reverse();
+ this.results = Object.assign([], trans).reverse();
});
}
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/loader/loader.component.css
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/loader/loader.component.css b/ui/angular/src/app/loader/loader.component.css
index 9eb55e5..44f7bf4 100644
--- a/ui/angular/src/app/loader/loader.component.css
+++ b/ui/angular/src/app/loader/loader.component.css
@@ -17,8 +17,8 @@ specific language governing permissions and limitations
under the License.
*/
.icon {
- color: #fff;
- position: absolute;
- left: 50%;
- padding-top: 20%;
- }
\ No newline at end of file
+ color: #fff;
+ position: absolute;
+ left: 50%;
+ padding-top: 20%;
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/loader/loader.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/loader/loader.component.spec.ts b/ui/angular/src/app/loader/loader.component.spec.ts
index af609a5..61757bc 100644
--- a/ui/angular/src/app/loader/loader.component.spec.ts
+++ b/ui/angular/src/app/loader/loader.component.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { LoaderComponent } from './loader.component';
+import {LoaderComponent} from './loader.component';
describe('CreateMeasureComponent', () => {
let component: LoaderComponent;
@@ -26,9 +26,9 @@ describe('CreateMeasureComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ LoaderComponent ]
+ declarations: [LoaderComponent]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/loader/loader.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/loader/loader.component.ts b/ui/angular/src/app/loader/loader.component.ts
index 801f97d..0262396 100644
--- a/ui/angular/src/app/loader/loader.component.ts
+++ b/ui/angular/src/app/loader/loader.component.ts
@@ -1,28 +1,30 @@
-import { Component, OnInit, OnDestroy } from "@angular/core";
-import { Subscription } from "rxjs/Subscription";
-import { LoaderService } from "./loader.service";
-import { LoadingState } from "./loader.state";
+import {Component, OnInit, OnDestroy} from "@angular/core";
+import {Subscription} from "rxjs/Subscription";
+import {LoaderService} from "./loader.service";
+import {LoadingState} from "./loader.state";
@Component({
- selector: "app-loader",
- templateUrl: "./loader.component.html",
- styleUrls: ["./loader.component.css"]
+ selector: "app-loader",
+ templateUrl: "./loader.component.html",
+ styleUrls: ["./loader.component.css"]
})
export class LoaderComponent implements OnInit {
- show = false;
- private subscription: Subscription;
- constructor(
- private loaderService: LoaderService
- ) { }
+ show = false;
+ private subscription: Subscription;
- ngOnInit() {
- this.subscription = this.loaderService.LoadingState
- .subscribe((state: LoadingState) => {
- this.show = state.show;
- });
- }
+ constructor(
+ private loaderService: LoaderService
+ ) {
+ }
- ngOnDestroy() {
- this.subscription.unsubscribe();
- }
-}
\ No newline at end of file
+ ngOnInit() {
+ this.subscription = this.loaderService.LoadingState
+ .subscribe((state: LoadingState) => {
+ this.show = state.show;
+ });
+ }
+
+ ngOnDestroy() {
+ this.subscription.unsubscribe();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/loader/loader.service.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/loader/loader.service.spec.ts b/ui/angular/src/app/loader/loader.service.spec.ts
index 8d0cd3a..522dbea 100644
--- a/ui/angular/src/app/loader/loader.service.spec.ts
+++ b/ui/angular/src/app/loader/loader.service.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { LoaderService } from './loader.service';
+import {LoaderService} from './loader.service';
describe('CreateMeasureComponent', () => {
let component: LoaderService;
@@ -26,9 +26,9 @@ describe('CreateMeasureComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ LoaderService ]
+ declarations: [LoaderService]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/loader/loader.service.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/loader/loader.service.ts b/ui/angular/src/app/loader/loader.service.ts
index acd4eb5..2844ae9 100644
--- a/ui/angular/src/app/loader/loader.service.ts
+++ b/ui/angular/src/app/loader/loader.service.ts
@@ -16,23 +16,24 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { Injectable } from "@angular/core";
-import { Subject } from "rxjs/Subject";
-import { LoadingState } from "./loader.state";
+import {Injectable} from "@angular/core";
+import {Subject} from "rxjs/Subject";
+import {LoadingState} from "./loader.state";
@Injectable()
export class LoaderService {
- private loaderSubject = new Subject<LoadingState>();
- LoadingState = this.loaderSubject.asObservable();
+ private loaderSubject = new Subject<LoadingState>();
+ LoadingState = this.loaderSubject.asObservable();
- constructor() { }
+ constructor() {
+ }
- show() {
- this.loaderSubject.next(<LoadingState>{show: true});
- }
+ show() {
+ this.loaderSubject.next(<LoadingState>{show: true});
+ }
- hide() {
- this.loaderSubject.next(<LoadingState>{show: false});
- }
-}
\ No newline at end of file
+ hide() {
+ this.loaderSubject.next(<LoadingState>{show: false});
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/loader/loader.state.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/loader/loader.state.ts b/ui/angular/src/app/loader/loader.state.ts
index fc56233..b0ef236 100644
--- a/ui/angular/src/app/loader/loader.state.ts
+++ b/ui/angular/src/app/loader/loader.state.ts
@@ -17,5 +17,5 @@ specific language governing permissions and limitations
under the License.
*/
export interface LoadingState {
- show: boolean;
-}
\ No newline at end of file
+ show: boolean;
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/login/login.component.css
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/login/login.component.css b/ui/angular/src/app/login/login.component.css
index 0091b44..4d5a5b1 100644
--- a/ui/angular/src/app/login/login.component.css
+++ b/ui/angular/src/app/login/login.component.css
@@ -17,6 +17,7 @@ specific language governing permissions and limitations
under the License.
*/
@import url("../../../node_modules/bootstrap/dist/css/bootstrap.css");
+
#content {
background-color: #1a237e;
background-position: center center;
@@ -25,6 +26,7 @@ under the License.
background-size: cover;
height: 100vh;
}
+
hr {
margin-bottom: 30px;
}
@@ -79,4 +81,4 @@ hr {
padding: 8px 12px;
border-radius: 4px;
text-align: center;
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/login/login.component.html
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/login/login.component.html b/ui/angular/src/app/login/login.component.html
index 3e1c47e..c77925c 100644
--- a/ui/angular/src/app/login/login.component.html
+++ b/ui/angular/src/app/login/login.component.html
@@ -44,14 +44,18 @@ under the License.
<div style="text-align:center;margin-bottom:30px;">
<img src="../assets/img/logo.png" class="img-rounded" style="width:80%;">
</div>
- <input type="input" class="form-control" placeholder="username" autocomplete="on" style="margin-bottom:20px;" (focus)="focus($event)">
- <input type="password" class="form-control" placeholder="password" autocomplete="on" (keyup)="submit($event)" (focus)="focus($event)">
+ <input type="input" class="form-control" placeholder="username" autocomplete="on" style="margin-bottom:20px;"
+ (focus)="focus($event)">
+ <input type="password" class="form-control" placeholder="password" autocomplete="on" (keyup)="submit($event)"
+ (focus)="focus($event)">
<div class="checkbox">
<label style="color:white;">
<input type="checkbox" value="remember-me" checked>Remember me
</label>
</div>
- <button class="btn btn-default btn-large btn-block" id="login-btn" (click)="login()" style="margin-bottom: 20px;">Log in</button>
+ <button class="btn btn-default btn-large btn-block" id="login-btn" (click)="login()"
+ style="margin-bottom: 20px;">Log in
+ </button>
<div id="loginMsg">Login failed. Try again.</div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/login/login.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/login/login.component.spec.ts b/ui/angular/src/app/login/login.component.spec.ts
index db3a317..8475f0a 100644
--- a/ui/angular/src/app/login/login.component.spec.ts
+++ b/ui/angular/src/app/login/login.component.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { LoginComponent } from './login.component';
+import {LoginComponent} from './login.component';
describe('LoginComponent', () => {
let component: LoginComponent;
@@ -26,9 +26,9 @@ describe('LoginComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ LoginComponent ]
+ declarations: [LoginComponent]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/login/login.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/login/login.component.ts b/ui/angular/src/app/login/login.component.ts
index 6c80431..187ef00 100644
--- a/ui/angular/src/app/login/login.component.ts
+++ b/ui/angular/src/app/login/login.component.ts
@@ -16,12 +16,12 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { Component, OnInit } from "@angular/core";
-import { ServiceService } from "../service/service.service";
-import { UserService } from "../service/user.service";
-import { Router } from "@angular/router";
-import { LocationStrategy, HashLocationStrategy } from "@angular/common";
-import { HttpClient } from "@angular/common/http";
+import {Component, OnInit} from "@angular/core";
+import {ServiceService} from "../service/service.service";
+import {UserService} from "../service/user.service";
+import {Router} from "@angular/router";
+import {LocationStrategy, HashLocationStrategy} from "@angular/common";
+import {HttpClient} from "@angular/common/http";
@Component({
selector: "app-login",
@@ -34,12 +34,15 @@ export class LoginComponent implements OnInit {
timestamp: Date;
fullName: string;
results: any;
+
constructor(
private router: Router,
private http: HttpClient,
public serviceService: ServiceService,
public userService: UserService
- ) {}
+ ) {
+ }
+
loginBtnWait() {
$("#login-btn")
.addClass("disabled")
@@ -80,7 +83,7 @@ export class LoginComponent implements OnInit {
var password = $("input:eq(1)").val();
var loginUrl = this.serviceService.config.uri.login;
this.loginBtnWait();
- this.http.post(loginUrl, { username: name, password: password }).subscribe(
+ this.http.post(loginUrl, {username: name, password: password}).subscribe(
data => {
this.results = data;
if (this.results.status == 0) {
@@ -105,9 +108,10 @@ export class LoginComponent implements OnInit {
}
);
}
+
ngOnInit() {
this.ntAccount = this.userService.getCookie("ntAccount");
this.fullName = this.userService.getCookie("fullName");
this.timestamp = new Date();
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/ac/ac.component.css
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/ac/ac.component.css b/ui/angular/src/app/measure/create-measure/ac/ac.component.css
index 83562af..aa8c215 100644
--- a/ui/angular/src/app/measure/create-measure/ac/ac.component.css
+++ b/ui/angular/src/app/measure/create-measure/ac/ac.component.css
@@ -16,7 +16,6 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-
@import url('../../../../../node_modules/angular2-toaster/toaster.css');
@import url('../../measure.component.css');
@@ -59,19 +58,19 @@ div.tree div.tree-children::before {
left: 5px
}
-div.tree treenode>div>.node-wrapper {
+div.tree treenode > div > .node-wrapper {
margin-left: 24px
}
-div.tree treenode>div>.node-wrapper>.node-content-wrapper {
+div.tree treenode > div > .node-wrapper > .node-content-wrapper {
margin-left: 4px
}
-div.tree treenode>div.tree-node-leaf>.node-wrapper {
+div.tree treenode > div.tree-node-leaf > .node-wrapper {
margin-left: 0
}
-div.tree treenode>div::before {
+div.tree treenode > div::before {
content: "";
position: absolute;
border-bottom: 1px dotted #23527c;
@@ -80,7 +79,7 @@ div.tree treenode>div::before {
left: 7px
}
-div.tree treenode>div .toggle-children-wrapper {
+div.tree treenode > div .toggle-children-wrapper {
width: 13px;
height: 13px;
border: 1px solid #23527c;
@@ -93,7 +92,7 @@ div.tree treenode>div .toggle-children-wrapper {
z-index: 1
}
-div.tree treenode>div .toggle-children-wrapper::before {
+div.tree treenode > div .toggle-children-wrapper::before {
content: "";
display: inline-block;
width: 7px;
@@ -103,7 +102,7 @@ div.tree treenode>div .toggle-children-wrapper::before {
left: 2px
}
-div.tree treenode>div .toggle-children-wrapper.toggle-children-wrapper-collapsed::after {
+div.tree treenode > div .toggle-children-wrapper.toggle-children-wrapper-collapsed::after {
content: "";
display: inline-block;
height: 7px;
@@ -113,18 +112,18 @@ div.tree treenode>div .toggle-children-wrapper.toggle-children-wrapper-collapsed
left: 5px
}
-div.tree treenode>div .toggle-children-wrapper .toggle-children {
+div.tree treenode > div .toggle-children-wrapper .toggle-children {
display: none
}
-div.tree treenode>div .node-content-wrapper {
+div.tree treenode > div .node-content-wrapper {
margin-left: 4px
}
-div.tree>treenode>div::before {
+div.tree > treenode > div::before {
left: 14px
}
-div.tree>treenode>div>.node-wrapper>treenodeexpander>.toggle-children-wrapper {
+div.tree > treenode > div > .node-wrapper > treenodeexpander > .toggle-children-wrapper {
left: 22px
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/ac/ac.component.html
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/ac/ac.component.html b/ui/angular/src/app/measure/create-measure/ac/ac.component.html
index bcdddd3..648ae7d 100644
--- a/ui/angular/src/app/measure/create-measure/ac/ac.component.html
+++ b/ui/angular/src/app/measure/create-measure/ac/ac.component.html
@@ -67,7 +67,8 @@ under the License.
</ul>
</div>
<div id="step-1" *ngIf="currentStep == 1" class="formStep">
- <label class="stepDesc">This step let you choose the single source of truth for data quality comparision with target. Currently you can only select the attributes from one schema</label>
+ <label class="stepDesc">This step let you choose the single source of truth for data quality comparision with
+ target. Currently you can only select the attributes from one schema</label>
<div class="container-fluid">
<div class="col-md-4 col-lg-4 col-sm-4">
<fieldset>
@@ -84,32 +85,34 @@ under the License.
<div style="margin-top:10px;">
<label>View schema:</label>
<i style="color:#fff;font-weight: bold;">{{currentDBstr}}{{currentTable}}
- </i>
+ </i>
</div>
<div style="margin-top:5px;">
<table class="table table-striped">
<thead>
- <tr style="background-color:#7D95CC">
- <th>
- <input type="checkbox" (click)="toggleAll()" [checked]="selectedAll" />
- </th>
- <th>Column Name</th>
- <th>Type</th>
- <th>Comment</th>
- </tr>
+ <tr style="background-color:#7D95CC">
+ <th>
+ <input type="checkbox" (click)="toggleAll()" [checked]="selectedAll"/>
+ </th>
+ <th>Column Name</th>
+ <th>Type</th>
+ <th>Comment</th>
+ </tr>
</thead>
<tbody>
- <tr *ngIf="!schemaCollection || schemaCollection.length == 0">
- <td colspan="5" style="text-align:center"><span class="highlight">Please select a schema from the left tree first</span></td>
- </tr>
- <tr *ngFor="let row of schemaCollection">
- <td>
- <input type="checkbox" (click)='toggleSelection(row)' [checked]="row.selected" value={{row.name}} />
- </td>
- <td>{{row.name}}</td>
- <td>{{row.type}}</td>
- <td>{{row.comment}}</td>
- </tr>
+ <tr *ngIf="!schemaCollection || schemaCollection.length == 0">
+ <td colspan="5" style="text-align:center"><span class="highlight">Please select a schema from the left tree first</span>
+ </td>
+ </tr>
+ <tr *ngFor="let row of schemaCollection">
+ <td>
+ <input type="checkbox" (click)='toggleSelection(row)' [checked]="row.selected"
+ value={{row.name}}/>
+ </td>
+ <td>{{row.name}}</td>
+ <td>{{row.type}}</td>
+ <td>{{row.comment}}</td>
+ </tr>
</tbody>
</table>
</div>
@@ -146,27 +149,28 @@ under the License.
<div style="margin-top:5px;">
<table st-table="schemaCollectionTarget" class="table table-striped">
<thead>
- <tr style="background-color:#7D95CC">
- <th>
- <input type="checkbox" (click)="toggleAllTarget()" [checked]="selectedAllTarget" />
- </th>
- <th>Column Name</th>
- <th>Type</th>
- <th>Comment</th>
- </tr>
+ <tr style="background-color:#7D95CC">
+ <th>
+ <input type="checkbox" (click)="toggleAllTarget()" [checked]="selectedAllTarget"/>
+ </th>
+ <th>Column Name</th>
+ <th>Type</th>
+ <th>Comment</th>
+ </tr>
</thead>
<tbody>
- <tr *ngIf="!schemaCollectionTarget || schemaCollectionTarget.length == 0">
- <td colspan="5" style="text-align:center"><span class="highlight">Please select a schema from the left tree first</span></td>
- </tr>
- <tr *ngFor="let row of schemaCollectionTarget">
- <td>
- <input type="checkbox" (click)='toggleSelectionTarget(row)' [checked]="row.selected" />
- </td>
- <td>{{row.name}}</td>
- <td>{{row.type}}</td>
- <td>{{row.comment}}</td>
- </tr>
+ <tr *ngIf="!schemaCollectionTarget || schemaCollectionTarget.length == 0">
+ <td colspan="5" style="text-align:center"><span class="highlight">Please select a schema from the left tree first</span>
+ </td>
+ </tr>
+ <tr *ngFor="let row of schemaCollectionTarget">
+ <td>
+ <input type="checkbox" (click)='toggleSelectionTarget(row)' [checked]="row.selected"/>
+ </td>
+ <td>{{row.name}}</td>
+ <td>{{row.type}}</td>
+ <td>{{row.comment}}</td>
+ </tr>
</tbody>
</table>
</div>
@@ -185,7 +189,8 @@ under the License.
</div>
</div>
<div id="step-3" *ngIf="currentStep == 3" class="formStep">
- <label class="stepDesc">This step let you map the target data fields to source fields, you can choose the related fields from dropdown list of source</label>
+ <label class="stepDesc">This step let you map the target data fields to source fields, you can choose the
+ related fields from dropdown list of source</label>
<div class="container-fluid">
<div class="col-md-12 col-lg-12 col-sm-12">
<fieldset>
@@ -196,39 +201,44 @@ under the License.
<div class="container col-md-12 col-lg-12 col-sm-12">
<table class="table table-striped">
<thead>
- <tr style="background-color:#7D95CC;font-size:20px">
- <th style="width:40%;">Target Fields</th>
- <th style="width:10%;text-align:center">Map To</th>
- <th style="width:40%;text-align:center">Source Fields</th>
- </tr>
+ <tr style="background-color:#7D95CC;font-size:20px">
+ <th style="width:40%;">Target Fields</th>
+ <th style="width:10%;text-align:center">Map To</th>
+ <th style="width:40%;text-align:center">Source Fields</th>
+ </tr>
</thead>
<tbody>
- <tr *ngFor="let item of selectionTarget; let i=index">
- <td>{{currentDBTarget}}.{{currentTableTarget}}.{{item}}</td>
- <td style="text-align:center;">
- <select class="form-control" style="background:#00FFFF;font-weight:bold" id="mapRule" name='mapRule-{{i}}' [(ngModel)]="matches[i]" value="matches[i]">
- <option *ngFor="let func of matchFunctions">{{func}}</option>
- </select>
- </td>
- <td>
- <select class="form-control" [(ngModel)]='mappings[i]' name="mappings{{i}}" (ngModelChange)="addMapping($event,i)" value="mappings[i]">
- <option *ngFor="let itemSrc of selection" [ngValue]="itemSrc">
- {{currentDB}}.{{currentTable}}.{{itemSrc}}</option>
- </select>
- </td>
- </tr>
+ <tr *ngFor="let item of selectionTarget; let i=index">
+ <td>{{currentDBTarget}}.{{currentTableTarget}}.{{item}}</td>
+ <td style="text-align:center;">
+ <select class="form-control" style="background:#00FFFF;font-weight:bold" id="mapRule"
+ name='mapRule-{{i}}' [(ngModel)]="matches[i]" value="matches[i]">
+ <option *ngFor="let func of matchFunctions">{{func}}</option>
+ </select>
+ </td>
+ <td>
+ <select class="form-control" [(ngModel)]='mappings[i]' name="mappings{{i}}"
+ (ngModelChange)="addMapping($event,i)" value="mappings[i]">
+ <option *ngFor="let itemSrc of selection" [ngValue]="itemSrc">
+ {{currentDB}}.{{currentTable}}.{{itemSrc}}
+ </option>
+ </select>
+ </td>
+ </tr>
</tbody>
</table>
<p>
<label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
</p>
- <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
+ <div class="col-md-12 col-lg-12 col-sm-12"
+ style="color:#fff;font-size:16px;display: flex;align-items: center">
<div class="" style="text-align:right;display:block;float:left;width:20%;">
Accuracy Rate(%) =
</div>
<div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
<div class="formula-text-up" style="border-bottom:1px solid;">
- Total Count of Matched records between <span class="badge">{{selectionTarget.length}}</span> <span style="color:green;">{{currentTableTarget}}</span> and <span class="badge">{{mappings.length}}
+ Total Count of Matched records between <span class="badge">{{selectionTarget.length}}</span>
+ <span style="color:green;">{{currentTableTarget}}</span> and <span class="badge">{{mappings.length}}
</span> <span style="color:green;">{{currentTable}}</span> fields
</div>
<div>
@@ -255,7 +265,8 @@ under the License.
</div>
</div>
<div id="step-4" *ngIf="currentStep == 4" class="formStep">
- <label class="stepDesc">Please complete the partition configuration for {{currentTable}} and {{currentTableTarget}}</label>
+ <label class="stepDesc">Please complete the partition configuration for {{currentTable}} and
+ {{currentTableTarget}}</label>
<div class="container-fluid">
<div class="col-md-12 col-lg-12 col-sm-12">
<fieldset>
@@ -267,13 +278,15 @@ under the License.
<div class="form-group" style="text-align:center">
{{currentDB}}.{{currentTable}}
</div>
- <app-configuration [data]="srcconfig" [location]="src_location" (event)="getSrc($event)"></app-configuration>
+ <app-configuration [data]="srcconfig" [location]="src_location"
+ (event)="getSrc($event)"></app-configuration>
</div>
<div class="col-md-6 col-lg-6 col-sm-6" id="target">
<div class="form-group" style="text-align:center">
{{currentDB}}.{{currentTableTarget}}
</div>
- <app-configuration [data]="tgtconfig" [location]="tgt_location" (event)="getTgt($event)"></app-configuration>
+ <app-configuration [data]="tgtconfig" [location]="tgt_location"
+ (event)="getTgt($event)"></app-configuration>
</div>
</div>
</fieldset>
@@ -299,12 +312,15 @@ under the License.
</legend>
<div class="y-scrollable">
<div class="col-md-12 col-lg-12 col-sm-12" style="margin-top:20px;">
- <div class="form-group" [ngClass]="{'has-error':acName.dirty&&acName.invalid, 'has-success':acName.valid}">
+ <div class="form-group"
+ [ngClass]="{'has-error':acName.dirty&&acName.invalid, 'has-success':acName.valid}">
<label class="col-md-2 col-lg-2 col-sm-2 control-label">
Measure Name<span class="symbol required"></span>:
</label>
<div class="col-md-10 col-lg-10 col-sm-10 ">
- <input type="text" class="form-control" [(ngModel)]="name" name="acName" #acName="ngModel" placeholder="Please input the measure name" required pattern="^[a-zA-Z0-9_-]*$" id="acName">
+ <input type="text" class="form-control" [(ngModel)]="name" name="acName" #acName="ngModel"
+ placeholder="Please input the measure name" required pattern="^[a-zA-Z0-9_-]*$"
+ id="acName">
<span class="error text-small block " *ngIf="acName.dirty && (acName.errors?.required)">
Measure Name is required</span>
<span class="error text-small block " *ngIf="acName.dirty && (acName.errors?.pattern)">Only letter, number, "-" and "_" are allowed</span>
@@ -317,7 +333,8 @@ under the License.
Measure Description:
</label>
<div class="col-md-10 col-lg-10 col-sm-10 ">
- <input type="text" class="form-control" [(ngModel)]="desc" placeholder="Please input detailed description of your measure" name="desc">
+ <input type="text" class="form-control" [(ngModel)]="desc"
+ placeholder="Please input detailed description of your measure" name="desc">
</div>
</div>
</div>
@@ -340,8 +357,10 @@ under the License.
Source:<span class="symbol required"></span>:
</label>
<div class="col-md-10 col-lg-10 col-sm-10">
- <input type="text" class="form-control" name="DataAsset" [(ngModel)]="currentTable" #prDataSource="ngModel" name="prDataSource" [readonly]="true" required>
- <span class="error text-small block " *ngIf="prDataSource.dirty && (prDataSource.errors?.required)">Data source is required</span>
+ <input type="text" class="form-control" name="DataAsset" [(ngModel)]="currentTable"
+ #prDataSource="ngModel" name="prDataSource" [readonly]="true" required>
+ <span class="error text-small block "
+ *ngIf="prDataSource.dirty && (prDataSource.errors?.required)">Data source is required</span>
</div>
</div>
</div>
@@ -351,8 +370,10 @@ under the License.
Target:<span class="symbol required"></span>:
</label>
<div class="col-md-10 col-lg-10 col-sm-10">
- <input type="text" class="form-control" name="DataAsset" [(ngModel)]="currentTableTarget" #prDataTarget="ngModel" name="prDataTarget" [readonly]="true" required>
- <span class="error text-small block " *ngIf="prDataTarget.dirty && (prDataTarget.errors?.required)">Data target is required</span>
+ <input type="text" class="form-control" name="DataAsset" [(ngModel)]="currentTableTarget"
+ #prDataTarget="ngModel" name="prDataTarget" [readonly]="true" required>
+ <span class="error text-small block "
+ *ngIf="prDataTarget.dirty && (prDataTarget.errors?.required)">Data target is required</span>
</div>
</div>
</div>
@@ -369,7 +390,9 @@ under the License.
</div>
<div style="color:#b2c831">
<p>
- <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" routerLink="/measures">Measures</a>" to check the measure status
+ <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link"
+ routerLink="/measures">Measures</a>"
+ to check the measure status
</p>
</div>
</fieldset>
@@ -385,7 +408,9 @@ under the License.
</div>
</div>
</div>
- <div class="modal fade" id="confirm" role="dialog" #modal tabindex="-1" [ngClass]="{'in': visibleAnimate}" [ngStyle]="{'display': visible ? 'block' : 'none', 'opacity': visibleAnimate ? 1 : 0}" (click)="onContainerClicked($event)">
+ <div class="modal fade" id="confirm" role="dialog" #modal tabindex="-1" [ngClass]="{'in': visibleAnimate}"
+ [ngStyle]="{'display': visible ? 'block' : 'none', 'opacity': visibleAnimate ? 1 : 0}"
+ (click)="onContainerClicked($event)">
<div class="modal-dialog modal-xg modal-lg">
<div class="modal-content">
<div class="modal-header">
@@ -522,13 +547,15 @@ under the License.
<p>
<label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
</p>
- <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex; align-items: center">
+ <div class="col-md-12 col-lg-12 col-sm-12"
+ style="color:#fff;font-size:16px;display: flex; align-items: center">
<div class="" style="text-align:right;display:block;float:left;width:20%;">
Accuracy Rate(%) =
</div>
<div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
<div class="formula-text-up" style="border-bottom:1px solid;">
- Total Count of Matched records between <span class="badge">{{selectionTarget.length}}</span> <span style="color:green;">{{currentTableTarget}}</span> and <span class="badge">{{mappings.length}}
+ Total Count of Matched records between <span class="badge">{{selectionTarget.length}}</span>
+ <span style="color:green;">{{currentTableTarget}}</span> and <span class="badge">{{mappings.length}}
</span> <span style="color:green;">{{currentTable}}</span> fields
</div>
<div>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/ac/ac.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/ac/ac.component.spec.ts b/ui/angular/src/app/measure/create-measure/ac/ac.component.spec.ts
index ee0762d..20f793d 100644
--- a/ui/angular/src/app/measure/create-measure/ac/ac.component.spec.ts
+++ b/ui/angular/src/app/measure/create-measure/ac/ac.component.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { AcComponent } from './ac.component';
+import {AcComponent} from './ac.component';
describe('AcComponent', () => {
let component: AcComponent;
@@ -26,9 +26,9 @@ describe('AcComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ AcComponent ]
+ declarations: [AcComponent]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/ac/ac.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/ac/ac.component.ts b/ui/angular/src/app/measure/create-measure/ac/ac.component.ts
index fd51c22..9492ad8 100644
--- a/ui/angular/src/app/measure/create-measure/ac/ac.component.ts
+++ b/ui/angular/src/app/measure/create-measure/ac/ac.component.ts
@@ -16,16 +16,16 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { Component, OnInit, AfterViewChecked, ViewChild } from "@angular/core";
-import { FormControl } from "@angular/forms";
-import { FormsModule, Validator } from "@angular/forms";
-import { ServiceService } from "../../../service/service.service";
-import { TREE_ACTIONS, KEYS, IActionMapping, ITreeOptions } from "angular-tree-component";
-import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
-import { ToasterModule, ToasterService } from "angular2-toaster";
+import {Component, OnInit, AfterViewChecked, ViewChild} from "@angular/core";
+import {FormControl} from "@angular/forms";
+import {FormsModule, Validator} from "@angular/forms";
+import {ServiceService} from "../../../service/service.service";
+import {TREE_ACTIONS, KEYS, IActionMapping, ITreeOptions} from "angular-tree-component";
+import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
+import {ToasterModule, ToasterService} from "angular2-toaster";
import * as $ from "jquery";
-import { Router } from "@angular/router";
-import { HttpClient } from "@angular/common/http";
+import {Router} from "@angular/router";
+import {HttpClient} from "@angular/common/http";
class node {
name: string;
@@ -36,20 +36,24 @@ class node {
parent: string;
location: string;
}
+
class Col {
name: string;
type: string;
comment: string;
selected: boolean;
+
constructor(name: string, type: string, comment: string, selected: boolean) {
this.name = name;
this.type = type;
this.comment = comment;
this.selected = false;
}
+
getSelected() {
return this.selected;
}
+
setSelected(selected) {
this.selected = selected;
}
@@ -325,7 +329,7 @@ export class AcComponent implements OnInit, AfterViewChecked {
}
}
- formValidation = function(step) {
+ formValidation = function (step) {
if (step == undefined) {
step = this.currentStep;
}
@@ -350,9 +354,11 @@ export class AcComponent implements OnInit, AfterViewChecked {
prev(form) {
this.currentStep--;
}
+
goTo(i) {
this.currentStep = i;
}
+
submit(form) {
// form.$setPristine();
// this.finalgrp = [];
@@ -469,13 +475,13 @@ export class AcComponent implements OnInit, AfterViewChecked {
if (!this.tgt_needpath || this.tgt_path == "") {
this.deletePredicates(1);
}
- var mappingRule = function(src, tgt, matches) {
+ var mappingRule = function (src, tgt, matches) {
var rules;
rules = "source." + src + matches + "target." + tgt;
return rules;
};
var self = this;
- var rules = this.mappings.map(function(item, i) {
+ var rules = this.mappings.map(function (item, i) {
return mappingRule(item, self.selectionTarget[i], self.matches[i]);
});
rule = rules.join(" AND ");
@@ -485,11 +491,11 @@ export class AcComponent implements OnInit, AfterViewChecked {
setTimeout(() => (this.visibleAnimate = true), 100);
}
- deleteUnit(index){
+ deleteUnit(index) {
delete this.newMeasure["data.sources"][index]["connectors"][0]["data.unit"];
}
- deletePredicates(index){
+ deletePredicates(index) {
delete this.newMeasure["data.sources"][index]["connectors"][0]["predicates"];
}
@@ -504,7 +510,7 @@ export class AcComponent implements OnInit, AfterViewChecked {
},
err => {
let response = JSON.parse(err.error);
- if(response.code === '40901'){
+ if (response.code === '40901') {
this.toasterService.pop("error", "Error!", "Measure name already exists!");
} else {
this.toasterService.pop("error", "Error!", "Error when creating measure");
@@ -585,6 +591,7 @@ export class AcComponent implements OnInit, AfterViewChecked {
nodeList: object[];
nodeListTarget: object[];
+
constructor(
toasterService: ToasterService,
private http: HttpClient,
@@ -637,9 +644,9 @@ export class AcComponent implements OnInit, AfterViewChecked {
});
$("fieldset").height(
$(stepSelection).height() -
- $(stepSelection + ">.stepDesc").height() -
- $(".btn-container").height() -
- 130
+ $(stepSelection + ">.stepDesc").height() -
+ $(".btn-container").height() -
+ 130
);
$(".y-scrollable").css({
// 'max-height': $('fieldset').height()- $('.add-dataset').outerHeight()
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/configuration/configuration.component.html
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/configuration/configuration.component.html b/ui/angular/src/app/measure/create-measure/configuration/configuration.component.html
index 9f4a926..713017b 100644
--- a/ui/angular/src/app/measure/create-measure/configuration/configuration.component.html
+++ b/ui/angular/src/app/measure/create-measure/configuration/configuration.component.html
@@ -22,7 +22,8 @@ under the License.
Where:
</label>
<div class="col-md-10 col-lg-10 col-sm-10 ">
- <input type="text" class="form-control" id="where" name="where" placeholder=" dt=#YYYYMMdd# AND hour=#HH#" [(ngModel)]="where" (change)="upward()">
+ <input type="text" class="form-control" id="where" name="where" placeholder=" dt=#YYYYMMdd# AND hour=#HH#"
+ [(ngModel)]="where" (change)="upward()">
</div>
</div>
</div>
@@ -66,6 +67,7 @@ under the License.
please write the Done file path relative to {{location}}
</div>
<div style="margin-left:45px">
- <input type="text" class="form-control" id="path" [(ngModel)]="path" name="filepath" (change)="upward()" placeholder="/dt=#YYYYMMdd#/hour=#HH#/_DONE">
+ <input type="text" class="form-control" id="path" [(ngModel)]="path" name="filepath" (change)="upward()"
+ placeholder="/dt=#YYYYMMdd#/hour=#HH#/_DONE">
</div>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/configuration/configuration.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/configuration/configuration.component.spec.ts b/ui/angular/src/app/measure/create-measure/configuration/configuration.component.spec.ts
index a16f934..20262a2 100644
--- a/ui/angular/src/app/measure/create-measure/configuration/configuration.component.spec.ts
+++ b/ui/angular/src/app/measure/create-measure/configuration/configuration.component.spec.ts
@@ -17,9 +17,9 @@ specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { ConfigurationComponent } from './configuration.component';
+import {ConfigurationComponent} from './configuration.component';
describe('ConfigurationComponent', () => {
let component: ConfigurationComponent;
@@ -27,9 +27,9 @@ describe('ConfigurationComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ ConfigurationComponent ]
+ declarations: [ConfigurationComponent]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/configuration/configuration.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/configuration/configuration.component.ts b/ui/angular/src/app/measure/create-measure/configuration/configuration.component.ts
index 5d0fac4..ff86f99 100644
--- a/ui/angular/src/app/measure/create-measure/configuration/configuration.component.ts
+++ b/ui/angular/src/app/measure/create-measure/configuration/configuration.component.ts
@@ -17,7 +17,7 @@ specific language governing permissions and limitations
under the License.
*/
-import { Component, OnInit, EventEmitter, Input, Output } from "@angular/core";
+import {Component, OnInit, EventEmitter, Input, Output} from "@angular/core";
import * as $ from "jquery";
@Component({
@@ -38,7 +38,9 @@ export class ConfigurationComponent implements OnInit {
};
@Input() location: string;
- constructor() {}
+ constructor() {
+ }
+
num: number;
path: string;
where: string;
@@ -117,4 +119,4 @@ export class ConfigurationComponent implements OnInit {
this.needpath = this.data.needpath;
this.path = this.data.path;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/create-measure.component.css
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/create-measure.component.css b/ui/angular/src/app/measure/create-measure/create-measure.component.css
index af70368..ad67a18 100644
--- a/ui/angular/src/app/measure/create-measure/create-measure.component.css
+++ b/ui/angular/src/app/measure/create-measure/create-measure.component.css
@@ -16,7 +16,6 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-
@import url('../../../../node_modules/angular2-toaster/toaster.css');
@import url('../measure.component.css');
@@ -45,19 +44,19 @@ div.tree div.tree-children::before {
left: 5px
}
-div.tree treenode>div>.node-wrapper {
+div.tree treenode > div > .node-wrapper {
margin-left: 24px
}
-div.tree treenode>div>.node-wrapper>.node-content-wrapper {
+div.tree treenode > div > .node-wrapper > .node-content-wrapper {
margin-left: 4px
}
-div.tree treenode>div.tree-node-leaf>.node-wrapper {
+div.tree treenode > div.tree-node-leaf > .node-wrapper {
margin-left: 0
}
-div.tree treenode>div::before {
+div.tree treenode > div::before {
content: "";
position: absolute;
border-bottom: 1px dotted #23527c;
@@ -66,7 +65,7 @@ div.tree treenode>div::before {
left: 7px
}
-div.tree treenode>div .toggle-children-wrapper {
+div.tree treenode > div .toggle-children-wrapper {
width: 13px;
height: 13px;
border: 1px solid #23527c;
@@ -79,7 +78,7 @@ div.tree treenode>div .toggle-children-wrapper {
z-index: 1
}
-div.tree treenode>div .toggle-children-wrapper::before {
+div.tree treenode > div .toggle-children-wrapper::before {
content: "";
display: inline-block;
width: 7px;
@@ -89,7 +88,7 @@ div.tree treenode>div .toggle-children-wrapper::before {
left: 2px
}
-div.tree treenode>div .toggle-children-wrapper.toggle-children-wrapper-collapsed::after {
+div.tree treenode > div .toggle-children-wrapper.toggle-children-wrapper-collapsed::after {
content: "";
display: inline-block;
height: 7px;
@@ -99,19 +98,19 @@ div.tree treenode>div .toggle-children-wrapper.toggle-children-wrapper-collapsed
left: 5px
}
-div.tree treenode>div .toggle-children-wrapper .toggle-children {
+div.tree treenode > div .toggle-children-wrapper .toggle-children {
display: none
}
-div.tree treenode>div .node-content-wrapper {
+div.tree treenode > div .node-content-wrapper {
margin-left: 4px
}
-div.tree>treenode>div::before {
+div.tree > treenode > div::before {
left: 14px
}
-div.tree>treenode>div>.node-wrapper>treenodeexpander>.toggle-children-wrapper {
+div.tree > treenode > div > .node-wrapper > treenodeexpander > .toggle-children-wrapper {
left: 22px
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/create-measure.component.html
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/create-measure.component.html b/ui/angular/src/app/measure/create-measure/create-measure.component.html
index 5cbbd42..22ff6b6 100644
--- a/ui/angular/src/app/measure/create-measure/create-measure.component.html
+++ b/ui/angular/src/app/measure/create-measure/create-measure.component.html
@@ -22,164 +22,168 @@ under the License.
</div>
<div class="row">
<div class="row">
- <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
- <section id="panel-1" class="panel panel-red" style="cursor:pointer" (click)="click('ac')">
- <div class="panel-heading">
- <span style="font-size:20px">Accuracy</span>
- <span class="pull-right" style="font-size:20px">
+ <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
+ <section id="panel-1" class="panel panel-red" style="cursor:pointer" (click)="click('ac')">
+ <div class="panel-heading">
+ <span style="font-size:20px">Accuracy</span>
+ <span class="pull-right" style="font-size:20px">
<span class="fa fa-arrow-circle-right" (click)="click('ac')"></span>
</span>
- </div>
- <div class="swMain panel-body">
- <label class="label-definition">Definition: Measured by how the values agree with an identified source of truth</label>
- <ul style="border-radius:0; background: none">
- <li>
- <a class="selected">
- <div class="stepNumber">
- 1
- </div>
- <span class="stepDesc text-small"> Choose Source </span>
- </a>
- </li>
- <li>
- <a>
- <div class="stepNumber">
- 2
- </div>
- <span class="stepDesc text-small"> Choose Target </span>
- </a>
- </li>
- <li>
- <a>
- <div class="stepNumber">
- 3
- </div>
- <span class="stepDesc text-small"> Mapping Source and Target </span>
- </a>
- </li>
- <li>
- <a>
- <div class="stepNumber">
- 4
- </div>
- <span class="stepDesc text-small"> Partition Configuration </span>
- </a>
- </li>
- <li>
- <a>
- <div class="stepNumber">
- 5
- </div>
- <span class="stepDesc text-small"> Configuration </span>
- </a>
- </li>
- </ul>
- <div>
- <ol>
- <li>Select the source dataset and fields which will be used for comparision</li>
- <li>Select the target dataset and fields which will be used for comparision</li>
- <li>Mapping the target fields with source</li>
- <li>Set partition configuration for source dataset and target dataset</li>
- <li>Set basic configuration for your model (name, system, threshold, etc.)</li>
- </ol>
</div>
- </div>
- <div class="panel-footer stepDesc">
- <label>Example:</label> suppose source table A has 1000 records and target table B only has 999 records pefectly matched with A for selected fields, then Accuracy Rate(%) = 999/1000 * 100% = 99.9%
- </div>
- </section>
- </div>
- <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
- <section id="panel-2" class="panel panel-primary" (click)="click('pr')">
- <div class="panel-heading">
- <span style="font-size:20px">Data Profiling</span>
- <span class="pull-right" style="font-size:20px">
+ <div class="swMain panel-body">
+ <label class="label-definition">Definition: Measured by how the values agree with an identified source of
+ truth</label>
+ <ul style="border-radius:0; background: none">
+ <li>
+ <a class="selected">
+ <div class="stepNumber">
+ 1
+ </div>
+ <span class="stepDesc text-small"> Choose Source </span>
+ </a>
+ </li>
+ <li>
+ <a>
+ <div class="stepNumber">
+ 2
+ </div>
+ <span class="stepDesc text-small"> Choose Target </span>
+ </a>
+ </li>
+ <li>
+ <a>
+ <div class="stepNumber">
+ 3
+ </div>
+ <span class="stepDesc text-small"> Mapping Source and Target </span>
+ </a>
+ </li>
+ <li>
+ <a>
+ <div class="stepNumber">
+ 4
+ </div>
+ <span class="stepDesc text-small"> Partition Configuration </span>
+ </a>
+ </li>
+ <li>
+ <a>
+ <div class="stepNumber">
+ 5
+ </div>
+ <span class="stepDesc text-small"> Configuration </span>
+ </a>
+ </li>
+ </ul>
+ <div>
+ <ol>
+ <li>Select the source dataset and fields which will be used for comparision</li>
+ <li>Select the target dataset and fields which will be used for comparision</li>
+ <li>Mapping the target fields with source</li>
+ <li>Set partition configuration for source dataset and target dataset</li>
+ <li>Set basic configuration for your model (name, system, threshold, etc.)</li>
+ </ol>
+ </div>
+ </div>
+ <div class="panel-footer stepDesc">
+ <label>Example:</label> suppose source table A has 1000 records and target table B only has 999 records
+ pefectly matched with A for selected fields, then Accuracy Rate(%) = 999/1000 * 100% = 99.9%
+ </div>
+ </section>
+ </div>
+ <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
+ <section id="panel-2" class="panel panel-primary" (click)="click('pr')">
+ <div class="panel-heading">
+ <span style="font-size:20px">Data Profiling</span>
+ <span class="pull-right" style="font-size:20px">
<span class="fa fa-arrow-circle-right"></span>
</span>
- </div>
- <div class="swMain panel-body">
- <label class="label-definition">Definition: Data profiling is the process of examining the data available in an existing data set and collecting statistics and information about that data</label>
- <ul style="border-radius:0; background: none">
- <li>
- <a class="selected" style="cursor:default">
- <div class="stepNumber">
- 1
- </div>
- <span class="stepDesc text-small"> Choose Target </span>
- </a>
- </li>
- <li>
- <a style="cursor:default">
- <div class="stepNumber">
- 2
- </div>
- <span class="stepDesc text-small">Define/Select Models </span>
- </a>
- </li>
- <li>
- <a style="cursor:default">
- <div class="stepNumber">
- 3
- </div>
- <span class="stepDesc text-small"> Partition Configuration </span>
- </a>
- </li>
- <li>
- <a style="cursor:default">
- <div class="stepNumber">
- 4
- </div>
- <span class="stepDesc text-small"> Configuration </span>
- </a>
- </li>
- </ul>
- <div>
- <ol>
- <li>Select the target dataset and fields which want to be checked</li>
- <li>Define your syntax check logic which will be applied on the selected fields</li>
- <li>Set partition configuration for target dataset</li>
- <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
- </ol>
</div>
- </div>
- <div class="panel-footer stepDesc">
- <label>Example:</label> Check the data range(minimum, maximum) within a set of allowable values
- </div>
- </section>
+ <div class="swMain panel-body">
+ <label class="label-definition">Definition: Data profiling is the process of examining the data available in
+ an existing data set and collecting statistics and information about that data</label>
+ <ul style="border-radius:0; background: none">
+ <li>
+ <a class="selected" style="cursor:default">
+ <div class="stepNumber">
+ 1
+ </div>
+ <span class="stepDesc text-small"> Choose Target </span>
+ </a>
+ </li>
+ <li>
+ <a style="cursor:default">
+ <div class="stepNumber">
+ 2
+ </div>
+ <span class="stepDesc text-small">Define/Select Models </span>
+ </a>
+ </li>
+ <li>
+ <a style="cursor:default">
+ <div class="stepNumber">
+ 3
+ </div>
+ <span class="stepDesc text-small"> Partition Configuration </span>
+ </a>
+ </li>
+ <li>
+ <a style="cursor:default">
+ <div class="stepNumber">
+ 4
+ </div>
+ <span class="stepDesc text-small"> Configuration </span>
+ </a>
+ </li>
+ </ul>
+ <div>
+ <ol>
+ <li>Select the target dataset and fields which want to be checked</li>
+ <li>Define your syntax check logic which will be applied on the selected fields</li>
+ <li>Set partition configuration for target dataset</li>
+ <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
+ </ol>
+ </div>
+ </div>
+ <div class="panel-footer stepDesc">
+ <label>Example:</label> Check the data range(minimum, maximum) within a set of allowable values
+ </div>
+ </section>
+ </div>
</div>
- </div>
- <div class="row">
- <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
- <section id="panel-3" class="panel panel-green" (click)="click('pub')">
- <div class="panel-heading">
- <span style="font-size:20px">Publish</span>
- <span class="pull-right" style="font-size:20px">
+ <div class="row">
+ <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
+ <section id="panel-3" class="panel panel-green" (click)="click('pub')">
+ <div class="panel-heading">
+ <span style="font-size:20px">Publish</span>
+ <span class="pull-right" style="font-size:20px">
<span class="fa fa-arrow-circle-right"></span>
</span>
- </div>
- <div class="swMain panel-body">
- <label class="label-definition">Definition: Publish is the process of storing user's own quality data and visualizing it</label>
- <ul style="border-radius:0; background: none">
- <li>
- <div class="selected1child" style="cursor:default">
- <div class="stepNumber">
- 1
+ </div>
+ <div class="swMain panel-body">
+ <label class="label-definition">Definition: Publish is the process of storing user's own quality data and
+ visualizing it</label>
+ <ul style="border-radius:0; background: none">
+ <li>
+ <div class="selected1child" style="cursor:default">
+ <div class="stepNumber">
+ 1
+ </div>
+ <span class="stepDesc text-small"> Configuration </span>
</div>
- <span class="stepDesc text-small"> Configuration </span>
- </div>
- </li>
- </ul>
- <div>
- <ol>
- <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
- </ol>
+ </li>
+ </ul>
+ <div>
+ <ol>
+ <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
+ </ol>
+ </div>
</div>
- </div>
- <div class="panel-footer stepDesc">
- <label>Example: any data</label> ...
- </div>
- </section>
+ <div class="panel-footer stepDesc">
+ <label>Example: any data</label> ...
+ </div>
+ </section>
+ </div>
</div>
</div>
</div>
-</div>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/create-measure.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/create-measure.component.spec.ts b/ui/angular/src/app/measure/create-measure/create-measure.component.spec.ts
index 6e073a3..d6079c2 100644
--- a/ui/angular/src/app/measure/create-measure/create-measure.component.spec.ts
+++ b/ui/angular/src/app/measure/create-measure/create-measure.component.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { CreateMeasureComponent } from './create-measure.component';
+import {CreateMeasureComponent} from './create-measure.component';
describe('CreateMeasureComponent', () => {
let component: CreateMeasureComponent;
@@ -26,9 +26,9 @@ describe('CreateMeasureComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ CreateMeasureComponent ]
+ declarations: [CreateMeasureComponent]
})
- .compileComponents();
+ .compileComponents();
}));
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/create-measure.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/create-measure.component.ts b/ui/angular/src/app/measure/create-measure/create-measure.component.ts
index 9166e22..bd7071d 100644
--- a/ui/angular/src/app/measure/create-measure/create-measure.component.ts
+++ b/ui/angular/src/app/measure/create-measure/create-measure.component.ts
@@ -16,16 +16,16 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { Component, OnInit, AfterViewInit } from "@angular/core";
-import { FormControl } from "@angular/forms";
-import { FormsModule } from "@angular/forms";
+import {Component, OnInit, AfterViewInit} from "@angular/core";
+import {FormControl} from "@angular/forms";
+import {FormsModule} from "@angular/forms";
-import { TREE_ACTIONS, KEYS, IActionMapping, ITreeOptions } from "angular-tree-component";
-import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
-import { ToasterModule, ToasterService, ToasterConfig } from "angular2-toaster";
+import {TREE_ACTIONS, KEYS, IActionMapping, ITreeOptions} from "angular-tree-component";
+import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
+import {ToasterModule, ToasterService, ToasterConfig} from "angular2-toaster";
import * as $ from "jquery";
-import { HttpService } from '../../service/http.service';
-import { Router } from "@angular/router";
+import {HttpService} from '../../service/http.service';
+import {Router} from "@angular/router";
@Component({
selector: "app-create-measure",
@@ -33,23 +33,25 @@ import { Router } from "@angular/router";
styleUrls: ["./create-measure.component.css"]
})
export class CreateMeasureComponent implements AfterViewInit {
- constructor(private router: Router) {}
+ constructor(private router: Router) {
+ }
click(type) {
this.router.navigate(["/createmeasure" + type]);
}
+
ngAfterViewInit() {
$("#panel-2 >.panel-body").css({
height:
- $("#panel-1 >.panel-body").outerHeight() +
- $("#panel-1 >.panel-footer").outerHeight() -
- $("#panel-2 >.panel-footer").outerHeight()
+ $("#panel-1 >.panel-body").outerHeight() +
+ $("#panel-1 >.panel-footer").outerHeight() -
+ $("#panel-2 >.panel-footer").outerHeight()
});
$("#panel-4 >.panel-body").css({
height:
- $("#panel-3 >.panel-body").outerHeight() +
- $("#panel-3 >.panel-footer").outerHeight() -
- $("#panel-4 >.panel-footer").outerHeight()
+ $("#panel-3 >.panel-body").outerHeight() +
+ $("#panel-3 >.panel-footer").outerHeight() -
+ $("#panel-4 >.panel-footer").outerHeight()
});
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.spec.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.spec.ts b/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.spec.ts
index dddc650..d5245d8 100644
--- a/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.spec.ts
+++ b/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.spec.ts
@@ -16,9 +16,9 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-import { PrConfirmModal } from './confirmModal.component';
+import {PrConfirmModal} from './confirmModal.component';
describe('PrConfirmModalComponent', () => {
let component: PrConfirmModal;
@@ -26,7 +26,7 @@ describe('PrConfirmModalComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ PrConfirmModal ]
+ declarations: [PrConfirmModal]
})
.compileComponents();
}));
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.ts
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.ts b/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.ts
index d19022c..5ab2010 100644
--- a/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.ts
+++ b/ui/angular/src/app/measure/create-measure/pr/confirmModal/confirmModal.component.ts
@@ -34,7 +34,8 @@ export class PrConfirmModal {
@Output() hide: EventEmitter<Object> = new EventEmitter<Object>();
@Output() saveMeasure: EventEmitter<Object> = new EventEmitter<Object>();
- constructor() {}
+ constructor() {
+ }
hideModal() {
this.hide.emit();
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/b306d872/ui/angular/src/app/measure/create-measure/pr/pr.component.css
----------------------------------------------------------------------
diff --git a/ui/angular/src/app/measure/create-measure/pr/pr.component.css b/ui/angular/src/app/measure/create-measure/pr/pr.component.css
index 8217c9c..1e1d728 100644
--- a/ui/angular/src/app/measure/create-measure/pr/pr.component.css
+++ b/ui/angular/src/app/measure/create-measure/pr/pr.component.css
@@ -16,7 +16,6 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-
@import url('../../../../../node_modules/angular2-toaster/toaster.css');
@import url('../../measure.component.css');