From cbf3421a6a5c363133f423aac43a48fb06b33d32 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Tue, 18 Jul 2023 23:26:19 +0300 Subject: [PATCH 01/17] deprecated EmailSettingService is fixed --- .../email-setting-group/email-setting-group.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts index acf603f38e..07085a50a7 100644 --- a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.ts +++ b/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({ From c7adcffa5af141aa8a291049750d722b599523f6 Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 21 Jul 2023 15:17:43 +0300 Subject: [PATCH 02/17] Update Admin Localizations --- .../Admin/Localization/Resources/en.json | 32 ++++++++++++++++++- .../Admin/Localization/Resources/tr.json | 30 ++++++++++++++++- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 34092c44ee..8333e0efbe 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/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!" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json index 4559503a6d..c7c2febc28 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json +++ b/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." } } From a6747b0cda3ee4b39e4e91ddba899b77e3f80fcf Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 21 Jul 2023 15:51:31 +0300 Subject: [PATCH 03/17] Update en.json --- .../Commercial/Localization/Resources/en.json | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 593e006144..0473556c24 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -907,8 +907,8 @@ "ExtraQuestionCreditsFaqExplanation": "Yes, you can. To buy extra question credits, send an e-mail to info@abp.io with your organization's name. Here's the price list for the extra question credits:
  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
