Activities of "bunyamin"

The fix has been merged into the framework. You can apply the same fix temporarily in your project.

https://github.com/abpframework/abp/pull/9666/files

Add the following CSS to styles.scss

ngb-typeahead-window.dropdown-menu {
    z-index: 1050;
}

Hello,

This is a bug related to the CSS loading order. We will fix it in version 4.4.0 final. The question is refunded. Thanks for reporting.

I understand your need. Did you follow the instructions given in the answer?

What you need to do is to create a AuthWrapperComponent with template <router-outlet></router-outlet> only. Then your LoginComponent which contains everything will be placed into the router-outlet.

Hello,

We've discussed your code within our team and it seems that your code needs a little bit of refactoring.

Our account module has the following structure.

  • AuthWrapperComponent
    • Logo
    • Language Selection
    • Tenant Box
    • Router Outlet (in which components like login, forgot-password, reset-password will be placed)

On the other hand, your login component contains everything above which forces you to duplicate Logo, Language Selection, Tenant Box throughout every account component (Login, Forgot-Password, Reset-Password etc.) I suggest you should revisit your design and remove duplications.

When migrating to v4.x, we've removed the account module from angular packages however we brought it back in v4.3. It seems that our login component interferes with yours at the URL /account/login and the login page shown in the second picture is the one from @volo/abp.ng.account/public. It looks like your component but there are subtle differences. You can tell by looking at the language selection. In your component, it is displayed at the top-right corner of the screen. In our component, it is displayed within the card. That's why whatever you do in your own component is not being displayed on the page.

You could follow the instructions in the following answer which had a similar problem like yours.

https://support.abp.io/QA/Questions/1456/account-component-issue-after-ABP-upgrade-to-v431#answer-003284c1-68ef-d181-23d3-39fd2aabd174

Let me know if this works for you.

Hello,

generate-proxy command generates code from a running backend which makes it more reliable. suite, on the other hand, does its best to simulate a running backend, so there are some differences between them. We'll check it out and try to minimize the diff. As to answer your question, generate-proxy is better choice for proxy generation. Let's say you've created bunch of entities with suite which generates components as well as services, and then you run abp generate-proxy which may change some of the files generated by suite. If it doesn't break your code, use the code generated by generate-proxy.

If you could share your entity.json, I'd try to find out why there is a diff.

Hello,

It seems that you have a single login page which contains everything, layout, language selection etc. Did you replace AuthWrapperComponent with your LoginComponent?

Hello,

Could you share the template of your login component to see which style class could have been affected?

Hello,

Here is where those attributes are set: https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/services/list.service.ts#L134

  private next() {
    this._query$.next(({
      filter: this._filter || undefined,
      maxResultCount: this._maxResultCount,
      skipCount: this._page * this._maxResultCount,
      sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined,
    } as any) as QueryParamsType);
  }

Hello,

Let's say your maxResultCount is 2, and you click on page number 3.

DirectoryDescriptorService::getContent method will get called with the following param:

{
  maxResultCount: 2,
  skipCount: 4
}

You can find page number with this formula => skipCount / maxResultCount + 1

Hello again,

Let's create our own AuthModule and AuthComponent.

@Component({
  selector: 'app-auth',
  template: '<p>auth works!</p>'
})
export class AuthComponent {}

@NgModule({
  declarations: [AuthComponent],
  imports: [CommonModule],
})
export class AuthModule {}

Since we will be replacing many components within our custom AuthModule, let's do it at module initialization.

Simply add a static forRoot method to AuthModule which will replace account components.

import { NgModule, ModuleWithProviders, APP_INITIALIZER } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { ReplaceableComponentsService } from '@abp/ng.core';
import { eAccountComponents } from '@volo/abp.ng.account/public';
import { AuthComponent } from './auth.component';

/**
 * Here I've written a factory function which will replace the components from AccountModule
 */
function componentReplacer(replaceableComponents: ReplaceableComponentsService) {
  return () => {
    replaceableComponents.add({
      key: eAccountComponents.AuthWrapper,
      component: AuthComponent,
    });
  };
}

@NgModule({
  declarations: [AuthComponent],
  imports: [CommonModule, RouterModule],
})
export class AuthModule {
  static forRoot(): ModuleWithProviders<AuthModule> {
    return {
      ngModule: AuthModule,
      providers: [
        {
          provide: APP_INITIALIZER,
          useFactory: componentReplacer,
          multi: true,
          deps: [ReplaceableComponentsService],
        },
      ],
    };
  }
}

And change the HTML of AuthComponent to the following:

<router-outlet></router-outlet>

Import AuthModule.forRoot in AppModule

Then you'll get the following page when you navigate to /account/login

Let's replace LoginComponent as well

First, create a component within AuthModule and call it whatever you'd like it to be, and then replace eAccountComponents.Login within the factory we've just written as follows:

function componentReplacer(replaceableComponents: ReplaceableComponentsService) {
  return () => {
    replaceableComponents.add({
      key: eAccountComponents.AuthWrapper,
      component: AuthComponent,
    });
    replaceableComponents.add({
      key: eAccountComponents.Login,
      component: LoginComponent,
    });
  };
}

And then you'll get the following page

Here is the project structure,

You can keep replacing every single one of the components available.

Showing 71 to 80 of 149 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 20, 2024, 08:30