Activities of "Chris.Didonna"

Ok got it working like this

context.Add(new SettingDefinition("Volo.Abp.LeptonTheme.Style", isVisibleToClients: true));

Hi,

I could not reproduce the problem.

Here is how ABP defines settings you can check. https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSettingProvider.cs#L11

I will check if you can share a simple project with me via mail. shiwei.liang@volosoft.com

My sample HttpApi.Host project zipped is 37MB I don't think I can email that.

Ok, created a new Acme.Bookstore solution from scratch and made the changes

My provider looks like this:

using Volo.Abp.Settings;

namespace Acme.BookStore.Provider
{
    public class SettingsProvider : SettingDefinitionProvider
    {
        public override void Define(ISettingDefinitionContext context)
        {
            var test = context.GetOrNull("Abp.Mailing.Smtp.Host");
            test.IsVisibleToClients = true;


        }
    }
}

My appSettings.json like this:

  "Settings": {
    "Abp.Mailing.Smtp.Host": "127.0.0.1"
  }

That one it finds, sets and shows in the UI.

If I add anything else, even a ABP setting, it can't find the setting in the provider.

Is there something else I have to set up for a Setting other than just putting it in appSettings.json?

Did you do it in version 5.3.0? Did you define a new setting name, not a default part of the ABP framework? Did you do it in appSettings.json?

I also tried adding a context.Add(new SettingDefinition("SomeSetting", "SomeValue") inside the AzureSettingsProvider.Define method to see if that would show up, still nothing in the Angular side.

There's not much else to tell really.

  1. Make a setting in appSettings.json for your HttpApi.Host project
  2. Make a SettingsDefinitionProvider and retrieve the setting so you can set it's field 'IsVisibleToClients' to true.
  3. Add ConfigStateService to a component in your Angular app.
  4. Use getSetting to get the value of the setting.

This all worked with the pre-built ABP setting, 'Abp.Mailing.Smtp.Host' but not with one that I've defined.

  • ABP Framework version: v5.3.0
  • UI Type: Angular
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no

I've got some settings defined in appSettings.json in my HttpApi.Host project and I have also defined a SettingDefinitionProvider to make them visible to clients (I assume that's what I have to do from reading the Settings documentation).

The SettingsProvider can't find the settings by name, do I have to define them somewhere else as well?

  public class AzureSettingsProvider : SettingDefinitionProvider
    {
        public override void Define(ISettingDefinitionContext context)
        { 
            var clientId = context.GetOrNull("Azure.B2C.ClientId");
            clientId.IsVisibleToClients = true;
            var tenant = context.GetOrNull("Azure.B2C.Tenant");
            tenant.IsVisibleToClients = true; 
            var PasswordEndpoint = context.GetOrNull("Azure.B2C.PasswordEndpoint");
            PasswordEndpoint.IsVisibleToClients = true; 
            var PrimaryDomain = context.GetOrNull("Azure.B2C.PrimaryDomain");
            PrimaryDomain.IsVisibleToClients = true;
        }
    }

Using the ConfigStateService on my Angular client, it isn't getting the values, it always returns undefined.

import { ConfigStateService } from '@abp/ng.core';

constructor(private config: ConfigStateService,
              private router: Router,) {
    var endpoint = this.config.getOne('Azure.B2C.PasswordEndpoint');
    var tenant = this.config.getOne('Azure.B2C.Tenant');
    var domain = this.config.getOne('Azure.B2C.PrimaryDomain');
    var clientid = this.config.getOne('Azure.B2C.ClientId');

Doesn't matter if I use getOne or getSetting.

What's missing or what have I interpreted wrong?

I've tested this approach with 'Abp.Mailing.Smtp.Host' and the value appears so I don't know what's missing for the settings I've named myself.

Ok we did it!

I got MyAccount into Angular by following Account Module Implementation here: https://docs.abp.io/en/abp/5.3/UI/Angular/Account-Module#my-account-page

Then reimplementing my original replace component code in the question, the tab now shows my custom changes.

Hooray! Thanks for your patience and persistence Sumeyye. You're a saint.

Yes this was all set up before my time. No amount of overriding in the Angular code is going to effect a page served from a different endpoint. If I can't rearrange that then I reckon I'm stuffed.

Upgrading the ABP version is a whole set of other headaches as all the obsolete code in all the modules we are using will also need to be fixed just to get the site to load. I'm trying to avoid that.

I'm following the first link now to see if that works.

We have another project running ABP 7.3.2 and I have tested your changes there and it works first time. I also notice the MyAccount pages load from the Angular endpoint.

So we need to figure out the differences for the project that actually needs to change.

  • Running ABP 5.3.0
  • MyAccount loads a page from HttpApi.Host endpoint, not the Angular endpoint.
Zobrazeno od 11 do 20 z celkem 36 záznamů
Made with ❤️ on ABP v8.2.0-preview Updated on března 25, 2024, 15:11