Browse Source

Merge branch 'dev' into issue-3813

pull/19282/head
oykuermann 3 years ago
parent
commit
40c5575f67
  1. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json
  2. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json
  3. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json
  4. 7
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json
  5. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json
  6. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json
  7. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json
  8. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json
  9. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hr.json
  10. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json
  11. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json
  12. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json
  13. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json
  14. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json
  15. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json
  16. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json
  17. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ru.json
  18. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json
  19. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json
  20. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json
  21. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json
  22. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json
  23. 3
      common.props
  24. 3
      docs/en/Dependency-Injection.md
  25. 34
      docs/en/UI/Angular/HTTP-Error-Handling.md
  26. 2
      docs/en/docs-nav.json
  27. 2
      docs/zh-Hans/Modules/Tenant-Management.md
  28. 15
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor
  29. 16
      framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantChangedEvent.cs
  30. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js
  31. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js
  32. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js
  33. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js
  34. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js
  35. BIN
      modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png
  36. BIN
      modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png
  37. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json
  38. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json
  39. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de-DE.json
  40. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json
  41. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json
  42. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
  43. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json
  44. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fa.json
  45. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json
  46. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json
  47. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json
  48. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json
  49. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json
  50. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json
  51. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json
  52. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json
  53. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json
  54. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json
  55. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json
  56. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json
  57. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json
  58. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json
  59. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json
  60. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json
  61. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json
  62. 2
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json
  63. 2
      modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj
  64. 2
      modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
  65. 20
      modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs
  66. 22
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs
  67. 2
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs
  68. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs
  69. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor.cs
  70. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json
  71. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json
  72. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json
  73. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json
  74. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json
  75. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en-GB.json
  76. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json
  77. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json
  78. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fa.json
  79. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json
  80. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json
  81. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json
  82. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json
  83. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json
  84. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json
  85. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json
  86. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json
  87. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json
  88. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json
  89. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json
  90. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json
  91. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json
  92. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json
  93. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json
  94. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json
  95. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json
  96. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json
  97. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js
  98. 11
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs
  99. 18
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantConfigurationCacheItemInvalidator.cs
  100. 12
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا السحب؟", "RaffleDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا السحب؟",
"CreateRaffle": "إنشاء السحب", "CreateRaffle": "إنشاء السحب",
"RemoveImage": "إزالة الصورة", "RemoveImage": "إزالة الصورة",
"SuccessfullySaved": "تم الحفظ بنجاح", "SavedSuccessfully": "تم الحفظ بنجاح",
"Menu:CommunityTalks": "محادثات المجتمع", "Menu:CommunityTalks": "محادثات المجتمع",
"Menu:Conferences": "المؤتمرات", "Menu:Conferences": "المؤتمرات",
"Menu:OtherLiveEvents": "الأحداث المباشرة الأخرى", "Menu:OtherLiveEvents": "الأحداث المباشرة الأخرى",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Opravdu chcete smazat toto slosování?", "RaffleDeletionConfirmationMessage": "Opravdu chcete smazat toto slosování?",
"CreateRaffle": "Vytvořit tombolu", "CreateRaffle": "Vytvořit tombolu",
"RemoveImage": "Odebrat obrázek", "RemoveImage": "Odebrat obrázek",
"SuccessfullySaved": "Úspěšně uloženo", "SavedSuccessfully": "Úspěšně uloženo",
"Menu:CommunityTalks": "Komunitní rozhovory", "Menu:CommunityTalks": "Komunitní rozhovory",
"Menu:Conferences": "Konference", "Menu:Conferences": "Konference",
"Menu:OtherLiveEvents": "Další živé akce", "Menu:OtherLiveEvents": "Další živé akce",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Sind Sie sicher, dass Sie dieses Gewinnspiel löschen möchten?", "RaffleDeletionConfirmationMessage": "Sind Sie sicher, dass Sie dieses Gewinnspiel löschen möchten?",
"CreateRaffle": "Gewinnspiel erstellen", "CreateRaffle": "Gewinnspiel erstellen",
"RemoveImage": "Entferne Bild", "RemoveImage": "Entferne Bild",
"SuccessfullySaved": "Erfolgreich gespeichert", "SavedSuccessfully": "Erfolgreich gespeichert",
"Menu:CommunityTalks": "Community-Gespräche", "Menu:CommunityTalks": "Community-Gespräche",
"Menu:Conferences": "Konferenzen", "Menu:Conferences": "Konferenzen",
"Menu:OtherLiveEvents": "Andere Live-Events", "Menu:OtherLiveEvents": "Andere Live-Events",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Are you sure you want to delete this raffle?", "RaffleDeletionConfirmationMessage": "Are you sure you want to delete this raffle?",
"CreateRaffle": "Create Raffle", "CreateRaffle": "Create Raffle",
"RemoveImage": "Remove Image", "RemoveImage": "Remove Image",
"SuccessfullySaved": "Successfully saved", "SavedSuccessfully": "Saved successfully",
"Menu:CommunityTalks": "Community Talks", "Menu:CommunityTalks": "Community Talks",
"Menu:Conferences": "Conferences", "Menu:Conferences": "Conferences",
"Menu:OtherLiveEvents": "Other Live Events", "Menu:OtherLiveEvents": "Other Live Events",
@ -597,6 +597,9 @@
"DontSendEmailForLicenseExpire": "Don't Send Email For License Expire", "DontSendEmailForLicenseExpire": "Don't Send Email For License Expire",
"SuccessfullyChanged": "Successfully changed", "SuccessfullyChanged": "Successfully changed",
"WinnerCountMustBeLessThanMaxWinnerCount": "Winner count must be less than max winner count", "WinnerCountMustBeLessThanMaxWinnerCount": "Winner count must be less than max winner count",
"NoChangesDetected": "No changes detected" "NoChangesDetected": "No changes detected",
"ProductCount": "Product Count",
"Actions": "Actions",
"CreateInvoice": "Create Invoice"
} }
} }

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "¿Estás seguro de que quieres eliminar este sorteo?", "RaffleDeletionConfirmationMessage": "¿Estás seguro de que quieres eliminar este sorteo?",
"CreateRaffle": "Crear sorteo", "CreateRaffle": "Crear sorteo",
"RemoveImage": "Quita la imagen", "RemoveImage": "Quita la imagen",
"SuccessfullySaved": "Guardado con éxito", "SavedSuccessfully": "Guardado con éxito",
"Menu:CommunityTalks": "Charlas comunitarias", "Menu:CommunityTalks": "Charlas comunitarias",
"Menu:Conferences": "Conferencias", "Menu:Conferences": "Conferencias",
"Menu:OtherLiveEvents": "Otros eventos en vivo", "Menu:OtherLiveEvents": "Otros eventos en vivo",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän arvonnan?", "RaffleDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän arvonnan?",
"CreateRaffle": "Luo arpajaiset", "CreateRaffle": "Luo arpajaiset",
"RemoveImage": "Poista kuva", "RemoveImage": "Poista kuva",
"SuccessfullySaved": "Tallennettu onnistuneesti", "SavedSuccessfully": "Tallennettu onnistuneesti",
"Menu:CommunityTalks": "Yhteisön keskustelut", "Menu:CommunityTalks": "Yhteisön keskustelut",
"Menu:Conferences": "Konferenssit", "Menu:Conferences": "Konferenssit",
"Menu:OtherLiveEvents": "Muut live-tapahtumat", "Menu:OtherLiveEvents": "Muut live-tapahtumat",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer ce tirage au sort ?", "RaffleDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer ce tirage au sort ?",
"CreateRaffle": "Créer un tirage au sort", "CreateRaffle": "Créer un tirage au sort",
"RemoveImage": "Supprimer l'image", "RemoveImage": "Supprimer l'image",
"SuccessfullySaved": "Enregistré avec succès", "SavedSuccessfully": "Enregistré avec succès",
"Menu:CommunityTalks": "Discussions communautaires", "Menu:CommunityTalks": "Discussions communautaires",
"Menu:Conferences": "Conférences", "Menu:Conferences": "Conférences",
"Menu:OtherLiveEvents": "Autres événements en direct", "Menu:OtherLiveEvents": "Autres événements en direct",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "क्या आप वाकई इस रैफ़ल को हटाना चाहते हैं?", "RaffleDeletionConfirmationMessage": "क्या आप वाकई इस रैफ़ल को हटाना चाहते हैं?",
"CreateRaffle": "रैफ़ल बनाएं", "CreateRaffle": "रैफ़ल बनाएं",
"RemoveImage": "छवि हटाएँ", "RemoveImage": "छवि हटाएँ",
"SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है", "SavedSuccessfully": "सफलतापूर्वक संचित कर लिया गया है",
"Menu:CommunityTalks": "सामुदायिक वार्ता", "Menu:CommunityTalks": "सामुदायिक वार्ता",
"Menu:Conferences": "सम्मेलन", "Menu:Conferences": "सम्मेलन",
"Menu:OtherLiveEvents": "अन्य लाइव इवेंट", "Menu:OtherLiveEvents": "अन्य लाइव इवेंट",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu nagradnu igru?", "RaffleDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu nagradnu igru?",
"CreateRaffle": "Napravite nagradnu igru", "CreateRaffle": "Napravite nagradnu igru",
"RemoveImage": "Ukloni sliku", "RemoveImage": "Ukloni sliku",
"SuccessfullySaved": "Uspješno spremljeno", "SavedSuccessfully": "Uspješno spremljeno",
"Menu:CommunityTalks": "Razgovori zajednice", "Menu:CommunityTalks": "Razgovori zajednice",
"Menu:Conferences": "Konferencije", "Menu:Conferences": "Konferencije",
"Menu:OtherLiveEvents": "Ostali događaji uživo", "Menu:OtherLiveEvents": "Ostali događaji uživo",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Biztosan törölni szeretnéd ezt a nyereményjátékot?", "RaffleDeletionConfirmationMessage": "Biztosan törölni szeretnéd ezt a nyereményjátékot?",
"CreateRaffle": "Hozzon létre tombolát", "CreateRaffle": "Hozzon létre tombolát",
"RemoveImage": "Kép eltávolítása", "RemoveImage": "Kép eltávolítása",
"SuccessfullySaved": "Sikeresen mentve", "SavedSuccessfully": "Sikeresen mentve",
"Menu:CommunityTalks": "Közösségi beszélgetések", "Menu:CommunityTalks": "Közösségi beszélgetések",
"Menu:Conferences": "Konferenciák", "Menu:Conferences": "Konferenciák",
"Menu:OtherLiveEvents": "Egyéb élő események", "Menu:OtherLiveEvents": "Egyéb élő események",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessari happdrætti?", "RaffleDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessari happdrætti?",
"CreateRaffle": "Búðu til happdrætti", "CreateRaffle": "Búðu til happdrætti",
"RemoveImage": "Fjarlægja mynd", "RemoveImage": "Fjarlægja mynd",
"SuccessfullySaved": "Vistað", "SavedSuccessfully": "Vistað",
"Menu:CommunityTalks": "Samfélagsspjall", "Menu:CommunityTalks": "Samfélagsspjall",
"Menu:Conferences": "Ráðstefnur", "Menu:Conferences": "Ráðstefnur",
"Menu:OtherLiveEvents": "Aðrir viðburðir í beinni", "Menu:OtherLiveEvents": "Aðrir viðburðir í beinni",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Sei sicuro di voler eliminare questa lotteria?", "RaffleDeletionConfirmationMessage": "Sei sicuro di voler eliminare questa lotteria?",
"CreateRaffle": "Crea lotteria", "CreateRaffle": "Crea lotteria",
"RemoveImage": "Rimuovi immagine", "RemoveImage": "Rimuovi immagine",
"SuccessfullySaved": "Salvato con successo", "SavedSuccessfully": "Salvato con successo",
"Menu:CommunityTalks": "Colloqui comunitari", "Menu:CommunityTalks": "Colloqui comunitari",
"Menu:Conferences": "Conferenze", "Menu:Conferences": "Conferenze",
"Menu:OtherLiveEvents": "Altri eventi dal vivo", "Menu:OtherLiveEvents": "Altri eventi dal vivo",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Weet je zeker dat je deze loterij wilt verwijderen?", "RaffleDeletionConfirmationMessage": "Weet je zeker dat je deze loterij wilt verwijderen?",
"CreateRaffle": "Maak een loterij", "CreateRaffle": "Maak een loterij",
"RemoveImage": "Afbeelding verwijderen", "RemoveImage": "Afbeelding verwijderen",
"SuccessfullySaved": "Succesvol opgeslagen", "SavedSuccessfully": "Succesvol opgeslagen",
"Menu:CommunityTalks": "Gemeenschapsgesprekken", "Menu:CommunityTalks": "Gemeenschapsgesprekken",
"Menu:Conferences": "Conferenties", "Menu:Conferences": "Conferenties",
"Menu:OtherLiveEvents": "Andere live-evenementen", "Menu:OtherLiveEvents": "Andere live-evenementen",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tę loterię?", "RaffleDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tę loterię?",
"CreateRaffle": "Utwórz loterię", "CreateRaffle": "Utwórz loterię",
"RemoveImage": "Usuń obraz", "RemoveImage": "Usuń obraz",
"SuccessfullySaved": "Pomyślnie zapisano", "SavedSuccessfully": "Pomyślnie zapisano",
"Menu:CommunityTalks": "Rozmowy społecznościowe", "Menu:CommunityTalks": "Rozmowy społecznościowe",
"Menu:Conferences": "Konferencje", "Menu:Conferences": "Konferencje",
"Menu:OtherLiveEvents": "Inne wydarzenia na żywo", "Menu:OtherLiveEvents": "Inne wydarzenia na żywo",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Tem certeza de que deseja excluir este sorteio?", "RaffleDeletionConfirmationMessage": "Tem certeza de que deseja excluir este sorteio?",
"CreateRaffle": "Criar sorteio", "CreateRaffle": "Criar sorteio",
"RemoveImage": "Remover imagem", "RemoveImage": "Remover imagem",
"SuccessfullySaved": "Salvo com sucesso", "SavedSuccessfully": "Salvo com sucesso",
"Menu:CommunityTalks": "Palestras Comunitárias", "Menu:CommunityTalks": "Palestras Comunitárias",
"Menu:Conferences": "Conferências", "Menu:Conferences": "Conferências",
"Menu:OtherLiveEvents": "Outros eventos ao vivo", "Menu:OtherLiveEvents": "Outros eventos ao vivo",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Sigur doriți să ștergeți această tombolă?", "RaffleDeletionConfirmationMessage": "Sigur doriți să ștergeți această tombolă?",
"CreateRaffle": "Creați tombolă", "CreateRaffle": "Creați tombolă",
"RemoveImage": "Eliminați imaginea", "RemoveImage": "Eliminați imaginea",
"SuccessfullySaved": "Salvat cu succes", "SavedSuccessfully": "Salvat cu succes",
"Menu:CommunityTalks": "Discuții comunitare", "Menu:CommunityTalks": "Discuții comunitare",
"Menu:Conferences": "Conferințe", "Menu:Conferences": "Conferințe",
"Menu:OtherLiveEvents": "Alte evenimente live", "Menu:OtherLiveEvents": "Alte evenimente live",

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