", "AlreadyBetaTester": "You have already joined the beta tester program.", "AbpStudioForAbpDevelopers": "ABP Studio for ABP Developers", - "AbpStudioForAbpDevelopers_Description1": "ABP Studio is a cross-platform desktop application for ABP developers.", - "AbpStudioForAbpDevelopers_Description2": "It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy your solutions much easier.", + "AbpStudioForAbpDevelopers_Description1": "ABP Studio is a cross-platform desktop application for ABP developers.", + "AbpStudioForAbpDevelopers_Description2": "It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy 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,18 +916,18 @@ "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, multiple or all services with a single click. In this way, it is very easy to stop a service, run it in Visual Studio to test or debug.", - "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "See a list of services, view real-time HTTP Request and exception counts for each service.", - "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "See all details of all HTTP requests coming to any service.", - "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Explore exception details as real-time in any service, easily filter and search.", - "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Show the application logs, filter by log level or search by text..", - "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "Browse the UI of your application without leaving the solution runner.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Run one, multiple or all services with a single click. In this way, it is very easy to stop a service, run it in Visual Studio to test or debug.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "See a list of services, view real-time HTTP Request and exception counts for each service.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "See all details of all HTTP requests coming to any service.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Explore exception details as real-time in any service, easily filter and search.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Show the application logs, filter by log level or search by text..", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "Browse the UI of your application without leaving the solution runner.", "IntegrateToYourKubernetesCluster": "Integrate to your Kubernetes Cluster", - "IntegrateToYourKubernetesCluster_Description1": "Connect your local development environment to a local or remote Kubernetes cluster, where that cluster already runs your microservice solution.", + "IntegrateToYourKubernetesCluster_Description1": "Connect your local development environment to a local or remote Kubernetes cluster, 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": "Intercept any service in that cluster, so all the traffic to the intercepted service is automatically redirected to your servicethat 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": "Intercept any service in that cluster, so all the traffic to the intercepted service is automatically redirected to your service 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 get informed and try it first when ABP Studio has been launched.", + "Studio_GetInformed_Description1": "Leave your contact information to get informed and try it first when ABP Studio has been launched.", "Studio_GetInformed_Description2": "Planned preview release date: Q3 of 2023.", "ThankYou!": "Thank you!", "SendBetaRequest": "Send Beta Request", From 59b3fed81eec772774266428eea3d6d0b26ca62b Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 21 Jul 2023 16:50:57 +0300 Subject: [PATCH 04/17] Add Mobile Page Localizations --- .../Commercial/Localization/Resources/en.json | 33 ++++++++++++++++++- .../Commercial/Localization/Resources/tr.json | 33 ++++++++++++++++++- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 0473556c24..cae2423a32 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -933,6 +933,37 @@ "SendBetaRequest": "Send Beta Request", "YouJoinedTheBetaTesterProgram": "You joined the ABP Studio beta tester program.", "PricingExplanation2": "30 days money back guarantee *. Learn more", - "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.", + "MobileApplicationStartupTemplates_Description2": "ABP Mobile apps: Build your apps once and deploy them to any app store.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications": "Create Powerful line-of-business Applications using ABP Mobile Applications", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description1": "ABP Commercial provides 2 mobile applications implemented with React Native and .NET MAUI.When you create your new ABP project, you will also have basic startup applications connected to your backend APIs.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description2": "The application has a pre-built token cycle, multi-language support, tenant selection, login, forgot password and a user management page. You can add your own business logic on day 1.", + "TwoFrameworkOptions": "Two Framework Options", + "TwoFrameworkOptions_Description": "ABP provides both React Native and .NET MAUI 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.", + "PreIntegratedToYourWebApplication": "Pre-integrated to Your Web Application", + "PreIntegratedToYourWebApplication_Description": "ABP Mobile applications are pre-integrated into your web application. It's connected to your backend APIs. It gets a valid token from the server and makes authenticated requests. And it supports multi-tenancy.", + "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." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 3b58578d41..232c6a77c4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -806,6 +806,37 @@ "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ı.", + "MobileApplicationStartupTemplates_Description2": "ABP Mobil uygulamaları: Uygulamalarınızı bir kez oluşturun ve herhangi bir uygulama mağazasına dağıtın.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications": "ABP Mobil Uygulamalarını Kullanarak Güçlü İş Hattı Uygulamaları Oluşturun", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description1": "ABP Commercial, React Native ve .NET MAUI ile uygulanan 2 mobil uygulama sağlar. Yeni ABP projenizi oluşturduğunuzda, arka uç API'lerinize bağlı temel başlangıç uygulamalarına da sahip olacaksınız.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description2": "Uygulama önceden oluşturulmuş bir token döngüsüne, çoklu dil desteğine, kiracı seçimine, girişe, şifremi unuttum ve kullanıcı yönetim sayfasına sahiptir. Kendi iş mantığınızı 1. günde ekleyebilirsiniz.", + "TwoFrameworkOptions": "İki Çerçeve Seçeneği", + "TwoFrameworkOptions_Description": "ABP hem React Native hem de .NET MAUI 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.", + "PreIntegratedToYourWebApplication": "Web Uygulamanıza Önceden Entegre", + "PreIntegratedToYourWebApplication_Description": "ABP Mobil uygulamaları web uygulamanıza önceden entegre edilmiştir. Arka uç API'lerinize bağlanır. Sunucudan geçerli bir token alır ve kimliği doğrulanmış istekler yapar. Ve çoklu kiracılığı destekler.", + "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." } } From 39fe068bf2270de2173b4de631892b439ebe914d Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Mon, 24 Jul 2023 15:43:09 +0300 Subject: [PATCH 05/17] remove tenant when tenant-resolve-error triggered --- .../theme-shared/src/lib/handlers/error.handler.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts index adbbba4ddf..cc7f733798 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts +++ b/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; } From ad4b97a366e878882ce9806bc9a8ab9bed7f7ccf Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 25 Jul 2023 10:53:53 +0300 Subject: [PATCH 06/17] Update en.json --- .../Commercial/Localization/Resources/en.json | 17 ++++++++--------- .../Commercial/Localization/Resources/tr.json | 11 +++++------ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index cae2423a32..abd93b4547 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/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 info@abp.io with your organization's name. Here's the price list for the extra question credits:
  • 50 questions pack $999
  • 25 questions pack $625
  • 15 questions pack $450
