http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/app/sidebar/sidebar.component.css ---------------------------------------------------------------------- diff --git a/ui/angular/src/app/sidebar/sidebar.component.css b/ui/angular/src/app/sidebar/sidebar.component.css new file mode 100644 index 0000000..5c74f3a --- /dev/null +++ b/ui/angular/src/app/sidebar/sidebar.component.css @@ -0,0 +1,219 @@ +/* +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. +*/ +.sidebar-stat-center{ + padding:10px 0; + display: flex; + align-items: center +} + +.sidebar-stat-center>img{ + max-width:24px; + margin-right:5px; +} + +.sidebar-stat-center>span{ + font-size:18px; + color:#fff +} + +.well{ + padding:0px; + background:transparent; + border:0px; + position:relative; +} + +.well .faChevron{ + color: white; +} + +.panel-group{ + margin-bottom:0px; + background:transparent; +} + +.panel-default{ + position:relative; + background:transparent; + border-color: #262626; +} + +.side-bar-scroll{ + padding:0px; + background:transparent; + border:0px; +} + +.sideBar{ + overflow:scroll; + height:650px; + overflow-x: hidden; +} + +.sideBar::-webkit-scrollbar-track +{ + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + border-radius: 10px; + background-color: #F5F5F5; +} + +.sideBar::-webkit-scrollbar +{ + width: 12px; + border-radius: 10px; + background-color: #F5F5F5; +} + +.sideBar::-webkit-scrollbar-thumb +{ + border-radius: 10px; + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); + background-color: #D62929; +} + +.well .side-metrics{ + font-size: 14px; +} +.well .faArrows{ + background:#ff5c33; + color:black; +} + +.well .side-date{ + color: white; + /*position: absolute;*/ + /*left: 80px;*/ + /*margin-left: 10px;*/ +} + +.well .side-name{ + color: #999966; + /*position: absolute;*/ + /*left: 210px;*/ + /*margin-left: 20px;*/ +} + +a>.side-name:hover{ + color: #b2c831; + /*position: absolute;*/ + /*left: 210px;*/ + /*margin-left: 20px;*/ +} + +.well .side-percent{ + color: #40bf80; + /*position: absolute;*/ + /*left: 390px;*/ +} + +.well .side-percent-red{ + color: #f00; +} + +#gprs{ + position: absolute; + top:5px; + clip: rect(0, 50px, 50px, 0); + top: -8px; + /* clip: shape(top, right, bottom, left); NB 'rect' is the only available option */ +} + +.well-next{ + padding:0px; + background:#262626; + border:0px; + position:relative; +} + +.vcenter { + display: inline-block; + vertical-align: middle; + float: none; +} + +/*side-bar end*/ + +/* led start */ +.led-red { + /*margin: 20px auto;*/ + margin-top: -26px; + margin-left: 180px; + width: 12px; + height: 12px; + background-color: #940; + border-radius: 50%; + box-shadow: #000 0 -1px 7px 1px, inset #600 0 -1px 9px, #F00 0 2px 12px; +} + +.led-yellow { + /*margin: 20px auto;*/ + /*margin-top: -26px; + margin-left: 180px;*/ + width: 12px; + height: 12px; + background-color: #A90; + border-radius: 50%; + box-shadow: #000 0 -1px 7px 1px, inset #660 0 -1px 9px, #DD0 0 2px 12px; +} + +.led-green { + /*margin: 20px auto;*/ + /*margin-top: -26px; + margin-left: 180px;*/ + width: 12px; + height: 12px; + background-color: #690; + border-radius: 50%; + box-shadow: #000 0 -1px 7px 1px, inset #460 0 -1px 9px, #7D0 0 2px 12px; +} +/* led end */ + +@media (max-width: 1200px) { + #sidebar-option { + height: auto; + display: block; + } +} + +@media (min-width: 1200px) { + #sidebar-option { + height: 180px; + display: flex; + align-items: center; + } +} + +.bark-link{ + cursor: pointer; + text-decoration: none; + color:white; +} + +.bark-link:hover{ + color:white; +} + +#side-bar-metrics{ + margin-top:20px; + overflow-y:auto; + overflow-x:hidden; + margin-left:0; + margin-right:0; + height:auto; +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/app/sidebar/sidebar.component.html ---------------------------------------------------------------------- diff --git a/ui/angular/src/app/sidebar/sidebar.component.html b/ui/angular/src/app/sidebar/sidebar.component.html new file mode 100644 index 0000000..deeb94f --- /dev/null +++ b/ui/angular/src/app/sidebar/sidebar.component.html @@ -0,0 +1,84 @@ +<!-- +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. +--> + +<div id="rightbar" (window:resize)="onResize($event)" class="" style="background-color:#262626;"> + <div id="side-bar-stats" class="row" style="border-bottom:5px solid #060606;margin-left:0;margin-right:0"> + <div class="col-xs-15 col-md-15 col-lg-6 " id="sidebar-option"> + <div> + <div class="sidebar-stat-center"> + <i class="fa fa-table" aria-hidden="true"></i> + <span><a class="bark-link" routerLink="/dataassets"> + DataAssets</a></span> + </div> + <div class="sidebar-stat-center"> + <i class="fa fa-line-chart" aria-hidden="true"></i> + <span><a class="bark-link" routerLink="/metrics" > + DQ Metrics</a></span> + </div> + </div> + </div> + <div class="col-xs-12 col-md-12 col-lg-6"> + <div id="data-asset-pie"></div> + </div> + </div> + <div id="side-bar-metrics" class="row"> + <div *ngFor="let outerItems of finalData;let parent=index"> + <div class="well"> + <div class="col-sm-4 col-lg-4 col-md-4 "> + <h4 > + <a routerLink="/metrics/{{outerItems.name}}"> {{outerItems.name}}</a> + </h4> + </div> + <div class="col-sm-3 col-lg-3 col-md-3 " style="display: flex;justify-content: center;height:46px;"> + <!-- <div [ngClass]="outerItems.dq >=90 ? 'led-green':'led-yellow'" style="align-self: center;"></div> --> + </div> + <!-- <div class="col-sm-5 col-lg-5 col-md-5 " style="display: flex;justify-content: center;height:46px;"><a style="align-self: center;" class="btn btn-primary" href="https://github.com/eBay/DQSolution/issues" target="_blank">Report issue</a></div> --> + </div> + <br/> + <div class="well side-bar-scroll"> + <div class="panel-group" *ngFor="let items of outerItems.metrics;let i=index;"> + <div class="panel panel-default" style="margin-right: 10px;"> + <div class="panel-heading" style="background:transparent;"> + <h4 class="panel-title side-metrics"> + <a style="cursor: pointer;" + (click)="draw(items,parent, i);" + > + <!-- <i class="faChevron" + [ngClass]="items.tag ? 'fa fa-caret-right':'fa fa-caret-down'" style="width:10px"></i> --> + <i class="fa fa-line-chart faArrows"></i> + <span class="side-date">{{items.timestamp | date:'short' }}</span> + + <span class="side-name" title="{{items.name}}">{{items.name }}</span> + <!-- <span ng-if="items.dq <= 100" class="pull-right" [ngClass]="items.dqfail?'side-percent-red':'side-percent'">{{items.dq}}%</span> --> + <!-- <span ng-if="items.dq > 100" class="pull-right" [ngClass]="items.dqfail?'side-percent-red':''">{{items.dq/1000}}K</span> --> + </a> + </h4> + </div> + <div id={{outerItems.name+i}} class="panel-collapse collapse" > + <div class="panel-body" style="cursor:pointer;padding:0px 15px;border-top-width: 0;"> + <div id="chart{{parent}}-{{i}}" class="side-chart" echarts [options]="getOption(parent,i)" + ></div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</div> http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/app/sidebar/sidebar.component.spec.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/app/sidebar/sidebar.component.spec.ts b/ui/angular/src/app/sidebar/sidebar.component.spec.ts new file mode 100644 index 0000000..528bab2 --- /dev/null +++ b/ui/angular/src/app/sidebar/sidebar.component.spec.ts @@ -0,0 +1,43 @@ +/* +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. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SidebarComponent } from './sidebar.component'; + +describe('SidebarComponent', () => { + let component: SidebarComponent; + let fixture: ComponentFixture<SidebarComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ SidebarComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SidebarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should be created', () => { + expect(component).toBeTruthy(); + }); +}); http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/app/sidebar/sidebar.component.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/app/sidebar/sidebar.component.ts b/ui/angular/src/app/sidebar/sidebar.component.ts new file mode 100644 index 0000000..b0c2211 --- /dev/null +++ b/ui/angular/src/app/sidebar/sidebar.component.ts @@ -0,0 +1,178 @@ +/* +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. +*/ +import { Component, OnInit } from '@angular/core'; +import {HttpClient} from '@angular/common/http'; +import {Router} from "@angular/router"; +import {ChartService} from '../service/chart.service'; +import {DatePipe} from '@angular/common'; +import {ServiceService} from '../service/service.service'; +// import {GetMetricService} from '../service/get-metric.service'; +import * as $ from 'jquery'; + +@Component({ + selector: 'app-sidebar', + templateUrl: './sidebar.component.html', + styleUrls: ['./sidebar.component.css'], + providers:[ChartService,ServiceService] +}) +export class SidebarComponent implements OnInit { + + constructor(private http: HttpClient, + private router:Router, + public servicecService:ServiceService, + public chartService:ChartService) { + } + + orgs = []; + finalData = []; + originalOrgs = []; + status:{ + 'health':number, + 'invalid':number + }; + metricData = []; + originalData :any; + metricName = []; + metricNameUnique = []; + myData = []; + chartOption = new Map(); + // var formatUtil = echarts.format; + + pageInit() { + // var allDataassets = this.servicecService.config.uri.dataassetlist; + var health_url = this.servicecService.config.uri.statistics; + this.http.get(health_url).subscribe(data => { + // this.status.health = data.healthyJobCount; + // this.status.invalid = data.jobCount - data.healthyJobCount; + // renderDataAssetPie(this.status); + this.sideBarList(null); + },err => {}); + } + + onResize(event){ + console.log('sidebar resize'); + if(window.innerWidth < 992) { + $('#rightbar').css('display', 'none'); + } else { + $('#rightbar').css('display', 'block'); + this.resizeSideChart(); + } + } + + resizeSideChart(){ + $('#side-bar-metrics').css({ + height: $('#mainContent').height()-$('#side-bar-stats').outerHeight()+70 + }); + for(let i=0;i<this.finalData.length;i++){ + for(let j=0;j<this.finalData[i].metrics.length;j++){ + if (!this.finalData[i].metrics[j].tag) { + this.draw(this.finalData[i].metrics[j], i, j); + } + } + } + } + + draw (metric, parentIndex, index) { + $('#'+this.finalData[parentIndex].name+index).toggleClass('collapse'); + var chartId = 'chart' + parentIndex + '-' + index; + document.getElementById(chartId).style.width = ($('.panel-heading').innerWidth()-40)+'px'; + document.getElementById(chartId).style.height = '200px'; + this.chartOption.set(chartId,this.chartService.getOptionSide(metric)); + var self = this; + $('#'+chartId).unbind('click'); + $('#'+chartId).click(function(e) { + self.router.navigate(['/detailed/'+self.finalData[parentIndex].metrics[index].name]) ; + }); + }; + + getOption(parent,i){ + return this.chartOption.get('chart'+parent+'-'+i); + } + + sideBarList(sysName){ + // this.finalData = this.getMetricService.renderData(); + var url_organization = this.servicecService.config.uri.organization; + this.http.get(url_organization).subscribe(data => { + let orgWithMeasure = data; + var orgNode = null; + for(let orgName in orgWithMeasure){ + orgNode = new Object(); + orgNode.name = orgName; + orgNode.measureMap = orgWithMeasure[orgName]; + this.orgs.push(orgNode); + } + this.originalOrgs = this.orgs; + let url_dashboard = this.servicecService.config.uri.dashboard; + this.http.post(url_dashboard, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).subscribe(data => { + // this.originalData = JSON.parse(JSON.stringify(data)); + this.originalData = data; + this.myData = JSON.parse(JSON.stringify(this.originalData.hits.hits)); + this.metricName = []; + for(var i = 0;i<this.myData.length;i++){ + this.metricName.push(this.myData[i]._source.name); + } + this.metricNameUnique = []; + for(let name of this.metricName){ + if(this.metricNameUnique.indexOf(name) === -1){ + this.metricData[this.metricNameUnique.length] = new Array(); + this.metricNameUnique.push(name); + } + }; + for(var i = 0;i<this.myData.length;i++){ + for(var j = 0 ;j<this.metricNameUnique.length;j++){ + if(this.myData[i]._source.name==this.metricNameUnique[j]){ + this.metricData[j].push(this.myData[i]); + } + } + } + for(let sys of this.originalOrgs){ + var node = null; + node = new Object(); + node.name = sys.name; + node.dq = 0; + node.metrics = new Array(); + for (let metric of this.metricData){ + if(sys.measureMap.indexOf(metric[metric.length-1]._source.name)!= -1){ + var metricNode = { + 'name':'', + 'timestamp':'', + 'dq':0, + 'details':[] + } + metricNode.name = metric[metric.length-1]._source.name; + metricNode.timestamp = metric[metric.length-1]._source.tmst; + metricNode.dq = metric[metric.length-1]._source.matched/metric[metric.length-1]._source.total*100; + metricNode.details = metric; + node.metrics.push(metricNode); + } + } + this.finalData.push(node); + } + console.log(this.finalData); + // return JSON.parse(JSON.stringify(this.finalData)); + return this.finalData; + }); + }); + } + + ngOnInit() { + this.sideBarList(null); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/.gitkeep ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/.gitkeep b/ui/angular/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/1.PNG ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/1.PNG b/ui/angular/src/assets/img/1.PNG new file mode 100644 index 0000000..e9a3063 Binary files /dev/null and b/ui/angular/src/assets/img/1.PNG differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/2.PNG ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/2.PNG b/ui/angular/src/assets/img/2.PNG new file mode 100644 index 0000000..af12dc4 Binary files /dev/null and b/ui/angular/src/assets/img/2.PNG differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/b3vHigh.jpg ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/b3vHigh.jpg b/ui/angular/src/assets/img/b3vHigh.jpg new file mode 100644 index 0000000..0d6949d Binary files /dev/null and b/ui/angular/src/assets/img/b3vHigh.jpg differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/bollinger.png ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/bollinger.png b/ui/angular/src/assets/img/bollinger.png new file mode 100644 index 0000000..efb1f49 Binary files /dev/null and b/ui/angular/src/assets/img/bollinger.png differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/construction.gif ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/construction.gif b/ui/angular/src/assets/img/construction.gif new file mode 100644 index 0000000..7d03450 Binary files /dev/null and b/ui/angular/src/assets/img/construction.gif differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/favicon.ico ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/favicon.ico b/ui/angular/src/assets/img/favicon.ico new file mode 100644 index 0000000..c5ccacf Binary files /dev/null and b/ui/angular/src/assets/img/favicon.ico differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/logo.gif ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/logo.gif b/ui/angular/src/assets/img/logo.gif new file mode 100644 index 0000000..bf26825 Binary files /dev/null and b/ui/angular/src/assets/img/logo.gif differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/logo.png ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/logo.png b/ui/angular/src/assets/img/logo.png new file mode 100644 index 0000000..ee1a9e6 Binary files /dev/null and b/ui/angular/src/assets/img/logo.png differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/mad.png ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/mad.png b/ui/angular/src/assets/img/mad.png new file mode 100644 index 0000000..aa85a76 Binary files /dev/null and b/ui/angular/src/assets/img/mad.png differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/sidebar1.png ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/sidebar1.png b/ui/angular/src/assets/img/sidebar1.png new file mode 100644 index 0000000..6a64412 Binary files /dev/null and b/ui/angular/src/assets/img/sidebar1.png differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/sidebar2.png ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/sidebar2.png b/ui/angular/src/assets/img/sidebar2.png new file mode 100644 index 0000000..425b863 Binary files /dev/null and b/ui/angular/src/assets/img/sidebar2.png differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/assets/img/yoy.png ---------------------------------------------------------------------- diff --git a/ui/angular/src/assets/img/yoy.png b/ui/angular/src/assets/img/yoy.png new file mode 100644 index 0000000..2f071ac Binary files /dev/null and b/ui/angular/src/assets/img/yoy.png differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/environments/environment.js ---------------------------------------------------------------------- diff --git a/ui/angular/src/environments/environment.js b/ui/angular/src/environments/environment.js new file mode 100644 index 0000000..d107811 --- /dev/null +++ b/ui/angular/src/environments/environment.js @@ -0,0 +1,27 @@ +/* +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. +*/ +"use strict"; +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. +exports.__esModule = true; +exports.environment = { + production: false +}; http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/environments/environment.prod.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/environments/environment.prod.ts b/ui/angular/src/environments/environment.prod.ts new file mode 100644 index 0000000..c14cbe9 --- /dev/null +++ b/ui/angular/src/environments/environment.prod.ts @@ -0,0 +1,21 @@ +/* +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. +*/ +export const environment = { + production: true +}; http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/environments/environment.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/environments/environment.ts b/ui/angular/src/environments/environment.ts new file mode 100644 index 0000000..0fd1aad --- /dev/null +++ b/ui/angular/src/environments/environment.ts @@ -0,0 +1,26 @@ +/* +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. +*/ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const environment = { + production: false +}; http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/favicon.ico ---------------------------------------------------------------------- diff --git a/ui/angular/src/favicon.ico b/ui/angular/src/favicon.ico new file mode 100644 index 0000000..c5ccacf Binary files /dev/null and b/ui/angular/src/favicon.ico differ http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/index.html ---------------------------------------------------------------------- diff --git a/ui/angular/src/index.html b/ui/angular/src/index.html new file mode 100644 index 0000000..0cd5c79 --- /dev/null +++ b/ui/angular/src/index.html @@ -0,0 +1,41 @@ +<!-- +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. +--> +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="description" content=""> + <meta name="author" content=""> + <link rel="icon" href="/favicon.ico"> + <title>Griffin - Data Quality Service</title> + <base href="/"> + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> + <![endif]--> +</head> +<body> + +<app-root></app-root> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/main.js ---------------------------------------------------------------------- diff --git a/ui/angular/src/main.js b/ui/angular/src/main.js new file mode 100644 index 0000000..7000f8e --- /dev/null +++ b/ui/angular/src/main.js @@ -0,0 +1,32 @@ +/* +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. +*/ +"use strict"; +exports.__esModule = true; +var core_1 = require("@angular/core"); +var platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic"); +var app_module_1 = require("./app/app.module"); +var environment_1 = require("./environments/environment"); +require("jquery"); +// import 'bootstrap'; +// import 'bootstrap/dist/css/bootstrap.css'; +require("bootstrap/dist/css/bootstrap.css"); +if (environment_1.environment.production) { + core_1.enableProdMode(); +} +platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule); http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/main.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/main.ts b/ui/angular/src/main.ts new file mode 100644 index 0000000..a1450f6 --- /dev/null +++ b/ui/angular/src/main.ts @@ -0,0 +1,35 @@ +/* +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. +*/ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; +import { RouterModule, Routes } from '@angular/router'; +import {HttpClientModule} from '@angular/common/http'; +import { Ng2SmartTableModule } from 'ng2-smart-table'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; + +import 'bootstrap/dist/css/bootstrap.css'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/polyfills.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/polyfills.ts b/ui/angular/src/polyfills.ts new file mode 100644 index 0000000..3ab322a --- /dev/null +++ b/ui/angular/src/polyfills.ts @@ -0,0 +1,90 @@ +/* +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. +*/ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** Evergreen browsers require these. **/ +import 'core-js/es6/reflect'; +import 'core-js/es7/reflect'; + + +/** + * Required to support Web Animations `@angular/animation`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + + +/*************************************************************************************************** + * Zone JS is required by Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +/** + * Date, currency, decimal and percent pipes. + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 + */ +// import 'intl'; // Run `npm install --save intl`. +/** + * Need to import at least one locale-data with intl. + */ +// import 'intl/locale-data/jsonp/en'; http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/styles.css ---------------------------------------------------------------------- diff --git a/ui/angular/src/styles.css b/ui/angular/src/styles.css new file mode 100644 index 0000000..6e85b67 --- /dev/null +++ b/ui/angular/src/styles.css @@ -0,0 +1,1134 @@ +/* You can add global styles to this file, and also import other style files */ +/* + 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. +*/ + +@import url('../node_modules/bootstrap/dist/css/bootstrap.css'); +@import url('../node_modules/font-awesome/css/font-awesome.css'); +@import "~@angular/material/prebuilt-themes/indigo-pink.css"; +@import url('../node_modules/angular2-toaster/toaster.css'); + + +/*@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css');*/ +/**********BASE CONFIGURATIONS**********/ +body { + background:#1f1f1f; + font-family: 'Open Sans', sans-serif; + height: 100%; +} + +html{ + height: 100%; +} + +h1 { +font-family: 'Raleway', sans-serif;} + +h3,h4 , h5 { + font-family: 'Open Sans', sans-serif; + font-weight:lighter; +} + +h2{ + font-size:22px; +} + +h3 { + font-size:46px; + color:#b2c831 +} + +h5 { + color:#b2c831; + margin-left:5px; +} + +/***********BLOCKS & WRAPS***********/ + +/*--- Dash Unit / Used in Dashboard page ---*/ +.dash-unit { + margin-bottom: 30px; + padding-bottom:10px; + border: 1px solid #383737; + /*background-image:url('../img/sep-half.png');*/ + background-color: #3d3d3d; + color:white; + height:290px; +} + +.dash-unit:hover { + background-color: #4f4f4f; + -moz-box-shadow: 3px 3px 2px 0px #151515; + -webkit-box-shadow: 3px 3px 2px 0px #151515; + box-shadow: 3px 3px 2px 0px #151515; + +} + +.dash-unit dtitle { + font-size:11px; + text-transform:uppercase; + color:#ffffff; + margin:8px; + padding:0px; + height:inherit + } + +.dash-unit hr { + border: 0; + border-top: 1px solid #151515; + border-top-style: dashed; + margin-top:3px; +} + +.dash-unit h1 { + font-family: 'Raleway', sans-serif; + font-weight:300; + font-size: 20px; + line-height: 2px; + letter-spacing: 0px; + color: #ffffff; + padding-top:10px; + padding-left:5px; + margin-top:2px; + text-align:center; +} + +.dash-unit h2 { + font-family: 'Open Sans', sans-serif; + font-weight: bold; + font-size: 30px; + line-height: 26px; + letter-spacing: 0px; + color: #ffffff; + padding-top:10px; + padding-left:5px; + margin-top:2px; + text-align:center; +} + + +.dash-unit h3 { + font-weight:300; + font-size: 15px; + line-height: 2px; + letter-spacing: 0px; + color: #b2c831; + padding-top:10px; + padding-left:5px; + margin-top:2px; + text-align:center; +} + + +.dash-unit p { + font-size: 14px; + font-weight: 200; + line-height: 16px; + color: inherit; + margin: 0 0 10px; + padding:5px; + } + +.dash-unit h4 { + padding-left:5px; + margin-top:2px; + font-size: 13px; + font-weight:lighter; + line-height: 1; + letter-spacing: 0px; + color: #fff; +} + +.dash-unit bold{ + font-family: 'Open Sans', sans-serif; + font-size:26px; + font-weight:bold; + color:#fff; + vertical-align:middle; +} + + +/**********Half-Unit / Used in index.html**********/ +.half-unit { + margin-bottom: 30px; + padding-bottom: 4px; + border: 1px solid #383737; + /*background-image:url('../img/sep-half.png');*/ + background-color: #3d3d3d; + color:white; + height:130px; +} + +.half-unit:hover { + background-color: #4f4f4f; + -moz-box-shadow: 3px 3px 2px 0px #151515; + -webkit-box-shadow: 3px 3px 2px 0px #151515; + box-shadow: 3px 3px 2px 0px #151515; + +} + +.half-unit dtitle { + font-size:10px; + text-transform:uppercase; + color:#ffffff; + margin:8px; + padding:0px; + height:inherit + } + +.half-unit hr { + border: 0; + border-top: 1px solid #151515; + border-top-style: dashed; + margin-top:3px; +} + +.half-unit h1 { + font-family: 'Raleway', sans-serif; + font-weight:300; + font-size: 20px; + line-height: 1; + letter-spacing: 0px; + color: #ffffff; + padding-top:10px; + padding-left:5px; + margin-top:2px; + text-align:center; +} + +.half-unit h4 { + padding-left:5px; + margin-top:2px; + font-size: 13px; + font-weight:lighter; + line-height: 1; + letter-spacing: 0px; + color: #fff; +} + + +.half-unit bold{ + font-family: 'Open Sans', sans-serif; + font-size:26px; + font-weight:bold; + color:#fff; + vertical-align:middle; +} + +/**********Styling Elements**********/ +.cont { + text-align:center; + margin-top:30px; +} + +.cont ok { + color:#b2c831; +} + +.cont bad { + color:#fa1d2d; +} + +.cont2 { + text-align:center; + margin-top:-15px; + font-size:12px; + line-height:7px; +} + +.cont2 bold{ + font-size:10px; + font-weight:bold; + color:#b2c831 +} + +.text p { + font-family: 'Open Sans', sans-serif; + margin-left:8px; + font-size:14px; + line-height:18px; +} + +.text grey { + font-size:11px; + color:silver +} + + +/***********Bootstrap Default Modifications***********/ + +.thumbnail { + border:0px; + text-align:center; + -webkit-box-shadow: 0px; + -moz-box-shadow: 0px; + box-shadow: 0px; + background: none; + text-align: center; + +} +.modal { + background: rgba(0,0,0,0.6); +} + +.modal-header { + /*background-image:url('../img/sep-half.png');*/ + background-color: #4f4f4f; + color:#fff; +} +.modal-body{ + background-color: #1f1f1f; +} +.modal-footer{ + background-color: #1f1f1f; + +} + +.btn-circle { + width: 60px; + height: 30px; + padding: 4px 8px; + font-size: 16px; + line-height: 1.33; + border-radius: 15px 15px 15px 15px; + + border-width:2px; + border-color:#2A9FD6; + cursor:pointer; +} + +.btn-circle:hover{ + /*background: #b2c831; + color:#000;*/ +} + +/*input[type=submit] { + font-family: 'Open Sans', sans-serif; + font-size: 15px; + background: #b2c831; + color: #fff; + border: none; + padding: 8px 28px 10px 26px; + *-webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +input[type=text], textarea { + background: #cdcbcc; + font-size: 13px; + display: block; + width: 100%; + border: none; + box-shadow: none; + height: 30px; + line-height: 18px; + padding: 0; + text-indent: 18px; + margin: 0 0 18px; +}*/ +textarea { + line-height: 18px; + padding: 18px; + width: 100%; + text-indent: 0; +} +.textarea-container { margin: 0 18px; } +.textarea-container textarea { margin-left: -18px; } +#contact textarea { width: 100%; height: 45px; } + + +.progress-bar { + background-color: #b2c831; +} + + + + +/***********LineIcons Styles***********/ + + +.info-user { + text-align:center; + font-size: 24px; + color: #b2c831; + } + +.fs1 { + padding:5px 5px 5px 5px; + position:relative; +} + +.fs1:hover { + position:relative; + color: #fff; + cursor:pointer +} + +.fs2 { + padding:5px 5px 5px 5px; + position:relative; + font-size:35px; + vertical-align: text-bottom +} + +/**********Clock Configuration**********/ + +digiclock { + font-size: 30px; + color: #fff; + text-align: center; + line-height: 60px; + margin-left: auto +} + +.clockcenter { + text-align:center; +} + + +/**********Mail Style Configuration**********/ + +.framemail { + cursor: default; +} +.framemail .window { + font-size: 0; + margin-top: -1px; + overflow: hidden; + margin-left: -18px; +} +.framemail .window .mail li { + background-color:#3d3d3d; + background-image: -webkit-linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,0%,.05)); + background-image: -moz-linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,0%,.05)); + background-image: -ms-linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,0%,.05)); + background-image: -o-linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,0%,.05)); + background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,0%,.05)); + border-top: 1px solid #888; + position: relative; + margin-left:-18px; +} +.framemail .window .mail li:first-child { + border-top: none; +} +.framemail .window .mail li:hover { + background-color: #5d5b5b; +} +.framemail .window .mail li:after, +.framemail .window .mail li:before { + border-left: 8px solid transparent; + border-top: 8px solid #df6; + content: ''; + height: 0; + position: absolute; + right: 0; + top: 0; + width: 0; +} +.framemail .window .mail li:before { + border-top-color: #bbb; + border-width: 9px; +} +.framemail .window .mail li:nth-child(1):after, +.framemail .window .mail li:nth-child(1):before { + border: none; +} +.framemail .window .mail li:nth-child(2):after { + border-top-color: #fa1d2d; +} +.framemail .window .mail li i { + display: inline-block; + height: 48px; + width: 6px; +} +.framemail .window .mail li .read { + background-color: #ddd; +} +.framemail .window .mail li .unread { + background: #b2c831; +} +.framemail .window .mail li img { + background: #819da2; + border-radius: 2px; + height: 36px; + left: 12px; + position: absolute; + top: 6px; + width: 36px; +} +.framemail .window .mail li p { + font: 13px/24px sans-serif; + left: 56px; + position: absolute; + top: 3px; +} +.framemail .window .mail li .sender { + color: #e9e8e8; + font-weight: bold; + text-shadow: 0 1px 1px hsla(0,0%,100%,.5); +} +.framemail .window .mail li .message { + color: #999; + overflow: hidden; + text-overflow: ellipsis; + top: 21px; + white-space: nowrap; +} +.framemail .window .mail li .message strong { + color: #999; +} +.framemail .window .mail li .actions { + height: 16px; + position: absolute; + right: 19px; + text-align: right; + top: 0; + width: 96px; +} +.framemail .window .mail li .actions img { + background: none; + display: inline-block; + height: 16px; + margin-left: 6px; + opacity: .1; + position: relative; + width: 16px; +} +.framemail .window .mail li:hover .actions img { + opacity: .25; +} +.framemail .window .mail li .actions img:hover { + opacity: .75; +} + + +/**********DONUT CHARTS STYLES**********/ +#load { + width: 11.313em; + height: 11.313em; + -moz-border-radius: 5px; + border-radius: 5px; + margin-bottom: 1.063em; + background-position: center center; + margin:auto; +} + +#space { + width: 11.313em; + height: 11.313em; + -moz-border-radius: 5px; + border-radius: 5px; + margin-bottom: 1.063em; + background-position: center center; + margin:auto; +} + + +/**********LINE AND BARS**********/ + +.section-graph { + position: relative; + height: 130px; + color: #fff; + background-image: linear-gradient(color-stops(#b2c831, #b2c831 50%, #b2c831 50%)); + margin-bottom:20px; +} +.section-graph .graph-info { + z-index: 99; + position: absolute; + font-weight: bold; + margin-top: 12px; + margin-left: 21px; + width: 100px; +} +.section-graph .graph-info .graph-arrow { + width: 0; + height: 0; + margin-top: 18px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid white; + float: left; +} +.section-graph .graph-info .graph-info-big { + font-size: 24px; + float: left; + margin-left: 3px; +} +.section-graph .graph-info .graph-info-small { + margin-left: 3px; + font-size: 12px; + font-weight: normal; + color: rgba(255, 255, 255, 0.5); + clear: left; + margin-left: 8px; +} +/* + * Info Section + */ +.info-aapl { + text-align: center; + +} +.info-aapl ul { + margin-left:30%; + +} +.info-aapl li { + margin: 0; + display: block; + width: 9px; + height: 40px; + margin-right: 6px; + background-color: #f5f0ec; + float:left; + position: relative; +} +.info-aapl li span { + display: block; + width: 9px; + height: 40px; + position: absolute; + bottom: 0; +} +.info-aapl li span.orange { + background-color: #fa1d2d; +} +.info-aapl li span.green { + background-color: #b2c831; +} + +/**********TWITTER WIDGET **********/ +#jstwitter ul li{ + color:#bdbdbd; + padding:.5em .75em; +} + +#jstwitter ul{ + margin-left:0; + list-style:none +} + +#jstwitter:first-child{ + border-top:0 +} + +ul#jstwitter li a{ + font-size:10px; + font-style:italic; + color:#666; + text-decoration:none +} + +/********** CUSTOMIZED BUTTON **********/ +.btnnew { + display: inline-block; + *border-left: 0 none #707070; + border-right: 0 none #707070; + border-top: 0 none #707070; + border-bottom: 0 none #707070; + display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #b2c831; + text-align: center; + vertical-align: middle; + cursor: pointer; + background-color: #5a5a5a; + *background-color: #5a5a5a; + background-repeat: repeat-x; + *-webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + background-image: linear-gradient(to bottom, #707070, #707070); +} + +/********** SWITCH BUTTON **********/ +.switch { + position: relative; + margin: 20px auto; + height: 26px; + width: 120px; + background: rgba(0, 0, 0, 0.25); + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1); +} + +.switch-label { + position: relative; + z-index: 2; + float: left; + width: 58px; + line-height: 26px; + font-size: 11px; + color: rgba(255, 255, 255, 0.35); + text-align: center; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45); + cursor: pointer; +} +.switch-label:active { + font-weight: bold; +} + +.switch-label-off { + padding-left: 2px; +} + +.switch-label-on { + padding-right: 2px; +} + +/* + * Note: using adjacent or general sibling selectors combined with + * pseudo classes doesn't work in Safari 5.0 and Chrome 12. + * See this article for more info and a potential fix: + * http://css-tricks.com/webkit-sibling-bug/ + */ +.switch-input { + display: none; +} +.switch-input:checked + .switch-label { + font-weight: bold; + color: rgba(0, 0, 0, 0.65); + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + -webkit-transition: 0.15s ease-out; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + transition: 0.15s ease-out; +} +.switch-input:checked + .switch-label-on ~ .switch-selection { + left: 60px; + /* Note: left: 50% doesn't transition in WebKit */ +} + +.switch-selection { + display: block; + position: absolute; + z-index: 1; + top: 2px; + left: 2px; + width: 58px; + height: 22px; + background: #b2c831; + border-radius: 3px; + background-image: -webkit-linear-gradient(top, #b6c753, #b2c831); + background-image: -moz-linear-gradient(top, #b6c753, #b2c831); + background-image: -o-linear-gradient(top, #b6c753, #b2c831); + background-image: linear-gradient(to bottom, #b6c753, #b2c831); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + -webkit-transition: left 0.15s ease-out; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; +} +.switch-blue .switch-selection { + background: #3aa2d0; + background-image: -webkit-linear-gradient(top, #4fc9ee, #3aa2d0); + background-image: -moz-linear-gradient(top, #4fc9ee, #3aa2d0); + background-image: -o-linear-gradient(top, #4fc9ee, #3aa2d0); + background-image: linear-gradient(to bottom, #4fc9ee, #3aa2d0); +} +.switch-yellow .switch-selection { + background: #fa1d2d; + background-image: -webkit-linear-gradient(top, #f93e4b, #fa1d2d); + background-image: -moz-linear-gradient(top, #f93e4b, #fa1d2d); + background-image: -o-linear-gradient(top, #f93e4b, #fa1d2d); + background-image: linear-gradient(to bottom, #f93e4b, #fa1d2d); +} + + +/**********Gauge Chart**********/ +#canvas { + display: block; + width: 150px; + margin: 30px auto; +} + +/**********Accordion Styling**********/ + +.accordion-group { + border: 1px solid #222; +} +.accordion-heading { + background-color: #5a5a5a; + *background-color: #5a5a5a; + background-repeat: repeat-x; + *-webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + background-image: linear-gradient(to bottom, #707070, #707070); +} + +/**********Link Styling**********/ +a { + color: #b2c831; + text-decoration: none; +} + +a:hover { + color: #dff948; + text-decoration: none; +} + +.bark-link { + color: #b2c831; + text-decoration: underline; +} + +.bark-link:hover { + color: #dff948; + text-decoration: none; +} + +/**navigation bar**/ +.docs-search{ + margin:10px 0; + border-radius:20px; + background:#626262; + vertical-align:middle; + padding:4px 0 4px 10px; +} + +.docs-search input{ + background:#626262; + border:0 +} + +.docs-search input:focus{ + outline:none; + color:#fff; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 14px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + background-color: #848484; + border: 1px solid #151515; + border-radius:14px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-search .search-query:disabled{ + background-color: #626262; + cursor: not-allowed; +} + +.navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.navbar-search .search-query:focus,.navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} + + + +/**********FooterWrap Section**********/ +@media (min-width: 992px) { + #footerwrap { + width: 75%; + } +} + +@media (max-width: 991px) { + #footerwrap { + width: 100% + } +} + +#footerwrap { + padding-left: 30px; + height: 90px; + background:#1f1f1f; + padding-top:10px; + padding-bottom: 10px; + border-top-style: solid; + border-top-width:8px; + border-top-color:#1d1d1d; + /*overflow-y:auto;*/ + z-index:200; + +} + +#footerwrap p { + color:white; + font-size:12px; + margin:0; +} + +/*#footerwrap>.container-fluid{ + position: absolute; + width: 100%; + height: 100%; + transform:translateY(100%); + animation: scrolling 2s linear infinite; +} + +@keyframes scrolling { + 0% { + transform: translateY(0%); + } + 100% { + transform: translateY(-100%); + } +}*/ + + +/***********FULLCALENDAR STYLE***********/ + +#external-events { + padding: 0 10px; + border: 1px solid #8b8b8a; + background-color: #8b8b8a; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + text-align: left; + } + +#external-events h4 { + font-size: 16px; + margin-top: 0; + padding-top: 1em; + } + +.external-event { /* try to mimick the look of a real event */ + margin: 10px 0; + padding: 2px 4px; + background: #b2c831; + color: #fff; + font-size: .85em; + cursor: pointer; + } + +#external-events p { + margin: 1.5em 0; + font-size: 11px; + color: #b2c831; + } + +#external-events p input { + margin: 0; + vertical-align: middle; + } + +#calendar { + width:100%; + } + +.symbol.required:before { + content: "*"; + display: inline; + color: #E6674A; +} + +.has-success .symbol:before { + content: "\f00c"; + display: inline; + font-family: FontAwesome; + color: #468847 +} + +.has-error .symbol:before { + content: "\f00d"; + display: inline; + font-family: FontAwesome; + color: #C82E29 +} + +.text-small { + font-size: 12px!important +} + +.has-error .error { + color: #a94442; +} + +/**********Media Styles**********/ + +@media (max-width: 360px){ +/*Calendar Adsjustments*/ +.fc-header {margin-top:15px;} +.fc-header-title h2{font-size:10px; } +.fc-header-right {display:none} +} +/* portrait tablet */ +@media (min-width: 767px) and (max-width: 768px) { + .info-aapl ul { + margin-left:10px; + float:left; +} + +#load { + margin-left:5px; + margin-right:10px; +} + +#space { + margin-left:5px; + margin-right:10px; +} + +} + +/* Landscape iphone 5 and samsung galaxy */ +@media (min-width: 560px) and (max-width: 685px) { + .info-aapl ul { + margin-left:40%; + } + +} + +@media (min-width: 1024px) { + .modal-xg { + width: 1024px; + } +} + +.form-control { + color: #000000; +} + +tbody { + word-break:break-all; +} + + +/*style of job*/ +.page{ + cursor: pointer; + float: left; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; + color: #fff; + text-decoration: underline; +} + +.page-active{ + background-color: #2a9fd6; + border-color: transparent; + cursor: default; +} + +.normal{ + background-color: #00C853; + border-radius: 5px; + padding:3px 4px; +} + +.unnormal{ + background-color: #EF5350; + border-radius: 5px; + padding:3px 4px; +} + +#timePopup{ + position: absolute; + z-index:1; + height:100px; + background-color:white; + /*width:80%;*/ + text-align: center; + border: 5px solid #c5c5c5; + border-radius: 3px; +} + +#hourSelector{ + width: 20%; + height: 100%; + display: inline-block; +} + +#minuteSelector{ + width:20%; + height:100%; + display: inline-block; + +} + + +#secondSelector{ + width:20%; + height:100%; + display: inline-block; + +} + +#pmam{ + width:30%; + height:100%; + display: inline-block; +} + +.division{ + display: inline-block; + width:10%; + height:100%; + position:relative; + top: -30px; +} + +.mask{ + width:100%; + height:100%; + position:fixed; + top:0; + left:0; + z-index:1; +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/test.html ---------------------------------------------------------------------- diff --git a/ui/angular/src/test.html b/ui/angular/src/test.html new file mode 100644 index 0000000..201b5c0 --- /dev/null +++ b/ui/angular/src/test.html @@ -0,0 +1,41 @@ +<!-- +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. +--> +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="description" content=""> + <meta name="author" content=""> + <link rel="icon" href="/favicon.ico"> + <title>Griffin - Data Quality Service</title> + <base href="/"> + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> + <![endif]--> +</head> +<body> +This is for test +</body> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/test.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/test.ts b/ui/angular/src/test.ts new file mode 100644 index 0000000..da41e46 --- /dev/null +++ b/ui/angular/src/test.ts @@ -0,0 +1,50 @@ +/* +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. +*/ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/long-stack-trace-zone'; +import 'zone.js/dist/proxy.js'; +import 'zone.js/dist/sync-test'; +import 'zone.js/dist/jasmine-patch'; +import 'zone.js/dist/async-test'; +import 'zone.js/dist/fake-async-test'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. +declare const __karma__: any; +declare const require: any; + +// Prevent Karma from running prematurely. +__karma__.loaded = function () {}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); +// Finally, start Karma to run the tests. +__karma__.start(); http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/tsconfig.app.json ---------------------------------------------------------------------- diff --git a/ui/angular/src/tsconfig.app.json b/ui/angular/src/tsconfig.app.json new file mode 100644 index 0000000..39ba8db --- /dev/null +++ b/ui/angular/src/tsconfig.app.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "baseUrl": "./", + "module": "es2015", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/tsconfig.spec.json ---------------------------------------------------------------------- diff --git a/ui/angular/src/tsconfig.spec.json b/ui/angular/src/tsconfig.spec.json new file mode 100644 index 0000000..63d89ff --- /dev/null +++ b/ui/angular/src/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "baseUrl": "./", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/typings.d.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/typings.d.ts b/ui/angular/src/typings.d.ts new file mode 100644 index 0000000..b0f9eed --- /dev/null +++ b/ui/angular/src/typings.d.ts @@ -0,0 +1,23 @@ +/* +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. +*/ +/* SystemJS module definition */ +declare var module: NodeModule; +interface NodeModule { + id: string; +} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/src/vendor.ts ---------------------------------------------------------------------- diff --git a/ui/angular/src/vendor.ts b/ui/angular/src/vendor.ts new file mode 100644 index 0000000..c777916 --- /dev/null +++ b/ui/angular/src/vendor.ts @@ -0,0 +1,33 @@ +/* +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. +*/ +import '@angular/platform-browser'; +import '@angular/platform-browser-dynamic'; +import '@angular/core'; +import '@angular/common'; +import '@angular/http'; +import '@angular/router'; + + + +// RxJS +import 'rxjs'; + +import 'jquery'; +import 'bootstrap/dist/js/bootstrap'; +import 'bootstrap-loader'; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/tsconfig.json ---------------------------------------------------------------------- diff --git a/ui/angular/tsconfig.json b/ui/angular/tsconfig.json new file mode 100644 index 0000000..a6c016b --- /dev/null +++ b/ui/angular/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] + } +} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/tslint.json ---------------------------------------------------------------------- diff --git a/ui/angular/tslint.json b/ui/angular/tslint.json new file mode 100644 index 0000000..0db5751 --- /dev/null +++ b/ui/angular/tslint.json @@ -0,0 +1,142 @@ +{ + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "typeof-compare": true, + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true, + "no-access-missing-member": true, + "templates-use-public": true, + "invoke-injectable": true + } +} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/angular/webpack.config.js ---------------------------------------------------------------------- diff --git a/ui/angular/webpack.config.js b/ui/angular/webpack.config.js new file mode 100644 index 0000000..ad230c1 --- /dev/null +++ b/ui/angular/webpack.config.js @@ -0,0 +1,82 @@ +/* +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. +*/ +var webpack = require('webpack'); +var HtmlWebpackPlugin = require('html-webpack-plugin'); +module.exports = { + + entry: { + 'app':'./src/main.ts', + 'vendor':'./src/vendor.ts', + 'polyfills':'./src/polyfills.ts' + }, + output: { + // path: '/dist', + filename: '[name].js' + }, + module: { + rules: [ + { + test: /\.ts$/, + loader: 'ts-loader' + }, + { + test: /\.html$/, + loader: 'html-loader' + }, + { + test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, + loader: 'file-loader?name=assets/[name].[hash].[ext]' + }, + { + test: /\.css$/, + loaders: 'style-loader!css-loader' + }, + { + test: /\.css$/, + loader: 'raw-loader' + } + ] + }, + + resolve: { + extensions: ['.js', '.ts'] + }, + plugins: [ + new webpack.optimize.CommonsChunkPlugin({ + name: ['app', 'vendor', 'polyfills','vendor.js'] + }), + + new HtmlWebpackPlugin({ + template: 'src/index.html' + }), + + new webpack.ProvidePlugin({ + $: 'jquery', + jQuery: 'jquery', + 'window.jQuery': 'jquery', + jquery :'jquery', + Popper: ['popper.js', 'default'], + // In case you imported plugins individually, you must also require them here: + Util: "exports-loader?Util!bootstrap/js/dist/util", + Dropdown: "exports-loader?Dropdown!bootstrap/js/dist/dropdown", + echarts: "echarts" + }) + ], + +}; http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/bower.json ---------------------------------------------------------------------- diff --git a/ui/bower.json b/ui/bower.json deleted file mode 100644 index 1b77945..0000000 --- a/ui/bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "griffin", - "version": "0.1.0", - "private": true, - "dependencies": { - "jquery": "2.1.4", - "jquery-ui":"1.12.1", - "bootswatch": "3.3.6", - "font-awesome": "4.7.0", - "angular": "1.6.4", - "angular-route": "1.6.4", - "angular-smart-table": "2.1.7", - "angular-cookies": "1.6.4", - "AngularJS-Toaster": "1.2.0", - "requirejs": "2.1.22", - "domReady": "2.0.1", - "angular-spinner": "0.8.0", - "echarts": "3.2.2", - "angular-animate": "1.6.4" - }, - "resolutions": { - "angular": "1.6.4" - } -} http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/42ee8863/ui/build.xml ---------------------------------------------------------------------- diff --git a/ui/build.xml b/ui/build.xml deleted file mode 100644 index 6e50575..0000000 --- a/ui/build.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -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. ---> - -<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> - <id>resources</id> - <formats> - <format>zip</format> - </formats> - <fileSets> - <fileSet> - <directory>${project.basedir}</directory><!-- - <includes> - - <include>apidocs/**</include> - <include>bower_components/**</include> - - <include>**/**</include> - </includes> - --> - <excludes> - <exclude>**/node_modules/**</exclude> - <exclude>**/tests/**</exclude> - <exclude>target/**</exclude> - <exclude>pom.xml</exclude> - <exclude>build.xml</exclude> - </excludes> - <useDefaultExcludes>true</useDefaultExcludes> - </fileSet> - - </fileSets> -</assembly> \ No newline at end of file
