Forum Discussion

JeffPeterson1's avatar
JeffPeterson1
Qrew Captain
4 years ago

IOL Technique

So with the changes coming next month,  does that kill the IOL technique?     

I've noticed a lot of threads about it are gone now.



------------------------------
Jeff Peterson
------------------------------

10 Replies

  • The short answer is Yes.

    ------------------------------
    Blake Harrison
    bharrison@datablender.io
    DataBlender - Quickbase Solution Provider
    Atlanta GA
    404.800.1702 / http://datablender.io/
    ------------------------------
  • AustinK's avatar
    AustinK
    Qrew Commander
    I know for a long time now Service Workers have been advocated for on the off chance that Quickbase did decide to do something like this. I believe they are a potential answer here.

    https://community.quickbase.com/communities/community-home/digestviewer/viewthread?MessageKey=49e8f748-b9fe-4c80-9086-e42dd4e7bf58

    https://community.quickbase.com/communities/community-home/digestviewer/viewthread?MessageKey=d49c95ef-0fb9-4e2d-b215-f0e1378c1cc5

    https://haversineconsulting.quickbase.com/db/bgcwm2m4g?a=dr&r=vp&rl=nie

    Might be something that is worth looking into if you really need JavaScript to continue to function in some way. In one of the posts above Dan mentions a bunch of posts labeled "Service Worker Travel Log" and if you just Google "quickbase Service Worker Travel Log" you should get to most of them.
  • Hi Jeff,

    Quickbase has been making changes to how we handle JavaScript and other content being inserted into the platform outside of code pages (where it is supported and will be even after these changes). Starting in April we have been working to close 3 separate loopholes that were used to insert JavaScript where it was unsupported starting with Rich Text manual entry fields, then app and realm branding, and finally in our upcoming August release next month we will be closing the last area which is formula fields. 

    With this upcoming release, builders will no longer be able to save changes to any formula rich text fields that contain unsupported content such as JavaScript. Instead, builders will see an error message warning them that unsupported content has been detected and changes will not save. This will not remove existing JavaScript but will prevent any further edits or changes to what is in the field. Builders will only be able to save changes to these fields after our August Release (tentatively scheduled for 08-15-2021) after they have removed any unsupported content.  

    With this series of changes, we will not intentionally disable any existing solutions that leverage inserted JavaScript. However, it is impossible for us to test inserted JavaScript as we make changes to the Quickbase platform. A routine upgrade to an open-source library, a change to styling, or a change to our document object model (DOM) may cause these custom solutions to break without warning. This has always been a risk of using such unsupported techniques. However, as we progress with projects like modernizing our interface in 2021 and beyond, these kinds of changes will become more frequent. And if a solution stops working for one of these reasons after the area has been closed, app builders will not be able to edit the JavaScript to fix it. What this means is that techniques like IOL you have in place are not being intentionally broken but going forward from the release new IOL will not be possible and any places where it is today will be able to be removed and replaced with supported features but won't be able to be changed. You can learn more about our full plan, the reason these changes are important, and the earlier loopholes we have closed in our blog post here 



    ------------------------------
    Evan Martinez
    Community Marketing Manager
    Quickbase
    ------------------------------
    • JeffPeterson1's avatar
      JeffPeterson1
      Qrew Captain
      My main reason for pursuing this is to find a way to hide the native buttons in mobile view.   The only method I've been able to come across uses the IOL technique,  but I'm wary to use it if that will no longer work shortly.

      ------------------------------
      Jeff Peterson
      ------------------------------
      • AustinK's avatar
        AustinK
        Qrew Commander
        I think the only thing they could really do is prevent you from using JavaScript to trigger them in code pages but then code pages would be pretty useless. At this time doing it in a code page is even in line with what Quickbase wants, they only want JavaScript ran in there. So I see it as following their rules and still getting to have your JavaScript usage in the apps.
    • AdisKljajic's avatar
      AdisKljajic
      Qrew Trainee
      Hi Evan,

      I was facing issue using IOL but as i read your reply, it's pretty understood IOL will not work now.So i wanted to ask if IOL is not valid anymore how will i include my code pages in formula fields.Earlier was including my code pages like this =>

      ""&[iol] & "button.js" & [/iol]&""

      for example i had a button.js code page where i had written some onclick() functionality.Can you please suggest some solution as i am stuck here and not able to include my code pages and no longer able to include them in forms as well.

      ------------------------------
      Adis Kljajic
      ------------------------------
      • EvanMartinez's avatar
        EvanMartinez
        Quickbase Staff
        Hi Adis,

        What are you trying to accomplish with this code page and the button where you were previously using IOL? In some instances there aren't one to one replacements if they were using some of the functionality that was specifically problematic. It is often a bit easier to look at what you are trying to accomplish and see if there is now a supported alternative or technique. 

        To my understanding in general it is no longer possible to insert JavaScript code to run in a formula field. We encourage JavaScript to be used in Code Pages, but those code pages must be loaded in a separate tab or window for security purposes. So you would create your flow to open up the code page in that new window, have it run the code it was running, and then return your user back to the form. We have some great examples of that kind of flow in our Code Page sample app, you might want to check the examples on using it to run a delay before reloading the page to see how they built that flow. It wouldn't be the exact same flow you have today but depending on what that code page was doing there might be alternatives that have come out since (for example we changed over the last few months the way redirects work and added some new formula functions to solve for some of the common uses of JS). 

        ------------------------------
        Evan Martinez
        ------------------------------