", "AlreadyBetaTester": "You have already joined the beta tester program.", - "AbpStudioForAbpDevelopers": "ABP Studio for ABP Developers", - "AbpStudioForAbpDevelopers_Description1": "ABP Studio is a cross-platform desktop application for ABP developers.", - "AbpStudioForAbpDevelopers_Description2": "It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy your solutions much easier.", + "AbpStudio": "ABP Studio", + "AbpStudio_Description1": "ABP Studio is a cross-platform desktop application for ABP developers.", + "AbpStudio_Description2": "It is well integrated to the ABP Framework and aims to provide a comfortable development environment for you by automating things, providing insights about your solution, making develop, run and deploy 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", @@ -936,14 +936,13 @@ "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.", - "MobileApplicationStartupTemplates_Description2": "ABP Mobile apps: Build your apps once and deploy them to any app store.", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications": "Create Powerful line-of-business Applications using ABP Mobile Applications", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description1": "ABP Commercial provides 2 mobile applications implemented with React Native and .NET MAUI.When you create your new ABP project, you will also have basic startup applications connected to your backend APIs.", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description2": "The application has a pre-built token cycle, multi-language support, tenant selection, login, forgot password and a user management page. You can add your own business logic on day 1.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Create Powerful line-of-business Applications using ABP Mobile Startup Templates", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial provides two mobile application startup templates implemented with React Native and .NET MAUI. 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, multi-language support, multi-tenancy support, login, forgot password, profile management and a user management page. You can add your own business logic and customize it based on your requirements.", "TwoFrameworkOptions": "Two Framework Options", "TwoFrameworkOptions_Description": "ABP provides both React Native and .NET MAUI 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.", - "PreIntegratedToYourWebApplication": "Pre-integrated to Your Web Application", - "PreIntegratedToYourWebApplication_Description": "ABP Mobile applications are pre-integrated into your web application. It's connected to your backend APIs. It gets a valid token from the server and makes authenticated requests. And it supports multi-tenancy.", + "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", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 232c6a77c4..e7781f9fe5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -809,14 +809,13 @@ "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ı.", - "MobileApplicationStartupTemplates_Description2": "ABP Mobil uygulamaları: Uygulamalarınızı bir kez oluşturun ve herhangi bir uygulama mağazasına dağıtın.", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications": "ABP Mobil Uygulamalarını Kullanarak Güçlü İş Hattı Uygulamaları Oluşturun", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description1": "ABP Commercial, React Native ve .NET MAUI ile uygulanan 2 mobil uygulama sağlar. Yeni ABP projenizi oluşturduğunuzda, arka uç API'lerinize bağlı temel başlangıç uygulamalarına da sahip olacaksınız.", - "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileApplications_Description2": "Uygulama önceden oluşturulmuş bir token döngüsüne, çoklu dil desteğine, kiracı seçimine, girişe, şifremi unuttum ve kullanıcı yönetim sayfasına sahiptir. Kendi iş mantığınızı 1. günde ekleyebilirsiniz.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "ABP Mobil Başlangıç Şablonlarını Kullanarak Güçlü İş Hattı Uygulamaları Oluşturun", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial, React Native ve .NET MAUI 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ü, ç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ı 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 React Native hem de .NET MAUI 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.", - "PreIntegratedToYourWebApplication": "Web Uygulamanıza Önceden Entegre", - "PreIntegratedToYourWebApplication_Description": "ABP Mobil uygulamaları web uygulamanıza önceden entegre edilmiştir. Arka uç API'lerinize bağlanır. Sunucudan geçerli bir token alır ve kimliği doğrulanmış istekler yapar. Ve çoklu kiracılığı destekler.", + "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", From 9dce228cd519a6631bb578f280e2c02277b6e7a9 Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Tue, 25 Jul 2023 14:14:21 +0300 Subject: [PATCH 07/17] add schematics build on build:all --- npm/ng-packs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index f1251d0341..ee6cacaf06 100644 --- a/npm/ng-packs/package.json +++ b/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", From 39894e3f96d5fa4321a0c562eb7bad03ae2e0a78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Tue, 25 Jul 2023 14:56:31 +0300 Subject: [PATCH 08/17] Update Repositories.md --- docs/en/Repositories.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index e39c100b47..95f908d004 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -215,7 +215,7 @@ Where as the `IReadOnlyBasicRepository` 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 From e01ecfc6726ad80b27f7110847017e2fee4b3411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BF=8A?= Date: Wed, 26 Jul 2023 05:38:10 +0000 Subject: [PATCH 09/17] Fix wrongly written SetTableColumnsAsync call to base class method in UserManagement --- .../Pages/Identity/UserManagement.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs index 403e46601d..00d583c9f0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs +++ b/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() From bdf1599b90261ade96ae1c50ee410b0c3b5a59ad Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Wed, 26 Jul 2023 10:50:01 +0300 Subject: [PATCH 10/17] Update common.props --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index c11886edf4..f356656fbf 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 7.3.0 + 7.3.1 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 564bb1d3d51faeef9a07c2fb02eb4b06c44e005f Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Wed, 26 Jul 2023 10:58:32 +0300 Subject: [PATCH 11/17] Dynamic layout musst solve layout oninit. Update guard --- .../src/lib/components/dynamic-layout.component.ts | 11 +++++++++-- .../packages/oauth/src/lib/guards/oauth.guard.ts | 12 +++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts index 5adaa0d768..5215c95398 100644 --- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts +++ b/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: ` `, providers: [SubscriptionService], }) -export class DynamicLayoutComponent { +export class DynamicLayoutComponent implements OnInit { layout?: Type; 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()); diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index 85a39b5bf8..faafafedfa 100644 --- a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts +++ b/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; } } From add1f0a8174c0745f34f40b8b4b276278f0e1780 Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Wed, 26 Jul 2023 10:58:32 +0300 Subject: [PATCH 12/17] Dynamic layout musst solve layout oninit. Update guard --- .../src/lib/components/dynamic-layout.component.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts index 5adaa0d768..5215c95398 100644 --- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts +++ b/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: ` `, providers: [SubscriptionService], }) -export class DynamicLayoutComponent { +export class DynamicLayoutComponent implements OnInit { layout?: Type; 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()); From 68dfe6ef0fbcbe6820a59910e34cd7cf6d8891c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 26 Jul 2023 13:12:22 +0300 Subject: [PATCH 13/17] Remove MyGet dependency --- NuGet.Config | 1 - templates/NuGet.Config | 1 - 2 files changed, 2 deletions(-) diff --git a/NuGet.Config b/NuGet.Config index a0572030a2..08027d47f3 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/templates/NuGet.Config b/templates/NuGet.Config index c2097e6a05..554c2f634b 100644 --- a/templates/NuGet.Config +++ b/templates/NuGet.Config @@ -2,6 +2,5 @@ - \ No newline at end of file From 5cc528fc868a402f78398efc731bd8f51e3efdb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 26 Jul 2023 13:12:22 +0300 Subject: [PATCH 14/17] Remove MyGet dependency --- NuGet.Config | 1 - templates/NuGet.Config | 1 - 2 files changed, 2 deletions(-) diff --git a/NuGet.Config b/NuGet.Config index a0572030a2..08027d47f3 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/templates/NuGet.Config b/templates/NuGet.Config index c2097e6a05..554c2f634b 100644 --- a/templates/NuGet.Config +++ b/templates/NuGet.Config @@ -2,6 +2,5 @@ - \ No newline at end of file From f02212579ee752d87072e26fd7db14853fff0836 Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Tue, 25 Jul 2023 14:14:21 +0300 Subject: [PATCH 15/17] add schematics build on build:all --- npm/ng-packs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index f1251d0341..ee6cacaf06 100644 --- a/npm/ng-packs/package.json +++ b/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", From d89d05606402a2649845c3bdf042cdf69287d34e Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Wed, 26 Jul 2023 15:53:58 +0300 Subject: [PATCH 16/17] remove myget temporarly. because it down --- npm/ng-packs/.npmrc | 2 -- 1 file changed, 2 deletions(-) diff --git a/npm/ng-packs/.npmrc b/npm/ng-packs/.npmrc index cb55c69ab1..e69de29bb2 100644 --- a/npm/ng-packs/.npmrc +++ b/npm/ng-packs/.npmrc @@ -1,2 +0,0 @@ -@abp:registry=https://www.myget.org/F/abp-nightly/npm - From fef167fb12b053e3b819a1fa6504fe0d7c043408 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Wed, 26 Jul 2023 15:54:52 +0300 Subject: [PATCH 17/17] formtext property display block --- .../extensible-form/extensible-form-prop.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html index 26dcbf1297..5fc312a92d 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html @@ -154,7 +154,7 @@ > - {{ + {{ prop.formText | abpLocalization }}