Ninext project
good evening to all,
I create this post to organize the Ninext project. For those who are new to it, it is composed of several JavaScript modules that allow you to add badges on tabs and buttons, catch selection events on views, execute JavaScript from Ninox script, inspect dependencies between database fields.
This post is here to talk about the project and the procedure for those who would like to implement it in your databases. I would like to take this opportunity to remind you that this is a test project that evolves regularly and I invite you to be cautious and not to use it on commercial databases for the moment.
The sources of the project are available and downloadable on Github.
Thanks to all of you for all your messages of support and for your help to debug and make the project progress a little more every day .
I made the project initiation procedure evolve thanks to the precious help of M. Daaboul who told me that we could use the Ninox dialog box with HTML code. It is no longer necessary to create a window and an HTML field for this. You just have to copy the code below in the Trigger after open in the Options.
var code := http("GET", "https://raw.githubusercontent.com/JacquesTur/Ninext/main/loadModules.html").result;
dialog("Ninext intialization", "<script>
window.exConfigLoadModules = {
completion: false,
badges: true,
evalJS: true,
viewEvent: true,
buttonEvent : true,
fieldsInspector: true,
nativeJS: true,
autoCloseDialog: true
};
</script>" + code, ["close"])
The dialog box will be displayed stealthily then disappear. If you want it to stay displayed with its "close" button, set the autoCloseDialog parameter to false.
231 replies
-
Just installed the new JS version and saw how quick it was to load:
Though there is a bit of a spelling error. :)
-
Jacques TUR and I found, from my point of view, a new but little usability bug.
After each change in the script, maybe the use of a certain variable (IMG 1), the dropdown of the table jumps back to the default or the first table in the database (IMG 2). So, to continue with the next step, you need to select the table and the variable again and again. In the former version your tool keeps the selected table and variable after each script change or saving. This saves a lot of time. Thanks.
-
I just added a tab in the Ninext popup that displays all the compilation errors that may exist in the database.
Ninox does not necessarily display all compilation errors. So you may be surprised to find errors that didn't appear until now.
To activate the error list, add the line "errorViewer : true" in the Ninext initialization parameters (line 34 below):
function getNinext() do "// load the last locale version"; var rec := last(select '#NinextVersions'); "// load the last GitHub version"; var res := http("GET", "https://raw.githubusercontent.com/JacquesTur/Ninext/main/dist/ninext.js", {}, {}); "// extract code and version number from GitHub result"; var vCode := text(res.result); var vVersion := extractx(vCode, "(?:var exModulesVersion = ')(.*)(')", "", "$1"); "// in case of GitHub is not avaible, return local version"; if res.error then vCode := rec.version else "// else, if GitHub version is newer, save GitHub result in local table"; if vVersion != rec.version then var newRec := (create '#NinextVersions'); newRec.(version := vVersion); newRec.(code := vCode) end end; "// return the more resently disponible code"; vCode end; dialog("Ninext intialization", "<div style='white-space: normal;' ; id='exLoadModule'></div> <script> window.exConfigLoadModules = { badges: true, viewEvent: true, buttonEvent : true, fieldsInspector: true, nativeJS: true, tableView: true, debugTracer : true, languages : true, errorsViewer : true, autoCloseDialog: false };" + getNinext() + "</script>", ["close"])
-
I have improved the user interface of the error viewer a little. It is now possible to directly access the formulas in error by using the key button :
FieldsInspector has also been improved so that cascading links are better visible and delimited:
And if a dependent formula has an error, it is displayed with the same design as in errorsViewer.
I also added a transparency effect when the mouse is outside the window, so that the popup hides the Ninox window as little as possible. Don't hesitate to tell me if you find it practical or not.
-
Hi Jacques TUR
I’ve started a cloud account and am using my iPad to manage my db and noticed that I can’t move the pop up window. I tried press+hold on the upper left corner and I can’t move the window.
I don’t know if iOS is an important development platform, but if does make your radar then you can add this to your list.
Thanks for all your hard work.
-
Jacques TUR I still have the problem, that your tool causes this "double displaying" of form content, if the first record in an empty table is created. If you delete this record and do it again, the form is displayed correctly. Until you leave the database, open it again and create a first record again. Could you check that please? Thank you very much.
-
function getNinext() do
var res := http("GET", "https://raw.githubusercontent.com/JacquesTur/Ninext/main/dist/ninext.js", {}, {});
var version := extractx(text(res.result), "(?:var exModulesVersion = ')(.*)(')", "", "$1");
res.result
end;
dialog("Ninext intialization", "<div style='white-space: normal;' ; id='exLoadModule'></div>
<script>
window.exConfigLoadModules = {
badges: true,
viewEvent: true,
buttonEvent : true,
fieldsInspector: true,
nativeJS: true,
tableView: true,
debugTracer : true,
languages : true, autoCloseDialog: true };" + getNinext() + "</script>", ["close"]);
openTable("HOME", "HOME") -
Still there it seems. Doubt it matters but in the Badges line above you have betas not beta
Content aside
-
17
Likes
- 3 days agoLast active
- 231Replies
- 5406Views
-
38
Following