Activities of "muhammedaltug"

Hello,

I think this issue happens when Required lower case character and Required upper case character are enabled in Identity Server settings. I tried with Arabic language characters. The Arabic language does not have uppercase or lowercase characters.

When I check the official Microsoft Documentation for upper case rule I saw this explanation "True if passwords must contain a upper case ASCII character." Characters except the Latin alphabet are not ASCII characters.

You can disable these settings in Administration->Settings->Identity Server tab

Hello,

Sorry for the late response. I try the following steps to reproduce your error. But I can't reproduce your error. Please check the steps.

By the way, I see the error is 0 Unknown Error. This means the HTTP status code is 0. Could it be related to something else?
By default error modal displays after the HTTP 409 error. You can check this file

  1. I created a new app with the app pro template in the 5.1.3 version.

  2. Add a new entity in the suite which named Book with the suite.

  3. Implement IHasConcurrencyStamp interface to BookUpdateDto and BookDto

    // BookdDto
    using System;
    using Volo.Abp.Application.Dtos;
    using Volo.Abp.Domain.Entities;
    
    namespace pro513.Books
    {
        public class BookDto : FullAuditedEntityDto<Guid>, IHasConcurrencyStamp
        {
            public string name { get; set; }
    
            public string ConcurrencyStamp { get; set; }
        }
    }
    
    // BookUpdatedDto
    using System;
    using System.ComponentModel.DataAnnotations;
    using Volo.Abp.Domain.Entities;
    
    namespace pro513.Books
    {
        public class BookUpdateDto : IHasConcurrencyStamp
        {
            public string name { get; set; }
    
            public string ConcurrencyStamp { get; set; }
        }
    }
    
  4. Generate proxies with abp generate-proxy -t ng command.

  5. Update BookAppService's UpdateAsyncmethod with the following lines

    [Authorize(pro513Permissions.Books.Edit)]
    public virtual async Task<BookDto> UpdateAsync(Guid id, BookUpdateDto input)
    {
    
        var book = await _bookRepository.GetAsync(id);
        ObjectMapper.Map(input, book);
        // this line added
        book.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
    
        book = await _bookRepository.UpdateAsync(book, autoSave: true);
        return ObjectMapper.Map<Book, BookDto>(book);
    }
    
  6. Update BookComponent's submitForm method with the following lines

    submitForm() {
        if (this.form.invalid) return;
        // service.update method's second parameter replaced from this.form.value to  {...this.selected, ...this.form.value}
        const request = this.selected
          ? this.service.update(this.selected.id, {...this.selected, ...this.form.value})
          : this.service.create(this.form.value);
    
        this.isModalBusy = true;
    
        request
          .pipe(
            finalize(() => (this.isModalBusy = false)),
            tap(() => this.hideForm())
          )
          .subscribe(this.list.get);
      }
    

Result

Hello

You can remove the saas parent menu as shown below

import { eSaasRouteNames } from '@volo/abp.ng.saas/config';

function configureRoutes(routes: RoutesService) {
  return () => {
    routes.patch(eSaasRouteNames.Editions, { parentName: null, order: 2 });
    routes.patch(eSaasRouteNames.Tenants, { parentName: null, order: 3 });
    routes.remove([eSaasRouteNames.Saas]);
    // ... other route config
  };
}

Hello

Q1) Icons in the side menu are hidden except for the root items' icons. This is by the design of the lepton theme. If you want to display these icons you can change the display property of these icons like below.

// your-style-file
.lp-opened-sidebar .lp-sidebar .lp-sidebar-navi > ul ul span.lp-icon {
  display: table-cell;
}

Q2) Currently confirmation popup's icon can not customize. I created an issue Please follow that for the progress.

Hello,

Thanks for reporting the issue. I will notify you when the fix is available in the 5.0.x version

If you want to install 5.0.0 packages you can add abp packages in the resolutions section in the package.json

// package.json
{
    "resolutions": {
        "@abp/ng.account": "5.0.0",
        "@abp/ng.account.core": "5.0.0",
        "@abp/ng.core": "5.0.0",
        "@abp/ng.feature-management": "5.0.0",
        "@abp/ng.identity": "5.0.0",
        "@abp/ng.permission-management": "5.0.0",
        "@abp/ng.schematics": "5.0.0",
        "@abp/ng.setting-management": "5.0.0",
        "@abp/ng.tenant-management": "5.0.0",
        "@abp/ng.theme.basic": "5.0.0",
        "@abp/ng.theme.shared": "5.0.0",
    }
}

Hello,

You can read query parameters value with ActivatedRoute's queryParameters stream

