Support
One-on-One consulting and assistance based on your specific and unique needs
Media
Development tips from various members of our Nioxus team
Get the help you need from the experts at Nioxus. Contact Us >
Get the help you need from the experts at Nioxus. Contact Us >
Media
Keep up to date with Nioxus tips, tricks and products
Get the help you need from the experts at Nioxus. Contact Us >
Support
Receive discounts if you have a membership
Media
Learning about Nioxus and a few of our clients
Get the help you need from the experts at Nioxus. Contact Us >
VOLUME LXXVI 03/09/2021
While Databasics usually focuses on developments inside the Ninox development platform, today we would like to take a few minutes to talk about the platform itself. With the upcoming release of version 3.3.0, we see yet another huge step forward in the capabilities and raw power of the Ninox system. More than that, we are witness to the ongoing development of a database application that has no equal in terms of value, flexibility and raw power.
USER INTERFACE UPDATE
One of the most profound new features coming in 3.3.0 is the ability to represent relational fields as more than a full-screen popup selection window. Now that we, as developers, can present related-table content as combo boxes, radio button pods, and selection ribbons, we are now able to deploy more elegant and streamlined user experiences.
INLINE EDITING
For years, the global Ninox community has been asking for the ability to perform inline editing – the ability to view, edit and create content in one table from within the form of another. Berlin has delivered! The new Embed presentation of relational fields completely changes the way we envision, build and use Ninox-based applications
IMPROVED SEARCH ENGINE
The days of having to clear one search term before searching based on another are over. Now, you can perform more refined searches in sequence using the Ninox search engine at both the database and table levels. This makes it even easier to find that field needle in the table haystack.
BINDINGS
The ability to manage field content in memory in addition to being able to associate it with a record is yet another indication that Berlin listens to her customers. Global Variables? Check. Runtime content to make it easier to test applications? Check. Bindings are, to say the very least, a game changer.
TAB-BASED TRIGGERS
We are all familiar with triggers and the amazing power they bring to the Ninox eco-system. Well now, Triggers have been added to the Tab screen element making it possible to automate workflow based on the opening and closing of separate pages within a table form.
Taken individually, each of these new features and functions represents a significant enhancement in the ability of Ninox to serve the needs of nearly every user and use-case. But taken as a whole, they are clear evidence that Ninox is not resting on its laurels and that its caretakers in Berlin are paying attention to the needs and requests of their user community. And that can only mean that the future of our beloved Ninox is rich and bright and certain to continue setting the standard of excellence in the market.
“Nioxus bereitet sich darauf vor, eine deutsche Website, einen Newsletter und Support anzubieten, und ich freue mich sehr, ein Teil davon zu sein.”
-Chance Koogler
Don’t miss out on this week’s Learning Lab, where we’ll be discussing using the location field in Ninox and hosting an open Q&A!
This week’s Learning Lab will be on the 11th at 12pm EST!
Did you know that Nioxus has built over 140 templates which are available to all Standard, Deluxe and Premier Nioxus members?
It’s hard to say farewell, but this year’s Gold Star Redemption Month has ended. But never fear, any Gold Stars that you have will rollover to next year. Participation and attendance at the Ninox Learning Lab will replenish your stash of Gold Stars! Thank you all again for making our first year of the Gold Star Program a humongous success! For those of you that did redeem their Gold Stars, thank you and please enjoy your gift from us at Nioxus. Did you know that you can check how many Gold Stars that you have accumulated by going to our website and clicking Gold Star Hall of Fame?
Please note that after each of the Ninox Learning Labs every Thursday at 12:00pm EST, any Gold Star updates will take at least 24-48 hours.
As always, if anyone has a suggestion, an idea for the GSP or has a funny, techie cartoon or joke, please contact me directly at my email address at the bottom of my column.
I also want to extend a warm, personal welcome to Chance Koogler and Michael Sidenstick who have joined our Nioxus Family! This should add a burst of fresh, new ideas/designs and excitement to our team! It seems like only yesterday I was warmly welcomed to Nioxus. I had high expectations then, and I have never been disappointed.
Hoping to see you at the Learning Lab this Thursday! Love to all!
Jim (Stargazer)
click to view comic
Constraints are one of those incredibly powerful and equally under-used features in Ninox that as soon as you understand how to use them, you wonder how you ever lived without them. In this remake of our original “Working with Constraints” template, we explore dynamic search constraints, repurposing text fields and a host of other tips and tricks that you’re going to love putting into your Ninox solutions.
Constraints make it possible for users to select from a group of related-table options that is curated based on that user’s choices at runtime. Compound Constraints take the power to and even higher level by enabling Ninox to curate the selections dynamically based on a variety of user choices and inputs. Examples of where Compound Constraints can be powerful additions include:
This week’s Template of the Week shows us how to enable Ninox to select once constraint from an unlimited number of options based solely on each unique user experience. Check it out and download it today from our Nioxus Member Portal.
The html() function allows HTML to be added to a formula field in Ninox. With some knowledge of HTML, Javascript and CSS, the html() function opens up a whole world of possibilities for expanding Ninox. This article focuses on how to add javascript into the html() function with script elements, and how to work around some potential stumbling blocks that come up in the process.
Triggering Javascript from a user action, like a button click, works exactly as you would expect. Immediately executing Javascript (as soon as the formula field is rendered) without any user action takes a little trick outlined below.
User Action Triggered Javascript
Inserting javascript that is triggered by a user interaction with html elements is straightforward. The example of this in Figure A changes the text in a button once it has been clicked.
Notice that single quotes are used inside the html() function so as not to tell Ninox to end the string being passed into the html() function.
Immediately Executed Javascript
In many cases it is necessary to execute Javascript as soon as the formula field is loaded, instead of executing once a user clicks a button or interacts with the page in some way. For example, maybe you want to render an HTML graph using the data in your table. You would not want your users to have to press a button in order for the data to be retrieved and the graph to be rendered.
For our purposes, let’s say you want to display the database ID, which you can grab from the url with Javascript. Normally, we could do something like shown in Figure B.
This code will not retrieve the database ID. Although the script element is added to the document, the Javascript is not executed. This is because by the time our script element is added to the document, the browser’s Javascript runtime has already passed through the initial part of the execution phase where each line of javascript is executed one at a time, and has moved on to the event loop where Javascript is triggered by events.
Fortunately, we can still execute the code right away by triggering the code from an “onload” event. Onload functions can be attached to a handful of html element types (img, style, body and a few others), and execute once the html element’s contents have been loaded. In Figure C, we add an onload function to a style element, since in most cases these will be necessary anyway to style html elements in the desired way.
Now, the extracted database ID can be seen in the formula field as soon as the record is opened. We have used the event generated when the style element is loaded to trigger our Javascript to be executed right away.
html("
<script>
function changeText() {
let myButton = document.getElementById('my_button');
myButton.innerHTML = 'CLICKED';
}
</script>
<button id='my_button' onclick='changeText()'>CLICK HERE</button>
");
Figure A.
html("
<div id='database_id_display'></div>
<script>
let myDiv = document.getElementById('database_id_display');
// these two lines get the window's url, then extract the
// database id from the url
let url = window.location.href;
let dbId = url.split('database/')[1].split('/')[0];
myDiv.innerHTML = dbId;
</script>
");
Figure B.
html("
<div id='database_id_display'></div>
<style onload='executeRightAway()'>
#database_id_display {
border-width: 0px;
}
</style>
<script>
function executeRightAway() {
let myDiv = document.getElementById('database_id_display');
let url = window.location.href;
let dbId = url.split('database/')[1].split('/')[0];
myDiv.innerHTML = dbId;
}
</script>
")
Figure C.
All logos, trademarks and names are the protected property of Nioxus Corporation or their respective owners.
“Ninox,” “Ninox Database” and the blue Ninox owl eye logo are the property of Ninox Berlin and are used with permission.