Browse Source

Merge branch 'dev' into salihozkara/auto-renewal

pull/18729/head
Salih 3 years ago
parent
commit
45f2073119
  1. 2
      Directory.Packages.props
  2. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json
  3. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json
  4. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json
  5. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json
  6. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json
  7. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json
  8. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json
  9. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json
  10. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json
  11. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json
  12. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json
  13. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json
  14. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json
  15. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json
  16. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json
  17. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json
  18. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json
  19. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json
  20. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json
  21. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json
  22. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json
  23. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json
  24. 2
      docs/en/Multi-Lingual-Entities.md
  25. 2
      docs/en/Testing.md
  26. 48
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js
  27. 1
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs
  28. 45
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToPreRcCommand.cs
  29. 33
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  30. 110
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs
  31. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor
  32. 5
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

2
Directory.Packages.props

@ -6,7 +6,7 @@
<PackageVersion Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" />
<PackageVersion Include="aliyun-net-sdk-sts" Version="3.1.2" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
<PackageVersion Include="AsyncKeyedLock" Version="6.2.4" />
<PackageVersion Include="AsyncKeyedLock" Version="6.2.6" />
<PackageVersion Include="Autofac" Version="7.1.0" />
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="Autofac.Extras.DynamicProxy" Version="7.1.0" />

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\"> نظام أساسي كامل لتطوير الويب </ span> <span class=\"second-line\"> </ span> <span class=\"third-line\"> مدمج <img src=\"{0}\" width = \"110\" class=\"ml-1\" /> framework </span>",
"AbpCommercialShortDescription": "يوفر ABP Commercial وحدات تطبيق مسبقة الإنشاء وأدوات تطوير سريعة للتطبيقات وموضوعات واجهة مستخدم احترافية ودعمًا متميزًا والمزيد.",
"LiveDemo": "عرض حي",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> باستخدام حساب ABP الخاص بك، <a href=\"{2}\">{3}</a>إلى abp.io.<br/>أو املأ النموذج أدناه لإنشاء عرض توضيحي مباشر الآن",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> باستخدام حساب ABP الخاص بك، <a href=\"{2}\">{3}</a>إلى abp.io.أو املأ النموذج أدناه لإنشاء عرض توضيحي مباشر الآن",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "هناك حساب بالفعل باستخدام عنوان البريد الإلكتروني المحدد: <b>{0}</b><br/> يمكنك تسجيل الدخول باستخدام حسابك للمتابعة.",
"GetLicence": "احصل على ترخيص",
"Application": "تطبيق",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Kompletní</span><span class=\"second-line\"> platforma pro vývoj webu</span><span class=\"third-line\">vestavěná na <img src= \"{0}\" width=\"110\" class=\"ml-1\" /> framework</span>",
"AbpCommercialShortDescription": "ABP Commercial poskytuje předpřipravené aplikační moduly, nástroje pro rychlý vývoj aplikací, profesionální témata uživatelského rozhraní, prémiovou podporu a další.",
"LiveDemo": "Živá ukázka",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> pomocí vašeho účtu ABP, <a href=\"{2}\">{3}</a> na abp.io.<br/>Nebo vyplňte níže uvedený formulář a vytvořte si nyní živou ukázku",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> pomocí vašeho účtu ABP, <a href=\"{2}\">{3}</a> na abp.io. Nebo vyplňte níže uvedený formulář a vytvořte si nyní živou ukázku",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Zadaná e-mailová adresa <b>{0}</b> je již registrována.<br/> Můžete se přihlásit se svým účtem a pokračovat.",
"GetLicence": "Získejte licenci",
"Application": "aplikace",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Eine komplette</span><span class=\"second-line\"> Webentwicklungsplattform</span><span class=\"third-line\">aufgebaute <img src= \"{0}\" width=\"110\" class=\"ml-1\" /> Framework</span>",
"AbpCommercialShortDescription": "ABP Commercial bietet vorgefertigte Anwendungsmodule, schnelle Anwendungsentwicklungstools, professionelle UI-Themen, Premium-Support und mehr.",
"LiveDemo": "Live-Demo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> mit Ihrem ABP-Konto, <a href=\"{2}\">{3}</a> zu abp.io.<br/>Oder füllen Sie das Formular unten aus, um jetzt eine Live-Demo zu erstellen",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> mit Ihrem ABP-Konto, <a href=\"{2}\">{3}</a> zu abp.io. Oder füllen Sie das Formular unten aus, um jetzt eine Live-Demo zu erstellen",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Es gibt bereits ein Konto mit der angegebenen E-Mail-Adresse: <b>{0}</b><br/> Sie können sich mit Ihrem Konto anmelden, um fortzufahren.",
"GetLicence": "Holen Sie sich eine Lizenz",
"Application": "Anwendung",

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

