Skip to content
Snippets Groups Projects
url-display.component.ts 1.41 KiB
Newer Older
  • Learn to ignore specific revisions
  • Tifenn Guillas's avatar
    Tifenn Guillas committed
    import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
    
    import { ToastrService } from 'ngx-toastr';
    
    François Agneray's avatar
    François Agneray committed
    
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
    import { Criterion, ConeSearch } from '../../store/model';
    
    import { getCriterionStr, getHost as host } from '../../../shared/utils';
    
    François Agneray's avatar
    François Agneray committed
    
    @Component({
    
        selector: 'app-result-url-display',
    
    François Agneray's avatar
    François Agneray committed
        templateUrl: 'url-display.component.html',
        changeDetection: ChangeDetectionStrategy.OnPush
    })
    
    export class UrlDisplaySectionComponent {
    
    François Agneray's avatar
    François Agneray committed
        @Input() datasetName: string;
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
        @Input() coneSearch: ConeSearch;
    
    François Agneray's avatar
    François Agneray committed
        @Input() criteriaList: Criterion[];
        @Input() outputList: number[];
    
    
        constructor(private toastr: ToastrService) { }
    
    
        getUrl(): string {
    
            let query: string = host() + '/search/' + this.datasetName + '?a=' + this.outputList.join(';');
    
            if (this.criteriaList.length > 0) {
    
    François Agneray's avatar
    François Agneray committed
                query += '&c=' + this.criteriaList.map(criterion => getCriterionStr(criterion)).join(';');
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
            if (this.coneSearch !== null) {
                query += '&cs=' + this.coneSearch.ra + ':' + this.coneSearch.dec + ':' + this.coneSearch.radius;
            }
    
            return query;
    
    François Agneray's avatar
    François Agneray committed
        }
    
    
        copyToClipboard(): void {
            const selBox = document.createElement('textarea');
            selBox.value = this.getUrl();
            document.body.appendChild(selBox);
            selBox.select();
            document.execCommand('copy');
            document.body.removeChild(selBox);
            this.toastr.success('Copied');
        }
    }