Browse Source

Merge branch 'dev' into issue-14373

pull/17177/head
maliming 3 years ago
parent
commit
91bd3fe8a9
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 1
      NuGet.Config
  2. 32
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  3. 30
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json
  4. 56
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  5. 32
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
  6. 2
      docs/en/Repositories.md
  7. 2
      modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs
  8. 2
      npm/ng-packs/.npmrc
  9. 2
      npm/ng-packs/package.json
  10. 11
      npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts
  11. 12
      npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts
  12. 2
      npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts
  13. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html
  14. 7
      npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts
  15. 1
      templates/NuGet.Config

1
NuGet.Config

@ -2,6 +2,5 @@
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="BlazoriseMyGet" value="https://www.myget.org/F/blazorise/api/v3/index.json" />
</packageSources>
</configuration>

32
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json

@ -464,6 +464,36 @@
"FullChangeHistory": "Full Change History",
"Permission:RefreshReleaseLogs": "Refresh Release Logs",
"ReleaseLogs": "Release Logs",
"AuthorUserName": "Author User Name"
"AuthorUserName": "Author User Name",
"Type": "Type",
"TotalDiscount": "Total Discount",
"SubTotal": "Sub Total",
"TotalDue": "Total Due",
"QuotationNo": "Quotation no",
"ValidFor": "Valid for",
"QuotationNote": "Quotation note",
"QuotationTemplate.Address": "Address",
"QuotationTemplate.Address:": "Address:",
"QuotationTemplate.VATNo": "VAT No",
"QuotationTemplate.Phone": "Phone",
"QuotationTemplate.E-mail": "E-mail",
"QuotationTemplate.Quotation": "Quotation",
"QuotationTemplate.To": "To",
"QuotationTemplate.Details": "Details",
"QuotationTemplate.QuotationNo:": "Quotation:",
"QuotationTemplate.IssueDate:": "Issue Date:",
"QuotationTemplate.ValidFor:": "Valid For:",
"QuotationTemplate.ValidDays": "{0} Days",
"QuotationTemplate.Description": "Description",
"QuotationTemplate.UnitPrice": "Unit Price",
"QuotationTemplate.Qty": "Qty",
"QuotationTemplate.Discount": "Discount",
"QuotationTemplate.Total": "Total",
"QuotationTemplate.Notes": "Notes",
"QuotationTemplate.SubTotal": "Sub Total",
"QuotationTemplate.Tax/VAT": "Tax / VAT (%{0})",
"QuotationTemplate.TotalDiscount": "Total Discount",
"QuotationTemplate.TotalDue": "Total Due",
"QuotationTemplate.ThanksForYourBusiness": "Thanks for your business!"
}
}

30
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json

@ -417,6 +417,34 @@
"CommunityLinkTitle": "Topluluk web sitesinde açın",
"CommunityLink": "Topluluk Bağlantısı",
"ReloadFromSource": "Kaynaktan Yeniden Yükle",
"ReloadFromSourceConfirmationMessage": "Bu gönderi \"{0}\" adresinden yenilenecek. Devam etmek istiyor musun?"
"ReloadFromSourceConfirmationMessage": "Bu gönderi \"{0}\" adresinden yenilenecek. Devam etmek istiyor musun?",
"Type": "Tip",
"TotalDiscount": "Toplam İndirim",
"SubTotal": "Ara Toplam",
"TotalDue": "NET TOPLAM",
"DiscountAmount": "İndirim Tutarı",
"QuotationTemplate.Address": "Adres",
"QuotationTemplate.Address:": "Adres:",
"QuotationTemplate.VATNo": "Vergi Dairesi/No",
"QuotationTemplate.Phone": "Telefon",
"QuotationTemplate.E-mail": "E-posta",
"QuotationTemplate.Quotation": "Fiyat Teklifi",
"QuotationTemplate.To": "Müşteri",
"QuotationTemplate.Details": "Detay",
"QuotationTemplate.QuotationNo:": "Teklif No:",
"QuotationTemplate.IssueDate:": "Teklif Tarihi:",
"QuotationTemplate.ValidFor:": "Geçerlilik Süresi:",
"QuotationTemplate.ValidDays": "{0} Gün",
"QuotationTemplate.Description": "Açıklama",
"QuotationTemplate.UnitPrice": "Birim Fiyat",
"QuotationTemplate.Qty": "Adet",
"QuotationTemplate.Discount": "İndirim",
"QuotationTemplate.Total": "Tutar",
"QuotationTemplate.Notes": "Notlar",
"QuotationTemplate.SubTotal": "Alt Toplam",
"QuotationTemplate.Tax/VAT": "Vergiler (%{0})",
"QuotationTemplate.TotalDiscount": "Toplam İndirim",
"QuotationTemplate.TotalDue": "NET TOPLAM",
"QuotationTemplate.ThanksForYourBusiness": "Değerli siparişlerinizi bekleriz."
}
}

