Open Closed

#14629 THE custom code tag <suite-custom-code-block-n>... is ignored by ABP Suite. Custom code is wiped out. #5892


User avatar
0
rwright-ruhealth created
  • ABP Framework version: vX7..4.0 rc4
  • UI Type: MVC
  • Database System: EF Core SQL Server
  • Tiered (for MVC) or Auth Server Separated (for Angular): Tiered
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Need more documentation on this tag: https://commercial.abp.io/releases/pr/14629

the tag <suite-custom-code-block-1>...</suite-custom-code-block-1> is never generated when I choose to generate the page without creating a new entity in the database. This is an existing project upgraded to the 7.4 rc-4. I am trying to get the suite-custom-code-block-# tags to generate in the existing page, which does get regenerated. However, the custom code block tags are not created in the page. If I create a new entity, the suite-custom-code-block-# tag comments are sprinkled throughout the .cshtml page. seems to be ignored when I regenerate code wrapped in this tag in a .cshtml page. I have checked the customizable checkbox in ABP Suite. The .cshtml page is recreated completely, wiping out any change wrapped in the custom code block tags for existing pages that I manually add these tags to, since APB SUITE does not add them when regenerated.


8 Answer(s)
  • User Avatar
    0
    EngincanV created
    Support Team .NET Developer

    Need more documentation on this tag: https://commercial.abp.io/releases/pr/14629

    We are currently preparing the documentation.

  • User Avatar
    0
    EngincanV created
    Support Team .NET Developer

    the tag <suite-custom-code-block-1>...</suite-custom-code-block-1> is never generated when I choose to generate the page without creating a new entity in the database. This is an existing project upgraded to the 7.4 rc-4. I am trying to get the suite-custom-code-block-# tags to generate in the existing page, which does get regenerated. However, the custom code block tags are not created in the page. If I create a new entity, the suite-custom-code-block-# tag comments are sprinkled throughout the .cshtml page. seems to be ignored when I regenerate code wrapped in this tag in a .cshtml page. I have checked the customizable checkbox in ABP Suite. The .cshtml page is recreated completely, wiping out any change wrapped in the custom code block tags for existing pages that I manually add these tags to, since APB SUITE does not add them when regenerated.

    Hi, I have re-checked it again and it seems there is not any problem here. You should have added the code block as follows:

    Correct ✅

    @*//<suite-custom-code-block-1>*@
        <h1>customizated content</h1>
    @*//</suite-custom-code-block-1>*@
    

    Wrong ❌

    @*<suite-custom-code-block-1>*@
        <h1>Custom Code</h1>
    @*</suite-custom-code-block-1>*@
    

    Our placeholder is //<suite-custom-code-block-n>, please try with this placeholder and you will see that it's working as expected.

  • User Avatar
    0
    rwright-ruhealth created

    the tag <suite-custom-code-block-1>...</suite-custom-code-block-1> is never generated when I choose to generate the page without creating a new entity in the database. This is an existing project upgraded to the 7.4 rc-4. I am trying to get the suite-custom-code-block-# tags to generate in the existing page, which does get regenerated. However, the custom code block tags are not created in the page. If I create a new entity, the suite-custom-code-block-# tag comments are sprinkled throughout the .cshtml page. seems to be ignored when I regenerate code wrapped in this tag in a .cshtml page. I have checked the customizable checkbox in ABP Suite. The .cshtml page is recreated completely, wiping out any change wrapped in the custom code block tags for existing pages that I manually add these tags to, since APB SUITE does not add them when regenerated.

    Hi, I have re-checked it again and it seems there is not any problem here. You should have added the code block as follows:

    Correct ✅

    @*//<suite-custom-code-block-1>*@ 
        <h1>customizated content</h1> 
    @*//</suite-custom-code-block-1>*@ 
    

    Wrong ❌

    @*<suite-custom-code-block-1>*@ 
        <h1>Custom Code</h1> 
    @*</suite-custom-code-block-1>*@ 
    

    Our placeholder is //<suite-custom-code-block-n>, please try with this placeholder and you will see that it's working as expected.

    I disagree with your answer: The custom-code-block-1 will not work in your example because the html you show will be placed in the @section styles { ... } section which gets placed in the <head> ... ..</head> tag when you regenerate the page in ABP SUITE, losing all changes. It seems these custom-code-block tags are expected to be used in specific locations in the page beyond the user's control.

    I will give an example. I have placed the following custom code blocks in a page. just above the starting abp-card tag and below the last @section content_toolbar { section } in books tutorial books index page .cshtml file:

    @//<suite-custom-code-block-1>@ <h1>custom block 1</h1> @//</suite-custom-code-block-1>@ @//<suite-custom-code-block-2>@ <h2>custom block 2</h2> @//</suite-custom-code-block-2>@ @//<suite-custom-code-block-3>@ <h3>custom block 3</h3> @//</suite-custom-code-block-3>@ @//<suite-custom-code-block-4>@ <h4>custom block 4</h4> @//</suite-custom-code-block-4>@ @//<suite-custom-code-block-5>@ <h5>custom block 5</h5> @//</suite-custom-code-block-5>@ @//<suite-custom-code-block-6>@ <h6>custom block 6</h6> @//</suite-custom-code-block-6>@

    When I use ABP Suite to regenerate the page (using a simple books tutorial book page this is what I get:

    @section styles { @//<suite-custom-code-block-1>@ <h1>custom block 1</h1> @//</suite-custom-code-block-1>@ }

    @section scripts { <abp-script src="/Pages/Books/index.js" /> @//<suite-custom-code-block-2>@ <h2>custom block 2</h2> @//</suite-custom-code-block-2>@ }

    @section content_toolbar { <abp-button id="ExportToExcelButton" text="@L["ExportToExcel"].Value" icon="download" size="Small" button-type="Primary" /> @if (await Authorization.IsGrantedAsync(GranTrakPermissions.Books.Create)) { <abp-button id="NewBookButton" text="@L["NewBook"].Value" icon="plus" size="Small" button-type="Primary" /> } @//<suite-custom-code-block-3>@ <h3>custom block 3</h3> @//</suite-custom-code-block-3>@ }

    @//<suite-custom-code-block-4>@ <h4>custom block 4</h4> @//</suite-custom-code-block-4>@

    <abp-card> <abp-card-body> <abp-row class="mb-3"> <abp-column size-md="_12"> <form id="SearchForm" autocomplete="off"> <div class="input-group"> <input class="form-control page-search-filter-text" id="FilterText" placeholder="@L["Search"]"/> <abp-button button-type="Primary" type="submit" icon="search"/> </div> </form> </abp-column> <abp-column size-md="_12" class="mt-3"> <a href="javascript:;" id="AdvancedFilterSectionToggler" class="text-decoration-none">@L["SeeAdvancedFilters"]</a> </abp-column> </abp-row>

        &lt;abp-row id=&quot;AdvancedFilterSection&quot; style=&quot;display: none;&quot;&gt;
            &lt;abp-column size=&quot;_3&quot;&gt;
                &lt;abp-input asp-for=&quot;TitleFilter&quot; label=&quot;@L[&quot;Title&quot;].Value&quot; /&gt;
            &lt;/abp-column&gt;
            &lt;abp-column size=&quot;_3&quot;&gt;
                &lt;abp-input asp-for=&quot;AuthorNameFilter&quot; label=&quot;@L[&quot;AuthorName&quot;].Value&quot; /&gt;
            &lt;/abp-column&gt;
    

    @//<suite-custom-code-block-5>@ <h5>custom block 5</h5> @//</suite-custom-code-block-5>@ </abp-row>

        &lt;abp-table striped-rows=&quot;true&quot; id=&quot;BooksTable&quot;&gt;
            &lt;thead&gt;
    			&lt;tr&gt;
    				&lt;th&gt;@L["Actions"]&lt;/th&gt;
    				&lt;th&gt;@L["Title"]&lt;/th&gt;
    				&lt;th&gt;@L["AuthorName"]&lt;/th&gt;
    

    @//<suite-custom-code-block-6>@ <h6>custom block 6</h6> @//</suite-custom-code-block-6>@ </tr> </thead> </abp-table> </abp-card-body> </abp-card>

    Not what I was expecting. Is this expected behavior? It appears to me the custom code blocks place themselves at certain points in the page and the user has no control over where these blocks are placed. So, at this point we seem to be stuck with using the code block points as and if they are generated by ABP Suite.

    At the very least, I have figured out how to the get the code blocks to stay when I create them in existing pages. My steps are: Create all 6 code custom code block points, as above using VSCode or Visual Studio to edit the .cshtml page. After editing save the page. Then use abp-suite to regenerate the items, etc and ABP Suite will move all of the code blocks to where it expects to find them. ABP Suite will not, however add items 2-6 for example, if you only put @//<suite-custom-code-block-1>@ @//</suite-custom-code-block-1>@ ABP Suite will only create this block and it places item 1 in the @ section styles { ... }

    The same thing will happen if you just put code block 6 only in your razor page @//<suite-custom-code-block-6>@ @//</suite-custom-code-block-6>@ custom code block 6 will get moved to below the thead/tr/th columns and above the closing thead/tr tag custom code blocks 1-5 will not get added.

    Finding this stuff out by trial and error as there is no documentation. Thank you.

  • User Avatar
    0
    EngincanV created
    Support Team .NET Developer

    Hi, we are providing some hook points, and even if you change those placeholders' locations the next time that you generate it will move them to the related places in the template. You can update the template and change the location of the placeholders if you want to put them in a different line.

    So, yes they are being waited in certain points for now, but it's possible to change their places by updating the related custom code templates.

    We will prepare a documentation to describe the custom code support asap. Thanks for your understanding.

    Regards.

  • User Avatar
    0
    rwright-ruhealth created

    Thank you for your followup. I will await documentation. Meanwhile, I will also wxplore templates as well.

  • User Avatar
    0
    EngincanV created
    Support Team .NET Developer

    Thank you for your followup. I will await documentation. Meanwhile, I will also wxplore templates as well.

    Thanks for understanding. Regards.

  • User Avatar
    0
    rwright-ruhealth created

    the tag <suite-custom-code-block-1>...</suite-custom-code-block-1> is never generated when I choose to generate the page without creating a new entity in the database. This is an existing project upgraded to the 7.4 rc-4. I am trying to get the suite-custom-code-block-# tags to generate in the existing page, which does get regenerated. However, the custom code block tags are not created in the page. If I create a new entity, the suite-custom-code-block-# tag comments are sprinkled throughout the .cshtml page. seems to be ignored when I regenerate code wrapped in this tag in a .cshtml page. I have checked the customizable checkbox in ABP Suite. The .cshtml page is recreated completely, wiping out any change wrapped in the custom code block tags for existing pages that I manually add these tags to, since APB SUITE does not add them when regenerated.

    Hi, I have re-checked it again and it seems there is not any problem here. You should have added the code block as follows:

    Correct ✅

    @*//<suite-custom-code-block-1>*@ 
        <h1>customizated content</h1> 
    @*//</suite-custom-code-block-1>*@ 
    

    Wrong ❌

    @*<suite-custom-code-block-1>*@ 
        <h1>Custom Code</h1> 
    @*</suite-custom-code-block-1>*@ 
    

    Our placeholder is //<suite-custom-code-block-n>, please try with this placeholder and you will see that it's working as expected.

    APB Team; The reason I believe this to still be a bug is because: A: The ABP Suite generates the .extended.cs class for existing projects when you check the Customizable Code checkbox. But, it's only half complete. It does not regenerate the pages and javascript files correctly. The .cshtml pages get regenerated but there are no @//<suite-custom-code-block-x>@ @//</suite-custom-code-block-x>@ tags. Why regenerate the main class and create the .extended.cs file if you are going to neglect to regenerate the cshtml and javascript code without the custom code blocks? The same for the javascript files. //<suite-custom-code-block-x> //</suite-custom-code-block-x> blocks are not generated in the freshly regenerated javascript code. It leaves the solution half-baked. Can this issue be fixed? Also, it really shouldn't be counted against my support questions. Thank you for looking into this.

  • User Avatar
    0
    EngincanV created
    Support Team .NET Developer

    APB Team; The reason I believe this to still be a bug is because: A: The ABP Suite generates the .extended.cs class for existing projects when you check the Customizable Code checkbox. But, it's only half complete. It does not regenerate the pages and javascript files correctly. The .cshtml pages get regenerated but there are no @//<suite-custom-code-block-x>@ @//</suite-custom-code-block-x>@ tags. Why regenerate the main class and create the .extended.cs file if you are going to neglect to regenerate the cshtml and javascript code without the custom code blocks? The same for the javascript files.
    //<suite-custom-code-block-x> //</suite-custom-code-block-x> blocks are not generated in the freshly regenerated javascript code. It leaves the solution half-baked. Can this issue be fixed? Also, it really shouldn't be counted against my support questions.
    Thank you for looking into this.

    Thanks for the explanation. I will create an internal issue for this and I have refunded your ticket. Closing the issue...

    Best regards.

Made with ❤️ on ABP v9.1.0-preview. Updated on December 26, 2024, 06:07