@ -49,7 +49,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">A complete</span><span class=\"second-line\"> web development platform</span><span class=\"third-line\">built-on <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> framework</span>",
"AbpCommercialShortDescription": "ABP Commercial provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.",
"LiveDemo": "Live Demo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> using your ABP account, <a href=\"{2}\">{3}</a> to abp.io <br/> or fill the form below to create a live demo now",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> using your ABP account, <a href=\"{2}\">{3}</a> to abp.io or fill the form below to create a live demo now",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "There is already an account with the given email address: <b>{0}</b><br/> You should login with your account to proceed.",
"GetLicence": "Get a License",
"Application": "Application",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\"> Una </span> <span class=\"second-line\"> plataforma de desarrollo web completa </span> <span class=\"third-line\"> integrada <img src=\"{0}\" width = \"110\" class=\"ml-1\" /> marco </span>",
"AbpCommercialShortDescription": "ABP Commercial proporciona módulos de aplicaciones prediseñados, herramientas de desarrollo rápido de aplicaciones, temas de interfaz de usuario profesionales, soporte premium y más.",
"LiveDemo": "Demo en vivo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> usando su cuenta ABP, <a href=\"{2}\">{3}</a> a abp.io.<br/>O complete el siguiente formulario para crear una demostración en vivo ahora",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> usando su cuenta ABP, <a href=\"{2}\">{3}</a> a abp.io. O complete el siguiente formulario para crear una demostración en vivo ahora",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Ya existe una cuenta con la dirección de correo electrónico especificada: <b>{0}</b><br/> Puede iniciar sesión con su cuenta para continuar.",
"GetLicence": "Obtener una licencia",
"Application": "Solicitud",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json

@ -49,7 +49,7 @@
"IndexPageHeroSection": "<span class=\"first-line\"> Täydellinen </span><span class=\"second-line\"> verkkokehitysympäristö </span><span class=\"third-line\"> sisäänrakennettu <img src=\"{0}\" width = \"110\" class=\"ml-1\" /> kehys </span>",
"AbpCommercialShortDescription": "ABP Commercial tarjoaa valmiita sovellusmoduuleja, nopean sovelluskehitystyökalun, ammattimaiset käyttöliittymäteemat, ensiluokkaisen tuen ja paljon muuta.",
"LiveDemo": "Live-esittely",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> käyttämällä ABP-tiliäsi, <a href=\"{2}\">{3}</a> abp.io: lle.<br/>Tai täytä alla oleva lomake luodaksesi live-esittelyn nyt",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> käyttämällä ABP-tiliäsi, <a href=\"{2}\">{3}</a> abp.io: lle. Tai täytä alla oleva lomake luodaksesi live-esittelyn nyt",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Sähköpostiosoitteella <b>{0}</b> on jo tili.<br/> Voit kirjautua sisään tilillesi jatkaaksesi.",
"GetLicence": "Hanki lisenssi",
"Application": "Sovellus",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Une plate-forme de développement Web</span><span class=\"second-line\"> complète </span><span class=\"third-line\"> intégrée <img src=\"{0}\" width = \"110\" class=\"ml-1\" /> cadre </span>",
"AbpCommercialShortDescription": "ABP Commercial fournit des modules d'application prédéfinis, des outils de développement rapide d'applications, des thèmes d'interface utilisateur professionnels, un support premium et plus encore.",
"LiveDemo": "Démo en direct",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> en utilisant votre compte ABP, <a href=\"{2}\">{3}</a> à abp.io.<br/>Ou remplissez le formulaire ci-dessous pour créer une démo en direct maintenant",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> en utilisant votre compte ABP, <a href=\"{2}\">{3}</a> à abp.io. Ou remplissez le formulaire ci-dessous pour créer une démo en direct maintenant",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Il existe déjà un compte avec l'adresse e-mail fournie: <b>{0}</b><br/> Vous pouvez vous connecter avec votre compte pour continuer.",
"GetLicence": "Obtenez une licence",
"Application": "Application",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">एक पूर्ण</span><span class=\"second-line\"> वेब डेवलपमेंट प्लेटफॉर्म</span><span class=\"third-line\">बिल्ट-ऑन <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> Framework</span>",
"AbpCommercialShortDescription": "एबीपी कमर्शियल प्री-बिल्ट एप्लिकेशन मॉड्यूल, रैपिड एप्लिकेशन डेवलपमेंट टूलिंग, पेशेवर यूआई थीम, प्रीमियम सपोर्ट आदि प्रदान करता है।",
"LiveDemo": "लाइव डेमो",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> अपने एबीपी खाते का उपयोग करते हुए, <a href=\"{2}\">{3}</a> abp.io पर आपका स्वागत है। <br/> या अब एक लाइव डेमो बनाने के लिए नीचे दिए गए फॉर्म को भरें",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> अपने एबीपी खाते का उपयोग करते हुए, <a href=\"{2}\">{3}</a> abp.io पर आपका स्वागत है। या अब एक लाइव डेमो बनाने के लिए नीचे दिए गए फॉर्म को भरें",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "दिए गए ईमेल पते <b>{0}</b> के साथ पहले से ही एक खाता है। <br/> आप अपने खाते से लॉगिन करके आगे बढ़ सकते हैं।",
"GetLicence": "एक लाइसेंस प्राप्त करें",
"Application": "आवेदन",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json