56
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json

@ -906,9 +906,9 @@
"ExtraQuestionCreditsFaqTitle": "Can I purchase extra support question credits?",
"ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to <a href=\"mailto:info@abp.io\">info@abp.io</a> with your organization's name. Here's the price list for the extra question credits: <ul><li>50 questions pack $999</li><li>25 questions pack $625</li><li>15 questions pack $450</li></ul>",
"AlreadyBetaTester": "You have already joined the beta tester program.",
"AbpStudioForAbpDevelopers": "ABP Studio for <span class=\"gradient-commercial\">ABP Developers</span>",
"AbpStudioForAbpDevelopers_Description1": "ABP Studio is a <span class=\"text-info\">cross-platform desktop application</span> for ABP developers.",
"AbpStudioForAbpDevelopers_Description2": "It is <span class=\"text-info\">well integrated</span> to the ABP Framework and aims to provide a comfortable development environment for you by <span class=\"text-info\">automating things, providing insights</span> about your solution, making <span class=\"text-info\">develop, run</span> and <span class=\"text-info\">deploy</span> your solutions much easier.",
"AbpStudio": "ABP Studio",
"AbpStudio_Description1": "ABP Studio is a <span class=\"text-highlight-white\">cross-platform desktop application</span> for ABP developers.",
"AbpStudio_Description2": "It is <span class=\"text-highlight-white\">well integrated</span> to the ABP Framework and aims to provide a comfortable development environment for you by <span class=\"text-highlight-white\">automating things, providing insights</span> about your solution, making <span class=\"text-highlight-white\">develop, run</span> and <span class=\"text-highlight-white\">deploy</span> your solutions much easier.",
"CreateNewSolutions": "Create New Solutions",
"CreateNewSolutions_Description1": "You can create from simple applications to modular monolith or microservice solutions easily with a lot of options. You get a full production-ready base software solution for your business.",
"ArchitectYourSolutions": "Architect Your Solutions",
@ -916,23 +916,53 @@
"ExploreYourSolution": "Explore Your Solution",
"ExploreYourSolution_Description1": "ABP Studio shows a high-level view of components in your solution and the modules your solution depends on. You can explore entities, services, HTTP APIs and much more without needing to open your codebase.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze": "Run Multi-Application or Microservice Solutions in a Breeze",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Run one, <span class=\"text-info\">multiple</span> or <span class=\"text-info\">all services</span> with a single click. In this way, it is very easy to stop a service, run it in Visual Studio to <span class=\"text-info\">test</span> or <span class=\"text-info\">debug</span>.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "See a list of services, view <span class=\"text-info\">real-time HTTP Request</span> and <span class=\"text-info\">exception counts</span> for each service.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "See all details of all <span class=\"text-info\">HTTP requests</span> coming to any service.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Explore <span class=\"text-info\">exception details</span> as real-time in any service, easily filter and search.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Show the <span class=\"text-info\">application logs</span>, filter by log level or search by text..",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "<span class=\"text-info\">Browse</span> the UI of your application without leaving the solution runner.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Run one, <span class=\"text-highlight-white\">multiple</span> or <span class=\"text-highlight-white\">all services</span> with a single click. In this way, it is very easy to stop a service, run it in Visual Studio to <span class=\"text-highlight-white\">test</span> or <span class=\"text-highlight-white\">debug</span>.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "See a list of services, view <span class=\"text-highlight-white\">real-time HTTP Request</span> and <span class=\"text-highlight-white\">exception counts</span> for each service.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "See all details of all <span class=\"text-highlight-white\">HTTP requests</span> coming to any service.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Explore <span class=\"text-highlight-white\">exception details</span> as real-time in any service, easily filter and search.",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Show the <span class=\"text-highlight-white\">application logs</span>, filter by log level or search by text..",
"RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "<span class=\"text-highlight-white\">Browse</span> the UI of your application without leaving the solution runner.",
"IntegrateToYourKubernetesCluster": "Integrate to your Kubernetes Cluster",
"IntegrateToYourKubernetesCluster_Description1": "<span class=\"text-info\">Connect your local development environment to a local or remote Kubernetes cluster</span>, where that cluster already runs your microservice solution.",
"IntegrateToYourKubernetesCluster_Description1": "<span class=\"text-highlight-white\">Connect your local development environment to a local or remote Kubernetes cluster</span>, where that cluster already runs your microservice solution.",
"IntegrateToYourKubernetesCluster_Description2": "Access any service in Kubernetes with their service name as DNS, just like they are running in your local computer.",
"IntegrateToYourKubernetesCluster_Description3": "<span class=\"text-info\">Intercept any service</span> in that cluster, so all the <span class=\"text-info\">traffic to the intercepted service is automatically redirected to your service</span>that is running in your local machine. When your service needs to use any service in Kubernetes, the traffic is redirected back to the cluster, just like your local service is running inside the Kubernetes.",
"IntegrateToYourKubernetesCluster_Description3": "<span class=\"text-highlight-white\">Intercept any service</span> in that cluster, so all the <span class=\"text-highlight-white\">traffic to the intercepted service is automatically redirected to your service </span>that is running in your local machine. When your service needs to use any service in Kubernetes, the traffic is redirected back to the cluster, just like your local service is running inside the Kubernetes.",
"GetInformed": "Get Informed",
"Studio_GetInformed_Description1": "Leave your contact information to <span class=\"text-info\">get informed</span> and <span class=\"text-info\">try it first</span> when ABP Studio has been launched.",
"Studio_GetInformed_Description1": "Leave your contact information to <span class=\"text-highlight-white\">get informed</span> and <span class=\"text-highlight-white\">try it first</span> when ABP Studio has been launched.",
"Studio_GetInformed_Description2": "Planned preview release date: Q3 of 2023.",
"ThankYou!": "Thank you!",
"SendBetaRequest": "Send Beta Request",
"YouJoinedTheBetaTesterProgram": "You joined the ABP Studio beta tester program.",
"PricingExplanation2": "30 days money back guarantee *. <a href=\"/faq#refund-policy\">Learn more</a>",
"MoneyBackGuaranteeText": "* 30-day money-back guarantee on all licenses! 100% refund on Team, 60% refund on Business and Enterprise licenses within 30 days."
"MoneyBackGuaranteeText": "* 30-day money-back guarantee on all licenses! 100% refund on Team, 60% refund on Business and Enterprise licenses within 30 days.",
"MobileApplicationStartupTemplates": "Mobile Application Startup Templates",
"MobileApplicationStartupTemplates_Description1": "Integrated mobile application startup templates for your ABP Commercial solutions.",
"CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Create Powerful line-of-business Applications using ABP Mobile Startup Templates",
"CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial provides two mobile application startup templates implemented with <span class=\"text-highlight\">React Native</span> and <span class=\"text-highlight\">.NET MAUI.</span> When you create your new ABP based solution, you will also have basic startup applications connected to your backend APIs.",
"CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "The application has a pre-built authentication token cycle, <span class=\"text-highlight\">multi-language support, multi-tenancy support, login, forgot password, profile management and a user management page</span>. You can add your own business logic and customize it based on your requirements.",
"TwoFrameworkOptions": "Two Framework Options",
"TwoFrameworkOptions_Description": "ABP provides both <span class=\"text-highlight\">React Native</span> and <span class=\"text-highlight\">.NET MAUI</span> mobile startup templates. This way you can choose the one that best suits your needs. Both apps reuse code at the highest rate between iOS and Android platforms.",
"PreIntegratedToYourBackend": "Pre-integrated to Your Backend",
"PreIntegratedToYourBackend_Description": "ABP Mobile applications are pre-integrated to your backend APIs. It gets a valid authentication token from the server and makes authenticated requests.",
"MultiLanguage": "Multi - Language",
"MultiLanguage_Description": "It already supports more than 10 languages out of the box. You can also add next languages.",
"Arabic": "Arabic",
"Czech": "Czech",
"English": "English",
"Hungarian": "Hungarian",
"Finnish": "Finnish",
"French": "French",
"Hindi": "Hindi",
"Portuguese": "Portuguese",
"Italian": "Italian",
"Russian": "Russian",
"Slovak": "Slovak",
"Turkish": "Turkish",
"EngageAndRetainYourCustomersWithABPMobileApps": "Engage and Retain Your Customers with ABP Mobile Apps",
"EngageAndRetainYourCustomersWithABPMobileApps_Description1": "Your customers want to manage their products and subscriptions from anywhere, anytime. That requires organizations to create mobile apps that enable customers to fulfill their requests quickly and seamlessly.",
"EngageAndRetainYourCustomersWithABPMobileApps_Description2": "With ABP Mobile apps, you can create high-quality native mobile apps for Android and iOS… Using a single codebase and without compromising on security, quality, or scalability.",
"OneCodeBaseMultipleDevices": "One Code-Base Multiple Devices",
"OneCodeBaseMultipleDevices_Description": "ABP Mobile applications are cross-platform. They are ready to be installed and run on iOS and Android devices, and they adapt to different form-factors using a single code base. Developers only need to create the UI and front-end code once, there is no need to adapt the code for each device you want to support.",
"ComesWithTheSourceCode": "Comes with the Source-Code",
"ComesWithTheSourceCode_Description": "The mobile apps are provided with the source-code. Easily customize the UX/UI of your apps to meet branding guidelines."
}
}

