Get 2024 Templates Mega Bundle!14 Bootstrap, Vue & React Templates + 3 Vector Sets
Get for 99$

Keen - Migration to v3


Hi there,
I am very disappointed on how the keen team is managing the release of keen v3.
There is literally nothing, afaik, on how to migrate from v2 to v3, as if keen v3 is only for new projects.

Let apart not having a single page dedicated to what a customer should change for each keen component(e.g. how bootstrap5 classes differs from bt4, how keens' utility classes have changed, how to update wizards (why this change?) to stepper components), the worse is that you don't even explain why you dropped support for libraries (e.g. datetimepicker now tempusDominus, bootstrap-datepicker) / icons / ecc..

In particular:
-> Icons :
Why there are no more Flaticons ? Do you expect people changing all their icons in their project and check if every single UI element doesn't break the whole layout??

-> Wizards/Steppers :
-Why the change of "namespace" ? Also, stepper don't work anymore with some events (kt.stepper.change, previously just "change" (why make things harder?)) while in previous version (with wizards) they did. Tested it out today, I should change all my events from listening "change" to "previous" or "next" : ridiculous.
-Stepper Docs state that you can pass options to Stepper's constructor, but in no point you specify what the options are. You pretend users to go look at keen's v2 wizard doc?
-Changing of steps through API don't update the stepper's steps, breaking the usability of the stepper itself. Have you checked if steppers work correctly doing so ? In my code, after updating the elements as per the docs, it doesn't anymore, and it is impossible to test it out in the stepper's doc page, since, probably, I get the license expired error (even if I have one).

From very happy with keen v2 to pretty disappointed and unsatisfied with current state of keen v3.
I hope you fix things soon, so to stay update with your releases too!


Text formatting options
Submit
Here's a how to add some HTML formatting to your comment:
  • <pre></pre> for JS codes block
  • <pre lang="html"></pre> for HTML code block
  • <pre lang="scss"></pre> for SCSS code block
  • <pre lang="php"></pre> for PHP code block
  • <code></code> for single line of code
  • <strong></strong> to make things bold
  • <em></em> to emphasize
  • <ul><li></li></ul>  to make list
  • <ol><li></li></ol>  to make ordered list
  • <h3></h3> to make headings
  • <a></a> for links
  • <img> to paste in an image
  • <blockquote></blockquote> to quote somebody
  • happy  :)
  • shocked  :|
  • sad  :(

Replies (17)


Hi,

Thank you for your honest feedback.

Sorry to hear that and we fully understand the issue you faced. Due to the Bootstrap 5 breaking changes and Keen's massive code refactoring the Keen v3 update was released as a completely new product. However, we still provide access to the old Keen v2 version. In Keen v3 some plugins were dropped due to their incompatibility with Bootstrap 5 and we replaced those plugins with alternatives.

Unfortunately, instant migration from v2 to v3 is impossible due to the mainly Bootstrap 4->Bootstrap 5 migration, which impacts almost all Bootstrap-based plugins.

Due to license limitations, we used our in-house icon sets(Duetune) and fully open-source icons such as Bootstrap, Font awesome, and Lineicons.

The namespace change was due to CSS class(header, footer, toolbar, sidebar) conflicts with some third-party plugins.

The Stepper component now works as a wrapper and it's easier to add logic for the navigation and steps flow.

However, we noted your suggestions and we will add more info into the v3 change of Keen here. Also we will try to revise the code and make v2 -> v3 migration easier as much as possible.

If you need any further help with a particular issue please let us know and we will do our best to guide you further.

Regards,
Sean



Hi Sean,

About bt5 migration, the migration is not that difficult. 90% of the work to make my code work again was replacing data tags with "data-bs-..." . The point was that a dedicated page would be nice to have, instead of letting customers figuring it out by themselves. Since KeenTheme already knows what are the major changes to apply / differences from v4 to v5 are, it would be much easier this way than let users alone on this task.

About third party's plugins, check these out :
-> old "datetimepicker" now "tempusDominus". Bootstrap5 compatible
-> old "selectpicker" has a bt5 beta https://www.npmjs.com/package/bootstrap-select/v/1.14.0-beta2
I have replaced these with their older versions (the ones in keen theme), and they do work. Only tempusDominus requires a little tuning, but in this page there is a config migration tool (https://getdatepicker.com/6/migration.html)

Stepper : I don't see many differences from the prev wizard (looking at the docs). My wizards (now steppers) don't work as before when listening to "change" method. I should switch to "prev" and "next" events to make them work (I have a lot of wizards which I would avoid updating them all).

Let me know if you encounter this issue
Best regards
DR



Hi,

Thank you for sharing those links. Noted on Bootstrap Select and Datepicker plugins. We will check and try to integrate with Keen's upcoming major update. Also, we will add more info for the migration as per your suggestion.

Regards.



Hi,

I see a deleted reply to this case. Do you need our further reply to the highlighted questions? The new API methods getNextStepIndex and getPreviousStepIndex are all listed in latest docs.

Regards.



Hello there,

no need for support.
As we are trying (again!) to update our project from keen v2 to v3, question was about missing methods in Steppers while updating from wizard (keen v2) .
In particular, getNewStep() which was used in detecting user navigation inside a wizard (going to prev or next page).

I have noticed that code can be adapted using Steppers' events (kt.stepper.next/prev) but there is no explanation (nor reason unless keen dev dare to explain) on why drop methods like getNewStep(). It seems as if keen devs pretend their customers have time to continuously change their code (and check steppers works as before, with huge waste of time!)
Definitely not a good dev experience!

Also, are there updates on your 7 months old reply "Also, we will add more info for the migration as per your suggestion." ?
For example, since you do not include "bootstrap-selectpicker" in keen v3, why you wait for us to discover selecptickers do not work anymore ?
it is just a google search away to find out that there is an updated version compatible for bt5.
Take as example what bootstrap did:
https://getbootstrap.com/docs/5.0/migration/
This is what makes your customer happy!

Also, keen v2 left sidebar menu seems much better organized than the one in v3. Consider make some improvements (List is too long and less categorized)

Best regards



Hi Sean,

I just found out another thing.
What is the purpose of having a "data-kt-stepper-action="submit" " if an event like "kt.stepper.submit" doesn't exist ? (event name is invented, looking at how other events have been named)

https://preview.keenthemes.com/html/keen/docs/general/stepper#events



Hi,

This data-kt-stepper-action="submit" is a selector for the submit button element.

I would suggest you copy and paste the html/js code from Keen v3.x docs and give it a try. But please do not mix the stepper main HTML code with the v2.x one. Instead, use the v3.0 from scratch and put your form for each step. if you need any further help please let me know.

Regards.



hi Sean,

thanks for the reply.
Of course i am not mixing v2 with v3. Instead i have updated all the wizards according to v3 docs .

The point of the question was: why have dedicated events for all the actions of a stepper (change, changed, ecc..) and for its buttons (previous, next) except for the submit? (which I would say is the main action of a stepper)

Why should I have code like this:
- stepper.on
for everything except for submit , which is more like
- document.querySelector(....).addEventListener('...')
making the code less readable and maintainable?

Please, add this event!
P.S. : I have noticed that duotone is deprecated . You should remove ki-duotone icons from your docs example then !

Regards



Hi,

You can handle the submit event by yourself since each user has different requirements for submit. Some prefer the Ajax way whilst some standard forms submit.

ki-duotone is in use as it's a duotone version of our new iconset KeenIcons.

Regards.



Hi Sean,

I understand your point, but I don't see how an event limits the way someone handles the submit (ajax reqs/form submit can be handled inside events too).
Instead, providing both cases (event and selectors) gives even more options for those who choose different ways to handle it
If problem is limiting a dev choice, you should definitely restore those methods from wizard v2 , since I handle navigation in ways that are not possible with steppers and their apis.

So, will you please add the "kt.stepper.submit" event in a future release?

About Icons : you are right, I meant the "Duotone" section tha is marked as deprecated. Anyway, while updating my Accordions, I noticed that Accordions' icons don't show properly (I copied the example "Basic Accordion"). After further tests, any KeenIcons is showed incorrectly (just a box as if the icon is not in the theme). Can you check?

Best regards
DR



Hi,

Noted on the kt.stepper.submit suggestion. We will consider it in the next update.

Regarding the KeenIcons. It seems the icon's CSS and font files is not bundled in your build. Can you double check if KeenIcons source exists in your project src/plugins/keenicons and its being compiled and included in the plugins.bundle.css.

If you need any further help can you please provide a test link to your so I can check it online and debug your page and assets. Are you using gulp or webpack build ? Please also make sure your gulp or webpack config has KeenIcons include code. If you referred to the latest Keen v3.0 fully all should work as expected.

Regards.



Hi Sean,

Thanks for the event suggestion.

About icons: I have checked it out , I am using Gulp and haven't modified the gulp config. Icons are being added to the plugin.bundle.css and only ki-duotone is not showing correctly ( ki-solid and ki-outline icons are ok). But I wouldn't investigate any further since i have chosen to stick to LineAwesome.

Sorry for one last thing : I have noticed that there are no more outlined checkboxes. I used them a lot since they were much better looking than normal checkboxes, and the ones in bt5 are really ugly. Do you estimate to bring them back?

Regards



Hi,

The duotone type of KeenIcons requires inner icon paths so you will need to copy and paste the complete icon code from the KeenIcons Docs:


<i class="ki-duotone ki-triangle">
<i class="path1"></i>
<i class="path2"></i>
<i class="path3"></i>
</i>


Also can u please double-check check latest Keen version's original HTML templates? Do KeenIcons Duotone work there as it works in the Live Preview.

Regards.



Hi Sean,

I have found out where the error was.
In my css I overwrite the font theme, as we don't like the original font (we prefer keen v2 font) .
In case ki icons, when there is a ki-duotone class , font is correctly overwritten by keen's css on that element, but not on its inner elements. Why this creates an empty box only with ki-duotone (and not ki-solid or ki-outline) i don't know.
But, as said, I think we won't use these icons.

Let me know for outlined checkboxes.

best regards



Hi,

Keen v3 has the outlined checkbox option as you can check here. However, the checked state of the outlined checkbox will be with a solid background according to our UI/UX guidelines in Keen v3 design.

If you like to use the outline checkbox/radio you can customize checkbox and radio checked state bg color and icon colors in the src/sass/components/_variables.scss as shown below:


$form-check-input-checked-color: $primary !default;
$form-check-input-checked-bg-color: transprent !default;


Please give it a try and let us know the result.

Regards.



Hi Sean,

sorry to bother you , but I don't see any "outline" option in the docs.
Which examples are you referring to?



Hi,

The default style is solid bg for checked radio and checkbox as shown here.
If you make the above changes in SASS and recompile the assets you will globally change the radio and checkbox style to outline style.

Regards.


Text formatting options
Submit
Here's a how to add some HTML formatting to your comment:
  • <pre></pre> for JS codes block
  • <pre lang="html"></pre> for HTML code block
  • <pre lang="scss"></pre> for SCSS code block
  • <pre lang="php"></pre> for PHP code block
  • <code></code> for single line of code
  • <strong></strong> to make things bold
  • <em></em> to emphasize
  • <ul><li></li></ul>  to make list
  • <ol><li></li></ol>  to make ordered list
  • <h3></h3> to make headings
  • <a></a> for links
  • <img> to paste in an image
  • <blockquote></blockquote> to quote somebody
  • happy  :)
  • shocked  :|
  • sad  :(
Text formatting options
Submit
Here's a how to add some HTML formatting to your comment:
  • <pre></pre> for JS codes block
  • <pre lang="html"></pre> for HTML code block
  • <pre lang="scss"></pre> for SCSS code block
  • <pre lang="php"></pre> for PHP code block
  • <code></code> for single line of code
  • <strong></strong> to make things bold
  • <em></em> to emphasize
  • <ul><li></li></ul>  to make list
  • <ol><li></li></ol>  to make ordered list
  • <h3></h3> to make headings
  • <a></a> for links
  • <img> to paste in an image
  • <blockquote></blockquote> to quote somebody
  • happy  :)
  • shocked  :|
  • sad  :(