@ -49,7 +49,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Kompletna</span> <span class=\"third-line\">ugrađena</span> <span class=\"second-line\">platforma za web razvoj</span> <span class=\"third-line\"><img src=\"{0}\" width=\"110\" class=\"ml-1\" />okvir</span>",
"AbpCommercialShortDescription": "ABP Commercial nudi unaprijed izgrađene aplikacijske module, alate za brzi razvoj aplikacija, profesionalne UI teme, vrhunsku podršku i više.",
"LiveDemo": "Demo uživo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> koristeći svoj ABP račun, <a href=\"{2}\">{3}</a> na abp.io.<br/> Ili ispunite obrazac u nastavku da sada napravite demo uživo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> koristeći svoj ABP račun, <a href=\"{2}\">{3}</a> na abp.io. Ili ispunite obrazac u nastavku da sada napravite demo uživo",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Već postoji račun s navedenom adresom e-pošte: <b>{0}</b><br/> Za nastavak se možete prijaviti svojim računom.",
"GetLicence": "Nabavite licencu",
"Application": "Primjena",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json

@ -49,7 +49,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Teljes</span><span class=\"second-line\"> webfejlesztői platform</span><span class=\"third-line\">beépített <img src= \"{0}\" width=\"110\" class=\"ml-1\" /> keretrendszer</span>",
"AbpCommercialShortDescription": "Az ABP Commercial előre beépített alkalmazásmodulokat, gyors alkalmazásfejlesztési eszközöket, professzionális felhasználói felületi témákat, prémium támogatást és még sok mást kínál.",
"LiveDemo": "Élő Demo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> az ABP-fiókjával, <a href=\"{2}\">{3}</a> az abp.io-ra.<br/>Vagy töltse ki az alábbi űrlapot, hogy most létrehozzon egy élő bemutatót",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> az ABP-fiókjával, <a href=\"{2}\">{3}</a> az abp.io-ra. Vagy töltse ki az alábbi űrlapot, hogy most létrehozzon egy élő bemutatót",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Már van fiók a megadott e-mail címmel: <b>{0}</b><br/> Bejelentkezhet a fiókjával a folytatáshoz.",
"GetLicence": "Szerezzen engedélyt",
"Application": "Alkalmazás",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Heilstætt</span><span class=\"second-line\"> vefþróunar umhverfi </span><span class=\"third-line\">byggt á <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> ABP</span>",
"AbpCommercialShortDescription": "ABP Commercial býður upp á forsmíðaðar forritareiningar, tól sem hraða þróun, fagmanlega hannaðar UI þemur, úrvals stuðning og fleira.",
"LiveDemo": "Virkt sýnidæmi",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> með þínum ABP reikningi, <a href=\"{2}\">{3}</a> til abp.io.<br/>Eða fylltu út formið hér að neðan til að búa til virkt sýnidæmi núna",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> með þínum ABP reikningi, <a href=\"{2}\">{3}</a> til abp.io. Eða fylltu út formið hér að neðan til að búa til virkt sýnidæmi núna",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Það er nú þegar reikningur með þessu netfangi: <b>{0}</b><br/> Þú getur skráð þig inn með þínum reikningi til að halda áfram.",
"GetLicence": "Sækja Leyfi",
"Application": "Umsókn",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\"> Una completa </span><span class=\"second-line\"> piattaforma di sviluppo web </span><span class=\"third-line\"> integrata <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> framework </span>",
"AbpCommercialShortDescription": "ABP Commercial fornisce moduli applicativi predefiniti, strumenti per lo sviluppo rapido di applicazioni, temi dell'interfaccia utente professionale, supporto premium e altro ancora.",
"LiveDemo": "Dimostrazione dal vivo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> utilizzando il tuo account ABP, <a href=\"{2}\">{3}</a> a abp.io.<br/>O compilare il modulo sottostante per creare una demo live ora",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> utilizzando il tuo account ABP, <a href=\"{2}\">{3}</a> a abp.io. O compilare il modulo sottostante per creare una demo live ora",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Esiste già un account con l'indirizzo email specificato: <b>{0}</b><br/> Puoi accedere con il tuo account per procedere.",
"GetLicence": "Ottieni una licenza",
"Application": "Applicazione",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Een compleet</span><span class=\"second-line\"> webontwikkelingsplatform</span><span class=\"third-line\">ingebouwd <img src= \"{0}\" width=\"110\" class=\"ml-1\" /> raamwerk</span>",
"AbpCommercialShortDescription": "ABP Commercial biedt kant-en-klare applicatiemodules, tooling voor snelle applicatieontwikkeling, professionele UI-thema's, premium ondersteuning en meer.",
"LiveDemo": "Live demonstratie",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> met behulp van uw ABP-account, <a href=\"{2}\">{3}</a> naar abp.io.<br/>Of vul het onderstaande formulier in om nu een live demo te maken",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> met behulp van uw ABP-account, <a href=\"{2}\">{3}</a> naar abp.io. Of vul het onderstaande formulier in om nu een live demo te maken",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Er is al een account met het opgegeven e-mailadres: <b>{0}</b><br/> U kunt inloggen met uw account om door te gaan.",
"GetLicence": "Verkrijg een licentie",
"Application": "Sollicitatie",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">A complete</span><span class=\"second-line\"> web development platform</span><span class=\"third-line\">built-on <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> framework</span>",
"AbpCommercialShortDescription": "ABP Commercial zapewnia gotowe moduły aplikacji, narzędzia do szybkiego tworzenia aplikacji, profesjonalne motywy interfejsu użytkownika, wsparcie premium i nie tylko.",
"LiveDemo": "Demo na żywo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> korzystając z konta ABP, <a href=\"{2}\">{3}</a> to abp.io.<br/>Lub wypełnij poniższy formularz, aby utworzyć teraz demo na żywo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> korzystając z konta ABP, <a href=\"{2}\">{3}</a> to abp.io. Lub wypełnij poniższy formularz, aby utworzyć teraz demo na żywo",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Istnieje już konto o podanym adresie e-mail: <b>{0}</b><br/> Możesz się zalogować na swoje konto, aby kontynuować.",
"GetLicence": "Uzyskaj licencję",
"Application": "Podanie",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\"> Uma completa </span> <span class=\"second-line\"> plataforma de desenvolvimento web </span> <span class=\"third-line\"> integrada <img src=\"{0}\" width = \"110\" class=\"ml-1\" /> estrutura </span>",
"AbpCommercialShortDescription": "ABP Commercial fornece módulos de aplicativos pré-construídos, ferramentas de desenvolvimento rápido de aplicativos, temas de UI profissionais, suporte premium e muito mais.",
"LiveDemo": "Demonstração ao vivo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> usando sua conta ABP, <a href=\"{2}\">{3}</a> para abp.io.<br/>Ou preencha o formulário abaixo para criar uma demonstração ao vivo agora",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> usando sua conta ABP, <a href=\"{2}\">{3}</a> para abp.io. Ou preencha o formulário abaixo para criar uma demonstração ao vivo agora",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Já existe uma conta com o endereço de e-mail fornecido: <b>{0}</b><br/> Você pode fazer login com sua conta para continuar.",
"GetLicence": "Obtenha uma licença",
"Application": "Aplicativo",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">A complete</span><span class=\"second-line\"> web development platform</span><span class=\"third-line\">built-on <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> framework</span>",
"AbpCommercialShortDescription": "ABP Commercial oferă module de aplicaţii pre-construite, instrumente de dezvoltare rapidă a aplicaţiilor, teme UI profesionale, asistenţă premium şi multe altele.",
"LiveDemo": "Live Demo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> folosind contul ABP, <a href=\"{2}\">{3}</a> la abp.io.<br/>Sau completaţi formularul de mai jos pentru a crea un demo live acum",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> folosind contul ABP, <a href=\"{2}\">{3}</a> la abp.io. Sau completaţi formularul de mai jos pentru a crea un demo live acum",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Există deja un cont cu adresa de email specificată: <b>{0}</b><br/> Puteţi să vă autentificaţi cu contul dumneavoastră pentru a continua.",
"GetLicence": "Obţine o licenţă",
"Application": "Application",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json

