Attività di "masum.ulu"

Hi Noura,

I've solved the problem, when the patch version release it'll fixed.

You can track the detail at here

https://github.com/abpframework/abp/pull/17981 here's PR

Hi Can,

I've reproduced your case, you right it should also check with ; semicolon at the end. But when the app opening first time at the cookies, only have 2 item. That's why we should also check for without ; I've updated code as below

protected checkCookieConsent() {
  const decodedCookies = decodeURIComponent(this.document.cookie);
  this.showCookieConsent = !decodedCookies.includes(`${this.cookieKey}=true`);
}

It'll solve problem at 7.4.1 I've refunded your credit

Hello we've created issue https://github.com/abpframework/abp/issues/17923 we'll fix. I'll refund your credit after reproduce

Hello sudhakiran,

With the 7.4 version we're using authorization code flow which means auth process will be continue on the browser (server side), If you still want to use client side (password code flow) I'll try to re-produce and I'll reply the solution.

You can check the detail on Our YouTube live session

Hello jtallon,

I've re-produced your case, we've created a issue, I also refunded your credit,

You can fix the problem with the giving correct service. ServiceNameDetailViewService extended an abstract service and in this service there is a injected service as public readonly proxyService = inject(OrderService); can you please use this service in the template for the lookup-select components

Example

<abp-lookup-select
  cid="order-situation-id"
  formControlName="situationId"
  [getFn]="service.proxyService.getSituationLookup"
></abp-lookup-select>

[UPDATED 10/17/23]


Alternatively you can use this way

product-detail.abstract.service.ts

 public readonly proxyService = inject(ProductService);
 
 public readonly getSituationLookup = this.proxyService.getSituationsLookup();

Hello devpayoff,