@ -547,7 +547,7 @@
"RaffleDeletionConfirmationMessage": "Вы уверены, что хотите удалить этот розыгрыш?", "RaffleDeletionConfirmationMessage": "Вы уверены, что хотите удалить этот розыгрыш?",
"CreateRaffle": "Создать лотерею", "CreateRaffle": "Создать лотерею",
"RemoveImage": "Удалить изображение", "RemoveImage": "Удалить изображение",
"SuccessfullySaved": "Успешно сохранено", "SavedSuccessfully": "Успешно сохранено",
"Menu:CommunityTalks": "Обсуждения сообщества", "Menu:CommunityTalks": "Обсуждения сообщества",
"Menu:Conferences": "Конференции", "Menu:Conferences": "Конференции",
"Menu:OtherLiveEvents": "Другие живые события", "Menu:OtherLiveEvents": "Другие живые события",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Naozaj chcete odstrániť túto tombolu?", "RaffleDeletionConfirmationMessage": "Naozaj chcete odstrániť túto tombolu?",
"CreateRaffle": "Vytvorenie tomboly", "CreateRaffle": "Vytvorenie tomboly",
"RemoveImage": "Odstrániť obrázok", "RemoveImage": "Odstrániť obrázok",
"SuccessfullySaved": "Úspešne uložené", "SavedSuccessfully": "Úspešne uložené",
"Menu:CommunityTalks": "Komunitné rozhovory", "Menu:CommunityTalks": "Komunitné rozhovory",
"Menu:Conferences": "konferencie", "Menu:Conferences": "konferencie",
"Menu:OtherLiveEvents": "Ďalšie živé podujatia", "Menu:OtherLiveEvents": "Ďalšie živé podujatia",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati to nagradno igro?", "RaffleDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati to nagradno igro?",
"CreateRaffle": "Ustvari nagradno igro", "CreateRaffle": "Ustvari nagradno igro",
"RemoveImage": "Odstrani sliko", "RemoveImage": "Odstrani sliko",
"SuccessfullySaved": "Uspešno shranjeno", "SavedSuccessfully": "Uspešno shranjeno",
"Menu:CommunityTalks": "Skupnostni pogovori", "Menu:CommunityTalks": "Skupnostni pogovori",
"Menu:Conferences": "konference", "Menu:Conferences": "konference",
"Menu:OtherLiveEvents": "Drugi dogodki v živo", "Menu:OtherLiveEvents": "Drugi dogodki v živo",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa xổ số này không?", "RaffleDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa xổ số này không?",
"CreateRaffle": "Tạo xổ số", "CreateRaffle": "Tạo xổ số",
"RemoveImage": "Xóa hình ảnh", "RemoveImage": "Xóa hình ảnh",
"SuccessfullySaved": "Lưu thành công", "SavedSuccessfully": "Lưu thành công",
"Menu:CommunityTalks": "Tọa đàm cộng đồng", "Menu:CommunityTalks": "Tọa đàm cộng đồng",
"Menu:Conferences": "Hội nghị", "Menu:Conferences": "Hội nghị",
"Menu:OtherLiveEvents": "Sự kiện trực tiếp khác", "Menu:OtherLiveEvents": "Sự kiện trực tiếp khác",

2
abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "您确定要删除这次抽奖吗?", "RaffleDeletionConfirmationMessage": "您确定要删除这次抽奖吗?",
"CreateRaffle": "创建抽奖活动", "CreateRaffle": "创建抽奖活动",
"RemoveImage": "移除图像", "RemoveImage": "移除图像",
"SuccessfullySaved": "成功保存", "SavedSuccessfully": "成功保存",
"Menu:CommunityTalks": "社区讲座", "Menu:CommunityTalks": "社区讲座",
"Menu:Conferences": "会议", "Menu:Conferences": "会议",
"Menu:OtherLiveEvents": "其他现场活动", "Menu:OtherLiveEvents": "其他现场活动",

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

