blob: 57dd94f783d723657572a743afeb3d6a291ba1ca [file] [log] [blame]
/**
* 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 {Router} from '@angular/router';
import {SaveSearchService} from '../../service/save-search.service';
import {SaveSearch} from '../../model/save-search';
import { DialogService } from 'app/service/dialog.service';
import { ConfirmationType } from 'app/model/confirmation-type';
import { FilteringMode } from '../alerts-list/query-builder';
@Component({
selector: 'app-save-search',
templateUrl: './save-search.component.html',
styleUrls: ['./save-search.component.scss']
})
export class SaveSearchComponent implements OnInit {
saveSearch = new SaveSearch();
constructor(private router: Router,
private saveSearchService: SaveSearchService,
private dialogService: DialogService) {
}
goBack() {
this.router.navigateByUrl('/alerts-list');
return false;
}
ngOnInit() {
}
save() {
const isManual = () => this.saveSearchService.queryBuilder.getFilteringMode() === FilteringMode.MANUAL;
this.saveSearch.searchRequest = this.saveSearchService.queryBuilder.searchRequest;
this.saveSearch.tableColumns = this.saveSearchService.tableColumns;
this.saveSearch.filters = this.saveSearchService.queryBuilder.filters;
this.saveSearch.searchRequest.query = isManual() ? this.saveSearchService.queryBuilder.query : '';
this.saveSearch.isManual = isManual()
this.saveSearchService.saveSearch(this.saveSearch).subscribe(() => {
this.goBack();
}, error => {
});
}
trySave() {
this.saveSearchService.listSavedSearches().subscribe((savedSearches: SaveSearch[]) => {
if (savedSearches && savedSearches.length > 0 && savedSearches.find(savedSearch => savedSearch.name === this.saveSearch.name)) {
this.update();
} else {
this.save();
}
});
}
update() {
let message = 'A Search with the name \'' + this.saveSearch.name + '\' already exist do you wish to override it?';
const confirmedSubscription = this.dialogService.launchDialog(message).subscribe(action => {
if (action === ConfirmationType.Confirmed) {
this.saveSearch.searchRequest = this.saveSearchService.queryBuilder.searchRequest;
this.saveSearchService.updateSearch(this.saveSearch).subscribe(() => { this.goBack(); }, error => {});
}
confirmedSubscription.unsubscribe();
});
}
}