KTL Changelog - please subscribe to see all updates! #47
Replies: 84 comments 60 replies
-
|
Just added new keyword: _zoom Can be used to zoom in or out a view, whole page or a specific qualified CSS selector. |
Beta Was this translation helpful? Give feedback.
-
|
Added a new keyword: _cls, which stands for Add or Remove Classes Introducing the "keyword selector": ktlTarget Exposed the function ktl.core.extractKeywordParamGroups to parse groups of keyword parameters. Added new ktl classes: ktlNarrowMarginsPage and ktlDenseGrid. Norm |
Beta Was this translation helpful? Give feedback.
-
|
Hi Norm, Thanks, this is great _cls in combination with ktlTarget will be extremely useful for us, meaning we can do away with our slightly clumsy We're already making use of your new ktlNarrowMarginsPage and ktlDenseGrid classes. Amanda |
Beta Was this translation helpful? Give feedback.
-
|
Just added a new keyword: _style See documentation here: https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords#_style Norm |
Beta Was this translation helpful? Give feedback.
-
|
Hi to all, I've just completed the migration from my older http server from https://ctrnd.com to the highly reliable AWS S3 Bucket https://ctrnd.s3.amazonaws.com. The old one kept failing due to exceeding CPU usage, requests and bandwidth limits. Now this also means that you need to update the KTL_Loader.js file with the new version here: Simply overwrite the existing 5 lines from your apps with these new ones. Actually, only the line with the URL changes. Norm |
Beta Was this translation helpful? Give feedback.
-
|
As a follow-up on the preceding message, there's another important change has been made to the KTL_Customization.js file. The top first lines have changed from this: to this: Please update accordingly, sorry for the inconvenience. |
Beta Was this translation helpful? Give feedback.
-
|
The _bcg keyword - barcode generator - has been upgraded. It can now accept 3 parameters: size, field ID and hidden text flag "h". See Wiki here: https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords#_bcgsize-fieldid-h Norm |
Beta Was this translation helpful? Give feedback.
-
|
Hey Norm, noticed that the "show app info" for both the app & ktl versions
is being displayed even though I have the values set to "false" in script.
…On Sun, Jun 25, 2023 at 8:02 AM Cortex R&D Inc. ***@***.***> wrote:
The *_bcg* keyword - barcode generator - has been upgraded.
It can now accept 3 parameters: size, fieldIndex and hidden text
See Wiki here:
https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords#_bcgsize-fieldindex-h
Norm
—
Reply to this email directly, view it on GitHub
<#47 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BAZFAND3XDTUGDLLALDHBP3XNAZEVANCNFSM6AAAAAAZATU3JA>
.
You are receiving this because you are subscribed to this thread.Message
ID: <cortexrd/Knack-Toolkit-Library/repo-discussions/47/comments/6273856@
github.com>
|
Beta Was this translation helpful? Give feedback.
-
|
I added the above script roughly an hour ago. Prior to adding it, for some
reason this weekend, the apps that contained KTL started showing the
version nfo for both our app and ktl even though the "show info" was set to
"false" for both "showappinfo" and "showktlinfo".
I like the new script above because it allows users to change the position
of app info for desktop and mobile devices. Would be nice if we could
choose what pages/views the app info is displayed or not displayed.
…On Mon, Jun 26, 2023 at 9:24 AM Cortex R&D Inc. ***@***.***> wrote:
Hi,
1. Are you sure you have the latest code version? KTL is now at 0.13.9.
2. Did you do the server upgrade? See: #22
<#22>
3. Did you copy parts of the latest version of
https://github.com/cortexrd/Knack-Toolkit-Library/blob/prod/KTL_Customization.js
?
Your code should look similar to this in the Javascript pane:
KnackInitAsync = function ($, callback) { // Load the Knack Toolkit Library (KTL)
(window.LazyLoad = LazyLoad) && LazyLoad.js(['https://ctrnd.s3.amazonaws.com/Lib/KTL/KTL_Start.js'], () => {
loadKtl($, callback, (typeof KnackApp === 'function' ? KnackApp : null), '' /*KTL version, leave blank to get latest*/, 'min'/*min or full*/);
})
};
window.APP_VERSION = '1.0.0'; //Your App version.
window.ktlReady = function (appInfo = {}) {
var ktl = new Ktl($, appInfo);
//KTL Setup - BEGIN
ktl.scenes.setCfg({
versionDisplayName: 'KT',
})
ktl.core.setCfg({
enabled: {
versionInfo: {
viShowAppInfo: true,
viShowKtlInfo: true,
viShowToRoles: ['Developer'], //Array of Account Roles strings who can see the version info bar. Leave empty for all.
viPosX: 'right', //right, center, left
viPosY: 'top', //top, bottom
viPosXMobile: 'center', //right, center, left
viPosYMobile: 'bottom', //top, bottom
viOpacity: 70, //0 to 100
viOpacityHover: 100, //0 to 100
},
},
})
}
Note that it's highly recommended that the *version info bar* remains
visible for the *Developer* role. It's also a button and allows doing
very useful things when you click on it.
That's why this line sets it by default: viShowToRoles: ['Developer']
Norm
—
Reply to this email directly, view it on GitHub
<#47 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BAZFANEWCLSN4HNOMJA7HNLXNGLTNANCNFSM6AAAAAAZATU3JA>
.
You are receiving this because you are subscribed to this thread.Message
ID: <cortexrd/Knack-Toolkit-Library/repo-discussions/47/comments/6282893@
github.com>
|
Beta Was this translation helpful? Give feedback.
-
Introducing Keyword Options: ktlRoles and ktlTarget.These give you more flexibility over keyword application context. Which roles (including or excluding) will see its effect and applied to which CSS selector. See here for details: https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords#keyword-options Enjoy, |
Beta Was this translation helpful? Give feedback.
-
Introducing a new Keyword Option: ktlRefVal.This new keyword option allows selecting any page element, from which the text will be extracted and used as the reference in your own "compare rules". Currently, _cfv supports it, but more will be added as requested. Go see the documentation here: https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords#keyword-options An example here, in Knack's Forums: https://forums.knack.com/t/dynamic-colour-coding-of-grid/14517/6 Enjoy, |
Beta Was this translation helpful? Give feedback.
-
Colorize Field by Value (_cfv) has been boostedIt can now benefit from the new ktlRefVal option. See previous post. Go try that! It's really useful. Norm |
Beta Was this translation helpful? Give feedback.
-
|
I've just fixed a bunch of bugs with the User Filters' Drag'n Drop and context menu pop-up in Android. If someone have the chance to test on Apple devices, it would be appreciated. Norm |
Beta Was this translation helpful? Give feedback.
-
|
Hi to all, I've just completed a round of massive code changes in the KTL last week. The documentation has been fully updated to reflect all changes. Due to the sheer number and complexity of all the changes and their impact over several hundreds of functions, it is possible that the current version v0.14.4 may have some unexpected/negative effect on your code and app. I am really sorry if that's your case. Please create an issue if you see anything unusual or broken. Note that such important upgrades rarely happen. I always try to go in small incremental steps to avoid complications. But I had no choice in this case due to the nature of the deep changes in the keywords parsing algorithm and its data structure. I other words, the transition was unavoidable, maybe a bit painful... but well worth the effort. Here are the changes:
Enjoy, |
Beta Was this translation helpful? Give feedback.
-
|
I've just added the Add/Remove Class: _cls keyword documentation. See here: https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords#_clsclass1-class2 Enjoy, |
Beta Was this translation helpful? Give feedback.
-
KTL has reached over 20,000 lines of code today!!!New in KTL v0.27.10New or Updated Keywords_bcr: Barcode Reader. Now supports a new parameter: match. Options are exact, partial and select. See documentation for details. New FeaturesNone. New OptionsNone. New ClassesktlClickableCell: Converts a grid cell to have the appearance of a clickable element. Fixes and improvements_arh: Add Record History. Now supports files and email fields. Fixed bugs with parameter parsing. _hsv: Hide Show View. Updated default style and few bug fixes. _sth: Sticky Table Headers. Improved group handling, now locked at the top of views as intended. ktlRoles option: fixed bad logic when using a combination of include and exclude roles. _copy: Copy Button. Improvements to accommodate _hsv and list views. _dtp: Date Time Picker. Now keeps focus on the search input when currently active. Fixed issue when validating currencies with a negative value. Fixed Bulk Delete buttons confusion when used in more than one view in same page. Disappearing summary titles are now relocated properly when they were in a grid column that was hidden by _hc or _rc. Fixed auto refresh _ar that didn't restart after modal page was closed. Improved table cell alignment algorithm when hiding or dynamically creating columns. Issue #330: Barcode reading code couldn’t find an existing entry in a dropdown. Updated the internal function searchDropdown so it now supports 3 modes: exact match (default), partial match and manual selection of found results. Issue #326: Fixed Form Persistence in modal pages, where it would recall form data between different records. Form Persistence: several fixes including field types that were not properly implemented. New Demo Pages_oln Open Link in New Page: https://ctrnd.knack.com/ktl-tutorials Click on the Support menu at top and you’ll see a new tab with target link. New VideosSix new videos from Carl Holmes. Go see that and please subscribe! https://www.youtube.com/@chprojectsupport Thanks again, Carl! 😊 DocumentationAll documentation has been updated. Enjoy, |
Beta Was this translation helpful? Give feedback.
-
|
ALERT - Knack has broken the KTL There has been a breaking change a few minutes ago that cause the KTL to crash to a white screen. To all those affected by this issue: I have just released a hotfix in KTL v0.29.2 You'll need to do a forced refresh by pressing Ctrl+F5 or Ctrl+Shift+R to get the latest code. Norm |
Beta Was this translation helpful? Give feedback.
-
|
Doesn't seem to be affecting us here in Australia, but I have version locked to 0.22.19 in production. Would that older version not be affected?
(I've locked it to that version to promote stability, so maybe it worked!)
Rgds
Leigh Berrell
0412 100 045
…________________________________
From: "Cortex R&D Inc." ***@***.***>
Sent: Wednesday, 13 November 2024 4:27 am
To: cortexrd/Knack-Toolkit-Library
Cc: LeighBerrell; Manual
Subject: Re: [cortexrd/Knack-Toolkit-Library] KTL Changelog - please subscribe to see all updates! (Discussion #47)
ALERT - Knack has broken the KTL
There has been a breaking change a few minutes ago that cause the KTL to crash to a white screen.
To all those affected by this issue:
I have just released a hotfix in KTL v0.29.2
You'll need to do a forced refresh by pressing Ctrl+F5 or Ctrl+Shift+R to get the latest code.
You can also clear your cache if that doesn't work.
Norm
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
ALERT - Knack / KTL breaking change There has been a breaking change last night that causes KTL's inability to perform API calls when it involves a date/time field. "Date/Time Fields: Date/Time fields using calendar options now accept ISO-8601 timestamps when specifying "from" and "to" dates, regardless of the selected field format." I am currently working on this issue now. Please keep an eye on your console errors and report anything you see in this opened issue: The iFrameWnd is mostly affected from the preliminary information I have. For those who have set this up, the current solution is to disable it completely until a hotfix is released. This is done by setting the iFrameWnd to false in the ktl.core.setCfg function:
This is the preferred and recommended method. You can also use the KTL Configurator (but be sure that your code is in sync with the configurator's settings): Stay tuned, |
Beta Was this translation helpful? Give feedback.
-
|
No, sorry, I’ve not done any videos. 📺Still got too much building work on so not finding time for new video projects 😉Carl HolmesOn 23 Jan 2025, at 22:38, Ampurcell ***@***.***> wrote:
Does Carl Holmes have any videos about the barcode keywords? I am having trouble on how to set up.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
I haven't seen any updates here in some time. I'm checking in to see if I should look elsewhere for updates. Last I checked, the SW version was 0.29.2, but when I use the beta version, I see 1.0.5. Is there any documentation of what's been happening with the KTL between these versions? |
Beta Was this translation helpful? Give feedback.
-
KTL Changelog Update: New Format and LocationHello KTL Users, I'm pleased to announce a more structured approach to KTL project updates. The complete changelog is now maintained in the repository at: CHANGELOG.md What's included:
This centralized changelog will make it easier to track improvements, bugfixes, and new features as they're released. Hope you like it. Regards, |
Beta Was this translation helpful? Give feedback.
-
|
Thanks Norm, great idea :)
On Thu, May 1, 2025, at 8:31 PM, Cortex R&D Inc. wrote:
KTL Changelog Update: New Format and Location
Hello KTL Users,
I'm pleased to announce a more structured approach to KTL project updates. The complete changelog is now maintained in the repository at: CHANGELOG.md <https://github.com/cortexrd/Knack-Toolkit-Library/blob/dev/CHANGELOG.md>
*What's included:*
• Comprehensive history of all updates since v0.27.10
• Detailed commit messages organized by version
• Release dates for each version
This centralized changelog will make it easier to track improvements, bugfixes, and new features as they're released.
Hope you like it.
Regards,
Norm
—
Reply to this email directly, view it on GitHub <#47 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/BBPANBSYXLAUSQBEX5SH2XL24JSBVAVCNFSM6AAAAAAZATU3JCVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMBQGY2TKNY>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
*Harry Rainbird*
***@***.***
Rainbird Applications
|
Beta Was this translation helpful? Give feedback.
-
KTL Important Change: Auto Refresh Minimum Limit IncreaseHi everyone, I need to share an important update about KTL's auto refresh feature (the "_ar" keyword) that will affect some of your applications. The SituationI've been contacted by Knack's upper management regarding the infrastructure impact of aggressive auto refresh usage. Their analysis shows that some accounts with small user bases (5 users, no API integrations, Pro plans) are generating tens of thousands of API calls per day through very short refresh intervals - creating a significant mismatch between server resources and actual usage. The ChangeKTL will increase the minimum auto refresh interval from 5 seconds to 60 seconds. This change will be implemented on Friday, August 29, 2025 at 5pm EDT (9pm UTC) to give everyone time to prepare. Why This Matters
What You Need to DoPlease review your applications now and increase any auto refresh intervals to 60 seconds or higher. Always try to choose the highest value possible that would be acceptable. In most cases, 60, 90 or 120+ second intervals provide perfectly adequate user experience while being much more server friendly. Hint: to find all those keywords, you can open the app's console and copy/paste this command: ktlFindAllKeywords('_ar') At the end of the output, you'll see a summary of any views with _ar below 60 seconds. You can then search for those view IDs in the logs above to jump directly to the Builder page using the provided links. After ImplementationOnce the update is live, any auto-refresh intervals below 60 seconds will be automatically capped at 60 seconds. Users having the Developer role will see a notification when this limit is applied and a log will be generated in the console output. Your Cooperation AppreciatedI understand this may require some adjustments to your applications, but this change helps ensure the long-term sustainability of both KTL and the Knack platform for everyone. Please let me know if you have any questions or concerns about this change. Thanks for your understanding and cooperation. Normand |
Beta Was this translation helpful? Give feedback.
-
KTL Update: Auto Refresh Minimum Limit ChangeHello KTL Users, Important Change: The minimum auto refresh interval ( Background: This change addresses infrastructure concerns raised by Knack's upper management regarding excessive API usage from aggressive auto refresh configurations. What to do:
Runtime behavior: Values below 60 seconds are automatically capped at 60 seconds. A console warning will be visible when this occurs. Thanks for your cooperation in maintaining platform sustainability for everyone. Regards, |
Beta Was this translation helpful? Give feedback.
-
New in KTL v0.34.0New Keyword_sfv: Set Field Value. Can be used in a form to set any input field to a specified value that can be hard coded or fetched from another field/view in the page. DocumentationAll documentation has been updated. Enjoy, |
Beta Was this translation helpful? Give feedback.
-
Important: KTL Version Storage ChangesHi everyone, I've been looking at my AWS storage costs lately, and they've gotten pretty high. Turns out I'm storing 588 old KTL files going back almost 2 years—some apps are still using v0.24.2! I totally understand why some of you pin to specific versions rather than using "latest"—it gives you more control. But keeping all those old versions around is costing more than I anticipated. Here's what's changing: Going forward, I'll only keep the last 10 versions on the server, with automatic monthly cleanup of older files. I've already deleted everything before v0.24.2 (the oldest version anyone's actually using based on last week's data). What you need to do: If you've pinned your KTL Loader to a specific version, please update to one of the last 10 releases within the next 10 days. You can see which versions those are in the Tags section on GitHub. If your pinned version gets deleted and you haven't updated, the loader will just fall back to the latest version automatically—you'll see a console warning when this happens. My suggestion: Stick with auto-updating to "latest" unless you have a good reason not to. If you do pin, try to stay within the last 3-5 versions and keep things relatively current. This keeps hosting costs manageable while still giving you some rollback options for debugging. Thanks for understanding! Normand |
Beta Was this translation helpful? Give feedback.
-
🎉 Introducing the KTL Discovery Hub!Hey KTL Community! We're excited to share something new with you - the KTL Discovery Hub is now live! What is it?Think of it as a companion to our GitHub Wiki - not a replacement, but a powerful complement. While the GitHub Wiki remains your go-to for detailed documentation, the Discovery Hub makes it easier to discover what KTL has to offer. Imagine browsing 200+ KTL features in one organized grid, each with its title, description, documentation links, live demos, and video tutorials - all in one place. Plus, we're transforming real-world usage data into community insights, so you can see what's trending, what's popular, and discover features you might have missed. Why should you participate?Here's the thing - your input is shaping the future of KTL. We're actively planning KTL Next-Gen (KTL-NG), and understanding which features you actually use and love is crucial for deciding what gets enhanced, optimized, and carried forward. It's super simple: just click "Send KTL Usage" in your KTL Developer Tools (requires v0.35.1+). One click, fully automated. Done. "But what about my data?"We get it - privacy matters! The Discovery Hub homepage has a detailed breakdown of exactly what's sent, but here's the short version: ✅ What's sent: Feature usage, keywords, config settings, app metadata No business data. No sensitive info. Just usage patterns that help the community discover what works. Visit the KTL Discovery Hub and send your usage data. Every submission helps us build a better KTL that serves the real needs of our community. Thanks for being awesome! 🙌 Normand D. |
Beta Was this translation helpful? Give feedback.
-
📢 User Filters Migration Coming in KTL v0.37.0Hey everyone! Just a heads up that KTL v0.37.0 is dropping tomorrow with an important change to how User Filters are stored. What's Changing?User Filters will now be saved directly in User Prefs instead of using separate database tables. This simplifies the architecture and improves sync reliability across devices. Automatic MigrationWhen you update to v0.37.0, KTL will automatically migrate your existing filters to the new storage format. The transition should be seamless, but... Just in Case...If you're currently using User Filters tables, you may want to export them for archival purposes before updating. Better safe than sorry! Setup RequiredTo enable the automatic migration, you'll need to have User Prefs configured in your app. If you haven't set this up yet, check out the documentation: Questions? Drop a comment below! Norm |
Beta Was this translation helpful? Give feedback.
-
🎨 New Feature coming tomorrow in KTL v0.37.0: Theme Editor & Dark Mode SupportHey everyone! Excited to share that KTL now has a built-in Theme Editor with full dark mode support! What's NewTheme Editor - A visual editor that lets you customize colors across your app in real-time. You can tweak:
Dark Mode - Finally! Your users can switch to a dark theme that's easy on the eyes, especially for those late-night data entry sessions. Dual Logos - Upload separate logos for light and dark themes. The right one shows up automatically based on the active theme. Flexible Deployment
How to Access
Getting StartedCheck out the Theme Editor:
And a sample of what an app can look in Dark mode!
Would love to hear your feedback and see what themes you come up with! Norm |
Beta Was this translation helpful? Give feedback.








Uh oh!
There was an error while loading. Please reload this page.
-
Keep an eye on this discussions, as it will be updated daily on all new features and bug fixes.
Beta Was this translation helpful? Give feedback.
All reactions