@ -49,7 +49,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Полный</span><span class=\"second-line\"> платформа веб-разработки</span><span class=\"third-line\">построен на <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> рамки</span>",
"AbpCommercialShortDescription": "ABP Commercial предоставляет готовые модули приложений, инструменты для быстрой разработки приложений, профессиональные темы пользовательского интерфейса, премиальную поддержку и многое другое.",
"LiveDemo": "Живая демонстрация",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> используя свою учетную запись ABP, <a href=\"{2}\">{3}</a> на abp.io.<br/>Или заполните форму ниже, чтобы создать живую демо-версию прямо сейчас",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> используя свою учетную запись ABP, <a href=\"{2}\">{3}</a> на abp.io. Или заполните форму ниже, чтобы создать живую демо-версию прямо сейчас",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Уже существует учетная запись с данным адресом электронной почты: <b>{0}</b><br/> Вы можете войти в свою учетную запись, чтобы продолжить.",
"GetLicence": "Получить лицензию",
"Application": "Приложение",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Kompletná</span><span class=\"second-line\"> web vývojová platforma</span><span class=\"third-line\">postavená na <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> frameworku</span>",
"AbpCommercialShortDescription": "ABP Commercial poskytuje predpripravené aplikačné moduly, nástroje na rýchly vývoj aplikácií, profesionálne témy používateľského rozhrania, prémiovú podporu a ďalšie.",
"LiveDemo": "Live ukážka",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> použitím vášho ABP účtu, <a href=\"{2}\">{3}</a> na abp.io.<br/>Alebo vyplňte nižšie uvedený formulár a vytvorte si teraz live ukážku",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> použitím vášho ABP účtu, <a href=\"{2}\">{3}</a> na abp.io. Alebo vyplňte nižšie uvedený formulár a vytvorte si teraz live ukážku",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Už existuje účet s danou emailovou adresou: <b>{0}</b><br/> Môžete sa prihlásiť pomocou svojho účtu a pokračovať.",
"GetLicence": "Získajte licenciu",
"Application": "Aplikácia",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">Popolna</span><span class=\"second-line\"> platforma za spletno razvoj</span><span class=\"third-line\">vgrajena <img src= \"{0}\" width=\"110\" class=\"ml-1\" /> okvir</span>",
"AbpCommercialShortDescription": "ABP Commercial ponuja vnaprej izdelane aplikacijske module, orodja za hiter razvoj aplikacij, profesionalne teme uporabniškega vmesnika, vrhunsko podporo in še več.",
"LiveDemo": "Demo v živo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> s svojim ABP računom, <a href=\"{2}\">{3}</a> na abp.io.<br/>Ali izpolnite spodnji obrazec, da ustvarite demo v živo zdaj",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> s svojim ABP računom, <a href=\"{2}\">{3}</a> na abp.io. Ali izpolnite spodnji obrazec, da ustvarite demo v živo zdaj",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Za navedeni e-poštni naslov že obstaja račun: <b>{0}</b><br/> Lahko se prijavite s svojim računom, da nadaljujete.",
"GetLicence": "Pridobite licenco",
"Application": "Aplikacija",

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