@ -533,7 +533,7 @@
"RaffleDeletionConfirmationMessage": "您確定要刪除此抽獎嗎?", "RaffleDeletionConfirmationMessage": "您確定要刪除此抽獎嗎?",
"CreateRaffle": "創建抽獎活動", "CreateRaffle": "創建抽獎活動",
"RemoveImage": "刪除影像", "RemoveImage": "刪除影像",
"SuccessfullySaved": "保存成功", "SavedSuccessfully": "保存成功",
"Menu:CommunityTalks": "社區講座", "Menu:CommunityTalks": "社區講座",
"Menu:Conferences": "會議", "Menu:Conferences": "會議",
"Menu:OtherLiveEvents": "其他現場活動", "Menu:OtherLiveEvents": "其他現場活動",

3
common.props

@ -1,7 +1,8 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>8.2.0</Version> <Version>8.2.0-preview</Version>
<LeptonXVersion>3.2.0-preview</LeptonXVersion>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn> <NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<PackageIconUrl>https://abp.io/assets/abp_nupkg.png</PackageIconUrl> <PackageIconUrl>https://abp.io/assets/abp_nupkg.png</PackageIconUrl>
<PackageProjectUrl>https://abp.io/</PackageProjectUrl> <PackageProjectUrl>https://abp.io/</PackageProjectUrl>

3
docs/en/Dependency-Injection.md

@ -129,6 +129,7 @@ If you do not specify which services to expose, ABP expose services by conventio
* The class itself is exposed by default. That means you can inject it by ``TaxCalculator`` class. * The class itself is exposed by default. That means you can inject it by ``TaxCalculator`` class.
* Default interfaces are exposed by default. Default interfaces are determined by naming convention. In this example, ``ICalculator`` and ``ITaxCalculator`` are default interfaces of ``TaxCalculator``, but ``ICanCalculate`` is not. A generic interface (e.g. `ICalculator<string>`) is also considered as a default interface if the naming convention is satisfied. * Default interfaces are exposed by default. Default interfaces are determined by naming convention. In this example, ``ICalculator`` and ``ITaxCalculator`` are default interfaces of ``TaxCalculator``, but ``ICanCalculate`` is not. A generic interface (e.g. `ICalculator<string>`) is also considered as a default interface if the naming convention is satisfied.
* The resolved instances will be the same if multiple services are exposed for **Singleton** and **Scoped** services. This behavior requires exposing the class itself.
### Combining All Together ### Combining All Together
@ -566,4 +567,4 @@ Startup templates come with Autofac installed. See [Autofac integration](Autofac
## See Also ## See Also
* [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96) * [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96)
* [Video tutorial](https://abp.io/video-courses/essentials/dependency-injection) * [Video tutorial](https://abp.io/video-courses/essentials/dependency-injection)

34
docs/en/UI/Angular/HTTP-Error-Handling.md

@ -1,8 +1,40 @@
# HTTP Error Handling # HTTP Error Handling
When the `RestService` is used, all HTTP errors are reported to the [`HttpErrorReporterService`](./HTTP-Error-Reporter-Service), and then `ErrorHandler`, a service exposed by the `@abp/ng.theme.shared` package automatically handles the errors. ### Error Configurations
ABP offers a configurations for errors handling like below
```ts
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { MyCustomRouteErrorComponent } from './my-custom-route.component';
@NgModule({
imports: [
ThemeSharedModule.forRoot({
httpErrorConfig: {
skipHandledErrorCodes: [403],
errorScreen: {
forWhichErrors: [404],
component: CustomErrorComponent,
hideCloseIcon: false
}
}
}),
...
],
})
export class AppModule {}
```
- `ErrorScreenErrorCodes` the error codes that you can pass to `skipHandledErrorCodes` and `forWhichErrors`.
- `skipHandledErrorCodes` the error codes those you don't want to handle it.
- `errorScreen` the screen that you want to show when a route error occurs.
- `component` component that you want to show.
- `forWhichErrors` same as `ErrorScreenErrorCodes`
- `hideCloseIcon` hides close icon in default ABP component.
## Custom HTTP Error Handler ## Custom HTTP Error Handler
When the `RestService` is used, all HTTP errors are reported to the [`HttpErrorReporterService`](./HTTP-Error-Reporter-Service), and then `ErrorHandler`, a service exposed by the `@abp/ng.theme.shared` package automatically handles the errors.
### Function Method `Deprecated` ### Function Method `Deprecated`

2
docs/en/docs-nav.json

@ -1059,7 +1059,7 @@
"path": "UI/Angular/HTTP-Requests.md" "path": "UI/Angular/HTTP-Requests.md"
}, },
{ {
"text": "HTTP Error Handling / Customization", "text": "Customize Error Handling",
"path": "UI/Angular/HTTP-Error-Handling.md" "path": "UI/Angular/HTTP-Error-Handling.md"
} }
] ]

2
docs/zh-Hans/Modules/Tenant-Management.md

