Base solution for your next web application

Activities of "OriAssurant"

Quick question regarding the closure of this issue- Did this change find its way back into one of the 8.x versions ASP.NET Zero? Thanks

Here' the html file

**heres' the html file for the returnsmanagement/returns page **

<div> <div class="kt-subheader kt-grid__item"> <div class="kt-subheader__main"> <h3 class="kt-subheader__title"> <span>{{l("Returns")}} - {{ storeDisplayName }} </span> </h3> </div> </div>

&lt;div class=&quot;kt-content&quot;&gt;
    &lt;div class=&quot;kt-portlet kt-portlet--mobile&quot;&gt;
        &lt;div class=&quot;kt-portlet__body&quot;&gt;

            &lt;form class=&quot;kt-form&quot; autocomplete=&quot;off&quot;&gt;
                &lt;div&gt;
                    &lt;div class=&quot;row align-items-center&quot;&gt;
                        &lt;div class=&quot;col-xl-12&quot;&gt;
                            &lt;div class=&quot;form-group m-form__group align-items-center&quot;&gt;
                                &lt;div class=&quot;input-group&quot;&gt;
                                    &lt;input [(ngModel)]=&quot;filterText&quot; name=&quot;filterText&quot; autoFocus
                                        class=&quot;form-control m-input&quot; [placeholder]=&quot;l(&#39;ReturnsPageSearchText&#39;)&quot;
                                        type=&quot;text&quot;&gt;
                                    &lt;span class=&quot;input-group-btn&quot;&gt;
                                        &lt;button (click)=&quot;getReturnsData()&quot; class=&quot;btn btn-primary&quot; type=&quot;submit&quot;&gt;&lt;i
                                                class=&quot;flaticon-search-1&quot;&gt;&lt;/i&gt;&lt;/button&gt;
                                    &lt;/span&gt;
                                &lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                    
                &lt;/div&gt;
            &lt;/form&gt;


            &lt;div class=&quot;row align-items-center&quot;&gt;
                &lt;!--&lt;Primeng-Datatable-Start&gt;-->
                &lt;div class=&quot;primeng-datatable-container col-12 table-bordered&quot;
                    [busyIf]=&quot;primengTableHelper.isLoading&quot;&gt;
                    &lt;p-table #dataTable (onLazyLoad)=&quot;getReturnsData($event)&quot; [value]=&quot;primengTableHelper.records&quot;
                        rows=&quot;25&quot; [lazy]=&quot;true&quot; [scrollable]=&quot;true&quot; ScrollWidth=&quot;100%&quot;
                        [responsive]=&quot;primengTableHelper.isResponsive&quot;
                        [resizableColumns]=&quot;primengTableHelper.resizableColumns&quot; expandableRows=&quot;true&quot;
                        dataKey=&quot;orderHeaderId&quot; rowExpandMode=&quot;single&quot;&gt;

                        &lt;ng-template pTemplate=&quot;header&quot;&gt;
                            &lt;tr&gt;
                                &lt;th style=&quot;width: 35px&quot;&gt;
                                &lt;/th&gt;
                                &lt;th *ngFor=&quot;let col of returnOrderCols&quot; [pSortableColumn]=&quot;col.field&quot;
                                    [hidden]=&quot;col.isVisible == &#39;0&#39;&quot;&gt;
                                    {{col.header}}
                                    &lt;p-sortIcon [field]=&quot;col.field&quot; ariaLabel=&quot;Activate to sort&quot;&gt;&lt;/p-sortIcon&gt;
                                &lt;/th&gt;
                                &lt;th style=&quot;width: 150px&quot; pSortableColumn=&quot;trackingNumber&quot;&gt;
                                    {{l('TrackingNumber')}}
                                    &lt;p-sortIcon field=&quot;trackingNumber&quot;&gt;&lt;/p-sortIcon&gt;
                                &lt;/th&gt;
                                
                                &lt;th&gt;
                                    {{l('Actions')}}
                                &lt;/th&gt;
                            &lt;/tr&gt;


                        &lt;/ng-template&gt;
                        &lt;ng-template pTemplate=&quot;body&quot; let-expanded=&quot;expanded&quot; let-record=&quot;$implicit&quot;&gt;
                            &lt;tr&gt;
                                &lt;td style=&quot;width: 35px&quot;&gt;
                                    &lt;a href=&quot;#&quot; [pRowToggler]=&quot;record&quot; (click)=&quot;getReturnOrderDetail(record)&quot;&gt;
                                        &lt;i [ngClass]=&quot;expanded ? &#39;pi pi-chevron-down&#39; : &#39;pi pi-chevron-right&#39;&quot;&gt;&lt;/i&gt;
                                    &lt;/a&gt;
                                &lt;/td&gt;
                                &lt;td style=&quot;width:10px&quot; hidden=&quot;true&quot;&gt;
                                    &lt;span class=&quot;ui-column-title&quot;&gt; {{orderHeaderId}} &lt;/span&gt;
                                    {{record.orderHeaderId}}
                                &lt;/td&gt;
                                &lt;td style=&quot;width:10px&quot; hidden=&quot;true&quot;&gt;
                                    &lt;span class=&quot;ui-column-title&quot;&gt; {{orderHeaderId}} &lt;/span&gt;
                                    {{record.orderHeaderId}}
                                &lt;/td&gt;
                                &lt;td *ngFor=&quot;let col of returnOrderCols&quot;&gt;
                                    {{col.field.includes('Time') || col.field.includes('Date') ?  (record[col.field] | momentFormat:'L LTS'):record[col.field]}}
                                &lt;/td&gt;
                                &lt;td style=&quot;width:135px&quot;&gt;
                                        &lt;span class=&quot;ui-column-title&quot;&gt; {{TrackingNumber}} &lt;/span&gt;
                                         {{record.trackingNumber}}
                                                                   
                                  &lt;/td&gt;cmd
                                &lt;td&gt;                                        
                                    &lt;button class=&quot;btn btn-sm btn-icon btn-success&quot; [attr.title]=&quot;l(&#39;ShippingLabel&#39;)&quot;&gt;
                                        &lt;i [class]=&quot;l(&#39;ShippingLabelIcon&#39;)&quot; [attr.aria-label]=&quot;l(&#39;ShippingLabel&#39;)&quot;&gt;&lt;/i&gt;
                                    &lt;/button&gt;
                                    &lt;button  *ngIf=&quot;canPackageSlipPrint&quot; class=&quot;btn btn-sm btn-icon btn-success ml-lg-4 ml-md-2&quot; [attr.title]=&quot;l(&#39;PackageSlip&#39;)&quot; (click)=&quot;reprintPackageSlip(record.orderNumber)&quot;&gt;
                                        &lt;i [class]=&quot;l(&#39;PackageSlipIcon&#39;)&quot; [attr.aria-label]=&quot;l(&#39;PackageSlip&#39;)&quot;&gt;&lt;/i&gt;
                                    &lt;/button&gt;
                                    &lt;!-- &lt;button class=&quot;btn btn-sm btn-icon btn-danger&quot; [attr.title]=&quot;l(&#39;ReturnDetail&#39;)&quot;
                                    (click)=&quot;getReturnOrderDetail(record)&quot;&gt;
                                        &lt;i class=&quot;fa fa-sticky-note&quot; [attr.aria-label]=&quot;l(&#39;ReturnDetail&#39;)&quot;&gt;&lt;/i&gt;
                                    &lt;/button&gt;-->
                                &lt;/td&gt;

                                &lt;td [hidden]=&quot;true&quot;&gt;
                                    &lt;div class=&quot;btn-group dropdown&quot; dropdown container=&quot;body&quot;&gt;
                                        &lt;button class=&quot;dropdown-toggle btn btn-sm btn-primary&quot; dropdownToggle&gt;
                                            &lt;i class=&quot;fa fa-print&quot;&gt;&lt;/i&gt;&lt;span class=&quot;caret&quot;&gt;&lt;/span&gt; {{l("Actions")}}
                                        &lt;/button&gt;

                                    &lt;/div&gt;
                                &lt;/td&gt;

                            &lt;/tr&gt;
                        &lt;/ng-template&gt;

                        &lt;ng-template pTemplate=&quot;rowexpansion&quot; let-expanded=&quot;expanded&quot; let-record=&quot;$implicit&quot;&gt;

                            &lt;div style=&quot;margin-left:50px;&quot;&gt;
                                &lt;p-table rowExpandMode=&quot;single&quot; [value]=&quot;detailResults&quot;&gt;
                                    &lt;ng-template pTemplate=&quot;header&quot;&gt;
                                        &lt;tr&gt;
                                            &lt;th style=&quot;width: 150px&quot; pSortableColumn=&quot;manufacturer&quot;&gt;
                                                {{l('Manufacturer')}}
                                                &lt;p-sortIcon field=&quot;manufacturer&quot;&gt;&lt;/p-sortIcon&gt;
                                            &lt;/th&gt;
                                            &lt;th style=&quot;width: 250px&quot; pSortableColumn=&quot;model&quot;&gt;
                                                {{l('Model')}}
                                                &lt;p-sortIcon field=&quot;model&quot;&gt;&lt;/p-sortIcon&gt;
                                            &lt;/th&gt;
                                            &lt;th style=&quot;width: 150px&quot; pSortableColumn=&quot;serialNumber&quot;&gt;
                                                {{l('SerialNumber')}}
                                                &lt;p-sortIcon field=&quot;serialNumber&quot;&gt;&lt;/p-sortIcon&gt;
                                            &lt;/th&gt;
                                            &lt;th style=&quot;width: 150px&quot; pSortableColumn=&quot;status&quot;&gt;
                                                {{l('Status')}}
                                                &lt;p-sortIcon field=&quot;status&quot;&gt;&lt;/p-sortIcon&gt;
                                            &lt;/th&gt;
                                            &lt;th style=&quot;width: 150px&quot; pSortableColumn=&quot;returnType&quot;&gt;
                                                {{l('ReturnType')}}
                                                &lt;p-sortIcon field=&quot;returnType&quot;&gt;&lt;/p-sortIcon&gt;
                                            &lt;/th&gt;
                                        &lt;/tr&gt;
                                    &lt;/ng-template&gt;
                                    &lt;ng-template pTemplate=&quot;body&quot; let-record&gt;
                                        &lt;tr&gt;
                                            &lt;td style=&quot;width:150px&quot;&gt;
                                                &lt;span class=&quot;ui-column-title&quot;&gt; {{l('Manufacturer')}}&lt;/span&gt;
                                                {{record.manufacturer}}
                                            &lt;/td&gt;

                                            &lt;td style=&quot;width:250px&quot;&gt;
                                                &lt;span class=&quot;ui-column-title&quot;&gt; {{l('Model')}}&lt;/span&gt;
                                                {{record.model}}
                                            &lt;/td&gt;

                                            &lt;td style=&quot;width:150px&quot;&gt;
                                                &lt;span class=&quot;ui-column-title&quot;&gt; {{l('SerialNumber')}}&lt;/span&gt;
                                                {{record.serialNumber}}
                                            &lt;/td&gt;
                                            &lt;td style=&quot;width:150px&quot;&gt;
                                                &lt;span class=&quot;ui-column-title&quot;&gt; {{l('Status')}}&lt;/span&gt;
                                                {{record.status}}
                                            &lt;/td&gt;
                                            &lt;td style=&quot;width:150px&quot;&gt;
                                                &lt;span class=&quot;ui-column-title&quot;&gt; {{l('ReturnType')}}&lt;/span&gt;
                                                {{record.returnType}}
                                            &lt;/td&gt;

                                        &lt;/tr&gt;
                                    &lt;/ng-template&gt;
                                &lt;/p-table&gt;
                            &lt;/div&gt;

                        &lt;/ng-template&gt;



                    &lt;/p-table&gt;
                    &lt;div class=&quot;primeng-no-data&quot; *ngIf=&quot;primengTableHelper.totalRecordsCount == 0&quot;&gt;
                        {{l('NoData')}}
                    &lt;/div&gt;
                    &lt;div class=&quot;primeng-paging-container&quot;&gt;
                        &lt;p-paginator [rows]=&quot;primengTableHelper.defaultRecordsCountPerPage&quot; #paginator
                            (onPageChange)=&quot;getReturnsData($event)&quot;
                            [totalRecords]=&quot;primengTableHelper.totalRecordsCount&quot;
                            [rowsPerPageOptions]=&quot;primengTableHelper.predefinedRecordsCountPerPage&quot;&gt;
                        &lt;/p-paginator&gt;
                        &lt;span class=&quot;total-records-count&quot;&gt;
                            {{l('TotalRecordsCount', primengTableHelper.totalRecordsCount)}}
                        &lt;/span&gt;
                    &lt;/div&gt;

                &lt;/div&gt;
                &lt;!--&lt;Primeng-Datatable-End&gt;-->

            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
 &lt;printLabelModal #shippinglabel filename=&quot;{{fileName}}&quot;&gt;&lt;/printLabelModal&gt;
&lt;div [busyIf]=&quot;scanIsLoading&quot; *ngIf=&quot;!!scanIsLoading&quot;&gt;&lt;/div&gt;

</div>

**Here's the .ts file **

import { Component, OnInit, Injector, ViewEncapsulation, ViewChild, Input, ElementRef, ChangeDetectorRef, AfterViewInit } from '@angular/core'; import { ShipOutCartStatusUpdateInput, PagedResultDtoOfCosmosDBTransactionEntity, ReturnOrderServiceProxy, ReturnItems, OrderHeaderDto, GetOrderHeaderForViewDto, GetReturnsForViewDto } from '@shared/service-proxies/service-proxies'; import { CreateOrEditShipOutCartDto, CreateReturnOrderInput, CreateReturnOrderDto } from '@shared/service-proxies/service-proxies'; import { ActivatedRoute, Router } from '@angular/router'; import { appModuleAnimation } from '@shared/animations/routerTransition'; import { Table } from 'primeng/components/table/table'; import { Paginator } from 'primeng/components/paginator/paginator'; import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'; import { FileDownloadService } from '@shared/utils/file-download.service'; import { AppSessionService } from '@shared/common/session/app-session.service'; import * as jsPDF from 'jspdf'; import { ShipmentsServiceProxy, ShipmentCustomerLookupTableDto } from '@shared/service-proxies/service-proxies'; import Swal from 'sweetalert2'; import * as _ from 'lodash'; import * as moment from 'moment'; import { AppComponentBase } from '@shared/common/app-component-base'; import { OrganizationUnitsComboboxService } from '@app/main/header/organization-units-combobox/organization-units-combobox.service'; import { formatDate } from '@angular/common'; import { PrintLabelModalComponent } from '../../shared/printLabel/printLabel-modal.component'; import { DisplayMessageComponent } from '@app/main/shared/displayMessage/displayMessage.component'; import { isNullOrUndefined } from 'util';

@Component({ templateUrl: './returns.component.html', encapsulation: ViewEncapsulation.None, styleUrls: ['./returns.component.css'] }) export class ReturnsComponent extends AppComponentBase implements OnInit { @ViewChild('dataTable', { static: true }) dataTable: Table; @ViewChild('paginator', { static: true }) paginator: Paginator; @ViewChild('shippinglabel', { static: false }) printLabelModal: PrintLabelModalComponent; @ViewChild('displayMessage', { static: true }) displayMessage: DisplayMessageComponent; storeDisplayName: string; isValid = true; scanIsLoading = false; refreshGrid = false; advancedFiltersAreShown = false; filterText = ''; orderNumberFilter = ''; referenceNumberFilter = ''; commentFilter = ''; isDeletedFilter = -1; maxCreationTimeFilter: moment.Moment; minCreationTimeFilter: moment.Moment; maxModificationTimeFilter: moment.Moment; minModificationTimeFilter: moment.Moment; organizationUnitDisplayNameFilter = ''; orderStatusNameFilter = ''; userNameFilter = ''; orderTypeCodeFilter = ''; trackingNumberFilter = ''; shipmentTrackingNumberFilter = ''; //start dynamic columns - will come from backend shipOutCols: any[]; returnOrderCols: any[]; detailResults: any; returnorderId = ''; orderNumber: string; fileName = ''; shippingResults: any; labelImage: string; lithiumImage: string; labelType: string; trackingNumber: string; carrierName: string; labelIsLoading: boolean; returnOrderRma: string; returnOrderDetail: any; organizationUnitId: number; canPackageSlipPrint = JSON.parse(abp.features.getValue('App.IncludePackageSlipInReturnOrder'));

constructor( injector: Injector, private _appSessionService: AppSessionService, private _fileDownloadService: FileDownloadService, private _shipmentsServiceProxy: ShipmentsServiceProxy, private _organizationUnitsComboboxService: OrganizationUnitsComboboxService, private _returnOrderService: ReturnOrderServiceProxy, private router: Router, private activatedRoute: ActivatedRoute ) { super(injector); }

nextFrame(): void { if (this._organizationUnitsComboboxService === undefined || this._organizationUnitsComboboxService.selectedOrganizationUnit === undefined) { abp.notify.info(this.l('LoadReturninformation')); setTimeout(() => this.nextFrame(), 1000); } else { this.storeDisplayName = this._organizationUnitsComboboxService.selectedOrganizationUnit.displayName; this.organizationUnitId = this._organizationUnitsComboboxService.selectedOrganizationUnit.id; this.initialize(); this._organizationUnitsComboboxService.events$.forEach(event => { this.storeDisplayName = event.displayName; this.organizationUnitId = event.id; this.getReturnsData(); }); } }

ngOnInit(): void { this.nextFrame(); }

initialize() { this._returnOrderService .getReturnOrdersGridColumnsByTenant() .subscribe((data: any) => { this.returnOrderCols = JSON.parse(JSON.stringify(data)); }); }

// initial loading of return orders data getReturnsData(event?: LazyLoadEvent) { if (this.primengTableHelper.shouldResetPaging(event)) { this.paginator.changePage(0); return; }

this.primengTableHelper.showLoadingIndicator();
this._returnOrderService.getAllReturnOrders(
  this.filterText,
  this.orderNumberFilter,
  this.referenceNumberFilter,
  this.orderStatusNameFilter,
  this.userNameFilter,
  this.trackingNumberFilter,
  this.shipmentTrackingNumberFilter,
  this.organizationUnitId,
  this.primengTableHelper.getSorting(this.dataTable),
  this.primengTableHelper.getSkipCount(this.paginator, event),
  this.primengTableHelper.getMaxResultCount(this.paginator, event)
).subscribe(result => {
  this.primengTableHelper.totalRecordsCount = result.totalCount;
  this.primengTableHelper.records = result.items;
  this.primengTableHelper.hideLoadingIndicator();
},
  err => { this.primengTableHelper.hideLoadingIndicator(); }
);

}

getReturnOrderDetail(getReturns: GetReturnsForViewDto): void { this.primengTableHelper.showLoadingIndicator(); this.detailResults = []; this._returnOrderService.getReturnOrderDetails(getReturns.orderHeaderId) .subscribe(result => { this.detailResults = result; this.primengTableHelper.hideLoadingIndicator(); }, err => { this.primengTableHelper.hideLoadingIndicator(); } ); }

showPopup(warningMsg: string) { const swalWithCustomLogic = Swal.mixin({ onOpen: () => { document.body.className = document.body.className.replace("swal2-toast-shown swal2-shown", ''); }, onClose: () => { document.body.className = document.body.className + " swal2-toast-shown swal2-shown"; } });

swalWithCustomLogic.fire({
  text: warningMsg,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'OK',
  allowOutsideClick: false
}).then((result) => {
  if (result.value) {
  }
});

}

}

How to get the information stored in these caches given below ? we dont use redis. Is there an api which is exposed where i need to pass in a parameter ?

these are the most important caches:

Assurant.Majestic.AlpConfiguration.ALPConfigurationCache AbpApplicationSettingsCache AbpUserSettingsCache AbpZeroTenantFeatures AbpTenantSettingsCache OrgUnit Caches OrganizationUnitInformation Language Caches AbpZeroMultiTenantLocalizationDictionaryCache

any updates please ? we have this issue in our production

Hi abp zero folks,

We are having this issue where the dateformat works fine in our local machine where the code is. But when its deployed to Azure it does not work. We have this code in the angular client side in AppPreBootstrap.ts file as suggested by one of the support folks. We want to get date displayed in canada format when the browser settings are set to canada(English language)

let locale = window.navigator.language; moment.locale(locale); (window as any).moment.locale(locale);

When we debug in azure it shows the correct browser language set . But the dateformat in the grid does not change to the language set in the browser. so kind of when we run window.navigator.language in console for the app deployed in azure it shows the correct language. We have set this in the grid. momentFormat:'L LTS'

Can you please help ?

I am sending you our local credentials for the app
Username : user123456 Password : Qwerty123$

Here's the url for the application : https://demoqa.assurantlogistics.com/

Here's the page you can directly go to this url if the page does not show up when you login ... https://demoqa.assurantlogistics.com/app/main/returnManagement/returns

-- We are talking about the creation Date column in the returns page grid which needs to be shown according to the user browser language format

Here are the Print modal pop up ts and HTML files . Also attaching the TS and HTML PAge from where the Print label modal is called : -- Here is the Print Label modal TS file below

import { Component, OnInit, ViewChild, Injector, Input } from '@angular/core';
import { ModalDirective } from 'ngx-bootstrap';
import { AppComponentBase } from '@shared/common/app-component-base';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
import { HttpClient } from '@angular/common/http';
import { AppConsts } from '@shared/AppConsts';

@Component({
  selector: 'printLabelModal',
  templateUrl: './printLabel-modal.component.html',
  styleUrls: ['./printLabel-modal.component.css']
})
export class PrintLabelModalComponent extends AppComponentBase implements OnInit {
  @Input('filename') filename: string;
  @ViewChild('createOrEditModal', { static: false }) modal: ModalDirective;

  safeUrl: SafeResourceUrl;
  uploadUrl: string;
  getUrl: string;
  openPdfInNewTab: boolean = false;
  pdfUrl: string;

  constructor(
    injector: Injector,
    private sanitizer: DomSanitizer,
    private _httpClient: HttpClient
  ) {
    super(injector);
    this.uploadUrl = AppConsts.remoteServiceBaseUrl + '/api/Orders/UploadFileToBlobStorage';
    this.getUrl = AppConsts.remoteServiceBaseUrl + '/api/Orders/GetFileFromBlobStorage/';
    let isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

    if (navigator.userAgent.match(/Android|webOS|iPhone|iPod|iPad|Blackberry/i) || isSafari) {
      this.openPdfInNewTab = true;
    }
  }

  ngOnInit() {
  }

  show(pdf: any) {
    let labelData = pdf.output('bloburl');
    this.labelURL(labelData);
    this.viewPdf();
  }

  labelURL(label: any) {
    setTimeout(() => {
      this.pdfUrl = label;
      this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(label);
    }, 0);
  }

  showPdf(pdf: string) {
    this.labelURL(pdf);
    this.viewPdf();
  }

  close(): void {
    this.modal.hide();
  }

  viewPdf() {
    setTimeout(() => {
      if (this.pdfUrl !== null && this.pdfUrl !== undefined && this.openPdfInNewTab) {
        window.open().location.href = this.pdfUrl;
      }
      else {
        this.modal.show();
      }
    }, 0);
  }

  uploadPdf(pdf: any, fileName: string): void {
    let blob = pdf.output('blob');
    let formData = new FormData();

    formData.append('pdf', blob, fileName);
    this._httpClient
      .post<any>(this.uploadUrl, formData)
      .subscribe();
  }

  getPdf(containerName: string, fileName: string) {
    this._httpClient
      .get(this.getUrl + containerName + '/' + fileName, { responseType: 'blob' })
      .subscribe(res => {
        let file = new Blob([res], { type: res.type });
        let url = window.URL.createObjectURL(file);
        this.labelURL(url);
        this.viewPdf();
      });
  }
}

---- HTML FILE FOR PRINT MODAL POP UP

<div bsModal #createOrEditModal="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="createOrEditModal" [config]="{backdrop: 'static', keyboard: false}">
  <div class="modal-dialog modal-dialog-centered">
    <div class="modal-content">
      <div class="embed-responsive embed-responsive-1by1">
        <iframe class="embed-responsive-item" type="application/pdf" [src]='this.safeUrl' id="labelFrame" framemargin="0"
          class="frame" width="100%">
        </iframe>
      </div>
      <div class="text-center">
        <button type="button" class="btn btn-primary blue m-2" (click)="close()">{{l("Close")}}</button>
      </div>
    </div>
  </div>
</div>

---- THE PRINT LABEL MODAL IS BEING CALLED FROM THIS PAGE :

<div [@routerTransition]>
    <div class="kt-subheader kt-grid__item">
        <div class="kt-subheader__main">
            <h3 class="kt-subheader__title">
                <span>{{l("Vouchers")}} - {{ storeDisplayName }} </span>
            </h3>

              <button (click)="openReceipt(record.offerNumber)" class="btn btn-primary" type="submit"><i class="flaticon-search-1"></i></button>
        </div>
    </div>
    
    <printLabelModal #printLabelModal filename="{{fileName}}"></printLabelModal>
    <div [busyIf]="voucherIsLoading" *ngIf="voucherIsLoading"></div>
</div>

--- HERE 's the TS FILE FOR THAT

import { Component, OnInit, Injector, ViewEncapsulation, ViewChild, Input, ElementRef, ChangeDetectorRef, AfterViewInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Table } from 'primeng/components/table/table';
import { Paginator } from 'primeng/components/paginator/paginator';
import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent';
import { OfferServiceProxy, GetAllVoucherViewDto } from '@shared/service-proxies/service-proxies';
import * as _ from 'lodash';
import { AppComponentBase } from '@shared/common/app-component-base';
import { OrganizationUnitsComboboxService } from '@app/main/header/organization-units-combobox/organization-units-combobox.service';
import { appModuleAnimation } from '@shared/animations/routerTransition';
import * as moment from 'moment';
import { formatDate } from '@angular/common';
import { PrintLabelModalComponent } from '@app/main/shared/printLabel/printLabel-modal.component';
import { AppConsts } from '@shared/AppConsts';

@Component({
    templateUrl: './voucher.component.html',
    encapsulation: ViewEncapsulation.None,
    animations: [appModuleAnimation()]
})

export class VoucherComponent extends AppComponentBase implements OnInit {
    @ViewChild('dataTable', { static: true }) dataTable: Table;
    @ViewChild('paginator', { static: true }) paginator: Paginator;
    @ViewChild('printLabelModal', { static: true }) printLabelModal: PrintLabelModalComponent;

    storeDisplayName: string;
    isValid = true;
    voucherIsLoading = false;

    advancedFiltersAreShown = false;
    filterText = '';
    imeiFilter = '';
    voucherNumberFilter = '';
    rmaNumberFilter = '';
    commentFilter = '';
    isDeletedFilter = -1;
    maxCreationTimeFilter: moment.Moment;
    minCreationTimeFilter: moment.Moment;
    maxModificationTimeFilter: moment.Moment;
    minModificationTimeFilter: moment.Moment;
    organizationUnitDisplayNameFilter = '';
    orderStatusNameFilter = '';
    userNameFilter = '';
    orderTypeCodeFilter = '';
    trackingNumberFilter = '';
    shipmentTrackingNumberFilter = '';
    //start dynamic columns - will come from backend

    detailResults: any;
    returnorderId = '';
    orderNumber: string;
    fileName: string;
    shippingResults: any;
    labelImage: string;
    lithiumImage: string;
    labelType: string;
    trackingNumber: string;
    labelIsLoading: boolean;
    returnOrderRma: string;
    returnOrderDetail: any;
    organizationUnitId: number;
    userNameFeature = JSON.parse(abp.features.getValue('App.UserNameFeature'));

    constructor(
        injector: Injector,
        private _organizationUnitsComboboxService: OrganizationUnitsComboboxService,
        private _offerService: OfferServiceProxy,
    ) {
        super(injector);
    }

    nextFrame(): void {
        if (this._organizationUnitsComboboxService === undefined || this._organizationUnitsComboboxService.selectedOrganizationUnit === undefined) {
            if(AppConsts.showAbpNotifications) abp.notify.info(this.l('LoadVoucherData'));
            setTimeout(() => this.nextFrame(), 1000);
        } else {
            this.storeDisplayName = this._organizationUnitsComboboxService.selectedOrganizationUnit.displayName;
            this.organizationUnitId = this._organizationUnitsComboboxService.selectedOrganizationUnit.id;
            this.initialize();
        }
    }

    ngOnInit(): void {
        this.nextFrame();
        this._organizationUnitsComboboxService.events$.forEach(event => {
            this.storeDisplayName = event.displayName;
            this.organizationUnitId = event.id;
             });
    }

       // initial loading of data
    initialize() {
      }


    openReceipt(offerNumber: string): void {
        this.printLabelModal.getPdf('receipts', offerNumber + '.pdf');        
    }
}

Answer

Hi Maliming,

I have tried upgrading Sweetalert2 to v8.14.0 and also the latest current version v9.15.1. But, still the problem exists.

Question

Hi ,

We are having Multi Page Application built with Asp.Net Core and Angular 8. We keep on getting this error a shown below. On an primeng grid column we have a print button which call the print.modal popup which causes this issues. The modal popup being used is similar to the ones you use being used by abp(on organization-units- add-role-modal.component.ts). Can you please guide on how to reolve this error.

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'null' Error: Cannot match any routes. URL Segment: 'null' at e.noMatchError (main.d82dd10c4ffbd073ef7f.js:1) at t.selector (main.d82dd10c4ffbd073ef7f.js:1) at t.error (main.d82dd10c4ffbd073ef7f.js:1) at t._error (main.d82dd10c4ffbd073ef7f.js:1) at t.error (main.d82dd10c4ffbd073ef7f.js:1) at t._error (main.d82dd10c4ffbd073ef7f.js:1) at t.error (main.d82dd10c4ffbd073ef7f.js:1) at t._error (main.d82dd10c4ffbd073ef7f.js:1) at t.error (main.d82dd10c4ffbd073ef7f.js:1) at t._error (main.d82dd10c4ffbd073ef7f.js:1) at D (polyfills.13a319357725c84c3bd3.js:1) at D (polyfills.13a319357725c84c3bd3.js:1) at polyfills.13a319357725c84c3bd3.js:1 at t.invokeTask (polyfills.13a319357725c84c3bd3.js:1) at Object.onInvokeTask (main.d82dd10c4ffbd073ef7f.js:1) at t.invokeTask (polyfills.13a319357725c84c3bd3.js:1) at e.runTask (polyfills.13a319357725c84c3bd3.js:1) at d (polyfills.13a319357725c84c3bd3.js:1)

Thanks.

Question

Hi Abp Zero,

We are having Multi Page Application built with Asp.Net Core and Angular 8 and using abp.notify feature to display messages(set timeout to 5000 ms) throughout the website. When a message is displayed in one page and we route to a different page in less than 5000 ms, we are getting console error(below) and greyout page and unable to perform any action until page refresh. Please help us in handling this behavior and let us know if there is a possibility to close abp.notify messages before the timeout in ngOnDestroy() when switching between components.

Thanks.

ERROR TypeError: Cannot read property 'removeEventListener' of undefined at removePopupAndResetState (scripts.js:33343) at handlePopupAnimation (scripts.js:33417) at SweetAlert.close (scripts.js:33386) at dismissWith (scripts.js:34217) at scripts.js:34278 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (polyfills.js:12578) at Object.onInvokeTask (vendor.js:71493) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (polyfills.js:12577) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (polyfills.js:12350) at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (polyfills.js:12653)

Showing 11 to 20 of 147 entries