@ -48,7 +48,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">A complete</span><span class=\"second-line\"> web development platform</span><span class=\"third-line\">built-on <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> framework</span>",
"AbpCommercialShortDescription": "ABP Commercial, önceden oluşturulmuş uygulama modülleri, hızlı uygulama geliştirme araçları, profesyonel UI temaları, premium destek ve daha fazlasını sağlar.",
"LiveDemo": "Canlı Demo",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> ABP hesabınızı kullanarak, <a href=\"{2}\">{3}</a> abp.io'ya hoş geldiniz.<br/>Veya aşağıdaki formu doldurarak şimdi canlı bir demo oluşturun",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> ABP hesabınızı kullanarak, <a href=\"{2}\">{3}</a> abp.io'ya hoş geldiniz. Veya aşağıdaki formu doldurarak şimdi canlı bir demo oluşturun",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Zaten <b>{0}</b> e-posta adresiyle bir hesap var.<br/> Devam etmek için hesabınızla giriş yapabilirsiniz.",
"GetLicence": "Lisans Alın",
"Application": "Başvuru",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json

@ -46,7 +46,7 @@
"IndexPageHeroSection": "<span class=\"first-line\"> Nền tảng phát triển web hoàn chỉnh </span> <span class=\"second-line\"> </span> <span class=\"third-line\"> được tích hợp sẵn <img src=\"{0}\" width = \"110\" class=\"ml-1\" /> khung </span>",
"AbpCommercialShortDescription": "ABP Commercial cung cấp các mô-đun ứng dụng được tạo sẵn, công cụ phát triển ứng dụng nhanh chóng, các chủ đề giao diện người dùng chuyên nghiệp, hỗ trợ cao cấp và hơn thế nữa.",
"LiveDemo": "Bản thử trực tiếp",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> hoặc <a href=\"{2}\">{3}</a> đến abp.io. <br/> Hoặc điền vào biểu mẫu bên dưới để tạo bản trình diễn trực tiếp ngay bây giờ",
"LiveDemoLead": "<a href=\"{0}\">{1}</a> hoặc <a href=\"{2}\">{3}</a> đến abp.io. Hoặc điền vào biểu mẫu bên dưới để tạo bản trình diễn trực tiếp ngay bây giờ",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Đã có một tài khoản với địa chỉ email đã cho: <b> {0} </b> <br/> Bạn có thể đăng nhập vào tài khoản của mình để tiếp tục.",
"GetLicence": "Nhận giấy phép",
"Application": "Ứng dụng",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json

