Skip to main content

Upcoming Changes to JavaScript in Quickbase

  • Feb 3, 2021 10:08 PM UTC
  • 0 replies
  • 3346 views

Show first post
This topic has been closed for replies.

Forum|alt.badge.img+1
  • Observing
  • Feb 11, 2021 11:25 PM UTC
I am coming to terms with removing javascript from Rich Text formulas and turning to using code pages with the new JSON API calls.
Will something like this be acceptable:
"javascript: var rid=" & [Record ID#] & ";" &
"$.getScript('" & URLRoot() & "db/" & Dbid() &
"?act=dbpage&pagename=CodePage.js')"


This would be attached to a formula URL field (displayed as button).

Similar to other commenters, I have a need to do checking of fields with more complex logic (e.g., use of regular expressions) not available in existing functions.

We have a formula-rich text button to open a small browser window to complete an outside task, referencing current record fields.  Will this be blocked??

"<a class='Vibrant Alert' onclick=\"var a=window.open('https://webserver/upload.php?"
& "client_name=????"
& "&appid=??????"
& "&filepath=" & URLEncode([Custom S3 Key])
& "&addfilename=Y"
& "&dbid=????????"
& "&rid=" & URLEncode ([Record ID#])
& "&bucket_name=bucketname'"
& ",'newwindow', 'top=240,left=320,width=675,height=295,location=no,menubar=no,toolbar=no,scrollbars=yes,status=no,resizeable=yes');\""
& " >Upload Documents</a>"

Will this be blocked??  So a deprecation date has been announced; and there is talk about extending the functionality of QB to provide similar functionality; but NO DATE for when that is going to happen...  Lots of false positives reported, so no good way of knowing for sure.  Can't believe the steps offered as a way to verify... now we have to login as a REALM admin to check??


Forum|alt.badge.img+17
  • Community Moderator
  • Feb 12, 2021 12:59 PM UTC
To those with pressing questions on the Javascript change, for people interested in doing a deep dive on some of the JavaScript "holes" we need to close, supported alternatives and roadmap please join us on our public Slack right here. 


Harrison with our product team is looking to organize a deep dive session and needs your votes on when would work best to get together. That way we can also have more in depth discussions and follow up on our Slack. Thank you for your time and passion for Quickbase. 

Hey @Evan Martinez thanks for your response. A question I have for you: is there going to be any native way of custom DOM manipulation?
The reason I ask is because most of the time, users/clients have a specific workflow that they want to achieve. Especially when they are moving to Quickbase from another system. We as developers, need a way to do this or our answers will be either no, we can't do this, or those of us who were Software Engineers prior to this will say yes, but it's going to take more time (also cost them more $), because we'll have to build the flow in a code page.
I have a bunch of scenarios in which we would need improvements to the platform in order for our users to get their desired workflow- if your solution is to remove js insertion.
If there is a place I could provide this information, or someone to speak to about this I would be more than happy to do so.​

AdamKeever1
Forum|alt.badge.img+2
  • Qrew Commander
  • Feb 12, 2021 2:50 PM UTC
The theme I see with the comments is that customers need a customizable DOM. Customers have been creative and achieved requirements by inserting javascript. Quickbase is locking down javascript insertion to make the platform secure. Thinking outside the box, that leads me to ask how can Quickbase provide customers a secure and customizable DOM?

AdamKeever1
Forum|alt.badge.img+2
  • Qrew Commander
  • Feb 12, 2021 2:53 PM UTC
@Evan Martinez, this is the URL of link you posted:


It takes me to QB community page to post a blog and starts a new blog under my user name.​

Forum|alt.badge.img+17
  • Community Moderator
  • Feb 12, 2021 3:07 PM UTC
Thanks for the heads up Adam I missed a piece of the URL and it tried to fix it for me and just made it worse. Should be good to go now. 

@Samwise Brave - Harrison from our product team is trying to organize a deep dive session via our public slack right now, that would be the best place to give your feedback direct to a senior product manager and he could dive into the technical specifics and needs more comprehensively than me when it comes to Javascript and DOM manipulation. ​

@Kirk Gustafson - The functionality in your button could be replicated besides the ability to open it as a popup (today it would need to open as a new tab). For the application for Javascript info it shouldn't need you to be a Realm Admin, if you are having trouble accessing it as an admin I would recommend reaching out to the Care team and they can look at your specific permissions and see about getting you access to the app. Is there something specific beyond the popup ability in Javascript that you are particularly worried about losing?

To those with pressing questions on the Javascript change, for people interested in doing a deep dive on some of the JavaScript "holes" we need to close, supported alternatives and roadmap please join us on our public Slack right here. 

Harrison with our product team is looking to organize a deep dive session and needs your votes on when would work best to get together. That way we can also have more in depth discussions and follow up on our Slack. Thank you for your time and passion for Quickbase. 


​​​​

AdamKeever1
Forum|alt.badge.img+2
  • Qrew Commander
  • Feb 12, 2021 6:44 PM UTC
I have a custom form that works great for creating new records. I want to be able to give the users the ability to then view that record in the same format that they entered the record. I know this is possible with javascript, but is this possible without javascript?

QuickBaseJunkie
Forum|alt.badge.img+15

These comments have been very helpful. Thank you
If possible I'd like more information on these 2 use cases:

  1. Using class for buttons in a Rich Text formula with either A) the "Vibrant" classes or B) bootstrap classes such as "btn btn-success btn-sm" – Will these need to be replaced with inline css?
  2. Using a Formula Text field to compose an iframe that's displayed using a Report Link field for A) a Quickbase source like a record, page, or query B) an outside source/tool like Googles PDF viewer or GDrive folder. Neither plain text formulas or Report links have been explicitly mentioned with regards to iframes.

Forum|alt.badge.img+17
  • Community Moderator
  • Feb 12, 2021 7:38 PM UTC
@Sharon Faust ​​​I'm glad they have been helpful to your questions 
1. You will be able to still call the QB styles for buttons with the caveat that if we update or change the styles they would update for you. Bootstrap styles like the one here should also be just fine. 
2.  Iframes embedded on forms have been identified as one of the serious possible concerns so that is at the heart of them being locked down in this update. The product team is laser focused though on delivering a safe way to allow for embedding and there is already a working model of that in our new dashboards to allow a secure iframe. 

@Adam Keever I see you are chatting with Ryan over on the community slack, he is probably best equipped to help you dig into the specifics of how you might do that one and get into all the requirements you would have to have a good version of that available for you. 

To those with pressing questions on the Javascript change, for people interested in doing a deep dive on some of the JavaScript "holes" we need to close, supported alternatives and roadmap please join us on our public Slack right here. 

Harrison with our product team is looking to organize a deep dive session and needs your votes on when would work best to get together. That way we can also have more in depth discussions and follow up on our Slack. Thank you for your time and passion for Quickbase. 

​​​

EricEvansVargas
Forum|alt.badge.img+6
While I can see this as necessary, it will be devastating to those of us who are neither software engineers nor experienced in Java, but instead are community users and builders who rely on the low-code capabilities of Quickbase. Many of us utilize these fields and borrow by copying and pasting from other sources and adjusting to fit the needs of our applications.

We have numerous applications (hundreds) in our organization where we have utilized java script in buttons to consolidate manual processes and steps and to simplify the lives and the work of so many of our end users.  While they seem so simple, so many of these buttons that we've created (combined with Actions, Webhooks, and Automations) have even knocked legacy systems out of contention when it has come down to replacing applications we have built with full-purpose programs. Simply due to the power behind a user clicking one button to generate multiple activities and saving time and energy by completing various tasks and steps that would otherwise have to be done manually.

I sincerely hope that Quickbase is looking at a way to natively allow users who are not familiar enough with java script and code pages to continue to utilize the low-code power of Quickbase to its fullest extent.

I apologize for the commentary and not necessarily adding any valued solutions or ideas to the comments section, but I felt the need to air what a huge blow this will be to many of us who are end-users turned app builders.

Forum|alt.badge.img+17
  • Community Moderator
  • Feb 17, 2021 9:54 PM UTC
@Eric Evans Vargas There is absolutely going to be a challenge for us in the next few months here on community to help our awesome builders come together to share their experiences as they find alternatives to javascript and techniques to IOL and to pass on techniques from our team. What is great is that we have already had some community members so far share their concerns and start to work together to share the alternatives they have been using, but there are definitely going to be growing pains when it comes to methods. Your mention of copying and pasting JS code from here in community is actually one of the concerns that spurred on this change, as app builders without programming experience copy and paste these short bits without always fully understanding how it works, which can cause security issues and supportability issues. Someone getting stuck with JS could be in real trouble if it messes up their app and we aren't able to help them unravel the JS since it wasn't something we built or supported.

Our intent is to make it harder to stumble into using JavaScript in ways that is not appropriate, to make things simpler and more intuitive for our main audience of app builders who are not pro developers so that they aren't introducing an X factor into their app that might cause issues down the line. If you feel limited by what value you can get from the Quickbase platform by not being able to rely on JavaScript, we'd love to hear more about what you're working on. I would definitely suggest also checking out the public slack channel below as it is one of the places where we are chatting with people about their needs and sourcing some alternatives. If you weren't able to attend we also had a meeting yesterday with some of the community to talk through the change that we recorded as well. 

To those with pressing questions on the Javascript change, for people interested in doing a deep dive on some of the JavaScript "holes" we need to close, supported alternatives and roadmap please join us on our public Slack right here. ​​

Forum|alt.badge.img+17
  • Community Moderator
  • Feb 18, 2021 7:13 PM UTC
Hi Everyone, I know Pipelines came up as an alternative regularly for some of the IOL and javascript usage. I wanted to make sure you all saw our announcement that went live today. Today we are introducing Unlimited Quickbase Channel Usage in Pipelines, find out more in our announcement here. 

Forum|alt.badge.img+8
  • Qrew Corporal
  • Feb 22, 2021 6:33 PM UTC
@Evan Martinez - Changing the Quickbase Channel in Pipelines to 'unlimited' is huge.  I don't believe many (if any) of my 'unsupported' techniques/implementations can be migrated to that solution, but I can absolutely appreciate the gesture nonetheless.  Y'all have been putting in a lot of work over the last couple weeks trying to address as many builders' concerns as fast as possible, making some major decisions like this in the process.​​

QuickBaseJunkie
Forum|alt.badge.img+15
I saw the update and thought 'false positives' like this one (formula below) with only allowed HTML tags were going to be fixed. Please let me know the ETA as there are too many to look through now to find the real culprits. Per @Evan Martinez prior suggestion I put in Care Ticket: 644895 which has been closed. PS I know you're all working hard and I appreciate it :-)

If(IsNull([Record ID#]) or ([Style]="" or [Choices]="" or [Colors]="" or [Multi-Select Field Name]=""),"<span style='font-size:18px; color:red;'>Please fill out all required fields.</span>","")​

Forum|alt.badge.img+17
  • Community Moderator
  • Feb 25, 2021 3:48 PM UTC
@Sharon Faust (QuickBaseJunkie.com) They are still working to dial in the process that they are pulling from the product for flagged fields. I'll drop in the slack channel the next time the app itself is refreshed and if you are still having false positives you are concerned about another Care case can help them continue to refine, with the knowledge that for something like this we might still see some false positives in the pull as there is so much variety in what is being audited.

@Brad Lemke We have been really excited to be able to roll out the announcement for the free Quickbase channel stepruns, especially knowing that they can help solve some cases (though sadly not all). We are hoping to keep rolling out work and enhancements that are going to delight builders and unlock even more options, keep an eye open cause there is some really interesting stuff in the works. ​​​

QuickBaseJunkie
Forum|alt.badge.img+15
@Evan Martinez Thank you. I'll watch for the next update and will put in a ticket if the fields with allowable HTML continue to get flagged.​

QuickBaseJunkie
Forum|alt.badge.img+15
@Evan Martinez @Harrison HerschI see the false positives on approved uses of HTML have been resolved. Thank you!

I do still see JS that's been commented out flagged, but I assume that's to be expected.

As I work through these, I thought it would be really nice to make notes on the records in the JS Usage app. Not sure if that would even be possible if you're re-pulling the data each week, but it sure would be nice.​​

Also, @Graham Leto thank you (and the team) for facilitating the process to allow multi-account access in the Usage app. Support is responding to access request tickets like lightning and the visibility has been very helpful!​​

BrianCafferelli
Forum|alt.badge.img+17
@Sharon Faust (QuickBaseJunkie.com)​
I'm glad to hear you're finding the usage app useful! I understand how it would be helpful to have a spot to take notes about a specific field that's using JS. However, we're finding that the types of these formulas is really varied so we are frequently tweaking our logic to flag these fields accordingly. To optimize for accuracy, we are flushing the data in the app each week. So I don't think we would be able to add a spot on the Identified Area records to take notes. However, we could add a field like that to the Realms table. Would that be valuable?

Forum|alt.badge.img+3
I've worked with Quickbase for over 8 years and have seen some great improvements over the years. This is a HUGE step back and a big mistake. When a system has a large number of users having to create their own workarounds for functions that should be native, that should be an indication that those functions are needed.

Here, instead of Quickbase understanding WHY we're using these workarounds and building native functions to replace what we need, Quickbase chooses the other route, and removes what some of us need to do our jobs.

So if Quickbase really wants to be a real go-to low/no code solution, make the ability to create action buttons native. Wouldn't that be a better solution than breaking everyone's apps?

FIX the problem. Don't break the solution.

QuickBaseJunkie
Forum|alt.badge.img+15
@Brian Cafferelli re: the notes, that's what I figured, but it never hurts to ask. I don't think it would be helpful to have notes in the Realms table. I'll need to export the field data and keep track elsewhere, but thanks for thinking of options.​

Forum|alt.badge.img+17
  • Community Moderator
  • Mar 5, 2021 6:47 PM UTC
@Michael Frishman There is going to be some pain points when it comes to our locking down of Javascript functionality and removing it from form and branding injection. It was driven in large part by the need to remove this security concern and also to allow development going forward.  That is why in our current framework we are locking the ability to create or edit new Javascript in April but not immediately breaking anything existing, though now as always things may break over time as we launch new features and functionality since they were not supported or tested against.

This is in effort to allow customers time to transition where we do have tools available, and we have been publishing some new resources on how to replicate some uses of Javascript in forms and branding using Code pages, which are allowed and aren't getting locked down. You can find our ongoing example of that here in our Code Page sample app. We have also recently made the change to making Quickbase channel Pipelines free so a number of workflows that used those buttons to move around data can now use the integration powers of Pipelines to address those needs securely. There are still going to be some gaps though, is there a specific use case you are worried about? ​

@Evan Martinez Has there been any considerations for moving this date?
We the developers/users for your platform have our own roadmaps, and projects that we are either currently working on, or will be shortly.
April is really really soon to make such a major change. When we started our development we were under the terms that we had these tools available to us.
As I've already expressed, I don't agree at all with these changes, but I hope you can reconsider giving us and our companies more time to figure out how to more forward.

Forum|alt.badge.img+17
  • Community Moderator
  • Mar 5, 2021 7:12 PM UTC
@Samwise Brave The dates are currently locked in but I should have been more specific. Not everything will be locked down on April that is just when it begins. We start with non Formula Rich Text fields in April only and then the specific timeline is:
  1. Rich Text Fields, where customers could unintentionally allow end users to insert JavaScript. This area will be closed in the April 2021 release. Note: This does not include Formula-Rich Text fields.
  2. Custom Branding, where customers typically insert JavaScript to modify the UI in non-native ways. This area will be closed in the June 2021 release. 
  3. Formula Fields, where customers can write scripts to automate workflows. Examples of these include cascading deletes and executing multiple actions when a user presses a button. This area will be closed in the August 2021 release.  This includes Formula-Rich Text fields.

So the timeline for the different changes is spread out to allow more time for the more intensive workflows that can be housed in formula fields.

Forum|alt.badge.img+8
  • Qrew Corporal
  • Mar 5, 2021 7:19 PM UTC
@Evan Martinez Holy cow that timeline is a load off my chest.  I'd been thinking this entire time that the *formula* rich text script was being locked next month, not in 6 months.​