32
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json

@ -806,6 +806,36 @@
"SupportPolicyFaqTitle": "Destek politikanız nedir?",
"SupportPolicyFaqExplanation": "Yalnızca etkin ve önceki ana sürümü destekliyoruz. Üçüncü ve daha eski ana sürümler için bir yama sürümünü garanti etmiyoruz. Örneğin, etkin sürüm 7.0.0 ise, hem 6.x.x hem de 7.x.x için yama sürümleri yayınlayacağız. Ayrıca, yalnızca ABP Framework ve ABP Commercial ile ilgili sorunlar için destek sağlıyoruz. Bu, ABP ürünleri tarafından kullanılan 3. taraf uygulamalar, bulut hizmetleri ve diğer çevresel kütüphaneler için destek verilmediği anlamına gelir. Müşterilerimize \"Volosoft Bilişim A.Ş\"nin resmi çalışma saatleri içinde teknik destek sağlamak için ticari olarak makul çabayı göstereceğiz. Öte yandan, bir hizmet seviyesi anlaşması (SLA) yanıt süresi taahhüt etmiyoruz, ancak teknik sorunlara resmi çalışma saatlerimiz içinde mümkün olduğunca çabuk yanıt vermeye çalışacağız. Müşteri ile özel bir anlaşma yapılmadığı sürece, yalnızca https://support.abp.io adresinden destek sağlıyoruz. Ayrıca, yalnızca Kurumsal Lisans sahiplerinin kullanabildiği özel e-posta desteğimiz de bulunmaktadır.",
"BlazoriseLicense": "Blazorise lisansı satın almamız gerekiyor mu?",
"BlazoriseLicenseExplanation": "Volosoft ve Megabit arasında bir anlaşmamız var, bu anlaşma ile Blazorise lisansı ABP Ticari ürünleri ile birlikte geliyor, bu nedenle müşterilerimizin ekstra bir Blazorise lisansı satın almasına gerek kalmıyor."
"BlazoriseLicenseExplanation": "Volosoft ve Megabit arasında bir anlaşmamız var, bu anlaşma ile Blazorise lisansı ABP Ticari ürünleri ile birlikte geliyor, bu nedenle müşterilerimizin ekstra bir Blazorise lisansı satın almasına gerek kalmıyor.",
"MobileApplicationStartupTemplates": "Mobil Uygulama Başlangıç Şablonları",
"MobileApplicationStartupTemplates_Description1": "ABP Commercial çözümleriniz için entegre mobil uygulama başlangıç şablonları.",
"CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "ABP Mobil Başlangıç Şablonlarını Kullanarak Güçlü İş Hattı Uygulamaları Oluşturun",
"CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial, <span class=\"text-highlight\">React Native</span> ve <span class=\"text-highlight\">.NET MAUI</span> ile uygulanan iki mobil uygulama başlangıç şablonu sağlar. Yeni ABP tabanlı çözümünüzü oluşturduğunuzda, arka uç API'lerinize bağlı temel başlangıç uygulamalarına da sahip olacaksınız.",
"CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "Uygulamanın önceden oluşturulmuş bir kimlik doğrulama belirteç döngüsü, <span class=\"text-highlight\">çoklu dil desteği, çoklu kiracılık desteği, oturum açma, parolamı unuttum, profil yönetimi ve bir kullanıcı yönetimi sayfası</span> vardır. Kendi iş mantığınızı ekleyebilir ve gereksinimlerinize göre özelleştirebilirsiniz.",
"TwoFrameworkOptions": "İki Çerçeve Seçeneği",
"TwoFrameworkOptions_Description": "ABP hem <span class=\"text-highlight\">React Native</span> hem de <span class=\"text-highlight\">.NET MAUI</span> mobil başlangıç şablonları sağlar. Bu şekilde ihtiyaçlarınıza en uygun olanı seçebilirsiniz. Her iki uygulama da iOS ve Android platformları arasında en yüksek oranda kodu yeniden kullanır.",
"PreIntegratedToYourBackend": "Arka Uç API'lerinize Önceden Entegre",
"PreIntegratedToYourBackend_Description": "ABP Mobil uygulamaları, arka uç API'lerinize önceden entegre edilmiştir. Sunucudan geçerli bir kimlik doğrulama belirteci alır ve kimliği doğrulanmış isteklerde bulunur.",
"MultiLanguage": "Çoklu Dil",
"MultiLanguage_Description": "Kutudan çıktığı haliyle 10'dan fazla dili desteklemektedir. Sonraki dilleri de ekleyebilirsiniz.",
"Arabic": "Arapça",
"Czech": "Çekçe",
"English": "İngilizce",
"Hungarian": "Macarca",
"Finnish": "Fince",
"French": "Fransızca",
"Hindi": "Hintçe",
"Portuguese": "Portekizce",
"Italian": "İtalyanca",
"Russian": "Rusça",
"Slovak": "Slovakça",
"Turkish": "Türkçe",
"EngageAndRetainYourCustomersWithABPMobileApps": "ABP Mobil Uygulamaları ile Müşterilerinizin İlgisini Çekin ve Onları Elinizde Tutun",
"EngageAndRetainYourCustomersWithABPMobileApps_Description1": "Müşterileriniz ürünlerini ve aboneliklerini her yerden, her zaman yönetmek ister. Bu da kuruluşların, müşterilerin taleplerini hızlı ve sorunsuz bir şekilde yerine getirmelerini sağlayan mobil uygulamalar oluşturmalarını gerektirir.",
"EngageAndRetainYourCustomersWithABPMobileApps_Description2": "ABP Mobil uygulamaları ile Android ve iOS için yüksek kaliteli yerel mobil uygulamalar oluşturabilirsiniz... Tek bir kod tabanı kullanarak ve güvenlik, kalite veya ölçeklenebilirlikten ödün vermeden.",
"OneCodeBaseMultipleDevices": "Tek Kod Tabanı, Birden Çok Cihaz",
"OneCodeBaseMultipleDevices_Description": "ABP Mobil uygulamaları çapraz platformdur. iOS ve Android cihazlara yüklenmeye ve çalıştırılmaya hazırdırlar ve tek bir kod tabanı kullanarak farklı form faktörlerine uyum sağlarlar. Geliştiricilerin kullanıcı arayüzünü ve ön uç kodunu yalnızca bir kez oluşturması gerekir, desteklemek istediğiniz her cihaz için kodu uyarlamanıza gerek yoktur.",
"ComesWithTheSourceCode": "Kaynak Koduyla Birlikte Geliyor",
"ComesWithTheSourceCode_Description": "Mobil uygulamalar kaynak koduyla birlikte sağlanır. Marka yönergelerini karşılamak için uygulamalarınızın UX/UI'sini kolayca özelleştirin."
}
}

