15

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.

173 replies

null
    • Alan_Cooke
    • 1 yr ago
    • Reported - view

     

    Still there it seems.  Doubt it matters but in the Badges line above you have betas not beta

      • Alan_Cooke
      • 1 yr ago
      • Reported - view

      Jacques TUR Same thing.  Is it possible that by using a VPN I have this issue?

      • Alan_Cooke
      • 1 yr ago
      • Reported - view

      Alan Cooke Disabled VPN - makes no difference

      • Alan_Cooke
      • 1 yr ago
      • Reported - view

      Alan Cooke Code in options:

      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"])

      • Ninox developper
      • Jacques_TUR
      • 1 yr ago
      • Reported - view

      Alan Cooke It seems that it is the access to the GitHub server that is not working. What happens if you type this code into the console?

      debugValueInfo(http("GET", "https://raw.githubusercontent.com/JacquesTur/Ninext/main/dist/ninext.js", {}, {}))

      • Alan_Cooke
      • 1 yr ago
      • Reported - view

      Jacques TUR 

      This - if you would like to Zoom to diagnose be my guest :-)

      • Alan_Cooke
      • 1 yr ago
      • Reported - view

      Alan Cooke Thank you Jacques TUR for sorting the issue above out even though neither of us know what the problem was :-)

    • Icarus_Ralf_Becker
    • 1 yr ago
    • Reported - view

    Jacques TUR The day before yesterday I corrected all errors in my databases. Today I noticed, that there are 82 (!) new errors shown in your tool without any changes in the database. But none of them really exist. If I check the tables there are no errors. Could you check that?

      • Ninox developper
      • Jacques_TUR
      • 1 yr ago
      • Reported - view

      Icarus - Ralf Becker Yes thanks, I had noticed that too. I just fixed it.

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    I recently made several updates to exFinder.js. This is part of the code that found the dependencies and error code for FieldsInspector and errorsViewer. I hope it is now stable and you can find all the code errors on your database. 

    The latest version is exFinder is V1.0.8

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    The Sean's darkMode module is now include on Ninext 🎉. See here 

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    Please read this message about the Ninext shutdown : https://forum.ninox.com/t/m1h0b4d/ninext-important-information

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    The Ninext project continues !
    It is largely thanks to your support and messages that this is possible. Thanks to all of you 🙏

    🔧With the new version 3.8.x I had to modify the launcher.  Please use this code to trigger the update of your database to initialize Ninext: 

    var code := http("GET", "https://www.ninext.fr/_functions/ninext").result.code;
    dialog("Ninext initialization", html("<script ninext=''>
    " +
    code +
    "
    ninext.start({
        badges: true,
        viewEvent: true,
        buttonEvent : true,
        fieldsInspector: true,
        nativeJS: true,
        tableView: true,
        debugTracer : true,
        languages : false,
        errorsViewer : true,
        darkMode : false,      autoCloseDialog:  false })
    </script>"), ["close"])

     

    🔐You can see that the code address has been changed. In respect and support of the Ninox security policy, the Ninext source will no longer be shared on GitHub.
    I will probably ask you to register (create an account on the Ninext website) in the future to make the code even more secure. This does not change the fact that Ninext remains a free of charge.

    🐛Note: I have not yet had the opportunity to test whether all Ninext features are compatible with version 3.8.x. It is possible that you find bugs. If so, I thank you in advance for pointing them out to me.

      • Maurice
      • 1 yr ago
      • Reported - view

      Jacques TUR These are great news. Thanks Jacques. If I copy the new code I get a error message that the function dialog(string, html,[string]) does not exist. What do I have to change?

      • rcrema
      • 1 yr ago
      • Reported - view

      Jacques TUR 

      Hi Jacques,

      I've messed things up and hope you can help. I pasted your code as shown in Options above, but it didn't seem to work the way it had been previously so I pasted it into an init formula field as I had done in the past.  Now all I see is the message in the attachment and I'm unable to do anything in Ninox.  Can you help?

      • Ninox developper
      • Jacques_TUR
      • 1 yr ago
      • Reported - view

      rcrema To close the dialogue box when the button is off the screen, simply press the Enter key after the dialogue box is displayed.
      What is your version of Ninox?

      • rcrema
      • 1 yr ago
      • Reported - view

      Jacques TUR 

      Thanks!  What a relief!  It was late at night, I was tired and panicked.  I have 3.8.5.

      • rcrema
      • 1 yr ago
      • Reported - view

      Jacques TUR 

      Here's the onselect I have currently:

      function onselect(selectedID : text) do
          let q := first(select Registration where Id = selectedID);
          popupRecord(q.Students);
          true
      end;
      let x := userEmail();
      let y := number('Period Chooser');
      let z := lower(text('Dashboard Student Search'));
      if y = 8 then
          select Registration where 'User email' = x and contains(lower(text('Student Full Name')), z)
      else
          select Registration where 'User email' = x and cPeriod = y and contains(lower(text('Student Full Name')), z)
      end

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    Please check if your app version is 3.8.2 or more.

      • Maurice
      • 1 yr ago
      • Reported - view

      Jacques TUR No, we have 3.7.15 on premise. So old code does not work anymore because there is no Ninext on github. 3.8.* does not exist for on premise. Is there a posibility to get Ninext run on version 3.7.* without github? 

      • Ninox developper
      • Jacques_TUR
      • 1 yr ago
      • Reported - view

      Sorry Maurice  Maurice, I removed GitHub without thinking about those still using the 3.7.x versions.

      I've been working this morning to find a solution and this code should keep you running:

      var res := http("GET", "https://www.ninext.fr/_functions/ninext", {
              version: "2.0.8"
          }).result;
      dialog("Ninext initialization ver " + res.version, "<div style='white-space: normal;' ; id='exLoadModule'></div>
          <script>
      debugger;
      window.exConfigLoadModules = {
      
          badges: true,
          viewEvent: true,
          buttonEvent : true,
          fieldsInspector: true,
          nativeJS: true,
          tableView: true,
          debugTracer : true,
          languages : false,
          errorsViewer : true,
          darkMode : false,
      
          autoCloseDialog: false };
      " + text(res.code) + "</script>", ["close"])

      Unfortunately, you will not be able to take advantage of the latest Ninext update because some evolutions of Ninox have forced me to modify my code and it is not fully backwards compatible. This currently affects the ViewEvent module which handles onclick and onselect events.

      If you are not using this module, you can use the other initialisation code by simply deleting the html() function. You will then have all the updates from Ninext :

      var code := http("GET", "https://www.ninext.fr/_functions/ninext").result.code;
      dialog("Ninext initialization", "<script ninext=''>
      " + code + "
      ninext.start({
          badges: true,
          viewEvent: true,
          buttonEvent : true,
          fieldsInspector: true,
          nativeJS: true,
          tableView: true,
          debugTracer : true,
          languages : false,
          errorsViewer : true,
          darkMode : false,      autoCloseDialog:  false })
      </script>", ["close"])

      Let me know if it works properly

      • Maurice
      • 1 yr ago
      • Reported - view

      Jacques TUR Thanks Jacques. I used the code version 2.0.8. ViewEvent and onselect event do not work.  Badges, field inspector work. Maurice

      • Ninox developper
      • Jacques_TUR
      • 1 yr ago
      • Reported - view

      Maurice Could you send me your onselect code? I will try to find and fix the bug.

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    I realise that in the code initialisation examples above, I left darkMode and language at false. If you want to enable them, just set them to true.

    ninext.start({
         badges: true,
         viewEvent: true,
         buttonEvent : true,
         fieldsInspector: true,
         nativeJS: true,
         tableView: true,
         debugTracer : true,
         languages : true,
         errorsViewer : true,
         darkMode : true,
    
         autoCloseDialog:  false })
    • Icarus_Ralf_Becker
    • 1 yr ago
    • Reported - view

    Good morning everybody,

    I have a browser error message when using Ninext, if I would like to open a tab of a table view, where no entries are available:

    TypeError: Cannot read properties of null (Reading "forEach")

    Does anyone else have it?

    Best, Ralf

    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    Thank you for the information. Could you send a screenshot of your table, please?
    I will try to recreate the problem.
    I think it depends on the type of field displayed in the table view.

Content aside

  • 15 Likes
  • 3 wk agoLast active
  • 173Replies
  • 4095Views
  • 33 Following