Can you please send your package.json file's content. We are using version ~16.0.0 for @angular/* and @angular-* packages. That's why can you please normalize your angular packages. Also @abp/* & @volo/* package's version must be the same for example: ~7.3.0 it will install latest patch version because of ~ sign.

You can check version matrix with @abp and @angular packages at the templates folder.

If you sent me your package.json file I'll try to re-produce your case

I dont want to patch the user name property, I want to show a different property in there , instead of user name

Then you need to follow my 2.Way description. In that way you will be customize toolbar component

Hello mohammedalqaisi,

You can't create CRUD page for module in created app template project,

Instead you need to create module separately and give the application project with local reference with that way you can make module development.

I've refunded your credit

Hello,

You can use UserProfileService from @volo/ngx-lepton-x.core package for the patch userName property but it's not a good way

Example

import { Component, inject } from '@angular/core';
import { UserProfileService } from '@volo/ngx-lepton-x.core';

@Component({
  selector: 'app-root',
  template: `
    &lt;abp-loader-bar&gt;&lt;/abp-loader-bar&gt;
    &lt;abp-dynamic-layout&gt;&lt;/abp-dynamic-layout&gt;
    &lt;abp-gdpr-cookie-consent&gt;&lt;/abp-gdpr-cookie-consent&gt;
  `,
})
export class AppComponent {
  protected readonly userProfileService = inject(UserProfileService);

  constructor() {
    this.userProfileService.patchUser({
      userName: 'Masum ULU',
    });
  }
}

2.Way

You can extend toolbar-container and toolbar component and customize template

Step 1 (Create extended ToolbarContainerComponent)

import { Component } from '@angular/core';
import { AsyncPipe, NgFor, NgIf } from '@angular/common';
import {
  LpxCoreModule,
  LpxNavbarModule,
  LpxAvatarModule,
  LpxClickOutsideModule,
} from '@volo/ngx-lepton-x.core';
import { LpxContextMenuModule } from '@volosoft/ngx-lepton-x';
import { ToolbarContainerComponent } from '@volosoft/ngx-lepton-x/layouts';
import { MyToolbarComponent } from './toolbar.component';

@Component({
  standalone: true,
  selector: 'app-toolbar-container',
  template: `
    &lt;lpx-toolbar [profileRef]=&quot;profileRef$&quot; (profileClick)=&quot;toggleCtxMenu()&quot;&gt;
      &lt;ng-container
        *ngIf=&quot;{
          user: userProfileService.user$ | async,
          profileRef: profileRef$ | async
        } as data&quot;
      &gt;
        &lt;lpx-context-menu
          *ngIf=&quot;data.profileRef&quot;
          #menu=&quot;lpx-context-menu&quot;
          (lpxClickOutside)=&quot;menu.close()&quot;
          [exceptedRefs]=&quot;[data.profileRef]&quot;
        &gt;
          &lt;lpx-context-menu-header&gt;
            &lt;div class=&quot;lpx-user-ctx-header&quot;&gt;
              &lt;div class=&quot;lpx-user-ctx-img&quot;&gt;
                &lt;lpx-avatar [avatar]=&quot;data.user?.avatar&quot;&gt;&lt;/lpx-avatar&gt;
              &lt;/div&gt;
              &lt;div class=&quot;lpx-user-ctx-info&quot;&gt;
                &lt;span class=&quot;lpx-context-menu-user-name&quot;&gt;{{
                  data.user?.fullName || data.user?.userName
                }}&lt;/span&gt;
                &lt;span
                  *ngIf=&quot;data.user?.tenant?.name as tenantName&quot;
                  class=&quot;lpx-context-menu-user-tenant&quot;
                &gt;
                  {{ tenantName }}
                &lt;/span&gt;
                &lt;span class=&quot;lpx-context-menu-user-email&quot;&gt;{{ data.user?.email }}&lt;/span&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/lpx-context-menu-header&gt;

          &lt;ng-container *ngFor=&quot;let actions of data.user?.userActionGroups&quot;&gt;
            &lt;lpx-context-menu-action-group&gt;
              &lt;lpx-navbar-routes [navbarItems]=&quot;actions&quot; [routerItem]=&quot;false&quot;&gt;&lt;/lpx-navbar-routes&gt;
            &lt;/lpx-context-menu-action-group&gt;
          &lt;/ng-container&gt;
        &lt;/lpx-context-menu&gt;
      &lt;/ng-container&gt;
    &lt;/lpx-toolbar&gt;
  `,
  imports: [
    NgIf,
    NgFor,
    AsyncPipe,
    LpxAvatarModule,
    LpxClickOutsideModule,
    LpxContextMenuModule,
    LpxCoreModule,
    LpxNavbarModule,
    MyToolbarComponent,
  ],
})
export class MyToolbarContainerComponent extends ToolbarContainerComponent {}

Step 2 (Create extended ToolbarComponent)

import { Component, ViewEncapsulation } from '@angular/core';
import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
import { LpxAvatarModule } from '@volo/ngx-lepton-x.core';
import { ToolbarComponent, LpxToolbarModule } from '@volosoft/ngx-lepton-x/layouts';

@Component({
  selector: 'lpx-toolbar',
  standalone: true,
  template: `
    &lt;div class=&quot;lpx-toolbar&quot;&gt;
      &lt;ng-container *ngIf=&quot;userProfileService.user$ | async as user&quot;&gt;
        &lt;ng-content&gt;&lt;/ng-content&gt;
        &lt;nav class=&quot;lpx-toolbar&quot;&gt;
          &lt;ul class=&quot;lpx-nav-menu&quot;&gt;
            &lt;li
              *ngIf=&quot;authService.isUserExists$ | async; else loginBlock&quot;
              #profileLink
              class=&quot;outer-menu-item lpx-user-menu&quot;
              (click)=&quot;profileClick.emit()&quot;
            &gt;
              &lt;a class=&quot;lpx-menu-item-link&quot;&gt;
                &lt;lpx-avatar [avatar]=&quot;user.avatar&quot;&gt;&lt;/lpx-avatar&gt;
                &lt;!--UPDATE HERE--&gt;
                &lt;span class=&quot;lpx-menu-item-text&quot;&gt;{{ user.fullName || user.userName }}&lt;/span&gt;
                &lt;!--UPDATE HERE--&gt;
              &lt;/a&gt;
            &lt;/li&gt;
            &lt;ng-template #loginBlock&gt;
              &lt;li class=&quot;outer-menu-item lpx-user-menu text-center&quot;&gt;
                &lt;a class=&quot;lpx-menu-item-link&quot; (click)=&quot;navigateToLogin()&quot;&gt;
                  &lt;i class=&quot;bi bi-box-arrow-right&quot;&gt;&lt;/i&gt;
                &lt;/a&gt;
              &lt;/li&gt;
            &lt;/ng-template&gt;
          &lt;/ul&gt;

          &lt;ng-container
            *ngTemplateOutlet=&quot;
              itemsTmp || defaultItemsTmp;
              context: { $implicit: toolbarService.items$ | async }
            &quot;
          &gt;&lt;/ng-container&gt;
        &lt;/nav&gt;
      &lt;/ng-container&gt;
      &lt;ng-template #defaultItemsTmp let-items&gt;
        &lt;lpx-toolbar-items [items]=&quot;items&quot;&gt;&lt;/lpx-toolbar-items&gt;
      &lt;/ng-template&gt;
    &lt;/div&gt;
  `,
  imports: [NgIf, AsyncPipe, NgTemplateOutlet, LpxAvatarModule, LpxToolbarModule],
  encapsulation: ViewEncapsulation.None,
})
export class MyToolbarComponent extends ToolbarComponent {}

Step 3 (Replace component in app.component.ts)

import { Component, inject } from '@angular/core';
import { ReplaceableComponentsService } from '@abp/ng.core';
import { eThemeLeptonXComponents } from '@volosoft/abp.ng.theme.lepton-x';
import { MyToolbarContainerComponent } from './lepton-x/components/toolbar/toolbar-container.component';

@Component({
  selector: 'app-root',
  template: `
    &lt;abp-loader-bar&gt;&lt;/abp-loader-bar&gt;
    &lt;abp-dynamic-layout&gt;&lt;/abp-dynamic-layout&gt;
    &lt;abp-gdpr-cookie-consent&gt;&lt;/abp-gdpr-cookie-consent&gt;
  `,
})
export class AppComponent {
  protected readonly replaceableService = inject(ReplaceableComponentsService);

  constructor() {
    this.replaceableService.add({
      key: eThemeLeptonXComponents.Toolbar,
      component: MyToolbarContainerComponent,
    });
  }
}
51 - 60 di 195
Made with ❤️ on ABP v8.2.0-preview Updated on marzo 25, 2024, 15:11