GrandNode v4.80.0 Release Notes

Release Date: 2020-10-15 // over 3 years ago
  • Main changes

    💻 [d49ee84] Extend API to allow to use Swagger UI #878

    🌲 [d26cd23] Implement Serilog logging for ASP.NET Core in the project #876

    [e6f5b74] Implement WKHTMLTOPDF #907

    [06b34c5] Advanced Permissions Management #913

    [d3bf769] Possibility to create sub accounts for customers #345

    [98212a4] Allow managing cookies preference #915

    ⚡️ [3eb9031] Admin panel - Bootstrap updated, Dark Mode added

    Full Changelog

    🚀 Click here to see the full release notes for GrandNode 4.80-0

    Rest of changes

    • [2ff4812] Add new event notification - insert order note (made by customer)
    • [a63acba] Add new event notification - insert product review
    • [e623dae] Add new event notification - insert blog post item comment
    • [0dff3c0] Add new event notification - insert news item comment
    • [cd05246] Add missing if statement for AllowPostVoting on forum #843
    • [74d6094] Allow to staff owner to change create date for the blog post
    • [9c3d602] Include knowledge base articles in sitemap #838
    • 🔨 [c174243] Refactor of the ICacheManager interface
    • 🔨 [258ba37] Refactor of the WorkflowMessageService Class (Customer workflow)
    • 👍 [3dfb74e] Better heading implementation on catalog pages
    • [c58d013] Further changes with ignoring language limitation
    • [3d81b77] Insert correct types for input tags #863
    • 🔒 [f28203f] Improve Security - implement host filtering, restricting the hostnames that your app responds to, It is recommended whenever you're running in production for security reasons.
    • 🌲 [d26cd23] Implement Serilog logging for ASP.NET Core in the project #876
    • [f045e58] Minor changes - set the Order for IGrandStartup
    • [4165fe1] Add event handler for delete language
    • [f0c5ec3] Add event handler for delete discount
    • [8fb811f] Add event handler for delete tax category
    • [00d0ab1] Add event handler for delete warehouse/delivery date
    • 🔨 [b00000d] Refactoring ProductService
    • 🔌 [35181a2] Do not load tasks from plugin not installed #868
    • 🌲 [a5384b9] Add new event customer log out
    • [14074dd] Sitemap - Allow selecting a language to generate the XML file
    • 🚚 [a9e10ca] Move Return Request Query to the Grand.Service project
    • 🚚 [5d5ff58] Move ClearMostViewedCommand/DeleteActivitylogCommand to the Grand.Service project
    • [9d9a0ef] Prepare UseFullTextSearchCommand Handler
    • [4461be9] Prepare MaxOrderNumber Command Handler
    • [52ff58e] Extend PictureService
    • 💻 [d49ee84] Extend API to allow to use Swagger UI #878
    • 🚚 [c95ec76] Move sitemap.config to App_Data folder
    • 🔨 [3c52aa6] Refactoring - Add new project Grand.Domain
    • [e19f715] Set area in admin views
    • 🔨 [1c3f562] Refactoring of code - move EuropaCheckVatService to separate project (as a plugin)
    • [9ed578c] Allow staff owner to assign owner email
    • [61aaaa2] Minor improvements ISettingService
    • 🚚 [ee60019] Remove setter from IWorkContext - CurrentCustomer
    • [8c431f3] Change library EPPlus to DotNetCore.NPOI - export/import excel #892
    • 🏁 [14258f1] Replaced deprecated library (Windows Azure Storage to Azure Blob Storage)
    • 🚚 [ee60019] Remove setter from IWorkContext - CurrentCustomer
    • 🚚 [67ff3e0] Further improvements - get customer cookie / set customer cookie move to the IGrandAuthenticationService
    • 🚚 [6613e78] Move action DeleteDirectory from CommonHelper to the PluginController
    • 🚚 [3791621] Move IMongoDBContext to Grand.Domain project
    • [0faed63] Allow validating the minimum, maximum order total for specific customer roles
    • 🚚 [d461b88] Remove IHtmlHelper extension and prepare TagHelper - Page title
    • 🚚 [b5852a4] Remove IHtmlHelper extension and prepare TagHelper - MetaDescription
    • 🚚 [f83e633] Remove IHtmlHelper extension and prepare TagHelper - MetaKeywords
    • 🚚 [df737a1] Remove IHtmlHelper extension and prepare TagHelper - Html
    • 🚚 [78d263e] Remove IHtmlHelper extension and prepare TagHelper - HeadCustom
    • 🚚 [7251b56] Remove IHtmlHelper extension and prepare TagHelper - CanonicalUrls
    • 🚚 [aa68f61] Remove IHtmlHelper extension and prepare TagHelper - CSSFiles/ScriptFiles
    • 🚚 [135a2f9] Remove IHtmlHelper extension and prepare TagHelper - BBCodeEditor
    • 🚚 [77e97ea] Remove IHtmlHelper extension and prepare TagHelper - Page navigation
    • [f0b4209] Add html-class TagHelper
    • [c878068] Minor improvements - Views (replace Component.InvokeAsync - to VC tag helper)
    • 🚚 [d6a52bd] Remove setting RenderXuaCompatible
    • [01cf9f1] Razor views - use HTML tags
    • 🚚 [a7a9cb0] Remove Html layout extensions
    • 🚚 [0ef69a7] Remove html extensions - GetTopicSeName
    • [e6f5b74] Implement WKHTMLTOPDF #907
    • [c708f0b] Change the Zero SSL validation URL #916
    • [4487abb] Minor improvements - add to the repository new method InsertManyAsync
    • [2b4c60b] Advanced Permissions #913 - Add new Tab on the Customer Role - Access Control List
    • ⚡️ [51551e6] Admin panel - Update Bootstrap in admin panel to the newest version (#930)
    • [c6645e3] Admin panel - Add a notification display if your version of GrandNode is out of date
    • 🚚 [d370c3a] Admin panel - Move Access Denied Action to the Home Controller
    • ⏱ [8b0d259] Admin panel - Schedule task list - convert DateTime fields to user time
    • 0️⃣ [647713b] Admin panel - Prevent for null values in JavaScriptEncoder.Default.Encode
    • [8fa3dbb] Admin panel - Make order details more user friendly #934
    • [b163189] Admin panel - Customer details - Allow to expand order details
    • [8e1ce89] Admin panel - Allow editing generic attributes on delivery dates
    • [cbfceb9] Allow to adding labels on orders #845 (Thanks @dborovsky for the contribution)
    • [e607c92] Add new settings in AppSettings.json - cookie claims issuer
    • [47380cc] Minor improvements - logo on PDF document
    • [8205c2e] Minor improvements with assembly to skip loading
    • 🔌 [c8f2f44] Add new settings in AppSettings.json - list of plugins to be ignored during start application - pattern
    • [8ff43fe] Allow setting for a cookie prefix name
    • 🔌 [8d2ac97] Implement manifest for plugin info
    • [c9f045f] Second manufacturer description on the bottom of the page #919
    • [5e09438] Second category description on the bottom of the page #918
    • 🔌 [d94b3ac] Allow using the logo in png format for plugins
    • [a08a658] Add possibility to edit custom robots.txt file via admin panel #898 (@dborovsky thanks for the contribution)
    • [2b4bd52] Increment display order value when adding a new language #922
    • 🚚 [423fb39] Grand.Core - move type converter classes to the Grand.Core.TypeConverters
    • [c73dc9f] Add meta open graph tags #399
    • [19298db] Improve Import resources from XML
    • 0️⃣ [58c50d9] DefaultResource - set display order by name
    • [39e4fdd] Minor changes - Admin - System Info (add order by for assemblies)
    • [9f1abe2] Introduce the Semantic Versioning #928
    • [9f7b546] Possibility to automatically cancel unpaid orders after X days. (@kirollosonsi thanks for the contribution)
    • 🌐 [5a95124] Add Indonesian Translation in the Installation Resources #932 (@riceeater-id thanks for the contribution)
    • 🚚 [cbe02ae] Move TinyMceHelper to the extensions
    • ✅ [efdc78c] Unit Tests - DocumentTypeService #472 (@dborovsky thanks for the contribution)
    • ✅ [226ebc3] Unit tests - DeleteMeasureUnitOnProductCommandHandlerTest #472 (@dborovsky thanks for the contribution)
    • 🚚 [e30a70f] Move some plugins to the marketplace - Google Shopping Feed, Pay in store and Check/Money Order plugins can be found on https://grandnode.com/extensions
    • [6e23bb4] Add user note for "Min order sub-total amount" setting
    • [1f9284e] Add user note for "Automatically cancel unpaid and pending orders after X days" setting
    • 0️⃣ [54af97e] Change the default values after installation for some settings
    • [55f437e] Allow to register own type converters by using ITypeConverter
    • 🔌 [43525f9] Allow to run IGrandStartup event if the plugin is not installed
    • [fd9067a] List categories in selected language #947 (@Illia-M thanks for the contribution)
    • [495c916] PDF template - Add missing fields
    • [670a3eb] Add new widget zones for customer
    • 0️⃣ [d326c32] Use JwtBearerDefaults.AuthenticationScheme static field
    • [87f1d6f] For Request.Headers use static field
    • [c1d0607] Clear cache after changed settings
    • ⏱ [2978ced] Minor improvements - Edit Scheduled Task (add new button save and continue)
    • 🔨 [316ec1d] Minor refactoring - Import manager
    • 🚚 [57b3f0b] Remove unused variables ScriptFilesTagHelper/CssFilesTagHelper
    • [35b48db] Add method CancelOrder to the IOrderProcessingService
    • [b1ef377] Minor improvements - Add if statement to Footer Company Details items
    • [5c8e0c9] Admin panel - Customer edit - allow list queued emails
    • [8129655] Queued Emails - add missing field SearchToEmail
    • [ace33e9] Add possibility to specify "Company details" during installation
    • [06715eb] Add new customer settings AllowUsersToChangeEmail
    • 🌲 [8a63602] Log and skip image converting error (#953) (@Illia-M thanks for the contribution)
    • ⚡️ [7c0da51] Update Firebase to the newest version #954
    • [e2d9629] Minor improvements - CheckAccessClosedStore
    • [6d1d4fa] Make StoreClosed page simpler
    • [1d8bc59] Admin - add Constant class - area admin
    • [fd9067a] View categories list in selected language (#947) (@Illia-M thanks for the contribution)
    • [a3bc805] Admin panel - replace url content with url action (Views)
    • [432331f] Prepare new form for login to admin panel
    • 🚚 [cbe02ae] Move TinyMceHelper to the extensions
    • [99c9d59] Improve reviews system - Review confirmed by purchase #578
    • [8c36574] Add GenericAttributes for documents
    • [52e21e5] Add more settings for rounding amount
    • [c089b92] Extend some liquid objects
    • 📦 [91e7253] Add informatiom about correct package structure on Plugins list
    • [1248c2d] Add category field to the homepage blog post
    • [6520dfe] Minor improvements - newsletter subscription for store owner
    • [c206555] Prepare ACL for customer tag

    🐛 Bug fixes

    • [43147ef] Advanced search doesn't include the category to result #851
    • [296983d] When you are on 2FA enable page wrong menu item is highlighted #856
    • 🌐 [ba4cd43] Add missing translation for Add order note button #857
    • [7fe19e6] Problem with mobile search trigger on mobile #866
    • [49a4632] Fix the correct length of encryption private key in Settings #871
    • [3395f4f] Minor fix - admin panel - search product reviews list
    • [da83fe6] Start/End Date for Tier Prices are not saved on product #889
    • 📈 [81a1d50] Google Analytics widget doesn't pass the e-commerce data #891
    • ⬆️ [4cbf117] Fix for upgrade (InstallStringResources)
    • [f485245] Fix Shopping Cart tab incorrectly highlighted on order complete page #870 (thanks @gopkumr for the contribution)
    • 🛠 [53ffd7b] Fixed issue with change/reset password
    • [ade1554] Contact us - prevent to send form with wrong CAPTCHA #921
    • 🚚 [709fd24] Staff - Bulk Edit Product is not accessible when the assigned store will be removed #909
    • ⏱ [37cf69e] After losing a connection with the database, the scheduled task does not run again #923
    • [c1a5c8c] Admin panel - Fix get count online shopping cart
    • [60d2d6d] Fix - Popup interactive form
    • [0ec5214] Fix - Topic content not vissible #939anguagesEnabled doesn't work #970
    • [7e30eb4] Admin panel - fix link Subject (Queued email)
    • [7c67b6a] Partial refund (offiline) - set status refunded instead of partially refunded if we refund the whole amount #951
    • [32b90e5] Admin panel - Fix for Knowledgebase - EditArticle (link)
    • 🌐 [b87007b] Admin panel - add missing line tag helper Grand.Web
    • [1fd0ff1] Admin panel - fix link to the blog post on category
    • [6fb0618] Minor fix - Installation process - CreateTables
    • [4f70cb1] Fix - It's impossible to make an order if there is a customer action "Add order" with conditions #938
    • [f389124] ProductTemplate.Grouped - fix for variant attributes
    • 👻 [a795a79] Prevent exception if roslyn scripts assemblies not exists
    • [73abe17] Fix - Wrong email data #977
    • 🛠 [b721b5e] Import language on RTL bug fixed #976
    • [2db9579] Admin panel - minor fix - order details - display tax rates
    • [23a0759] Admin panel - fix to show amount order subtotal discount on the order details
    • [49bd32e] Fix - Delete message contact form #981
    • 🖨 [480b045] Print shipments not respect vendor role #980

Previous changes from v4.80.0-beta

  • Main changes

    💻 [d49ee84] Extend API to allow to use Swagger UI #878

    🌲 [d26cd23] Implement Serilog logging for ASP.NET Core in the project #876

    [e6f5b74] Implement WKHTMLTOPDF #907

    [06b34c5] Advanced Permissions Management #913

    [d3bf769] Possibility to create sub accounts for customers #345

    [98212a4] Allow managing cookies preference #915

    ⚡️ [3eb9031] Admin panel - Bootstrap updated, Dark Mode added

    Full Changelog

    🚀 Click here to see the full release notes for GrandNode 4.80-0-beta

    Rest of changes

    • [2ff4812] Add new event notification - insert order note (made by customer)
    • [a63acba] Add new event notification - insert product review
    • [e623dae] Add new event notification - insert blog post item comment
    • [0dff3c0] Add new event notification - insert news item comment
    • [cd05246] Add missing if statement for AllowPostVoting on forum #843
    • [74d6094] Allow to staff owner to change create date for the blog post
    • [9c3d602] Include knowledge base articles in sitemap #838
    • 🔨 [c174243] Refactor of the ICacheManager interface
    • 🔨 [258ba37] Refactor of the WorkflowMessageService Class (Customer workflow)
    • 👍 [3dfb74e] Better heading implementation on catalog pages
    • [c58d013] Further changes with ignoring language limitation
    • [3d81b77] Insert correct types for input tags #863
    • 🔒 [f28203f] Improve Security - implement host filtering, restricting the hostnames that your app responds to, It is recommended whenever you're running in production for security reasons.
    • 🌲 [d26cd23] Implement Serilog logging for ASP.NET Core in the project #876
    • [f045e58] Minor changes - set the Order for IGrandStartup
    • [4165fe1] Add event handler for delete language
    • [f0c5ec3] Add event handler for delete discount
    • [8fb811f] Add event handler for delete tax category
    • [00d0ab1] Add event handler for delete warehouse/delivery date
    • 🔨 [b00000d] Refactoring ProductService
    • 🔌 [35181a2] Do not load tasks from plugin not installed #868
    • 🌲 [a5384b9] Add new event customer log out
    • [14074dd] Sitemap - Allow selecting a language to generate the XML file
    • 🚚 [a9e10ca] Move Return Request Query to the Grand.Service project
    • 🚚 [5d5ff58] Move ClearMostViewedCommand/DeleteActivitylogCommand to the Grand.Service project
    • [9d9a0ef] Prepare UseFullTextSearchCommand Handler
    • [4461be9] Prepare MaxOrderNumber Command Handler
    • [52ff58e] Extend PictureService
    • 💻 [d49ee84] Extend API to allow to use Swagger UI #878
    • 🚚 [c95ec76] Move sitemap.config to App_Data folder
    • 🔨 [3c52aa6] Refactoring - Add new project Grand.Domain
    • [e19f715] Set area in admin views
    • 🔨 [1c3f562] Refactoring of code - move EuropaCheckVatService to separate project (as a plugin)
    • [9ed578c] Allow staff owner to assign owner email
    • [61aaaa2] Minor improvements ISettingService
    • 🚚 [ee60019] Remove setter from IWorkContext - CurrentCustomer
    • [8c431f3] Change library EPPlus to DotNetCore.NPOI - export/import excel #892
    • 🏁 [14258f1] Replaced deprecated library (Windows Azure Storage to Azure Blob Storage)
    • 🚚 [ee60019] Remove setter from IWorkContext - CurrentCustomer
    • 🚚 [67ff3e0] Further improvements - get customer cookie / set customer cookie move to the IGrandAuthenticationService
    • 🚚 [6613e78] Move action DeleteDirectory from CommonHelper to the PluginController
    • 🚚 [3791621] Move IMongoDBContext to Grand.Domain project
    • [0faed63] Allow validating the minimum, maximum order total for specific customer roles
    • 🚚 [d461b88] Remove IHtmlHelper extension and prepare TagHelper - Page title
    • 🚚 [b5852a4] Remove IHtmlHelper extension and prepare TagHelper - MetaDescription
    • 🚚 [f83e633] Remove IHtmlHelper extension and prepare TagHelper - MetaKeywords
    • 🚚 [df737a1] Remove IHtmlHelper extension and prepare TagHelper - Html
    • 🚚 [78d263e] Remove IHtmlHelper extension and prepare TagHelper - HeadCustom
    • 🚚 [7251b56] Remove IHtmlHelper extension and prepare TagHelper - CanonicalUrls
    • 🚚 [aa68f61] Remove IHtmlHelper extension and prepare TagHelper - CSSFiles/ScriptFiles
    • 🚚 [135a2f9] Remove IHtmlHelper extension and prepare TagHelper - BBCodeEditor
    • 🚚 [77e97ea] Remove IHtmlHelper extension and prepare TagHelper - Page navigation
    • [f0b4209] Add html-class TagHelper
    • [c878068] Minor improvements - Views (replace Component.InvokeAsync - to VC tag helper)
    • 🚚 [d6a52bd] Remove setting RenderXuaCompatible
    • [01cf9f1] Razor views - use HTML tags
    • 🚚 [a7a9cb0] Remove Html layout extensions
    • 🚚 [0ef69a7] Remove html extensions - GetTopicSeName
    • [e6f5b74] Implement WKHTMLTOPDF #907
    • [c708f0b] Change the Zero SSL validation URL #916
    • [4487abb] Minor improvements - add to the repository new method InsertManyAsync
    • [2b4c60b] Advanced Permissions #913 - Add new Tab on the Customer Role - Access Control List
    • ⚡️ [51551e6] Admin panel - Update Bootstrap in admin panel to the newest version (#930)
    • [c6645e3] Admin panel - Add a notification display if your version of GrandNode is out of date
    • 🚚 [d370c3a] Admin panel - Move Access Denied Action to the Home Controller
    • ⏱ [8b0d259] Admin panel - Schedule task list - convert DateTime fields to user time
    • 0️⃣ [647713b] Admin panel - Prevent for null values in JavaScriptEncoder.Default.Encode
    • [8fa3dbb] Admin panel - Make order details more user friendly #934
    • [b163189] Admin panel - Customer details - Allow to expand order details
    • [8e1ce89] Admin panel - Allow editing generic attributes on delivery dates
    • [cbfceb9] Allow to adding labels on orders #845 (Thanks @dborovsky for the contribution)
    • [e607c92] Add new settings in AppSettings.json - cookie claims issuer
    • [47380cc] Minor improvements - logo on PDF document
    • [8205c2e] Minor improvements with assembly to skip loading
    • 🔌 [c8f2f44] Add new settings in AppSettings.json - list of plugins to be ignored during start application - pattern
    • [8ff43fe] Allow setting for a cookie prefix name
    • 🔌 [8d2ac97] Implement manifest for plugin info
    • [c9f045f] Second manufacturer description on the bottom of the page #919
    • [5e09438] Second category description on the bottom of the page #918
    • 🔌 [d94b3ac] Allow using the logo in png format for plugins
    • [a08a658] Add possibility to edit custom robots.txt file via admin panel #898 (@dborovsky thanks for the contribution)
    • [2b4bd52] Increment display order value when adding a new language #922
    • 🚚 [423fb39] Grand.Core - move type converter classes to the Grand.Core.TypeConverters
    • [c73dc9f] Add meta open graph tags #399
    • [19298db] Improve Import resources from XML
    • 0️⃣ [58c50d9] DefaultResource - set display order by name
    • [39e4fdd] Minor changes - Admin - System Info (add order by for assemblies)
    • [9f1abe2] Introduce the Semantic Versioning #928
    • [9f7b546] Possibility to automatically cancel unpaid orders after X days. (@kirollosonsi thanks for the contribution)
    • 🌐 [5a95124] Add Indonesian Translation in the Installation Resources #932 (@riceeater-id thanks for the contribution)
    • 🚚 [cbe02ae] Move TinyMceHelper to the extensions
    • ✅ [efdc78c] Unit Tests - DocumentTypeService #472 (@dborovsky thanks for the contribution)
    • ✅ [226ebc3] Unit tests - DeleteMeasureUnitOnProductCommandHandlerTest #472 (@dborovsky thanks for the contribution)
    • 🚚 [e30a70f] Move some plugins to the marketplace - Google Shopping Feed, Pay in store and Check/Money Order plugins can be found on https://grandnode.com/extensions
    • [6e23bb4] Add user note for "Min order sub-total amount" setting
    • [1f9284e] Add user note for "Automatically cancel unpaid and pending orders after X days" setting
    • 0️⃣ [54af97e] Change the default values after installation for some settings
    • [55f437e] Allow to register own type converters by using ITypeConverter
    • 🔌 [43525f9] Allow to run IGrandStartup event if the plugin is not installed

    🐛 Bug fixes

    • [43147ef] Advanced search doesn't include the category to result #851
    • [296983d] When you are on 2FA enable page wrong menu item is highlighted #856
    • 🌐 [ba4cd43] Add missing translation for Add order note button #857
    • [7fe19e6] Problem with mobile search trigger on mobile #866
    • [49a4632] Fix the correct length of encryption private key in Settings #871
    • [3395f4f] Minor fix - admin panel - search product reviews list
    • [da83fe6] Start/End Date for Tier Prices are not saved on product #889
    • 📈 [81a1d50] Google Analytics widget doesn't pass the e-commerce data #891
    • ⬆️ [4cbf117] Fix for upgrade (InstallStringResources)
    • [f485245] Fix Shopping Cart tab incorrectly highlighted on order complete page #870 (thanks @gopkumr for the contribution)
    • 🛠 [53ffd7b] Fixed issue with change/reset password
    • [ade1554] Contact us - prevent to send form with wrong CAPTCHA #921
    • 🚚 [709fd24] Staff - Bulk Edit Product is not accessible when the assigned store will be removed #909
    • ⏱ [37cf69e] After losing a connection with the database, the scheduled task does not run again #923
    • [c1a5c8c] Admin panel - Fix get count online shopping cart
    • [60d2d6d] Fix - Popup interactive form
    • [0ec5214] Fix - Topic content not vissible #939
    • [4f70cb1] Fix - It's impossible to make an order if there is a customer action "Add order" with conditions #938
    • [f389124] ProductTemplate.Grouped - fix for variant attributes
    • 👻 [a795a79] Prevent exception if roslyn scripts assemblies not exists