@ -48,7 +48,7 @@
"IndexPageHeroSection": "<span class=\"first-line\">一個完整的</span><span class=\"second-line\">web開發平臺</span><span class=\"third-line\">基於 <img src=\"{0}\" width=\"110\" class=\"ml-1\" /> 框架</span>",
"AbpCommercialShortDescription": "ABP商業版提供了預構建的應用程序模塊, 快速的應用程序開發工具, 專業的UI主題, 高級支持等.",
"LiveDemo": "在線演示",
"LiveDemoLead": " <a href=\"{0}\">{1}</a> 使用你的ABP賬號, <a href=\"{2}\">{3}</a> 到 abp.io.<br/>或者填寫下面的表單立即創建一個在線演示",
"LiveDemoLead": " <a href=\"{0}\">{1}</a> 使用你的ABP賬號, <a href=\"{2}\">{3}</a> 到 abp.io. 或者填寫下面的表單立即創建一個在線演示",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "已經有一個使用該電子郵件地址的賬號: <b>{0}</b><br/> 你可以使用你的賬號登錄以繼續.",
"GetLicence": "獲得許可",
"Application": "應用程序",

2
docs/en/Multi-Lingual-Entities.md

@ -3,4 +3,4 @@
This feature is still under development.
Follow the below link to get information about the development status
https://github.com/abpframework/abp/issues/1169
https://github.com/abpframework/abp/issues/11698

2
docs/en/Testing.md

@ -122,7 +122,7 @@ namespace MyProject.Issues
throw new IssueStateException("You can not open a locked issue!");
}
IsClosed = true;
IsClosed = false;
CloseDate = null;
}
}

48
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js

