Activities of "pkouame"

@alper - on FileProviders I updated my project file manually to let it compile - I was just letting you guys know - I'm on visual studio code on the mac

on gulp - how do you suggest I fix this problem ? Isn't this a problem with your installer ?

UPDATE:

after 3.1.0 release abp switch-to-stable generates the same gulp install error but since mine is installed via yarn gulpfile.js is processed correctly as long as my version of gulp-cli is updated to CLI version 2.3.0. Just to let you guys know (don't know where to report these problems - so just doing so here if it helps anyone). Also FileProviders still needs to be manually updated to 3.1.6 or else aspnet-core doesn't build.

after abp switch-to-preview (abp cli updated to 3.1.0-rc.4 ) on a 3.0.5 project, I get this error regarding an npm gulp installation:

[13:09:58 INF] Checking installed npm global packages... [13:10:00 INF] Installing gulp... npm ERR! code EEXIST npm ERR! syscall symlink npm ERR! path ../lib/node_modules/gulp/bin/gulp.js npm ERR! dest /usr/local/bin/gulp npm ERR! errno -17 npm ERR! EEXIST: file already exists, symlink '../lib/node_modules/gulp/bin/gulp.js' -> '/usr/local/bin/gulp' npm ERR! File exists: /usr/local/bin/gulp npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly.

my version of gulp and gulp cli (installed via yarn) are :

gulp -v [13:20:03] CLI version 3.9.1 [13:20:03] Local version 4.0.2

A little later during the switch, I get :

[12:34:12 INF] Running Gulp on /Users/me/dev/aqua/abp-pro/v300/Kuvu.Track/aspnet-core/src/Kuvu.Track.HttpApi.Host/ [12:34:13] Using gulpfile ~/dev/aqua/abp-pro/v300/Kuvu.Track/aspnet-core/src/Kuvu.Track.HttpApi.Host/gulpfile.js /Users/me/.config/yarn/global/node_modules/gulp/bin/gulp.js:129 gulpInst.start.apply(gulpInst, toRun); ^

TypeError: Cannot read property 'apply' of undefined at /Users/me/.config/yarn/global/node_modules/gulp/bin/gulp.js:129:20 at processTicksAndRejections (internal/process/task_queues.js:79:11)

UPDATE: In addition to the above. the back-end does not start until I upgrade my Microsoft.Extensions.FileProviders.Embedded from 3.1.5 to 3.1.6 in Domain.Shared

<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.6" />

Anything to worry about?

Thanks - will the angular version be available soon ? (Devextreme angular => 20.1.7)

Especially a datagrid sample with both client and server side rendering

Ok - just to be clear

  • you are reporting that the "vendorLookup" versus "vendor-lookup" route naming issue has been fixed in 3.0.3 and the convention is %%np-entity-name-camelcase%%-lookup. At the time this was reported the server route name was still "vendorLookup"
  • I didn't experience the second primary key issue you mentioned. But I'll assume that has been fixed also.

Thank yoiu

Ok - I will check out 3.0.3 - thank you.

Did I assume correctly that the api should be called %%np-entity-name-camelcase%% Lookup instead of %%np-entity-name-camelcase%%-lookup? What is your naming convention?

My template fix works but I want to make sure before I used it across my other tables...

Also - how to get rid of that garballed template above (would you know how that happened?)

Any news on this case?

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v2.9.0
  • UI type: Angular / MVC
  • Tiered (MVC) or Identity Server Seperated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:

in service.ts :

  url: `/api/ENTITY_NAME/with-navigation-properties/${id}`
  
  should be 
  
   url: `/api/app/ENTITY_NAME/with-navigation-properties/${id}`

Template needed a change (again) :

I'm on a roll - third bug today - since I'm finding your bugs (as a paying customer no less) can I get credit in my question counter (at least) ?

Don't mean to be nasty .... just frustrating ... please test and pay more care to the angular side of things...

regards, Patrice

Anybody there?

Ok - looks like this is another Template Error (arghhhh) - there were two consequences

1- build error and migration interrruption 2- bad api name

[Route("%%np-entity-name-camelcase%%Lookup")] instead of

[Route("%%np-entity-name-camelcase%%-lookup")]

not sure what the intent was - here's my edit:

ALSO - what is this in my template folder and how can I fix it :

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v2.9.0
  • UI type: Angular / MVC
  • Tiered (MVC) or Identity Server Seperated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:

in abp suite 2.9.0 - create a new entity with non-required properties (string type usually in my case) migrate and update form doesn't validate when non-required field is skipped

see below. In my Vendor Entity the Phone property is tagged as non-required:

server requires validation :

Even though the create DTO seems correct :

using System;
using System.ComponentModel.DataAnnotations;

namespace Skipj.Track.Vendors
{
    public class VendorCreateDto
    {

        [Required]
        [StringLength(VendorConsts.NameMaxLength, MinimumLength = VendorConsts.NameMinLength)]
        public string Name { get; set; }

        [StringLength(VendorConsts.PhoneMaxLength, MinimumLength = VendorConsts.PhoneMinLength)]
        public string Phone { get; set; }

        [EmailAddress]
        [StringLength(VendorConsts.EmailMaxLength, MinimumLength = VendorConsts.EmailMinLength)]
        public string Email { get; set; }

        [StringLength(VendorConsts.WebsiteMaxLength, MinimumLength = VendorConsts.WebsiteMinLength)]
        public string Website { get; set; }

        [StringLength(VendorConsts.TaxIdMaxLength, MinimumLength = VendorConsts.TaxIdMinLength)]
        public string TaxId { get; set; }

        [StringLength(VendorConsts.VendorIdMaxLength, MinimumLength = VendorConsts.VendorIdMinLength)]
        public string VendorId { get; set; }

        [StringLength(VendorConsts.AltNameMaxLength, MinimumLength = VendorConsts.AltNameMinLength)]
        public string AltName { get; set; }

        [StringLength(VendorConsts.DbaNameMaxLength, MinimumLength = VendorConsts.DbaNameMinLength)]
        public string DbaName { get; set; }

        [StringLength(VendorConsts.NotesMaxLength, MinimumLength = VendorConsts.NotesMinLength)]
        public string Notes { get; set; }

        [Required]
        public bool IsPrime { get; set; }

        [Required]
        public bool IsMdBased { get; set; }

        public bool IsWomanOwned { get; set; }

        [StringLength(VendorConsts.RatingMaxLength, MinimumLength = VendorConsts.RatingMinLength)]
        public string Rating { get; set; }

        [StringLength(VendorConsts.DisplayNameMaxLength, MinimumLength = VendorConsts.DisplayNameMinLength)]
        public string DisplayName { get; set; }

        public bool HasMdEmployees { get; set; }

        [StringLength(VendorConsts.DunsNumberMaxLength, MinimumLength = VendorConsts.DunsNumberMinLength)]
        public string DunsNumber { get; set; }

    }
}

the angular input form doesn't mark anything as required either :

    <ng-template #abpBody>
        <form [formGroup]="form" (ngSubmit)="save()" validateOnSubmit>
            <div class="mt-2 fade-in-top">
                    <div class="form-group">
      <label for="vendor-name">
          {{ '::Name' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-name" 
             class="form-control" 			 
             formControlName="name" autofocus maxlength="64" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-phone">
          {{ '::Phone' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-phone" 
             class="form-control" 			 
             formControlName="phone"  maxlength="50" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-email">
          {{ '::Email' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-email" 
             class="form-control" 			 
             formControlName="email"  maxlength="32" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-website">
          {{ '::Website' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-website" 
             class="form-control" 			 
             formControlName="website"  maxlength="64" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-taxId">
          {{ '::TaxId' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-taxId" 
             class="form-control" 			 
             formControlName="taxId"  maxlength="10" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-vendorId">
          {{ '::VendorId' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-vendorId" 
             class="form-control" 			 
             formControlName="vendorId"  maxlength="255" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-altName">
          {{ '::AltName' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-altName" 
             class="form-control" 			 
             formControlName="altName"  maxlength="64" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-dbaName">
          {{ '::DbaName' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-dbaName" 
             class="form-control" 			 
             formControlName="dbaName"  maxlength="64" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-notes">
          {{ '::Notes' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-notes" 
             class="form-control" 			 
             formControlName="notes"  maxlength="255" minlength="1"/>
    </div>
	<div class="form-group form-check custom-checkbox custom-control">
      <input type="checkbox" 
             id="vendor-isPrime" 
             class="form-check-input custom-control-input" 
             formControlName="isPrime" />

      <label class="custom-control-label" 
             for="vendor-isPrime">
          {{ '::IsPrime' | abpLocalization }}
      </label>
    </div>
	<div class="form-group form-check custom-checkbox custom-control">
      <input type="checkbox" 
             id="vendor-isMdBased" 
             class="form-check-input custom-control-input" 
             formControlName="isMdBased" />

      <label class="custom-control-label" 
             for="vendor-isMdBased">
          {{ '::IsMdBased' | abpLocalization }}
      </label>
    </div>
	<div class="form-group form-check custom-checkbox custom-control">
      <input type="checkbox" 
             id="vendor-isWomanOwned" 
             class="form-check-input custom-control-input" 
             formControlName="isWomanOwned" />

      <label class="custom-control-label" 
             for="vendor-isWomanOwned">
          {{ '::IsWomanOwned' | abpLocalization }}
      </label>
    </div>
    <div class="form-group">
      <label for="vendor-rating">
          {{ '::Rating' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-rating" 
             class="form-control" 			 
             formControlName="rating"  maxlength="32" minlength="1"/>
    </div>
    <div class="form-group">
      <label for="vendor-displayName">
          {{ '::DisplayName' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-displayName" 
             class="form-control" 			 
             formControlName="displayName"  maxlength="64" minlength="1"/>
    </div>
	<div class="form-group form-check custom-checkbox custom-control">
      <input type="checkbox" 
             id="vendor-hasMdEmployees" 
             class="form-check-input custom-control-input" 
             formControlName="hasMdEmployees" />

      <label class="custom-control-label" 
             for="vendor-hasMdEmployees">
          {{ '::HasMdEmployees' | abpLocalization }}
      </label>
    </div>
    <div class="form-group">
      <label for="vendor-dunsNumber">
          {{ '::DunsNumber' | abpLocalization }}
      </label>

      <input type="text" 
             id="vendor-dunsNumber" 
             class="form-control" 			 
             formControlName="dunsNumber"  maxlength="10" minlength="1"/>
    </div>
 
            </div>
        </form>
    </ng-template>
  

**SECOND question while I'm at it : why aren't required fields tagged as such on the angular form (like red dot or asterisk on the MV forms) **

Showing 1 to 10 of 28 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11