@ -16,7 +16,7 @@
### 源代码 ### 源代码
可以 [在此处](https://github.com/abpframework/abp/tree/dev/modules/identity) 访问源代码。源代码使用 [MIT](https://choosealicense.com/licenses/mit/) 许可, 所以你可以免费使用和自定义它. 可以 [在此处](https://github.com/abpframework/abp/tree/dev/modules/tenant-management) 访问源代码。源代码使用 [MIT](https://choosealicense.com/licenses/mit/) 许可, 所以你可以免费使用和自定义它.
## 用户界面 ## 用户界面

15
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor

@ -1,11 +1,24 @@
@using Blazorise @using Blazorise
@using Microsoft.Extensions.Options @using Microsoft.Extensions.Options
@using Microsoft.AspNetCore.Components.Web
@using Volo.Abp.Ui.Branding
@inject IOptions<PageHeaderOptions> Options @inject IOptions<PageHeaderOptions> Options
@inject IBrandingProvider BrandingProvider
<Row Class="entry-row"> <Row Class="entry-row">
@if (PageLayout.Title.IsNullOrEmpty())
{
<PageTitle>@BrandingProvider.AppName</PageTitle>
}
else
{
<PageTitle>@PageLayout.Title | @BrandingProvider.AppName</PageTitle>
}
@if(Options.Value.RenderPageTitle) @if(Options.Value.RenderPageTitle)
{ {
<Column ColumnSize="ColumnSize.IsAuto"> <Column ColumnSize="ColumnSize.IsAuto">
<h1 class="content-header-title">@PageLayout.Title</h1> <h1 class="content-header-title">@PageLayout.Title</h1>
</Column> </Column>

16
framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantChangedEvent.cs

@ -0,0 +1,16 @@
using System;
namespace Volo.Abp.MultiTenancy;
[Serializable]
public class TenantChangedEvent
{
public Guid? Id { get; set; }
public string? NormalizedName { get; set; }
public TenantChangedEvent(Guid? id = null, string? normalizedName = null)
{
Id = id;
NormalizedName = normalizedName;
}
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/create.js

@ -165,7 +165,7 @@ $(function () {
} }
function finishSaving() { function finishSaving() {
abp.notify.success(l('SuccessfullySaved')); abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy(); abp.ui.clearBusy();
location.href = "../BlogPosts"; location.href = "../BlogPosts";
} }

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js

@ -95,7 +95,7 @@ $(function () {
.draft(data.record.id) .draft(data.record.id)
.then(function () { .then(function () {
dataTable.ajax.reloadEx(); dataTable.ajax.reloadEx();
abp.notify.success(l('SuccessfullySaved')); abp.notify.success(l('SavedSuccessfully'));
checkHasBlogPostWaitingForReview(); checkHasBlogPostWaitingForReview();
}); });
} }

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js

@ -134,7 +134,7 @@ $(function () {
} }
function finishSaving(result) { function finishSaving(result) {
abp.notify.success(l('SuccessfullySaved')); abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy(); abp.ui.clearBusy();
location.href = "../../BlogPosts"; location.href = "../../BlogPosts";
} }

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js

@ -37,7 +37,7 @@ $(function () {
$createForm.ajaxSubmit({ $createForm.ajaxSubmit({
success: function (result) { success: function (result) {
abp.notify.success(l('SuccessfullySaved')); abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy(); abp.ui.clearBusy();
location.href = "../Pages"; location.href = "../Pages";
}, },

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js

@ -35,7 +35,7 @@ $(function () {
$formUpdate.ajaxSubmit({ $formUpdate.ajaxSubmit({
success: function (result) { success: function (result) {
abp.notify.success(l('SuccessfullySaved')); abp.notify.success(l('SavedSuccessfully'));
abp.ui.clearBusy(); abp.ui.clearBusy();
location.href = "../../Pages"; location.href = "../../Pages";
} }

BIN
modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-1280x720.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 483 KiB

BIN
modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/dummy-placeholder-320x180.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

After

Width:  |  Height:  |  Size: 36 KiB

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "الرجاء كتابة موضوع", "SubjectPlaceholder": "الرجاء كتابة موضوع",
"Submit": "يقدم", "Submit": "يقدم",
"Subscribe": "الإشتراك", "Subscribe": "الإشتراك",
"SuccessfullySaved": "تم الحفظ بنجاح!", "SavedSuccessfully": "تم الحفظ بنجاح!",
"TagDeletionConfirmationMessage": "هل أنت متأكد من حذف العلامة \"{0}\"؟", "TagDeletionConfirmationMessage": "هل أنت متأكد من حذف العلامة \"{0}\"؟",
"Tags": "العلامات", "Tags": "العلامات",
"Text": "نص", "Text": "نص",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Zadejte předmět", "SubjectPlaceholder": "Zadejte předmět",
"Submit": "Předložit", "Submit": "Předložit",
"Subscribe": "předplatit", "Subscribe": "předplatit",
"SuccessfullySaved": "Úspěšně uloženo!", "SavedSuccessfully": "Úspěšně uloženo!",
"TagDeletionConfirmationMessage": "Opravdu chcete smazat značku '{0}'?", "TagDeletionConfirmationMessage": "Opravdu chcete smazat značku '{0}'?",
"Tags": "Tagy", "Tags": "Tagy",
"Text": "Text", "Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de-DE.json

@ -142,7 +142,7 @@
"SubjectPlaceholder": "Bitte geben Sie einen Betreff ein", "SubjectPlaceholder": "Bitte geben Sie einen Betreff ein",
"Submit": "einreichen", "Submit": "einreichen",
"Subscribe": "Abonnieren", "Subscribe": "Abonnieren",
"SuccessfullySaved": "Erfolgreich gespeichert!", "SavedSuccessfully": "Erfolgreich gespeichert!",
"TagDeletionConfirmationMessage": "Möchten Sie das Tag '{0}' wirklich löschen?", "TagDeletionConfirmationMessage": "Möchten Sie das Tag '{0}' wirklich löschen?",
"Tags": "Stichworte", "Tags": "Stichworte",
"Text": "Text", "Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Bitte geben Sie einen Betreff ein", "SubjectPlaceholder": "Bitte geben Sie einen Betreff ein",
"Submit": "Einreichen", "Submit": "Einreichen",
"Subscribe": "Abonnieren", "Subscribe": "Abonnieren",
"SuccessfullySaved": "Erfolgreich gespeichert!", "SavedSuccessfully": "Erfolgreich gespeichert!",
"TagDeletionConfirmationMessage": "Sind Sie sicher, dass Sie das Tag „{0}“ löschen?", "TagDeletionConfirmationMessage": "Sind Sie sicher, dass Sie das Tag „{0}“ löschen?",
"Tags": "Stichworte", "Tags": "Stichworte",
"Text": "Text", "Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/el.json

@ -145,7 +145,7 @@
"SubjectPlaceholder": "Πληκτρολογήστε ένα θέμα", "SubjectPlaceholder": "Πληκτρολογήστε ένα θέμα",
"Submit": "Υποβολή", "Submit": "Υποβολή",
"Subscribe": "Εγγραφή", "Subscribe": "Εγγραφή",
"SuccessfullySaved": "Αποθηκεύτηκε με επιτυχία!", "SavedSuccessfully": "Αποθηκεύτηκε με επιτυχία!",
"TagDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε την ετικέτα '{0}'.;", "TagDeletionConfirmationMessage": "Είστε βέβαιοι ότι θα διαγράψετε την ετικέτα '{0}'.;",
"Tags": "Ετικέτες", "Tags": "Ετικέτες",
"Text": "Κείμενο", "Text": "Κείμενο",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Please type a subject", "SubjectPlaceholder": "Please type a subject",
"Submit": "Submit", "Submit": "Submit",
"Subscribe": "Subscribe", "Subscribe": "Subscribe",
"SuccessfullySaved": "Successfully saved!", "SavedSuccessfully": "Saved successfully!",
"TagDeletionConfirmationMessage": "Are you sure to delete '{0}' tag?", "TagDeletionConfirmationMessage": "Are you sure to delete '{0}' tag?",
"Tags": "Tags", "Tags": "Tags",
"Text": "Text", "Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Por favor escriba un asunto", "SubjectPlaceholder": "Por favor escriba un asunto",
"Submit": "Enviar", "Submit": "Enviar",
"Subscribe": "Suscribir", "Subscribe": "Suscribir",
"SuccessfullySaved": "¡Guardado con éxito!", "SavedSuccessfully": "¡Guardado con éxito!",
"TagDeletionConfirmationMessage": "¿Está seguro de eliminar la etiqueta \"{0}\"?", "TagDeletionConfirmationMessage": "¿Está seguro de eliminar la etiqueta \"{0}\"?",
"Tags": "Etiquetas", "Tags": "Etiquetas",
"Text": "Texto", "Text": "Texto",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fa.json

@ -142,7 +142,7 @@
"SubjectPlaceholder": "لطفا یک موضوع را تایپ کنید", "SubjectPlaceholder": "لطفا یک موضوع را تایپ کنید",
"Submit": "ارسال", "Submit": "ارسال",
"Subscribe": "اشتراک", "Subscribe": "اشتراک",
"SuccessfullySaved": "با موفقیت ذخیره گردید!", "SavedSuccessfully": "با موفقیت ذخیره گردید!",
"TagDeletionConfirmationMessage": "آیا مطمئن هستید که برچسب '{0}' را حذف می کنید؟", "TagDeletionConfirmationMessage": "آیا مطمئن هستید که برچسب '{0}' را حذف می کنید؟",
"Tags": "برچسب ها", "Tags": "برچسب ها",
"Text": "متن", "Text": "متن",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Kirjoita aihe", "SubjectPlaceholder": "Kirjoita aihe",
"Submit": "Lähetä", "Submit": "Lähetä",
"Subscribe": "Tilaa", "Subscribe": "Tilaa",
"SuccessfullySaved": "Tallennettu onnistuneesti!", "SavedSuccessfully": "Tallennettu onnistuneesti!",
"TagDeletionConfirmationMessage": "Haluatko varmasti poistaa tagin {0}?", "TagDeletionConfirmationMessage": "Haluatko varmasti poistaa tagin {0}?",
"Tags": "Tunnisteet", "Tags": "Tunnisteet",
"Text": "Teksti", "Text": "Teksti",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Veuillez saisir un sujet", "SubjectPlaceholder": "Veuillez saisir un sujet",
"Submit": "Soumettre", "Submit": "Soumettre",
"Subscribe": "S'abonner", "Subscribe": "S'abonner",
"SuccessfullySaved": "Enregistré avec succès!", "SavedSuccessfully": "Enregistré avec succès!",
"TagDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer la balise \"{0}\"?", "TagDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer la balise \"{0}\"?",
"Tags": "Mots clés", "Tags": "Mots clés",
"Text": "Texte", "Text": "Texte",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "कृपया एक विषय लिखें", "SubjectPlaceholder": "कृपया एक विषय लिखें",
"Submit": "प्रस्तुत", "Submit": "प्रस्तुत",
"Subscribe": "सदस्यता लेने के", "Subscribe": "सदस्यता लेने के",
"SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है!", "SavedSuccessfully": "सफलतापूर्वक संचित कर लिया गया है!",
"TagDeletionConfirmationMessage": "क्या आप '{0}' टैग हटाना सुनिश्चित कर रहे हैं?", "TagDeletionConfirmationMessage": "क्या आप '{0}' टैग हटाना सुनिश्चित कर रहे हैं?",
"Tags": "टैग", "Tags": "टैग",
"Text": "टेक्स्ट", "Text": "टेक्स्ट",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Molimo upišite predmet", "SubjectPlaceholder": "Molimo upišite predmet",
"Submit": "podnijeti", "Submit": "podnijeti",
"Subscribe": "Pretplatite se", "Subscribe": "Pretplatite se",
"SuccessfullySaved": "Uspješno spremljeno!", "SavedSuccessfully": "Uspješno spremljeno!",
"TagDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati oznaku &#39;{0}&#39;?", "TagDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati oznaku &#39;{0}&#39;?",
"Tags": "Oznake", "Tags": "Oznake",
"Text": "Tekst", "Text": "Tekst",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Kérjük, írjon be egy tárgyat", "SubjectPlaceholder": "Kérjük, írjon be egy tárgyat",
"Submit": "Beküldés", "Submit": "Beküldés",
"Subscribe": "Iratkozz fel", "Subscribe": "Iratkozz fel",
"SuccessfullySaved": "Sikeres mentés!", "SavedSuccessfully": "Sikeres mentés!",
"TagDeletionConfirmationMessage": "Biztosan törli a(z) \"{0}\" címkét?", "TagDeletionConfirmationMessage": "Biztosan törli a(z) \"{0}\" címkét?",
"Tags": "Címkék", "Tags": "Címkék",
"Text": "Szöveg", "Text": "Szöveg",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vinsamlegast settu inn viðfangsefni", "SubjectPlaceholder": "Vinsamlegast settu inn viðfangsefni",
"Submit": "Senda inn", "Submit": "Senda inn",
"Subscribe": "Gerast áskrifandi", "Subscribe": "Gerast áskrifandi",
"SuccessfullySaved": "Tókst að vista!", "SavedSuccessfully": "Tókst að vista!",
"TagDeletionConfirmationMessage": "Ertu viss um að eyða tagginu '{0}'?", "TagDeletionConfirmationMessage": "Ertu viss um að eyða tagginu '{0}'?",
"Tags": "Tögg", "Tags": "Tögg",
"Text": "Texti", "Text": "Texti",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Si prega di digitare un oggetto", "SubjectPlaceholder": "Si prega di digitare un oggetto",
"Submit": "Invia", "Submit": "Invia",
"Subscribe": "Sottoscrivi", "Subscribe": "Sottoscrivi",
"SuccessfullySaved": "Salvato con successo!", "SavedSuccessfully": "Salvato con successo!",
"TagDeletionConfirmationMessage": "Sei sicuro di eliminare il tag '{0}'?", "TagDeletionConfirmationMessage": "Sei sicuro di eliminare il tag '{0}'?",
"Tags": "Tag", "Tags": "Tag",
"Text": "Testo", "Text": "Testo",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Typ een onderwerp", "SubjectPlaceholder": "Typ een onderwerp",
"Submit": "Verzenden", "Submit": "Verzenden",
"Subscribe": "Abonneren", "Subscribe": "Abonneren",
"SuccessfullySaved": "Succesvol opgeslagen!", "SavedSuccessfully": "Succesvol opgeslagen!",
"TagDeletionConfirmationMessage": "Weet u zeker dat u de tag '{0}' wilt verwijderen?", "TagDeletionConfirmationMessage": "Weet u zeker dat u de tag '{0}' wilt verwijderen?",
"Tags": "Tags", "Tags": "Tags",
"Text": "Tekst", "Text": "Tekst",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Proszę wpisać temat", "SubjectPlaceholder": "Proszę wpisać temat",
"Submit": "Składać", "Submit": "Składać",
"Subscribe": "Subskrybuj", "Subscribe": "Subskrybuj",
"SuccessfullySaved": "Zapisano pomyślnie!", "SavedSuccessfully": "Zapisano pomyślnie!",
"TagDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tag „{0}”?", "TagDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tag „{0}”?",
"Tags": "Tagi", "Tags": "Tagi",
"Text": "Tekst", "Text": "Tekst",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Por favor digite um assunto", "SubjectPlaceholder": "Por favor digite um assunto",
"Submit": "Enviar", "Submit": "Enviar",
"Subscribe": "Inscrever-se", "Subscribe": "Inscrever-se",
"SuccessfullySaved": "Salvo com sucesso!", "SavedSuccessfully": "Salvo com sucesso!",
"TagDeletionConfirmationMessage": "Tem certeza que deseja excluir a tag '{0}'?", "TagDeletionConfirmationMessage": "Tem certeza que deseja excluir a tag '{0}'?",
"Tags": "Tag", "Tags": "Tag",
"Text": "Texto", "Text": "Texto",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vă rugăm să scrieţi un subiect", "SubjectPlaceholder": "Vă rugăm să scrieţi un subiect",
"Submit": "Trimiteţi", "Submit": "Trimiteţi",
"Subscribe": "Abonaţi-vă", "Subscribe": "Abonaţi-vă",
"SuccessfullySaved": "Salvat cu succes!", "SavedSuccessfully": "Salvat cu succes!",
"TagDeletionConfirmationMessage": "Sunteţi sigur(ă) că vreţi să ştergeţi eticheta '{0}'?", "TagDeletionConfirmationMessage": "Sunteţi sigur(ă) că vreţi să ştergeţi eticheta '{0}'?",
"Tags": "Etichete", "Tags": "Etichete",
"Text": "Text", "Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Пожалуйста, введите тему", "SubjectPlaceholder": "Пожалуйста, введите тему",
"Submit": "Представлять на рассмотрение", "Submit": "Представлять на рассмотрение",
"Subscribe": "Подписывайся", "Subscribe": "Подписывайся",
"SuccessfullySaved": "Успешно сохранено!", "SavedSuccessfully": "Успешно сохранено!",
"TagDeletionConfirmationMessage": "Вы действительно хотите удалить тег \"{0}\"?", "TagDeletionConfirmationMessage": "Вы действительно хотите удалить тег \"{0}\"?",
"Tags": "Теги", "Tags": "Теги",
"Text": "Текст", "Text": "Текст",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Zadajte prosím predmet", "SubjectPlaceholder": "Zadajte prosím predmet",
"Submit": "Odoslať", "Submit": "Odoslať",
"Subscribe": "Odoberať", "Subscribe": "Odoberať",
"SuccessfullySaved": "Úspešne uložené!", "SavedSuccessfully": "Úspešne uložené!",
"TagDeletionConfirmationMessage": "Určite chcete odstrániť tag '{0}'?", "TagDeletionConfirmationMessage": "Určite chcete odstrániť tag '{0}'?",
"Tags": "Tagy", "Tags": "Tagy",
"Text": "Text", "Text": "Text",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vnesite zadevo", "SubjectPlaceholder": "Vnesite zadevo",
"Submit": "Pošlji", "Submit": "Pošlji",
"Subscribe": "Naročite se", "Subscribe": "Naročite se",
"SuccessfullySaved": "Uspešno shranjeno!", "SavedSuccessfully": "Uspešno shranjeno!",
"TagDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati oznako »{0}«?", "TagDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati oznako »{0}«?",
"Tags": "Oznake", "Tags": "Oznake",
"Text": "Besedilo", "Text": "Besedilo",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json

@ -144,7 +144,7 @@
"SubjectPlaceholder": "Lütfen bir konu yazınız", "SubjectPlaceholder": "Lütfen bir konu yazınız",
"Submit": "Kaydet", "Submit": "Kaydet",
"Subscribe": "Abone ol", "Subscribe": "Abone ol",
"SuccessfullySaved": "Başarıyla kaydedildi!", "SavedSuccessfully": "Başarıyla kaydedildi!",
"TagDeletionConfirmationMessage": "'{0}' etiketini silmek istediğinize emin misiniz?", "TagDeletionConfirmationMessage": "'{0}' etiketini silmek istediğinize emin misiniz?",
"Tags": "Etiketler", "Tags": "Etiketler",
"Text": "Metin", "Text": "Metin",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "Vui lòng nhập một chủ đề", "SubjectPlaceholder": "Vui lòng nhập một chủ đề",
"Submit": "Nộp", "Submit": "Nộp",
"Subscribe": "Đặt mua", "Subscribe": "Đặt mua",
"SuccessfullySaved": "Lưu thành công!", "SavedSuccessfully": "Lưu thành công!",
"TagDeletionConfirmationMessage": "Bạn có chắc chắn xóa thẻ '{0}' không?", "TagDeletionConfirmationMessage": "Bạn có chắc chắn xóa thẻ '{0}' không?",
"Tags": "Thẻ", "Tags": "Thẻ",
"Text": "Chữ", "Text": "Chữ",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "请输入主题", "SubjectPlaceholder": "请输入主题",
"Submit": "提交", "Submit": "提交",
"Subscribe": "订阅", "Subscribe": "订阅",
"SuccessfullySaved": "成功保存!", "SavedSuccessfully": "成功保存!",
"TagDeletionConfirmationMessage": "您确定要删除\"{0}\"标签吗?", "TagDeletionConfirmationMessage": "您确定要删除\"{0}\"标签吗?",
"Tags": "标签", "Tags": "标签",
"Text": "文本", "Text": "文本",

2
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json

@ -147,7 +147,7 @@
"SubjectPlaceholder": "請輸入主題", "SubjectPlaceholder": "請輸入主題",
"Submit": "提交", "Submit": "提交",
"Subscribe": "訂閱", "Subscribe": "訂閱",
"SuccessfullySaved": "保存成功!", "SavedSuccessfully": "保存成功!",
"TagDeletionConfirmationMessage": "你確定刪除 '{0}' 標籤嗎?", "TagDeletionConfirmationMessage": "你確定刪除 '{0}' 標籤嗎?",
"Tags": "標籤", "Tags": "標籤",
"Text": "文本", "Text": "文本",

2
modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj

@ -31,6 +31,7 @@
<ProjectReference Include="..\..\src\Volo.Docs.Web\Volo.Docs.Web.csproj" /> <ProjectReference Include="..\..\src\Volo.Docs.Web\Volo.Docs.Web.csproj" />
<ProjectReference Include="..\..\src\Volo.Docs.Admin.Web\Volo.Docs.Admin.Web.csproj" /> <ProjectReference Include="..\..\src\Volo.Docs.Admin.Web\Volo.Docs.Admin.Web.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Caching.StackExchangeRedis\Volo.Abp.Caching.StackExchangeRedis.csproj" />
<ProjectReference Include="..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" /> <ProjectReference Include="..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" />
<ProjectReference Include="..\VoloDocs.EntityFrameworkCore\VoloDocs.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\VoloDocs.EntityFrameworkCore\VoloDocs.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\..\..\modules\identity\src\Volo.Abp.Identity.Application\Volo.Abp.Identity.Application.csproj" /> <ProjectReference Include="..\..\..\..\modules\identity\src\Volo.Abp.Identity.Application\Volo.Abp.Identity.Application.csproj" />
@ -42,6 +43,7 @@
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj" /> <ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj" />
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Application\Volo.Abp.Account.Application.csproj" /> <ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Application\Volo.Abp.Account.Application.csproj" />
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.HttpApi\Volo.Abp.Account.HttpApi.csproj" /> <ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.HttpApi\Volo.Abp.Account.HttpApi.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs

@ -35,6 +35,7 @@ using Volo.Abp.Account;
using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.HttpApi;
using Volo.Abp.Validation.Localization; using Volo.Abp.Validation.Localization;
using Volo.Docs.Documents.FullSearch.Elastic; using Volo.Docs.Documents.FullSearch.Elastic;
using Volo.Abp.Caching.StackExchangeRedis;
namespace VoloDocs.Web namespace VoloDocs.Web
{ {
@ -57,6 +58,7 @@ namespace VoloDocs.Web
typeof(AbpPermissionManagementApplicationModule), typeof(AbpPermissionManagementApplicationModule),
typeof(AbpPermissionManagementHttpApiModule), typeof(AbpPermissionManagementHttpApiModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule) typeof(AbpAspNetCoreMvcUiBasicThemeModule)
,typeof(AbpCachingStackExchangeRedisModule)
)] )]
public class VoloDocsWebModule : AbpModule public class VoloDocsWebModule : AbpModule
{ {

20
modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs

@ -58,21 +58,21 @@ namespace Volo.Docs.Admin.Documents
await _versionCache.RemoveAsync(versionCacheKey, true); await _versionCache.RemoveAsync(versionCacheKey, true);
var documents = await _documentRepository.GetListByProjectId(project.Id); var documents = await _documentRepository.GetListByProjectId(project.Id);
foreach (var document in documents) var documentUpdateInfoCacheKeys = documents.Select(document =>
{ CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(
var documentUpdateInfoCacheKey = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(
project: project, project: project,
documentName: document.Name, documentName: document.Name,
languageCode: document.LanguageCode, languageCode: document.LanguageCode,
version: document.Version version: document.Version
); )
);
await _documentUpdateCache.RemoveAsync(documentUpdateInfoCacheKey);
await _documentUpdateCache.RemoveManyAsync(documentUpdateInfoCacheKeys);
documents.ForEach(document => document.LastCachedTime = DateTime.MinValue);
document.LastCachedTime = DateTime.MinValue; await _documentRepository.UpdateManyAsync(documents);
await _documentRepository.UpdateAsync(document);
}
} }
public virtual async Task PullAllAsync(PullAllDocumentInput input) public virtual async Task PullAllAsync(PullAllDocumentInput input)

22
modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs

@ -118,18 +118,24 @@ namespace Volo.Docs.Documents
.Where(x => !x.Path.IsNullOrWhiteSpace()) .Where(x => !x.Path.IsNullOrWhiteSpace())
.ToList(); .ToList();
var cacheKeys = leafs.Select(leaf =>
CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, input.Version)
);
var documentUpdateInfos = await DocumentUpdateCache.GetManyAsync(cacheKeys);
foreach (var leaf in leafs) foreach (var leaf in leafs)
{ {
var cacheKey = var key = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, input.Version);
CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, var (_, documentUpdateInfo) = documentUpdateInfos.FirstOrDefault(x => x.Key == key);
input.Version);
var documentUpdateInfo = await DocumentUpdateCache.GetAsync(cacheKey); if (documentUpdateInfo == null)
if (documentUpdateInfo != null)
{ {
leaf.CreationTime = documentUpdateInfo.CreationTime; continue;
leaf.LastUpdatedTime = documentUpdateInfo.LastUpdatedTime;
leaf.LastSignificantUpdateTime = documentUpdateInfo.LastSignificantUpdateTime;
} }
leaf.CreationTime = documentUpdateInfo.CreationTime;
leaf.LastUpdatedTime = documentUpdateInfo.LastUpdatedTime;
leaf.LastSignificantUpdateTime = documentUpdateInfo.LastSignificantUpdateTime;
} }
await NavigationTreePostProcessor.ProcessAsync( await NavigationTreePostProcessor.ProcessAsync(

2
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -328,7 +328,7 @@ namespace Volo.Docs.Pages.Documents.Project
} }
var output = await _projectAppService.GetVersionsAsync(Project.ShortName); var output = await _projectAppService.GetVersionsAsync(Project.ShortName);
var versions = output.Items.ToList() var versions = output.Items
.Select(v => new VersionInfoViewModel(v.DisplayName, v.Name)) .Select(v => new VersionInfoViewModel(v.DisplayName, v.Name))
.ToList(); .ToList();

2
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs

@ -72,7 +72,7 @@ public partial class EmailSettingGroupViewComponent
await CurrentApplicationConfigurationCacheResetService.ResetAsync(); await CurrentApplicationConfigurationCacheResetService.ResetAsync();
await UiMessageService.Success(L["SuccessfullySaved"]); await Notify.Success(L["SavedSuccessfully"]);
} }
catch (Exception ex) catch (Exception ex)
{ {

2
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor.cs

@ -48,7 +48,7 @@ public partial class TimeZoneSettingGroupViewComponent
{ {
await TimeZoneSettingsAppService.UpdateAsync(TimezoneSettings.Timezone); await TimeZoneSettingsAppService.UpdateAsync(TimezoneSettings.Timezone);
await CurrentApplicationConfigurationCacheResetService.ResetAsync(); await CurrentApplicationConfigurationCacheResetService.ResetAsync();
await UiMessageService.Success(L["SuccessfullySaved"]); await Notify.Success(L["SavedSuccessfully"]);
} }
catch (Exception ex) catch (Exception ex)
{ {

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json

@ -2,7 +2,7 @@
"culture": "ar", "culture": "ar",
"texts": { "texts": {
"Settings": "الإعدادات", "Settings": "الإعدادات",
"SuccessfullySaved": "تم الحفظ بنجاح", "SavedSuccessfully": "تم الحفظ بنجاح",
"Permission:SettingManagement": "إدارة الإعداد", "Permission:SettingManagement": "إدارة الإعداد",
"Permission:Emailing": "إرسال بالبريد الإلكتروني", "Permission:Emailing": "إرسال بالبريد الإلكتروني",
"Permission:EmailingTest": "اختبار البريد الإلكتروني", "Permission:EmailingTest": "اختبار البريد الإلكتروني",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json

@ -2,7 +2,7 @@
"culture": "cs", "culture": "cs",
"texts": { "texts": {
"Settings": "Nastavení", "Settings": "Nastavení",
"SuccessfullySaved": "Úspěšně uloženo", "SavedSuccessfully": "Úspěšně uloženo",
"Permission:SettingManagement": "Správa nastavení", "Permission:SettingManagement": "Správa nastavení",
"Permission:Emailing": "Zasílání e-mailem", "Permission:Emailing": "Zasílání e-mailem",
"Permission:EmailingTest": "Test zasílání e-mailem", "Permission:EmailingTest": "Test zasílání e-mailem",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json

@ -2,7 +2,7 @@
"culture": "de-DE", "culture": "de-DE",
"texts": { "texts": {
"Settings": "Einstellungen", "Settings": "Einstellungen",
"SuccessfullySaved": "Erfolgreich gespeichert", "SavedSuccessfully": "Erfolgreich gespeichert",
"Permission:SettingManagement": "Einstellungen-Verwaltung", "Permission:SettingManagement": "Einstellungen-Verwaltung",
"Permission:Emailing": "E-Mail", "Permission:Emailing": "E-Mail",
"Permission:EmailingTest": "Test E-Mails", "Permission:EmailingTest": "Test E-Mails",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json

@ -2,7 +2,7 @@
"culture": "de", "culture": "de",
"texts": { "texts": {
"Settings": "Einstellungen", "Settings": "Einstellungen",
"SuccessfullySaved": "Erfolgreich gespeichert", "SavedSuccessfully": "Erfolgreich gespeichert",
"Permission:SettingManagement": "Einstellungsmanagement", "Permission:SettingManagement": "Einstellungsmanagement",
"Permission:Emailing": "E-Mail senden", "Permission:Emailing": "E-Mail senden",
"Permission:EmailingTest": "E-Mail-Test", "Permission:EmailingTest": "E-Mail-Test",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json

@ -2,7 +2,7 @@
"culture": "el", "culture": "el",
"texts": { "texts": {
"Settings": "Ρυθμίσεις", "Settings": "Ρυθμίσεις",
"SuccessfullySaved": "Αποθηκεύτηκε με επιτυχία", "SavedSuccessfully": "Αποθηκεύτηκε με επιτυχία",
"Permission:SettingManagement": "Διαχείριση ρυθμίσεων", "Permission:SettingManagement": "Διαχείριση ρυθμίσεων",
"Permission:Emailing": "Αποστολή email", "Permission:Emailing": "Αποστολή email",
"Permission:EmailingTest": "Αποστολή δοκιμαστικού email", "Permission:EmailingTest": "Αποστολή δοκιμαστικού email",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en-GB.json

@ -2,6 +2,6 @@
"culture": "en-GB", "culture": "en-GB",
"texts": { "texts": {
"Settings": "Settings", "Settings": "Settings",
"SuccessfullySaved": "Successfully saved" "SavedSuccessfully": "Saved successfully"
} }
} }

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json

@ -2,7 +2,7 @@
"culture": "en", "culture": "en",
"texts": { "texts": {
"Settings": "Settings", "Settings": "Settings",
"SuccessfullySaved": "Successfully saved", "SavedSuccessfully": "Saved successfully",
"Permission:SettingManagement": "Setting management", "Permission:SettingManagement": "Setting management",
"Permission:Emailing": "Emailing", "Permission:Emailing": "Emailing",
"Permission:EmailingTest": "Emailing test", "Permission:EmailingTest": "Emailing test",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json

@ -2,7 +2,7 @@
"culture": "es", "culture": "es",
"texts": { "texts": {
"Settings": "Configuraciones", "Settings": "Configuraciones",
"SuccessfullySaved": "Guardado correctamente", "SavedSuccessfully": "Guardado correctamente",
"Permission:SettingManagement": "Configuraciones de correo electronico", "Permission:SettingManagement": "Configuraciones de correo electronico",
"Permission:Emailing": "Configuración", "Permission:Emailing": "Configuración",
"Permission:EmailingTest": "prueba de correo electrónico", "Permission:EmailingTest": "prueba de correo electrónico",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fa.json

@ -2,7 +2,7 @@
"culture": "fa", "culture": "fa",
"texts": { "texts": {
"Settings": "تنظیمات", "Settings": "تنظیمات",
"SuccessfullySaved": "با موفقیت ذخیره شد", "SavedSuccessfully": "با موفقیت ذخیره شد",
"Permission:SettingManagement": "مدیریت تنظیمات", "Permission:SettingManagement": "مدیریت تنظیمات",
"Permission:Emailing": "تنظیمات ایمیل", "Permission:Emailing": "تنظیمات ایمیل",
"Menu:Emailing": "تنظیمات ایمیل", "Menu:Emailing": "تنظیمات ایمیل",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json

@ -2,7 +2,7 @@
"culture": "fi", "culture": "fi",
"texts": { "texts": {
"Settings": "Asetukset", "Settings": "Asetukset",
"SuccessfullySaved": "Tallennettu onnistuneesti", "SavedSuccessfully": "Tallennettu onnistuneesti",
"Permission:SettingManagement": "Asetusten hallinta", "Permission:SettingManagement": "Asetusten hallinta",
"Permission:Emailing": "Sähköpostiviestit", "Permission:Emailing": "Sähköpostiviestit",
"Permission:EmailingTest": "Sähköpostitesti", "Permission:EmailingTest": "Sähköpostitesti",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json

@ -2,7 +2,7 @@
"culture": "fr", "culture": "fr",
"texts": { "texts": {
"Settings": "Paramètres", "Settings": "Paramètres",
"SuccessfullySaved": "Enregistré avec succès", "SavedSuccessfully": "Enregistré avec succès",
"Permission:SettingManagement": "Gestion des paramètres", "Permission:SettingManagement": "Gestion des paramètres",
"Permission:Emailing": "Envoi par e-mail", "Permission:Emailing": "Envoi par e-mail",
"Permission:EmailingTest": "Test d&#39;emailing", "Permission:EmailingTest": "Test d&#39;emailing",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json

@ -2,7 +2,7 @@
"culture": "hi", "culture": "hi",
"texts": { "texts": {
"Settings": "समायोजन", "Settings": "समायोजन",
"SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है", "SavedSuccessfully": "सफलतापूर्वक संचित कर लिया गया है",
"Permission:SettingManagement": "प्रबंधन की स्थापना", "Permission:SettingManagement": "प्रबंधन की स्थापना",
"Permission:Emailing": "ईमेल से भेजना", "Permission:Emailing": "ईमेल से भेजना",
"Permission:EmailingTest": "ईमेल परीक्षण", "Permission:EmailingTest": "ईमेल परीक्षण",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json

@ -2,7 +2,7 @@
"culture": "hr", "culture": "hr",
"texts": { "texts": {
"Settings": "Postavke", "Settings": "Postavke",
"SuccessfullySaved": "Uspješno spremljeno", "SavedSuccessfully": "Uspješno spremljeno",
"Permission:SettingManagement": "Upravljanje postavkama", "Permission:SettingManagement": "Upravljanje postavkama",
"Permission:Emailing": "Slanje e-poštom", "Permission:Emailing": "Slanje e-poštom",
"Permission:EmailingTest": "Test slanja e-pošte", "Permission:EmailingTest": "Test slanja e-pošte",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json

@ -2,7 +2,7 @@
"culture": "hu", "culture": "hu",
"texts": { "texts": {
"Settings": "Beállítások", "Settings": "Beállítások",
"SuccessfullySaved": "Sikeresen mentve", "SavedSuccessfully": "Sikeresen mentve",
"Permission:SettingManagement": "Beállításkezelés", "Permission:SettingManagement": "Beállításkezelés",
"Permission:Emailing": "E-mailezés", "Permission:Emailing": "E-mailezés",
"Permission:EmailingTest": "E-mail teszt", "Permission:EmailingTest": "E-mail teszt",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json

@ -2,7 +2,7 @@
"culture": "is", "culture": "is",
"texts": { "texts": {
"Settings": "Stillingar", "Settings": "Stillingar",
"SuccessfullySaved": "Tókst að vista", "SavedSuccessfully": "Tókst að vista",
"Permission:SettingManagement": "Stillingar", "Permission:SettingManagement": "Stillingar",
"Permission:Emailing": "Senda tölvupóst", "Permission:Emailing": "Senda tölvupóst",
"Permission:EmailingTest": "Próf í tölvupósti", "Permission:EmailingTest": "Próf í tölvupósti",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json

@ -2,7 +2,7 @@
"culture": "it", "culture": "it",
"texts": { "texts": {
"Settings": "Impostazioni", "Settings": "Impostazioni",
"SuccessfullySaved": "Salvato con successo", "SavedSuccessfully": "Salvato con successo",
"Permission:SettingManagement": "Gestione delle impostazioni", "Permission:SettingManagement": "Gestione delle impostazioni",
"Permission:Emailing": "Invio di e-mail", "Permission:Emailing": "Invio di e-mail",
"Permission:EmailingTest": "Prova di invio tramite posta elettronica", "Permission:EmailingTest": "Prova di invio tramite posta elettronica",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json

@ -2,7 +2,7 @@
"culture": "nl", "culture": "nl",
"texts": { "texts": {
"Settings": "Instellingen", "Settings": "Instellingen",
"SuccessfullySaved": "Succesvol opgeslagen", "SavedSuccessfully": "Succesvol opgeslagen",
"Permission:SettingManagement": "Instellingenbeheer", "Permission:SettingManagement": "Instellingenbeheer",
"Permission:Emailing": "E-mail", "Permission:Emailing": "E-mail",
"Permission:EmailingTest": "E-mailtest", "Permission:EmailingTest": "E-mailtest",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json

@ -2,7 +2,7 @@
"culture": "pl-PL", "culture": "pl-PL",
"texts": { "texts": {
"Settings": "Ustawienia", "Settings": "Ustawienia",
"SuccessfullySaved": "Zapisano pomyślnie", "SavedSuccessfully": "Zapisano pomyślnie",
"Permission:SettingManagement": "Zarządzanie ustawieniami", "Permission:SettingManagement": "Zarządzanie ustawieniami",
"Permission:Emailing": "Wysyłanie e-maili", "Permission:Emailing": "Wysyłanie e-maili",
"Permission:EmailingTest": "Test wysyłania e-maili", "Permission:EmailingTest": "Test wysyłania e-maili",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json

@ -2,7 +2,7 @@
"culture": "pt-BR", "culture": "pt-BR",
"texts": { "texts": {
"Settings": "Configurações", "Settings": "Configurações",
"SuccessfullySaved": "Salvo com sucesso!", "SavedSuccessfully": "Salvo com sucesso!",
"Permission:SettingManagement": "Gestão de Cenários", "Permission:SettingManagement": "Gestão de Cenários",
"Permission:Emailing": "Enviando por e-mail", "Permission:Emailing": "Enviando por e-mail",
"Permission:EmailingTest": "Teste de e-mail", "Permission:EmailingTest": "Teste de e-mail",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json

@ -2,7 +2,7 @@
"culture": "ro-RO", "culture": "ro-RO",
"texts": { "texts": {
"Settings": "Setări", "Settings": "Setări",
"SuccessfullySaved": "Salvat cu succes", "SavedSuccessfully": "Salvat cu succes",
"Permission:SettingManagement": "Administrarea setărilor", "Permission:SettingManagement": "Administrarea setărilor",
"Permission:Emailing": "Emailing", "Permission:Emailing": "Emailing",
"Permission:EmailingTest": "Test de trimitere prin e-mail", "Permission:EmailingTest": "Test de trimitere prin e-mail",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json

@ -2,7 +2,7 @@
"culture": "ru", "culture": "ru",
"texts": { "texts": {
"Settings": "Настройки", "Settings": "Настройки",
"SuccessfullySaved": "Успешно сохранено", "SavedSuccessfully": "Успешно сохранено",
"Permission:SettingManagement": "Управление настройками", "Permission:SettingManagement": "Управление настройками",
"Permission:Emailing": "Отправка по электронной почте", "Permission:Emailing": "Отправка по электронной почте",
"Permission:EmailingTest": "Тестовая рассылка по электронной почте", "Permission:EmailingTest": "Тестовая рассылка по электронной почте",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json

@ -2,7 +2,7 @@
"culture": "sk", "culture": "sk",
"texts": { "texts": {
"Settings": "Nastavenia", "Settings": "Nastavenia",
"SuccessfullySaved": "Úspešne uložené", "SavedSuccessfully": "Úspešne uložené",
"Permission:SettingManagement": "Správa nastavení", "Permission:SettingManagement": "Správa nastavení",
"Permission:Emailing": "Posielanie emailov", "Permission:Emailing": "Posielanie emailov",
"Permission:EmailingTest": "Test odosielania e-mailov", "Permission:EmailingTest": "Test odosielania e-mailov",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json

@ -2,7 +2,7 @@
"culture": "sl", "culture": "sl",
"texts": { "texts": {
"Settings": "Nastavitve", "Settings": "Nastavitve",
"SuccessfullySaved": "Uspešno shranjeno", "SavedSuccessfully": "Uspešno shranjeno",
"Permission:SettingManagement": "Upravljanje nastavitev", "Permission:SettingManagement": "Upravljanje nastavitev",
"Permission:Emailing": "Pošiljanje po e-pošti", "Permission:Emailing": "Pošiljanje po e-pošti",
"Permission:EmailingTest": "Test pošiljanja po e-pošti", "Permission:EmailingTest": "Test pošiljanja po e-pošti",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json

@ -2,7 +2,7 @@
"culture": "tr", "culture": "tr",
"texts": { "texts": {
"Settings": "Ayarlar", "Settings": "Ayarlar",
"SuccessfullySaved": "Başarıyla Kaydedildi", "SavedSuccessfully": "Başarıyla Kaydedildi",
"Permission:SettingManagement": "Ayarlar yönetimi", "Permission:SettingManagement": "Ayarlar yönetimi",
"Permission:Emailing": "Email", "Permission:Emailing": "Email",
"Permission:EmailingTest": "Email testi", "Permission:EmailingTest": "Email testi",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json

@ -2,7 +2,7 @@
"culture": "vi", "culture": "vi",
"texts": { "texts": {
"Settings": "Cài đặt", "Settings": "Cài đặt",
"SuccessfullySaved": "Lưu thành công", "SavedSuccessfully": "Lưu thành công",
"Permission:SettingManagement": "Cài đặt quản lý", "Permission:SettingManagement": "Cài đặt quản lý",
"Permission:Emailing": "Gửi email", "Permission:Emailing": "Gửi email",
"Permission:EmailingTest": "Kiểm tra gửi email", "Permission:EmailingTest": "Kiểm tra gửi email",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json

@ -2,7 +2,7 @@
"culture": "zh-Hans", "culture": "zh-Hans",
"texts": { "texts": {
"Settings": "设置", "Settings": "设置",
"SuccessfullySaved": "保存成功", "SavedSuccessfully": "保存成功",
"Permission:SettingManagement": "设置管理", "Permission:SettingManagement": "设置管理",
"Permission:Emailing": "邮件", "Permission:Emailing": "邮件",
"Permission:EmailingTest": "邮件测试", "Permission:EmailingTest": "邮件测试",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json

@ -2,7 +2,7 @@
"culture": "zh-Hant", "culture": "zh-Hant",
"texts": { "texts": {
"Settings": "設置", "Settings": "設置",
"SuccessfullySaved": "保存成功", "SavedSuccessfully": "保存成功",
"Permission:SettingManagement": "設定管理", "Permission:SettingManagement": "設定管理",
"Permission:Emailing": "信箱", "Permission:Emailing": "信箱",
"Permission:EmailingTest": "郵件測試", "Permission:EmailingTest": "郵件測試",

2
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js

@ -27,7 +27,7 @@
}).first().click(); }).first().click();
$(document).on('AbpSettingSaved', function () { $(document).on('AbpSettingSaved', function () {
abp.notify.success(l('SuccessfullySaved')); abp.notify.success(l('SavedSuccessfully'));
abp.ajax({ abp.ajax({
url: abp.appPath + 'SettingManagement?handler=RefreshConfiguration' url: abp.appPath + 'SettingManagement?handler=RefreshConfiguration'

11
modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs

@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Distributed;
using Volo.Abp.EventBus.Local;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending;
@ -17,17 +18,20 @@ public class TenantAppService : TenantManagementAppServiceBase, ITenantAppServic
protected ITenantRepository TenantRepository { get; } protected ITenantRepository TenantRepository { get; }
protected ITenantManager TenantManager { get; } protected ITenantManager TenantManager { get; }
protected IDistributedEventBus DistributedEventBus { get; } protected IDistributedEventBus DistributedEventBus { get; }
protected ILocalEventBus LocalEventBus { get; }
public TenantAppService( public TenantAppService(
ITenantRepository tenantRepository, ITenantRepository tenantRepository,
ITenantManager tenantManager, ITenantManager tenantManager,
IDataSeeder dataSeeder, IDataSeeder dataSeeder,
IDistributedEventBus distributedEventBus) IDistributedEventBus distributedEventBus,
ILocalEventBus localEventBus)
{ {
DataSeeder = dataSeeder; DataSeeder = dataSeeder;
TenantRepository = tenantRepository; TenantRepository = tenantRepository;
TenantManager = tenantManager; TenantManager = tenantManager;
DistributedEventBus = distributedEventBus; DistributedEventBus = distributedEventBus;
LocalEventBus = localEventBus;
} }
public virtual async Task<TenantDto> GetAsync(Guid id) public virtual async Task<TenantDto> GetAsync(Guid id)
@ -132,6 +136,10 @@ public class TenantAppService : TenantManagementAppServiceBase, ITenantAppServic
public virtual async Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString) public virtual async Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString)
{ {
var tenant = await TenantRepository.GetAsync(id); var tenant = await TenantRepository.GetAsync(id);
if (tenant.FindDefaultConnectionString() != defaultConnectionString)
{
await LocalEventBus.PublishAsync(new TenantChangedEvent(tenant.Id, tenant.NormalizedName));
}
tenant.SetDefaultConnectionString(defaultConnectionString); tenant.SetDefaultConnectionString(defaultConnectionString);
await TenantRepository.UpdateAsync(tenant); await TenantRepository.UpdateAsync(tenant);
} }
@ -141,6 +149,7 @@ public class TenantAppService : TenantManagementAppServiceBase, ITenantAppServic
{ {
var tenant = await TenantRepository.GetAsync(id); var tenant = await TenantRepository.GetAsync(id);
tenant.RemoveDefaultConnectionString(); tenant.RemoveDefaultConnectionString();
await LocalEventBus.PublishAsync(new TenantChangedEvent(tenant.Id, tenant.NormalizedName));
await TenantRepository.UpdateAsync(tenant); await TenantRepository.UpdateAsync(tenant);
} }
} }

18
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantConfigurationCacheItemInvalidator.cs

@ -4,14 +4,16 @@ using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events; using Volo.Abp.Domain.Entities.Events;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Local;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
namespace Volo.Abp.TenantManagement; namespace Volo.Abp.TenantManagement;
[LocalEventHandlerOrder(-1)]
public class TenantConfigurationCacheItemInvalidator : public class TenantConfigurationCacheItemInvalidator :
ILocalEventHandler<EntityChangedEventData<Tenant>>, ILocalEventHandler<EntityChangedEventData<Tenant>>,
ILocalEventHandler<EntityDeletedEventData<Tenant>>, ITransientDependency ILocalEventHandler<TenantChangedEvent>,
ITransientDependency
{ {
protected IDistributedCache<TenantConfigurationCacheItem> Cache { get; } protected IDistributedCache<TenantConfigurationCacheItem> Cache { get; }
@ -22,12 +24,17 @@ public class TenantConfigurationCacheItemInvalidator :
public virtual async Task HandleEventAsync(EntityChangedEventData<Tenant> eventData) public virtual async Task HandleEventAsync(EntityChangedEventData<Tenant> eventData)
{ {
if (eventData is EntityCreatedEventData<Tenant>)
{
return;
}
await ClearCacheAsync(eventData.Entity.Id, eventData.Entity.NormalizedName); await ClearCacheAsync(eventData.Entity.Id, eventData.Entity.NormalizedName);
} }
public virtual async Task HandleEventAsync(EntityDeletedEventData<Tenant> eventData) public virtual async Task HandleEventAsync(TenantChangedEvent eventData)
{ {
await ClearCacheAsync(eventData.Entity.Id, eventData.Entity.NormalizedName); await ClearCacheAsync(eventData.Id, eventData.NormalizedName);
} }
protected virtual async Task ClearCacheAsync(Guid? id, string normalizedName) protected virtual async Task ClearCacheAsync(Guid? id, string normalizedName)
@ -37,6 +44,7 @@ public class TenantConfigurationCacheItemInvalidator :
{ {
TenantConfigurationCacheItem.CalculateCacheKey(id, null), TenantConfigurationCacheItem.CalculateCacheKey(id, null),
TenantConfigurationCacheItem.CalculateCacheKey(null, normalizedName), TenantConfigurationCacheItem.CalculateCacheKey(null, normalizedName),
TenantConfigurationCacheItem.CalculateCacheKey(id, normalizedName),
}); });
} }
} }

12
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs

@ -2,6 +2,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Domain.Services; using Volo.Abp.Domain.Services;
using Volo.Abp.EventBus.Local;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
namespace Volo.Abp.TenantManagement; namespace Volo.Abp.TenantManagement;
@ -9,14 +10,17 @@ namespace Volo.Abp.TenantManagement;
public class TenantManager : DomainService, ITenantManager public class TenantManager : DomainService, ITenantManager
{ {
protected ITenantRepository TenantRepository { get; } protected ITenantRepository TenantRepository { get; }
protected IDistributedCache<TenantConfigurationCacheItem> Cache { get; }
protected ITenantNormalizer TenantNormalizer { get; } protected ITenantNormalizer TenantNormalizer { get; }
protected ILocalEventBus LocalEventBus { get; }
public TenantManager(ITenantRepository tenantRepository, IDistributedCache<TenantConfigurationCacheItem> cache, ITenantNormalizer tenantNormalizer) public TenantManager(
ITenantRepository tenantRepository,
ITenantNormalizer tenantNormalizer,
ILocalEventBus localEventBus)
{ {
TenantRepository = tenantRepository; TenantRepository = tenantRepository;
Cache = cache;
TenantNormalizer = tenantNormalizer; TenantNormalizer = tenantNormalizer;
LocalEventBus = localEventBus;
} }
public virtual async Task<Tenant> CreateAsync(string name) public virtual async Task<Tenant> CreateAsync(string name)
@ -36,7 +40,7 @@ public class TenantManager : DomainService, ITenantManager
var normalizedName = TenantNormalizer.NormalizeName(name); var normalizedName = TenantNormalizer.NormalizeName(name);
await ValidateNameAsync(normalizedName, tenant.Id); await ValidateNameAsync(normalizedName, tenant.Id);
await Cache.RemoveAsync(TenantConfigurationCacheItem.CalculateCacheKey(tenant.NormalizedName)); await LocalEventBus.PublishAsync(new TenantChangedEvent(tenant.Id, tenant.NormalizedName));
tenant.SetName(name); tenant.SetName(name);
tenant.SetNormalizedName(normalizedName); tenant.SetNormalizedName(normalizedName);
} }

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save