KTL Changelog - please subscribe to see all updates! #47
Replies: 92 comments 61 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 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.
-
📢 What's New in KTL v0.39.1 (since v0.34.0)Tonight, the KTL has grown to an impressive 30,000+ lines of code! 🎉A lot has happened since v0.34.0. Here's a summary of all the new keywords, options, and major features you might have missed. New Keywords
|
Beta Was this translation helpful? Give feedback.
-
|
I'm a big fan of this format of grouping the biggest features :) Thanks again for the great work you're doing!
Do you think it would be possible to modify or allow customisations to the *Shift + Ctrl* shortcut? I use a lot of shortcuts that include Shift and Ctrl and the Dev Popup appears every time. Perhaps *Shift + Ctrl + D *or Shift + Ctrl + Space* *?
Thanks,
Harry Rainbird
***@***.***
Rainbird Applications
|
Beta Was this translation helpful? Give feedback.
-
📢 KTL v0.40.0 ReleasedA quick update with developer experience improvements and bug fixes. What's NewTheme Editor: Menu Buttons Background ColorTheme Editor has a new color picker for Menu Buttons Bg. Centralized Hotkey SettingsDev tool hotkeys are now managed from a single location with full theme support. Customize your keyboard shortcuts for KTL Search, Theme Editor, and other dev tools in one place.
Bug Fixes
Resources
Happy development! Normand D. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for all of the great work that you do, Norm! You are an
invaluable asset to the Knack community.
…--
Kevin P. McDonald
Portfolio Project and Process Management Analyst
OCC | Office of Information Technology
North Carolina State University
t | 919 513 1409 email | ***@***.***
On Thu, Jan 29, 2026 at 2:05 AM Cortex R&D Inc. ***@***.***> wrote:
📢 KTL v0.40.0 Released
A quick update with developer experience improvements and bug fixes.
------------------------------
What's New Theme Editor: Menu Buttons Background Color
Theme Editor has a new color picker for Menu Buttons Bg.
Centralized Hotkey Settings
Dev tool hotkeys are now managed from a single location with full theme
support. Customize your keyboard shortcuts for KTL Search, Theme Editor,
and other dev tools in one place.
image.png (view on web)
<https://github.com/user-attachments/assets/8e80d6d3-b07c-4dbb-948c-ea2572fd0e9b>
------------------------------
Bug Fixes
- *ktlLoggedInAccount in ktlCond*: Fixed issue with getting the Name
field
- *Escape key handling*: Improved reliability when closing dev tool
windows
- *KTL Search*: Enhanced ID lookups and better keyword display
------------------------------
Resources
- Full Changelog
<https://github.com/cortexrd/Knack-Toolkit-Library/blob/dev/CHANGELOG.md>
- Keywords Documentation
<https://github.com/cortexrd/Knack-Toolkit-Library/wiki/Keywords>
- KTL Discovery Hub <https://ctrnd.knack.com/ktl-hub#home> — Share
your keyword discoveries!
------------------------------
Happy development!
Normand D.
—
Reply to this email directly, view it on GitHub
<#47 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BTXDFVBEZAXQI4LNDWBAM5D4JGWMZAVCNFSM6AAAAAAZATU3JCVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKNRTGY3DAMI>
.
You are receiving this because you are subscribed to this thread.Message
ID: <cortexrd/Knack-Toolkit-Library/repo-discussions/47/comments/15636601@
github.com>
|
Beta Was this translation helpful? Give feedback.
-
_arh: New
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
📢 What's New in KTL v0.42.3 (since v0.41.0)✨ Featuring: Knavigator IntegrationA big thank you to Ivan Jovanovic for creating Knavigator — an essential tool for Knack developers. It can now be launched directly from the live app: click the magnifier icon in the Dev Info Popup and it opens Knavigator straight to the hovered item, showing all its details in one place. Here's a summary of all the new keywords, options, and major features since the last announcement. Enhanced Keywords
|
Beta Was this translation helpful? Give feedback.
-
📢 What's New in KTL v0.42.7 (since v0.42.3)✨ New:
|
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