Example

import { ActivatedRoute } from '@angular/router';

class YourComponent {
    constructor(private route: ActivatedRoute){
        this.route.queryParams.subscribe(params => {
            const tenant = params['Tenant']
            
        })
    }
}

There are 2 methods below for how can you change the logo.

Method 1: There is a CSS variable named logo-reverse which is assigned to the background property of the 'navbar-brand' class. You can change this variable's value in your component. Example:

import { AfterViewInit, ElementRef } from '@angular/core';

class YourComponent implements AfterViewInit{
    constructor(private elRef: ElementRef){
    }
    
    ngAfterViewInit() {
        this.elRef.nativeElement.style.setProperty('--logo-reverse', `url(${logoUrl})`)
    }
}

Method 2: You can set a template variable element that has background property for the logo. After you can change this element's background-image style property. Example:

<!-- YOUR COMPONENT TEMPLATE -->
<a #logoLink class="navbar-brand" routerLink="/" alt="Logo"></a>
class YourComponent implements AfterViewInit {
    @ViewChild("logoLink")
    logoLink: ElementRef<HTMLElement>
    
    ngAfterViewInit() {
        this.logoLink.nativeElement.setProperty('background', `url(${logoUrl})`)
    }
}

Full Guide Example:

import { AfterViewInit, ElementRef } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

class YourComponent implements AfterViewInit {
    constructor(private route: ActivatedRoute, private elRef: ElementRef){}
    
    ngAfterViewInit() {
        this.route.queryParams.subscribe(params => {
            const tenant = params['Tenant']
            const logoUrl = "YOUR LOGO URL";
            this.elRef.nativeElement.style.setProperty('--logo-reverse', `url(${logoUrl})`);
        })
    }
}

Hello,

There is a gulp file that builds styles in Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton project.

In Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton first install packages with yarn command

After build styles with gulp command

Hello,

Please follow the steps below to replace the existing CSS file

Angular
  • Copy your style file, backgrounds and fonts folders to angular/src/assets directory.
  • Add a new path to your tsconfig file for the assets folder.
{
  "compilerOptions": {
   // other compiler options
    "paths": {
      // other tsconfig paths
      "@assets/*": [
        "src/assets/*"
      ]
    }
  }
}
  • Create a new js file in your assets folder. And add the following lines to your file
import css from '@assets/your-css-file';

export default css;
  • Finally, add your js file to fileReplacements array of each configuration in angular.json to replace theme lepton's js file. Look at the example below (lepton6 style replace for this example)
{
  "projects": {
    "pro500sep": {
      "architect": {
        "build": {
          "configurations": {
            "production": {
              "fileReplacements": [
                // other replacements
                {
                  "replace": "node_modules/@volo/abp.ng.theme.lepton/dist/global/styles/lepton6.js",
                  "with": "src/assets/your-js-file"
                }
              ]
            },
            "development": {
              "fileReplacements": [
                {
                  "replace": "node_modules/@volo/abp.ng.theme.lepton/dist/global/styles/lepton6.js",
                  "with": "src/assets/your-js-file"
                }
              ]
            }
          }
        }
      }
    }
  }
}
Identity Server and Public Layout
  • Create folder Themes/Lepton/Global/Styles for each project under the wwwroot folder.
  • Copy your style file to these directories.
  • Rename style filename with lepton-STYLE_NUMBER.css.
  • For example, for replacing lepton 6 styles in the identity server project, you need to copy like this wwwroot/Themes/Lepton/Global/Styles/letpton6.css

Hello,

Sorry for the late response.

You need to copy lepton7.css file and assets folder which in Volo.LeptonTheme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton/Themes/Lepton/Global directory to your PublicLayout and IdentityServer projects' wwwroot directory.

After copying files, you need to do the Set Style Path section in Customize Lepton Theme with Custom CSS in MVC/Razor Pages UI documentation for each project

For the angular project copy the backgrounds, fonts and imgs folders and lepton7.css to angular/src/assets directory.

After copying files, set customStyle property to true as shown in the document and add your CSS file to your style.scss file. In this case, your scss file must include the line below

@use './assets/lepton7.css';

Information about after the customization, the style selection box will not be included in the theme settings form and ThemeLeptonModule does not load its own styles

Hello alaa

You can add provider buttons by replacing Login Component.

You can follow this guide to replace Login Component.

Also we use angular-oauth2-oidc library in abp. You can check how we implemented Authorization Code Flow strategy and Resource Owner Password flow with this library at auth-flow-strategy file.

Showing 221 to 230 of 254 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 20, 2024, 05:21