@ -163,10 +163,10 @@
}
}
function convertToMoment(value, options, dateFormat) {
function convertToMoment(value, options, dateFormat, isUtc) {
if(!value) {
// invalid date
return moment('');
return moment.invalid();
}
options = options || {};
@ -174,32 +174,22 @@
if (typeof value === 'string') {
for(var format of formats) {
var date = moment(value, format);
var date = isUtc ? moment.utc(value, format) : moment(value, format);
if(date.isValid()) {
return maybeUtc(date, options);
return date;
}
}
}
if (value.isAbpDate) {
return maybeUtc(value._moment.clone(), options);
return value._moment.clone();
}
if(value.isLuxonDateTime) {
return maybeUtc(moment(value.toISO()), options);
return isUtc ? moment.utc(value.toISO()) : moment(value.toISO());
}
return maybeUtc(moment(value), options);
}
function maybeUtc(date, options) {
if (options.isUtc) {
date = date.utc();
}else{
date = date.local();
}
return date;
return isUtc ? moment.utc(value) : moment(value);
}
function getTodayButton(options, $dateRangePicker) {
@ -430,6 +420,11 @@
function formatHiddenDate(date, options) {
date = convertToMoment(date, options, options.inputDateFormat);
if (date.isValid()) {
if (options.isUtc) {
date = date.utc();
}else{
date = date.local();
}
if (options.isIso) {
return date.toISOString();
}
@ -438,6 +433,15 @@
return '';
}
function createInitialAbpDate(date, options) {
date = convertToMoment(date, options, undefined, options.isUtc);
if (options.isUtc) {
date = date.local();
}
return AbpDate(date, options);
}
abp.dom.initializers.initializeDateRangePickers = function ($rootElement) {
$rootElement
@ -463,10 +467,10 @@
var singleOpenAndClearButton = options.singleOpenAndClearButton && $clearButton.length > 0 && $openButton.length > 0;
var startDate = AbpDate(options.startDate || options.date || (options.autoUpdateInput ? new Date() : undefined), options);
var startDate = createInitialAbpDate(options.startDate || options.date || (options.autoUpdateInput ? new Date() : undefined), options);
var oldStartDate = AbpDate(undefined, options);
var endDate = AbpDate(options.endDate || undefined, options);
var endDate = createInitialAbpDate(options.endDate || (options.autoUpdateInput ? new Date() : undefined), options);
var oldEndDate = AbpDate(undefined, options);
options.startDate = convertToMoment(startDate, options);
@ -705,6 +709,10 @@
});
}
abp.dom.onNodeAdded(function (args) {
abp.dom.initializers.initializeDateRangePickers(args.$el);
});
$(function () {
abp.dom.initializers.initializeDateRangePickers($('body'));
});

1
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs

@ -58,6 +58,7 @@ public class AbpCliCoreModule : AbpModule
options.Commands[SwitchToPreviewCommand.Name] = typeof(SwitchToPreviewCommand);
options.Commands[SwitchToStableCommand.Name] = typeof(SwitchToStableCommand);
options.Commands[SwitchToNightlyCommand.Name] = typeof(SwitchToNightlyCommand);
options.Commands[SwitchToPreRcCommand.Name] = typeof(SwitchToPreRcCommand);
options.Commands[SwitchToLocal.Name] = typeof(SwitchToLocal);
options.Commands[TranslateCommand.Name] = typeof(TranslateCommand);
options.Commands[BuildCommand.Name] = typeof(BuildCommand);

45
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToPreRcCommand.cs

@ -0,0 +1,45 @@
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.ProjectModification;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.Commands;
public class SwitchToPreRcCommand : IConsoleCommand, ITransientDependency
{
public const string Name = "switch-to-prerc";
private readonly PackagePreviewSwitcher _packagePreviewSwitcher;
public SwitchToPreRcCommand(PackagePreviewSwitcher packagePreviewSwitcher)
{
_packagePreviewSwitcher = packagePreviewSwitcher;
}
public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
{
await _packagePreviewSwitcher.SwitchToPreRc(commandLineArgs);
}
public string GetUsageInfo()
{
var sb = new StringBuilder();
sb.AppendLine("");
sb.AppendLine("Usage:");
sb.AppendLine(" abp switch-to-prerc [options]");
sb.AppendLine("");
sb.AppendLine("Options:");
sb.AppendLine("-d|--directory");
sb.AppendLine("");
sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI");
return sb.ToString();
}
public string GetShortDescription()
{
return "Switches npm packages to pre-rc ABP version.";
}
}

33
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

@ -53,7 +53,7 @@ public class NpmPackagesUpdater : ITransientDependency
public async Task Update(string rootDirectory, bool includePreviews = false,
bool includeReleaseCandidates = false,
bool switchToStable = false, string version = null)
bool switchToStable = false, string version = null, bool includePreRc = false)
{
var fileList = _packageJsonFileFinder.Find(rootDirectory);
@ -66,7 +66,7 @@ public class NpmPackagesUpdater : ITransientDependency
foreach (var file in fileList)
{
if (includePreviews)
if (includePreviews || includePreRc)
{
await CreateNpmrcFileAsync(Path.GetDirectoryName(file));
}
@ -82,7 +82,9 @@ public class NpmPackagesUpdater : ITransientDependency
{
var updated = await UpdatePackagesInFile(file, includePreviews, includeReleaseCandidates,
switchToStable,
version);
version,
includePreRc);
packagesUpdated.TryAdd(file, updated);
}
@ -162,7 +164,8 @@ public class NpmPackagesUpdater : ITransientDependency
bool includePreviews = false,
bool includeReleaseCandidates = false,
bool switchToStable = false,
string specifiedVersion = null)
string specifiedVersion = null,
bool includePreRc = false)
{
var packagesUpdated = false;
var fileContent = File.ReadAllText(filePath);
@ -177,7 +180,7 @@ public class NpmPackagesUpdater : ITransientDependency
foreach (var abpPackage in abpPackages)
{
var updated = await TryUpdatingPackage(filePath, abpPackage, includePreviews, includeReleaseCandidates,
switchToStable, specifiedVersion);
switchToStable, specifiedVersion, includePreRc);
if (updated)
{
@ -198,7 +201,8 @@ public class NpmPackagesUpdater : ITransientDependency
bool includePreviews = false,
bool includeReleaseCandidates = false,
bool switchToStable = false,
string specifiedVersion = null)
string specifiedVersion = null,
bool includePreRc = false)
{
var currentVersion = (string)package.Value;
@ -221,7 +225,11 @@ public class NpmPackagesUpdater : ITransientDependency
}
else
{
if ((includePreviews ||
if (includePreRc && !includeReleaseCandidates)
{
version = await GetLatestVersion(package, includePreRc: true, workingDirectory: filePath.RemovePostFix("package.json"));
}
else if ((includePreviews ||
(!switchToStable && (currentVersion != null && currentVersion.Contains("-preview")))) &&
!includeReleaseCandidates)
{
@ -262,9 +270,10 @@ public class NpmPackagesUpdater : ITransientDependency
return version.Split("-", StringSplitOptions.RemoveEmptyEntries).Length > 1;
}
protected virtual async Task<string> GetLatestVersion(JProperty package, bool includeReleaseCandidates = false, bool includePreviews = false, string workingDirectory = null)
protected virtual async Task<string> GetLatestVersion(JProperty package, bool includeReleaseCandidates = false, bool includePreviews = false, string workingDirectory = null, bool includePreRc = false)
{
var key = package.Name + (includePreviews ? "(preview)" : string.Empty);
var postfix = includePreviews ? "(preview)" : (includePreRc ? "(prerc)" : string.Empty);
var key = package.Name + postfix;
if (_fileVersionStorage.ContainsKey(key))
{
@ -275,7 +284,11 @@ public class NpmPackagesUpdater : ITransientDependency
string newVersion = string.Empty;
if (includePreviews)
if (includePreRc)
{
newVersion = versionList.FirstOrDefault(v => v.Contains("-prerc"));
}
else if (includePreviews)
{
newVersion = versionList.FirstOrDefault(v => v.Contains("-preview"));
}

110
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs

@ -44,6 +44,52 @@ public class PackagePreviewSwitcher : ITransientDependency
await SwitchProjectsToPreview(projectPaths);
}
}
public async Task SwitchToStable(CommandLineArgs commandLineArgs)
{
var solutionPaths = GetSolutionPaths(commandLineArgs);
if (solutionPaths.Any())
{
await SwitchSolutionsToStable(solutionPaths);
}
else
{
var projectPaths = GetProjectPaths(commandLineArgs);
await SwitchProjectsToStable(projectPaths);
}
}
public async Task SwitchToNightlyPreview(CommandLineArgs commandLineArgs)
{
var solutionPaths = GetSolutionPaths(commandLineArgs);
if (solutionPaths.Any())
{
await SwitchSolutionsToNightlyPreview(solutionPaths);
}
else
{
var projectPaths = GetProjectPaths(commandLineArgs);
await SwitchProjectsToNightlyPreview(projectPaths);
}
}
public async Task SwitchToPreRc(CommandLineArgs commandLineArgs)
{
var solutionPaths = GetSolutionPaths(commandLineArgs);
if (solutionPaths.Any())
{
await SwitchNpmPackageVersionsOfSolutionsToPreRc(solutionPaths);
}
else
{
await SwitchNpmPackageVersionsOfProjectsToPreRc(GetProjectPaths(commandLineArgs));
}
}
private async Task SwitchProjectsToPreview(List<string> projects)
{
@ -88,22 +134,6 @@ public class PackagePreviewSwitcher : ITransientDependency
}
}
public async Task SwitchToStable(CommandLineArgs commandLineArgs)
{
var solutionPaths = GetSolutionPaths(commandLineArgs);
if (solutionPaths.Any())
{
await SwitchSolutionsToStable(solutionPaths);
}
else
{
var projectPaths = GetProjectPaths(commandLineArgs);
await SwitchProjectsToStable(projectPaths);
}
}
private async Task SwitchProjectsToStable(List<string> projects)
{
foreach (var project in projects)
@ -156,22 +186,6 @@ public class PackagePreviewSwitcher : ITransientDependency
}
}
public async Task SwitchToNightlyPreview(CommandLineArgs commandLineArgs)
{
var solutionPaths = GetSolutionPaths(commandLineArgs);
if (solutionPaths.Any())
{
await SwitchSolutionsToNightlyPreview(solutionPaths);
}
else
{
var projectPaths = GetProjectPaths(commandLineArgs);
await SwitchProjectsToNightlyPreview(projectPaths);
}
}
private async Task SwitchProjectsToNightlyPreview(List<string> projects)
{
foreach (var project in projects)
@ -220,6 +234,38 @@ public class PackagePreviewSwitcher : ITransientDependency
}
}
}
private async Task SwitchNpmPackageVersionsOfProjectsToPreRc(List<string> projects)
{
foreach (var project in projects)
{
var folder = Path.GetDirectoryName(project);
await _npmPackagesUpdater.Update(
folder,
includePreRc: true);
}
}
private async Task SwitchNpmPackageVersionsOfSolutionsToPreRc(List<string> solutionPaths)
{
foreach (var solutionPath in solutionPaths)
{
var solutionFolder = Path.GetDirectoryName(solutionPath);
var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder);
await _npmPackagesUpdater.Update(
solutionFolder,
includePreRc: true);
if (solutionAngularFolder != null)
{
await _npmPackagesUpdater.Update(
solutionAngularFolder,
includePreRc: true);
}
}
}
private List<string> GetSolutionPaths(CommandLineArgs commandLineArgs)
{

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor

@ -62,7 +62,7 @@
@foreach (var permission in group.Permissions)
{
<Field Style="@($"margin-inline-start: {_permissionDepths[permission.Name] * 20}px")">
<Field Style="@($"margin-inline-start: {GetPermissionDepthOrDefault(permission.Name) * 20}px")">
<Check
Disabled="@(IsDisabledPermission(permission))"
Cursor="Cursor.Pointer"

5
modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

@ -182,6 +182,11 @@ public partial class PermissionManagementModal
}
}
}
protected virtual int GetPermissionDepthOrDefault(string name)
{
return _permissionDepths.GetValueOrDefault(name, 0);
}
protected virtual void GroupGrantAllChanged(bool value, PermissionGroupDto permissionGroup)
{

Loading…
Cancel
Save