2
docs/en/Repositories.md

@ -215,7 +215,7 @@ Where as the `IReadOnlyBasicRepository<Tentity, TKey>` provides the following me
They can all be seen as below:
![generic-repositories](\images\generic-repositories.png)
![generic-repositories](images/generic-repositories.png)
### Generic Repository without a Primary Key

2
modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs

@ -217,7 +217,7 @@ public partial class UserManagement
UserManagementTableColumns.AddRange(GetExtensionTableColumns(IdentityModuleExtensionConsts.ModuleName,
IdentityModuleExtensionConsts.EntityNames.User));
return base.SetEntityActionsAsync();
return base.SetTableColumnsAsync();
}
protected override ValueTask SetToolbarItemsAsync()

2
npm/ng-packs/.npmrc

@ -1,2 +0,0 @@
@abp:registry=https://www.myget.org/F/abp-nightly/npm

2
npm/ng-packs/package.json

@ -7,7 +7,7 @@
"nx": "nx",
"start": "nx serve",
"build": "ng build",
"build:all": "nx run-many --target=build --all --exclude=dev-app,schematics --prod ",
"build:all": "nx run-many --target=build --all --exclude=dev-app,schematics --prod && npm run build:schematics",
"test": "ng test --detect-open-handles=true --run-in-band=true --watch-all=true",
"test:all": "nx run-many --target=test --all",
"lint-staged": "lint-staged",

