http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/metron-table/metron-table.directive.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/metron-table/metron-table.directive.ts b/metron-interface/metron-alerts/src/app/shared/metron-table/metron-table.directive.ts new file mode 100644 index 0000000..b3ba181 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/metron-table/metron-table.directive.ts @@ -0,0 +1,120 @@ +/** + * 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. + */ +/* tslint:disable:directive-selector-name */ +import {Directive, Output, Input, EventEmitter, ElementRef, AfterViewInit} from '@angular/core'; +import {Sort} from '../../utils/enums'; + +export interface SortEvent { + sortBy: string; + type: string; + sortOrder: Sort; +} + +@Directive({ + selector: '[metron-config-table]' +}) + +export class MetronTableDirective implements AfterViewInit { + + @Output() onSort = new EventEmitter<SortEvent>(); + @Input() data: any[] = []; + @Input() cellSelectable = false; + rowhighlightColor = '#333333'; + highlightColor = '#0F4450'; + border = '1px solid #1B596C'; + + onSortColumnChange = new EventEmitter<SortEvent>(); + + constructor(private element: ElementRef) { } + + private getParentTR(parent: any) { + while (true) { + if (parent == null) { + return; + } + if (parent.nodeName === 'TR') { + return parent; + } + parent = parent.parentNode; + } + } + + mouseover($event) { + if ($event.target.nodeName === 'TH') { + return; + } + + if (this.cellSelectable && $event.target.nodeName === 'A') { + $event.target.style.backgroundColor = this.highlightColor; + $event.target.style.border = this.border; + + } else { + let parent = this.getParentTR($event.target); + parent.style.backgroundColor = this.rowhighlightColor; + } + } + + mouseleave($event) { + if ($event.target.nodeName === 'TH') { + return; + } + + if (this.cellSelectable && $event.target.nodeName === 'A') { + $event.target.style.border = ''; + $event.target.style.backgroundColor = ''; + } else { + let parent = this.getParentTR($event.target); + parent.style.backgroundColor = ''; + } + } + + ngAfterViewInit() { + this.element.nativeElement.querySelector('tbody').addEventListener('mouseover', this.mouseover.bind(this)); + this.element.nativeElement.querySelector('tbody').addEventListener('mouseout', this.mouseleave.bind(this)); + } + + + public setSort(sortEvent: SortEvent): void { + this.onSortColumnChange.emit(sortEvent); + if (this.onSort.observers.length === 0 ) { + this.sort(sortEvent); + } else { + this.onSort.emit(sortEvent); + } + } + + private sort($event) { + this.data.sort((obj1: any, obj2: any) => { + if ($event.sortOrder === Sort.ASC) { + if ($event.type === 'string') { + return obj1[$event.sortBy].localeCompare(obj2[$event.sortBy]); + } + if ($event.type === 'number') { + return obj1[$event.sortBy] - obj2[$event.sortBy]; + } + } + + if ($event.type === 'string') { + return obj2[$event.sortBy].localeCompare(obj1[$event.sortBy]); + } + if ($event.type === 'number') { + return obj2[$event.sortBy] - obj1[$event.sortBy]; + } + }); + } +}
http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.spec.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.spec.ts b/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.spec.ts new file mode 100644 index 0000000..5a89426 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.spec.ts @@ -0,0 +1,25 @@ +/** + * 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 { CenterEllipsesPipe } from './center-ellipses.pipe'; + +describe('CenterEllipsesPipe', () => { + it('create an instance', () => { + const pipe = new CenterEllipsesPipe(); + expect(pipe).toBeTruthy(); + }); +}); http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.ts b/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.ts new file mode 100644 index 0000000..bd220f4 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/pipes/center-ellipses.pipe.ts @@ -0,0 +1,45 @@ +/** + * 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 { Pipe, PipeTransform } from '@angular/core'; + +const limit = 72; + +@Pipe({ + name: 'centerEllipses' +}) +export class CenterEllipsesPipe implements PipeTransform { + private trail = '...'; + + + transform(value: any, length?: number): any { + let tLimit = length ? length : limit; + + if (!value) { + return ''; + } + + if (!length) { + return value; + } + + return value.length > tLimit + ? value.substring(0, tLimit / 2) + this.trail + value.substring(value.length - tLimit / 2, value.length) + : value; + } + +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.spec.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.spec.ts b/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.spec.ts new file mode 100644 index 0000000..4a4e0bf --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.spec.ts @@ -0,0 +1,25 @@ +/** + * 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 { ColumnNameTranslatePipe } from './column-name-translate.pipe'; + +describe('ColumnNameTranslatePipe', () => { + it('create an instance', () => { + const pipe = new ColumnNameTranslatePipe(); + expect(pipe).toBeTruthy(); + }); +}); http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.ts b/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.ts new file mode 100644 index 0000000..ab614ed --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/pipes/column-name-translate.pipe.ts @@ -0,0 +1,36 @@ +/** + * 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 { Pipe, PipeTransform } from '@angular/core'; +import {ColumnNamesService} from '../../service/column-names.service'; + +@Pipe({ + name: 'columnNameTranslate', + pure: false +}) +export class ColumnNameTranslatePipe implements PipeTransform { + + transform(value: any, args?: any): any { + if (!value) { + return ''; + } + + let displayValue = ColumnNamesService.columnNameToDisplayValueMap[value]; + + return displayValue ? displayValue : value; + } +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/shared.module.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/shared.module.ts b/metron-interface/metron-alerts/src/app/shared/shared.module.ts new file mode 100644 index 0000000..c2ad78f --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/shared.module.ts @@ -0,0 +1,51 @@ +/** + * 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 { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { AlertSeverityDirective } from './directives/alert-severity.directive'; +import { MetronTableDirective } from './metron-table/metron-table.directive'; +import { NavContentDirective } from './directives/nav-content.directive'; +import { CenterEllipsesPipe } from './pipes/center-ellipses.pipe'; +import { AlertSearchDirective } from './directives/alert-search.directive'; +import { ColumnNameTranslatePipe } from './pipes/column-name-translate.pipe'; + +@NgModule({ + imports: [ + CommonModule + ], + declarations: [ + AlertSeverityDirective, + MetronTableDirective, + NavContentDirective, + CenterEllipsesPipe, + AlertSearchDirective, + ColumnNameTranslatePipe + ], + exports: [ + CommonModule, + FormsModule, + AlertSeverityDirective, + MetronTableDirective, + NavContentDirective, + CenterEllipsesPipe, + AlertSearchDirective, + ColumnNameTranslatePipe + ] +}) +export class SharedModule { } http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/switch/switch.component.html ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/switch/switch.component.html b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.html new file mode 100644 index 0000000..794388f --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.html @@ -0,0 +1,20 @@ +<!-- + 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> + <label class="switch"> + <input type="checkbox" class="inputdemo"> + <div class="slider round"></div> + </label> + <label> {{ text }}</label> +</div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/switch/switch.component.scss ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/switch/switch.component.scss b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.scss new file mode 100644 index 0000000..db1df79 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.scss @@ -0,0 +1,91 @@ +/** + * 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 "../../../variables.scss"; + +label { + font-family: Roboto-Regular; +} + +.switch { + position: relative; + display: inline-block; + width: 35px; + height: 18px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + top: 6px; + + .inputdemo { + display: none; + } + + .round { + border-radius: 23px; + } + + .round:before { + border-radius: 50%; + } +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + -webkit-transition: .4s; + transition: .4s; + + &:before { + position: absolute; + content: ""; + height: 18px; + width: 18px; + left: 0px; + bottom: 0px; + -webkit-transition: .4s; + transition: .4s; + } +} + +.inputdemo + .slider { + background-color: $trout; +} + +.inputdemo + .slider:before { + background-color: $oslo-gray; + border: 2px solid $gray-chateau; +} + +.inputdemo:checked + .slider { + background-color: $matisse; +} + +.inputdemo:checked + .slider:before { + background-color: $eastern-blue-1; + border: 2px solid $downy +} + +.inputdemo:checked + .slider:before { + -webkit-transform: translateX(17px); + -ms-transform: translateX(17px); + transform: translateX(17px); +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/switch/switch.component.spec.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/switch/switch.component.spec.ts b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.spec.ts new file mode 100644 index 0000000..323013e --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.spec.ts @@ -0,0 +1,42 @@ +/** + * 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 { SwitchComponent } from './switch.component'; + +describe('SwitchComponent', () => { + let component: SwitchComponent; + let fixture: ComponentFixture<SwitchComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ SwitchComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SwitchComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/switch/switch.component.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/switch/switch.component.ts b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.ts new file mode 100644 index 0000000..deca9b5 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/switch/switch.component.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 { Component, OnInit, Input } from '@angular/core'; + +@Component({ + selector: 'app-switch', + templateUrl: './switch.component.html', + styleUrls: ['./switch.component.scss'] +}) +export class SwitchComponent implements OnInit { + @Input() text: string; + + constructor() { } + + ngOnInit() { + } + +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/shared/switch/switch.module.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/shared/switch/switch.module.ts b/metron-interface/metron-alerts/src/app/shared/switch/switch.module.ts new file mode 100644 index 0000000..f5011ad --- /dev/null +++ b/metron-interface/metron-alerts/src/app/shared/switch/switch.module.ts @@ -0,0 +1,30 @@ +/** + * 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 {NgModule} from '@angular/core'; + +import {SharedModule} from '../shared.module'; +import {SwitchComponent} from './switch.component'; + +@NgModule({ + imports: [SharedModule], + exports: [SwitchComponent], + declarations: [SwitchComponent], + providers: [], +}) +export class SwitchModule { +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/utils/constants.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/utils/constants.ts b/metron-interface/metron-alerts/src/app/utils/constants.ts new file mode 100644 index 0000000..da6d50c --- /dev/null +++ b/metron-interface/metron-alerts/src/app/utils/constants.ts @@ -0,0 +1,22 @@ +/** + * 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 NUM_SAVED_SEARCH = 10; +export const ALERTS_RECENT_SEARCH = 'metron-alerts-recent-saved-search'; +export const ALERTS_SAVED_SEARCH = 'metron-alerts-saved-search'; +export const ALERTS_TABLE_METADATA = 'metron-alerts-table-metadata'; +export const ALERTS_COLUMN_NAMES = 'metron-alerts-column-names'; http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/utils/elasticsearch-utils.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/utils/elasticsearch-utils.ts b/metron-interface/metron-alerts/src/app/utils/elasticsearch-utils.ts new file mode 100644 index 0000000..62b7464 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/utils/elasticsearch-utils.ts @@ -0,0 +1,74 @@ +/** + * 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 {ColumnMetadata} from '../model/column-metadata'; +import {AlertsSearchResponse} from '../model/alerts-search-response'; + +export class ElasticsearchUtils { + + public static excludeIndexName = ',-*kibana,-error*'; + + private static createColumMetaData(properties: any, columnMetadata: ColumnMetadata[], seen: string[]) { + try { + let columnNames = Object.keys(properties); + for (let columnName of columnNames) { + if (seen.indexOf(columnName) === -1) { + seen.push(columnName); + columnMetadata.push( + new ColumnMetadata(columnName, (properties[columnName].type ? properties[columnName].type : '')) + ); + } + } + } catch (e) {} + } + + public static extractColumnNameData(res: Response): ColumnMetadata[] { + let response: any = res || {}; + let columnMetadata: ColumnMetadata[] = []; + let seen: string[] = []; + + for (let index in response.metadata.indices) { + if (!index.endsWith(ElasticsearchUtils.excludeIndexName)) { + let mappings = response.metadata.indices[index].mappings; + for (let type of Object.keys(mappings)) { + ElasticsearchUtils.createColumMetaData(response.metadata.indices[index].mappings[type].properties, columnMetadata, seen); + } + } + } + + columnMetadata.push(new ColumnMetadata('_id', 'string')); + return columnMetadata; + } + + public static extractAlertsData(res: Response): AlertsSearchResponse { + let response: any = res || {}; + let alertsSearchResponse: AlertsSearchResponse = new AlertsSearchResponse(); + alertsSearchResponse.total = response['hits']['total']; + alertsSearchResponse.results = response['hits']['hits']; + return alertsSearchResponse; + } + + public static extractESErrorMessage(error: any): any { + let message = error.error.reason; + error.error.root_cause.map(cause => { + message += '\n' + cause.index + ': ' + cause.reason; + }); + + return message; + } + +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/utils/enums.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/utils/enums.ts b/metron-interface/metron-alerts/src/app/utils/enums.ts new file mode 100644 index 0000000..b89af94 --- /dev/null +++ b/metron-interface/metron-alerts/src/app/utils/enums.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 enum Sort { + ASC, + DSC +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/app/utils/httpUtil.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/app/utils/httpUtil.ts b/metron-interface/metron-alerts/src/app/utils/httpUtil.ts new file mode 100644 index 0000000..a93e66e --- /dev/null +++ b/metron-interface/metron-alerts/src/app/utils/httpUtil.ts @@ -0,0 +1,45 @@ +/** + * 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 {Response} from '@angular/http'; +import {Observable} from 'rxjs/Observable'; +import {RestError} from '../model/rest-error'; +export class HttpUtil { + + public static extractString(res: Response): string { + let text: string = res.text(); + return text || ''; + } + + public static extractData(res: Response): any { + let body = res.json(); + return body || {}; + } + + public static handleError(res: Response): Observable<RestError> { + // In a real world app, we might use a remote logging infrastructure + // We'd also dig deeper into the error to get a better message + let restError: RestError; + if (res.status !== 404) { + restError = res.json(); + } else { + restError = new RestError(); + restError.responseCode = 404; + } + return Observable.throw(restError); + } +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/.gitkeep ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/.gitkeep b/metron-interface/metron-alerts/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/.npmignore ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/.npmignore b/metron-interface/metron-alerts/src/assets/.npmignore new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/ace/LICENSE ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/ace/LICENSE b/metron-interface/metron-alerts/src/assets/ace/LICENSE new file mode 100644 index 0000000..4760be2 --- /dev/null +++ b/metron-interface/metron-alerts/src/assets/ace/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2010, Ajax.org B.V. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Ajax.org B.V. nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/ace/mode-lucene.js ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/ace/mode-lucene.js b/metron-interface/metron-alerts/src/assets/ace/mode-lucene.js new file mode 100644 index 0000000..36034dc --- /dev/null +++ b/metron-interface/metron-alerts/src/assets/ace/mode-lucene.js @@ -0,0 +1,69 @@ +ace.define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LuceneHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "constant.character.interro", + regex : "[\\?]" + }, { + token : "constant.character.asterisk", + regex : "[\\*]" + }, { + token: 'constant.character.proximity', + regex: '~[0-9]+\\b' + }, { + token : 'keyword.operator', + regex: '(?:AND|OR|NOT)\\b' + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "keyword", + regex : "[\\S]+:" + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "text", + regex : "\\s+" + }, { + defaultToken : "value" + } + ] + }; +}; + +oop.inherits(LuceneHighlightRules, TextHighlightRules); + +exports.LuceneHighlightRules = LuceneHighlightRules; +}); + +ace.define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lucene_highlight_rules"], function(require, exports, module) { +'use strict'; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LuceneHighlightRules = require("./lucene_highlight_rules").LuceneHighlightRules; + +var Mode = function() { + this.HighlightRules = LuceneHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; + +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/lucene"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/ace/theme-monokai.js ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/ace/theme-monokai.js b/metron-interface/metron-alerts/src/assets/ace/theme-monokai.js new file mode 100644 index 0000000..322c2fa --- /dev/null +++ b/metron-interface/metron-alerts/src/assets/ace/theme-monokai.js @@ -0,0 +1,105 @@ +ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-monokai"; +exports.cssText = ".ace-monokai .ace_gutter {\ +background: #2F3129;\ +color: #8F908A\ +}\ +.ace-monokai .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-monokai {\ +background-color: #272822;\ +color: #F8F8F2\ +}\ +.ace-monokai .ace_cursor {\ +color: #F8F8F0\ +}\ +.ace-monokai .ace_marker-layer .ace_selection {\ +background: #49483E\ +}\ +.ace-monokai.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #272822;\ +}\ +.ace-monokai .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-monokai .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E\ +}\ +.ace-monokai .ace_marker-layer .ace_active-line {\ +background: #202020\ +}\ +.ace-monokai .ace_gutter-active-line {\ +background-color: #272727\ +}\ +.ace-monokai .ace_marker-layer .ace_selected-word {\ +border: 1px solid #49483E\ +}\ +.ace-monokai .ace_invisible {\ +color: #52524d\ +}\ +.ace-monokai .ace_entity.ace_name.ace_tag,\ +.ace-monokai .ace_keyword,\ +.ace-monokai .ace_meta.ace_tag,\ +.ace-monokai .ace_storage {\ +color: #F92672\ +}\ +.ace-monokai .ace_punctuation,\ +.ace-monokai .ace_punctuation.ace_tag {\ +color: #fff\ +}\ +.ace-monokai .ace_constant.ace_character,\ +.ace-monokai .ace_constant.ace_language,\ +.ace-monokai .ace_constant.ace_numeric,\ +.ace-monokai .ace_constant.ace_other {\ +color: #AE81FF\ +}\ +.ace-monokai .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-monokai .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-monokai .ace_support.ace_constant,\ +.ace-monokai .ace_support.ace_function {\ +color: #66D9EF\ +}\ +.ace-monokai .ace_fold {\ +background-color: #A6E22E;\ +border-color: #F8F8F2\ +}\ +.ace-monokai .ace_storage.ace_type,\ +.ace-monokai .ace_support.ace_class,\ +.ace-monokai .ace_support.ace_type {\ +font-style: italic;\ +color: #66D9EF\ +}\ +.ace-monokai .ace_entity.ace_name.ace_function,\ +.ace-monokai .ace_entity.ace_other,\ +.ace-monokai .ace_entity.ace_other.ace_attribute-name,\ +.ace-monokai .ace_variable {\ +color: #A6E22E\ +}\ +.ace-monokai .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F\ +}\ +.ace-monokai .ace_string {\ +color: #E6DB74\ +}\ +.ace-monokai .ace_comment {\ +color: #75715E\ +}\ +.ace-monokai .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/LICENSE.txt ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/LICENSE.txt b/metron-interface/metron-alerts/src/assets/fonts/Roboto/LICENSE.txt new file mode 100755 index 0000000..d645695 --- /dev/null +++ b/metron-interface/metron-alerts/src/assets/fonts/Roboto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Black.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Black.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Black.ttf new file mode 100755 index 0000000..fbde625 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Black.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf new file mode 100755 index 0000000..60f7782 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Bold.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Bold.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Bold.ttf new file mode 100755 index 0000000..a355c27 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Bold.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf new file mode 100755 index 0000000..3c9a7a3 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Italic.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Italic.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Italic.ttf new file mode 100755 index 0000000..ff6046d Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Italic.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Light.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Light.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Light.ttf new file mode 100755 index 0000000..94c6bcc Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Light.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-LightItalic.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-LightItalic.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-LightItalic.ttf new file mode 100755 index 0000000..04cc002 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-LightItalic.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Medium.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Medium.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Medium.ttf new file mode 100755 index 0000000..39c63d7 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Medium.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf new file mode 100755 index 0000000..dc743f0 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Regular.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Regular.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Regular.ttf new file mode 100755 index 0000000..8c082c8 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Regular.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Thin.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Thin.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Thin.ttf new file mode 100755 index 0000000..d695550 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-Thin.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf new file mode 100755 index 0000000..07172ff Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/fonts/font.css ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/fonts/font.css b/metron-interface/metron-alerts/src/assets/fonts/font.css new file mode 100644 index 0000000..30b6f24 --- /dev/null +++ b/metron-interface/metron-alerts/src/assets/fonts/font.css @@ -0,0 +1,101 @@ +/** + * 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. + */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url("Roboto/Roboto-Thin.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url("Roboto/Roboto-Light.ttf"); +} + +@font-face { + font-family: 'Roboto-Regular'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url("Roboto/Roboto-Regular.ttf"); +} + +@font-face { + font-family: 'Roboto-Medium'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url("Roboto/Roboto-Medium.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url("Roboto/Roboto-Bold.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url("Roboto/Roboto-Black.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url("Roboto/Roboto-ThinItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url("Roboto/Roboto-LightItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: local('Roboto Italic'), local('Roboto-Italic'), url("Roboto/Roboto-Italic.ttf"); +} + +@font-face { + font-family: 'Roboto-MediumItalic'; + font-style: italic; + font-weight: 500; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url("Roboto/Roboto-MediumItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url("Roboto/Roboto-BoldItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url("Roboto/Roboto-BlackItalic.ttf"); +} + http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/images/login.jpg ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/images/login.jpg b/metron-interface/metron-alerts/src/assets/images/login.jpg new file mode 100644 index 0000000..a76a206 Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/images/login.jpg differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/assets/images/logo.png ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/assets/images/logo.png b/metron-interface/metron-alerts/src/assets/images/logo.png new file mode 100644 index 0000000..a0bc8cb Binary files /dev/null and b/metron-interface/metron-alerts/src/assets/images/logo.png differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/environments/environment.js ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/environments/environment.js b/metron-interface/metron-alerts/src/environments/environment.js new file mode 100644 index 0000000..acb2f54 --- /dev/null +++ b/metron-interface/metron-alerts/src/environments/environment.js @@ -0,0 +1,25 @@ +/** + * 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`. +"use strict"; +exports.environment = { + production: false +}; http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/environments/environment.prod.js ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/environments/environment.prod.js b/metron-interface/metron-alerts/src/environments/environment.prod.js new file mode 100644 index 0000000..abb15bb --- /dev/null +++ b/metron-interface/metron-alerts/src/environments/environment.prod.js @@ -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. + */ +"use strict"; +exports.environment = { + production: true +}; http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/environments/environment.prod.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/environments/environment.prod.ts b/metron-interface/metron-alerts/src/environments/environment.prod.ts new file mode 100644 index 0000000..53fca2d --- /dev/null +++ b/metron-interface/metron-alerts/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, + dataSource: 'elastic' +}; http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/environments/environment.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/environments/environment.ts b/metron-interface/metron-alerts/src/environments/environment.ts new file mode 100644 index 0000000..041db37 --- /dev/null +++ b/metron-interface/metron-alerts/src/environments/environment.ts @@ -0,0 +1,25 @@ +/** + * 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/metron/blob/7d554444/metron-interface/metron-alerts/src/favicon.ico ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/favicon.ico b/metron-interface/metron-alerts/src/favicon.ico new file mode 100644 index 0000000..a108a83 Binary files /dev/null and b/metron-interface/metron-alerts/src/favicon.ico differ http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/font.css ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/font.css b/metron-interface/metron-alerts/src/font.css new file mode 100644 index 0000000..a3a84b8 --- /dev/null +++ b/metron-interface/metron-alerts/src/font.css @@ -0,0 +1,101 @@ +/** + * 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. + */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url("assets/fonts/Roboto/Roboto-Thin.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url("assets/fonts/Roboto/Roboto-Light.ttf"); +} + +@font-face { + font-family: 'Roboto-Regular'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url("assets/fonts/Roboto/Roboto-Regular.ttf"); +} + +@font-face { + font-family: 'Roboto-Medium'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url("assets/fonts/Roboto/Roboto-Medium.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url("assets/fonts/Roboto/Roboto-Bold.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url("assets/fonts/Roboto/Roboto-Black.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url("assets/fonts/Roboto/Roboto-ThinItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url("assets/fonts/Roboto/Roboto-LightItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: local('Roboto Italic'), local('Roboto-Italic'), url("assets/fonts/Roboto/Roboto-Italic.ttf"); +} + +@font-face { + font-family: 'Roboto-MediumItalic'; + font-style: italic; + font-weight: 500; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url("assets/fonts/Roboto/Roboto-MediumItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url("assets/fonts/Roboto/Roboto-BoldItalic.ttf"); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url("assets/fonts/Roboto/Roboto-BlackItalic.ttf"); +} + http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/index.html ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/index.html b/metron-interface/metron-alerts/src/index.html new file mode 100644 index 0000000..7795faa --- /dev/null +++ b/metron-interface/metron-alerts/src/index.html @@ -0,0 +1,28 @@ +<!-- + 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> +<head> + <meta charset="utf-8"> + <title>Metron Alerts</title> + <base href="/"> + + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="icon" type="image/x-icon" href="favicon.ico"> + <link rel="stylesheet" type="text/css" href="assets/fonts/font.css"> +</head> +<body> + <metron-alerts-root>Loading...</metron-alerts-root> +</body> +</html> http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/main.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/main.ts b/metron-interface/metron-alerts/src/main.ts new file mode 100644 index 0000000..ef1d816 --- /dev/null +++ b/metron-interface/metron-alerts/src/main.ts @@ -0,0 +1,28 @@ +/** + * 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'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/metron-dialog.scss ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/metron-dialog.scss b/metron-interface/metron-alerts/src/metron-dialog.scss new file mode 100644 index 0000000..9b49e17 --- /dev/null +++ b/metron-interface/metron-alerts/src/metron-dialog.scss @@ -0,0 +1,56 @@ +/** + * 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. + */ +.metron-dialog.modal +{ + .modal-content + { + background-color: $mine-shaft-2; + border: solid 1px $tundora; + } + + .close + { + color: #BDBDBD; + text-shadow: 0 1px 0 $silver; + opacity: 1; + font-size: 28px; + } + + .modal-title + { + color: $silver; + font-size: 18px; + } + + .modal-body + { + color: $dusty-grey-1; + font-size: 14px; + } + + .modal-header + { + border-bottom: none; + } + + .modal-footer + { + text-align: left; + border-top: none; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/polyfills.ts ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/polyfills.ts b/metron-interface/metron-alerts/src/polyfills.ts new file mode 100644 index 0000000..400600c --- /dev/null +++ b/metron-interface/metron-alerts/src/polyfills.ts @@ -0,0 +1,68 @@ +/** + * 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/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following to support `@angular/animation`. */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + +/** Evergreen browsers require these. **/ +import 'core-js/es6/reflect'; +import 'core-js/es7/reflect'; + + +/** ALL Firefox browsers require the following to support `@angular/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`. http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/slider.scss ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/slider.scss b/metron-interface/metron-alerts/src/slider.scss new file mode 100644 index 0000000..5168db0 --- /dev/null +++ b/metron-interface/metron-alerts/src/slider.scss @@ -0,0 +1,139 @@ +/** + * 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 "_variables"; + +$edit-child-background: #2E2E2E; +$edit-background-border: #5C5C5C; + +$dialog-1x-width: 340px; +$dialog-2x-width: 680px; +$dialog-4x-width: 1380px; + +.metron-slider-pane-details +{ + display: inline-block; + float: right; + word-wrap: break-word; + height: auto; + min-height: 100%; + position: absolute; + + top: 0; + z-index: 9; + background: $edit-child-background; + border: 1px solid $edit-background-border; + + .close-button + { + font-size: 26px; + cursor: pointer; + } +} + +.metron-slider-pane-editable +{ + @extend .metron-slider-pane-details; + + height: auto; + background: $eden; + padding-bottom: 70px; + border-left: 1px solid $blue-mine; +} + +@media only screen and (min-width: 500px) { + .dialog1x { + width: $dialog-1x-width; + } + .dialog2x { + width: $dialog-2x-width; + } +} + +@media only screen and (min-width: 2020px) { + .dialog1x { + width: $dialog-2x-width; + } + .dialog2x { + width: $dialog-4x-width; + } +} + +@mixin keyframes($animation-name, $start, $end) { + @-webkit-keyframes #{$animation-name} { + 0% { + --webkit-transform: translateX(#{$start}); + } + 100% { + -webkit-transform: translateX(#{$end}); + } + } + @-moz-keyframes #{$animation-name} { + 0% { + -moz-transform: translateX(#{$start}); + } + 100% { + -moz-transform: translateX(#{$end}); + } + } + @-ms-keyframes #{$animation-name} { + 0% { + -ms-transform: translateX(#{$start}); + } + 100% { + -ms-transform: translateX(#{$end}); + } + } + @-o-keyframes #{$animation-name} { + 0% { + -o-transform: translateX(#{$start}); + } + 100% { + -o-transform: translateX(#{$end}); + } + } + @keyframes #{$animation-name} { + 0% { + transform: translateX(#{$start}); + } + 100% { + transform: translateX(#{$end}); + } + } +} + +@mixin animation($name, $duration, $function) +{ + -moz-animation: #{$name} #{$duration} #{$function}; + -webkit-animation: #{$name} #{$duration} #{$function}; + animation: #{$name} #{$duration} #{$function}; +} + +@include keyframes("keyframe-dialog-rtl", "320px", "0px") + +.load-right-to-left{ + @include animation("keyframe-dialog-rtl", "0.5s", "linear"); + + right: 0px; + float: right; +} + +@include keyframes("keyframe-dialog-ltr", "-320px", "0px") + +.load-left-to-right{ + @include animation("keyframe-dialog-ltr", "0.5s", "linear") +} http://git-wip-us.apache.org/repos/asf/metron/blob/7d554444/metron-interface/metron-alerts/src/styles.scss ---------------------------------------------------------------------- diff --git a/metron-interface/metron-alerts/src/styles.scss b/metron-interface/metron-alerts/src/styles.scss new file mode 100644 index 0000000..12ac9f7 --- /dev/null +++ b/metron-interface/metron-alerts/src/styles.scss @@ -0,0 +1,244 @@ +/** + * 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. + */ +/* You can add global styles to this file, and also import other style files */ +@import "vendor.scss"; +@import "_variables.scss"; +@import "slider.scss"; +@import "metron-dialog.scss"; + +body, +button { + font-family: Roboto-Regular; +} + +.mrow { + @extend .row; + @extend .mx-0; +} + +.input { + background: $input-background; + border: 1px solid $input-border-color; + color: $body-color; + border-radius: 2px; + + &:focus { + outline: none; + } + &::-webkit-input-placeholder { + @include place-holder-text; + } + &:-moz-placeholder { + @include place-holder-text; + } + + &::-moz-placeholder { + @include place-holder-text; + } + + &:-ms-input-placeholder { + @include place-holder-text; + } +} + +.table { + thead tr th { + font-size: 13px; + border-top: none; + } + tbody tr td { + font-size: 14px; + cursor: pointer; + } + tr:last-child td { + border-bottom: 1px solid $table-border-color; + } + td a { + border: 1px solid transparent; + } +} + +form +{ + label + { + font-family: Roboto-Medium; + font-size: 12px; + color: $dusty-grey; + margin: 0px 0px 2px 5px; + } + + input.form-control + { + background: $mine-shaft-1; + } +} + +.form-control, select +{ + border: solid 1px $tundora; + background-color: $mine-shaft; + font-family: Roboto; + font-size: 13px; + color: $silver; + height: 35px; + + &[readonly] + { + background: $tundora-1; + border: 1px solid $tundora; + } + + &:focus + { + background-color: $mine-shaft; + border-color: $tundora; + color: $silver; + } +} + +.fontawesome-checkbox +{ + display: none; +} + +.fontawesome-checkbox ~label +{ + margin: 0px; + display: inline-block; + height: 13px; + line-height: 13px; + border: 1px solid $tundora; + border-radius: 2px; +} + +.fontawesome-checkbox ~label:before { + font-family: "FontAwesome"; + font-style: normal; + font-size: 12px; + content: '\f0c8'; + color: $mine-shaft-2; +} + +.fontawesome-checkbox:checked ~ label:before { + content: '\f14a'; + color: $checkbox-checked-color; +} + +.text-color-curious-blue-13 { + color: $curious-blue; + font-size: 13px; +} + +.anchor { + cursor: pointer; +} + +.line-color-tundora { + display: block; + height: 1px; + border: 0; + border-top: 1px solid $tundora; + margin: 1em 0; + padding: 0; +} + +.readonly-bg { + background: $mine-shaft; +} + +.background-tiber { + background: $tiber +} +/* Navcontent Layout */ +.nav-content { + padding-right: 0px; + + .col-fixed-200 { + @extend .readonly-bg; + + top: 0px; + z-index: 1; + height: 100%; + width: 200px; + position: absolute; + padding: 15px; + + .title { + font-size: 14px; + color: $body-color; + } + .m-nav { + padding-left: 5px; + } + } + .col-offset-200{ + padding-left:215px; + z-index:0; + } +} + +/* Buttons */ + +.metron-floating-button-bar-1x { + @extend .pb-3; + @extend .dialog1x; + + bottom: 0; + position: fixed; + background: $eden; + border-top: 1px solid $blue-mine; +} + +.metron-floating-button-bar-2x { + @extend .pb-3; + @extend .dialog2x; + + bottom: 0; + position: fixed; + background: $eden; + border-top: 1px solid $blue-mine; +} + +.btn-all_ports { + background-color: $all-ports; + border-color: $all-ports; + color: white; + font-size: 14px; + min-width: 85px; + width: 85px; + cursor: pointer; + &:focus + { + outline: none; + } +} + +.btn-mine_shaft_2 { + background-color: $mine-shaft_2; + border-color: $blue-chill; + color: $piction-blue; + font-size: 14px; + min-width: 85px; + width: 85px; + cursor: pointer; + &:focus + { + outline: none; + } +} \ No newline at end of file