11
npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts

@ -1,4 +1,4 @@
import { Component, Injector, isDevMode, Optional, SkipSelf, Type } from '@angular/core';
import { Component, Injector, isDevMode, OnInit, Optional, SkipSelf, Type } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { eLayoutType } from '../enums/common';
import { ABP } from '../models';
@ -16,7 +16,7 @@ import { TreeNode } from '../utils/tree-utils';
template: ` <ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container> `,
providers: [SubscriptionService],
})
export class DynamicLayoutComponent {
export class DynamicLayoutComponent implements OnInit {
layout?: Type<any>;
layoutKey?: eLayoutType;
@ -53,6 +53,13 @@ export class DynamicLayoutComponent {
this.listenToLanguageChange();
}
ngOnInit(): void {
if(this.layout){
return;
}
this.getLayout()
}
private checkLayoutOnNavigationEnd() {
const navigationEnd$ = this.routerEvents.getNavigationEvents('End');
this.subscription.addOne(navigationEnd$, () => this.getLayout());

12
npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts

@ -23,14 +23,8 @@ export class AbpOAuthGuard implements IAbpGuard {
if (hasValidAccessToken) {
return true;
}
return of(false).pipe(
tap(() => this.httpErrorReporter.reportError({ status: 401 } as HttpErrorResponse)),
delay(1500),
tap(() => {
const params = { returnUrl: state.url };
this.authService.navigateToLogin(params);
}),
);
const params = { returnUrl: state.url };
this.authService.navigateToLogin(params);
return false;
}
}

2
npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts

@ -4,7 +4,7 @@ import { Component, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { finalize } from 'rxjs/operators';
import { SettingManagementPolicyNames } from '../../enums/policy-names';
import { EmailSettingsService } from '../../proxy/email-settings.service';
import { EmailSettingsService } from '@abp/ng.setting-management/proxy';
import { EmailSettingsDto } from '../../proxy/models';
@Component({

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html

@ -154,7 +154,7 @@
></abp-password>
</ng-template>
<small *ngIf="prop.formText" class="form-text text-muted">{{
<small *ngIf="prop.formText" class="text-muted d-block">{{
prop.formText | abpLocalization
}}</small>
</div>

7
npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts

@ -1,8 +1,9 @@
import {
import {
AuthService,
HttpErrorReporterService,
LocalizationParam,
RouterEvents,
SessionStateService,
} from '@abp/ng.core';
import { HttpErrorResponse } from '@angular/common/http';
import {
@ -83,7 +84,9 @@ export class ErrorHandler {
protected cfRes: ComponentFactoryResolver;
protected rendererFactory: RendererFactory2;
protected httpErrorConfig: HttpErrorConfig;
protected sessionStateService: SessionStateService;
private authService: AuthService;
constructor(protected injector: Injector) {
this.httpErrorReporter = injector.get(HttpErrorReporterService);
@ -93,6 +96,7 @@ export class ErrorHandler {
this.rendererFactory = injector.get(RendererFactory2);
this.httpErrorConfig = injector.get('HTTP_ERROR_CONFIG');
this.authService = this.injector.get(AuthService);
this.sessionStateService = this.injector.get(SessionStateService);
this.listenToRestError();
this.listenToRouterError();
@ -142,6 +146,7 @@ export class ErrorHandler {
};
if (err instanceof HttpErrorResponse && err.headers.get('Abp-Tenant-Resolve-Error')) {
this.sessionStateService.setTenant(null)
this.authService.logout().subscribe();
return;
}

1
templates/NuGet.Config

@ -2,6 +2,5 @@
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="ABP Nightly" value="https://www.myget.org/F/abp-nightly/api/v3/index.json" />
</packageSources>
</configuration>
Loading…
Cancel
Save