If you’ve ever used JavaScript to modify UI or enable a non-native workflow in a Quickbase app, this post is for you. We know that adding custom code to an application can be a valuable way to extend Quickbase. However, we need to provide this capability in a secure and supportable way. To that end, Quickbase provides the ability to use custom code in code pages. On the other hand, we also see builders inserting custom code into places it was never intended to be used. To improve the security and stability of the platform, we are changing the way Quickbase handles custom code. Specifically, we are changing how the platform handles JavaScript and unsupported HTML tags in places other than code pages. Code pages are where custom code has always been supported, and we encourage app builders to insert it there. We will roll out these changes throughout 2021. This post will cover the background on where custom code is supported in Quickbase, and why it’s important for us to make a change. You can also find details about our plan below, and how that impacts you.
For years, Quickbase builders have inserted JavaScript outside of code pages. This has been done to customize the UI or to automate workflow (such as reloading the current page). Yet custom code such as JavaScript was never intended to be used in a Quickbase app, except in code pages. Builders have shared many solutions like this on our community forum. You might see them called "Image OnLoad" or "Branding OnLoad".
Because the added JavaScript code cannot be sanitized by Quickbase, it could open asecurity vulnerability that a sophisticated, malicious, builder could take advantage of.“Sanitizing” is simply making sure that an input into a field is what the software intended. For example, to sanitize a field that says “Image URL”, we would ensure it only accepts a format like https://mywebsite.com/images/banner.pngand that it only contains secure content. None of the code within a code page can access the native Quickbase document object model (DOM). When you write custom code such as JavaScript in a code page, you are creating a new web page from scratch. This is why it is more secure to restrict JavaScript to being used only in a code page
The Quickbase platform includes many security measures which protect you against the risks mentioned above. For example, when you create a new app, any API call pointed at that app must include an application token. We have put in place policies to control cross-origin resource sharing (CORS). And we allow realm admins to restrict what type of content may be embedded as an iFrame within their apps. But the work of building a platform with world-class, enterprise grade security never stops. Our software engineers and system architects are always searching for opportunities to improve. Changing how JavaScript is handled in Quickbase apps is the next step in that journey.
Besides this security issue, it's impossible for us to test inserted JavaScript as we make changes to the Quickbase platform. A routine upgrade to anopen source library, a change to styling, or to the DOM may cause these custom solutions to break without warning. As we progress with projects like the UI Refresh in 2021 and beyond, these kinds of changes will become more frequent.
In order to move the platform forward in a safe, secure, and sustainable way, we must close the loopholes that allow builders to insert unsanitized custom code into their apps.
Upcoming Changes
There are three areas of the product that need to have the loophole closed. We will close one area at a time, every two months starting in April 2021.
Rich Text Fields, where customers could unintentionally allow end users to insert JavaScript. This area was closedin the April 2021 release. Note: This does not include Formula-Rich Text fields.
Custom Branding, where customers typically insert JavaScript to modify the UI in non-native ways. This area was closed in the June 2021 release.
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 closedin the August 2021 release. This includes Formula-Rich Text fields.
When an area is closed, builders will no longer be able to insert new JavaScript or edit the JavaScript that has been inserted into the area. With these series of changes, we will not remove or modify any existing custom code.We will notintentionally break any existing solutions that leverage these techniques. But a change to styling, a change to the DOM, or an update to a technical library could cause a solution to unintentionally break without warning. And, if a solution breaks for one of these reasons after the area has been closed, builders will not be able to edit the JavaScript to fix it.
After we close each loophole, builders will no longer be able to insert or update JavaScript in that part of their apps. For example, imagine you have a formula that contains JavaScript. You need to update the formula, so you open the field properties. In that case, we would pop up a message warning that the field contains unsupported content. If you click Save without removing the JavaScript, you will see an error message preventing the save. You may hit cancel at that point, to back out and keep the previous configuration of your field.
We encourage you to continue extending your ecosystem of apps using custom code. You can use custom code such as JavaScript in code pages, even after we close all the loopholes above.
NOTE: The vast majority of custom code that's inserted into Quickbase apps outside of code pages is JavaScript code. However, the product changes above will not just restrict where JavaScript can be used. Those restrictions will apply to all custom code that is unsupported outside of code pages. The only custom code that may be used outside of code pages is:
Any native HTML attributes for those tags. (Such as the "width" and "height" attributes of the img tag)
CSS style code which is included in-line, as part of one of the supported HTML tags above
As a reminder, iFrame HTML tags are not supported outside of code pages and they will be affected by the product changes above.
Product Alternatives
Many agile companies extend their Quickbase apps today using custom code. This is a crucial tool for flexing and adapting to a fast-paced business environment. The intended workflow for Quickbase to interact with custom code is by having a formula-url or formula-rich text field as a button or link. Clicking on one of these would open a new browser tab, or redirect the current tab, to the code page. Custom HTML, CSS and JavaScript can be included in this code page. If desired, the page can close itself and redirect to the original page. For example, see the animation below:
We will also work to make this even easier in the future. Overtime, we will address the majority of extensibility needs in a few ways:
Our ongoing product initiatives have an increased focus on customization and power natively. We know will not be able to build a native setting, switch or toggle for every possibility. Yet we conduct research and make data-informed decisions on where more flexibility makes sense.
We will continue to absorb small items into future product iterations that customers need so custom code isn’t needed. Examples of this include, but are not limited to:
Ability to use Now to get the live time a formula-url was pressed, rather than when the first page loaded
New formula functions likeUserRoles() and NameOfMonth()
More control over the behavior of formula-urls
Allow app builders to use JavaScript in certain areas outside of Code Pages. These would not allow arbitrary code to be inserted. Instead, they would support specific methods of extending a Quickbase app with custom code. For example, let's consider the new dashboards in beta as of February 2021. These new dashboards allow app builders to create filters which apply to all reports and charts on the page. We could allow a developer to create a custom chart type, which connects to the dashboard filter. So when an app user clicks that filter, all the reports and charts on the dashboard would update - including the custom-coded charts. This would allow builders to create their own chart, and have it behave natively and seamlessly for their users.We have many plans in this area. While this is not an overnight deliverable, we are confident in the research we have done and our roadmap to deliver on this promise.
Programming languages like JavaScript are powerful because they are open-ended. You can use JavaScript to solve virtually any problem if you have the time and technical know-how. But Quickbase is a no-code platform. Quickbase is powerful because of how fast it allows you to build and update apps, deliver value and unlock insights within your data. So we will always focus on accelerating that speed and ease of use. We do not intend for Quickbase to become a full-fledged integrated development environment (IDE).
Next Steps
First, we want to be as transparent as possible,so app builders are aware of any risks in their applications. To that end, builders will begin seeing a warning in areas that have unsupported content in the near future. This will not prohibitchanges to these areas of the platform.
Are you already thinking about some of your apps which use these JavaScript techniques? If so, please start planning how you can migrate to supported solutions. We have been logging Quickbase apps that contain unsupported custom code. Those logs are onlyable to cover apps where you've updated the app’s structure recently. So if you have an app you're unsure about, you can update the properties of any field or table to get it added to the logs. That way, if that app does contain JavaScript or other types of unsupported custom code, it will appear in the logs the following day. On February 11th, we'll send an email inviting account admins to a Quickbase app so you can see where inserted JavaScript is being used. If your account admin does not receive that email, it means that our logs do not show any inserted JavaScript in your account.
Review the list of FAQs below. If you stillhave questions or need help, don’t hesitate to reach out to our Care team by submitting a ticket. We're happy to help identify alternative solutions. However, please note that we will not be able to interpret or troubleshoot custom code. If you find yourself in need of more hands-on assistance, we recommend engaging with one of our QSPs, whom we can help you connect with.
FAQ
What is JavaScript Insertion?
JavaScript Insertion occurs when custom JavaScript code is added to any part of a Quickbase app other than a code page. Some examples include formula fields, rich text fields, and custom branding. While officially not supported, these techniques are used to more deeply customize an app’s UI or workflow. While this has never been officially supported, the platform was not explicitly blocking this as it should have been. As we have added features to the platform over the years, many of the reasons why these techniques were used have become obsolete.
What is changing with regards to JavaScript Insertion?
We will begin restricting app builders from inserting JavaScript in formula fields, app branding, and rich text fields. Builders will no longer be able to insert new JavaScript code in those areas. We will also block edits to any existing JavaScript in those same places. These areas were never intended to allow for JavaScript insertion. You can still insert JavaScript in a Code Page, which is the appropriate place in a Quickbase application.
Will these changes only affect inserted JavaScript code?
The vast majority of custom code that's inserted into Quickbase apps outside of code pages is JavaScript code. However, the product changes above will not just restrict where JavaScript can be used. Those restrictions will apply to all custom code that is unsupported outside of code pages. The only custom code that may be used outside of code pages is:
Any native HTML attributes for those tags. (Such as the "width" and "height" attributes of the img tag)
CSS style code which is included in-line, as part of one of the supported HTML tags above
As a reminder, iFrame HTML tags are not supported outside of code pages and they will be affected by the product changes above.
When will these changes take place?
Throughout a series of releases in 2021. After the April 2021 release, users will no longer be able to insert JavaScript into Rich text fields. After the June 2021 release, users will no longer be able to insert JavaScript into Custom Branding. After the August 2021 release, users will no longer be able to insert JavaScript into Formula Fields.
Why do we need to make these changes?
Custom JavaScript inserted into these areas is not sanitized by Quickbase. This opens the platform up to potential attacks from malicious users, to modify pages or gain access to protected data. Such custom code is also impossible for Quickbase to test. This means routine changes to the platform could (and do) cause a solution to break without warning. Closing these loopholes allows us to provide a more supportable, enterprise-grade platform. It also enables our support resources to triage and troubleshoot more effectively.
How are we informing customers of this change?
On February 11, 2021, we will email Account Adminswho will be affected by this change. The email will include a link to a Quickbase app which will help you locate inserted JavaScript in your apps. We will email those Account Admins before we make each of the product changes above. Those changes will take affect with our product releases in April 2021, June 2021, and August 2021. Application Managers will also see warnings in apps that include inserted JavaScript. For example, a message will appear if you edit the properties of a formula that includes inserted JavaScript.
What will happen with existing JavaScript solutions?
We will not be making any changes to existing objects that contain inserted JavaScript at this time, or during any of the releases mentioned above. That means that solutions that leverage inserted JavaScript should continue to work as they were designed. However, builders will not be able to save changes to these objects after their respective release. After the April 2021 release, you will not be able to make changes to JavaScript within Rich Text fields.After the June 2021 release, you will not be able to make changes to JavaScript within Branding. After the August 2021 release you will not be able to make changes to JavaScript within Formula fields. As always, these solutions might break as a result of a routine change we make to the Quickbase platform. For example, upgrading a technical library, or changing either our styling or our Document Object Model (DOM) could cause inserted JavaScript to stop working.
What will happen if a builder attempts to save changes to an object with inserted JavaScript?
After we close each loophole, builders will no longer be able to insert or update JavaScript in that part of their apps. For example, imagine you have a formula that contains JavaScript. You need to update the formula, so you open the field properties. In that case, we would pop up a message warning that the field contains unsupported content. If you click Save without removing the JavaScript, you will see an error message preventing the save. You may hit cancel at that point, to back out and keep the previous configuration of your field.
What will happen if I copy an app with inserted JavaScript?
Customers should be able to copy applications with unsupported JavaScript. The inserted JavaScript will carry over to the copied app. As with any inserted JavaScript, after we close down the area it is inserted in, builders will not be able to edit it.
Should I remove all inserted JavaScript from my Quickbase apps?
We are not removing or modifying any existing inserted JavaScript. You can continue to use your apps that contain inserted JavaScript. But, while we are not intentionally breaking any solutions that rely on inserted JavaScript, these solutions could break as a result of a routine change to the platform, like a change to styling, an upgrade to technical libraries, or a change to the Document Object Model (DOM). As we progress with the UI Refresh Initiative, these changes will become more frequent, increasing the chances that your apps could break. If you want to avoid that risk, you should explore alternative, supported solutions to the problems you’re solving with inserted JavaScript.
What if I need help?
If you’re still not clear on exactly what is changing, or have a specific question about your account, you can always submit a support case to our Care team. Also, ourQuickbase Solution Providers(QSPs) are a network of professional services firms that you can contract with to help you plan for and execute any changes to your apps that you might deem necessary as a result of this announcement. They can help you identify and implement alternative, supported solutions to the problems you currently solve with inserted JavaScript.
If you are working with a QSP already, you can follow up with that partner or find a potential partner here. We also have a list of partners who are providing services offerings to specifically handle JavaScript issues. If you would like a referral to a partner or potential partners, submit a support case, and a support representative can provide this for you.
Can builders still insert JavaScript into code pages?
Yes, users are encouraged to use code pages to leverage custom code for their Quickbase applications. These code pages should be used standalone, rather than attempted to be “injected” into a Quickbase page.
What if I need help identifying my inserted JavaScript?
The first place to look is the Inserted JavaScript Usage app. This is a Quickbase app that lists where inserted JavaScript is used in your apps. It includes details such as Field ID for formulas that include inserted JavaScript. On February 11, 2021, we will email a link to this app to Account Administrators. We will send this email only to accounts we've detected are using inserted JavaScript. Not sure whether a specific app includes inserted Javascript? You can check this by opening the app in question, then making any schema change. For instance, you could add a new field or update the properties of an existing field. Then, you can check the Usage app one day later. We update the Usage app daily. So if the app in question still does not appear in the Usage app then you do not need to take further action.
Will Copy Master and Details buttons be affected?
No, as long as you are using your Copy Master and Details button as it was originally generated (i.e. no changes were made to the formula) it should not be affected by these changes. If you have Copy Master and Details buttons, you may have received a warning in your application about the presence of unsupported content. To be clear, after the August release, you will not be able to edit these formulas. However, unlike other formulas that contain JavaScript, these buttons will continue to work as designed and do not need to be replaced with alternative solutions.
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 Slackright 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.
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?
These comments have been very helpful. Thank you If possible I'd like more information on these 2 use cases:
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?
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.
@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 Slackright 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.
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.
@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 Slackright here.
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.
@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.
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>","")
"}},"componentScriptGroups({\"componentId\":\"custom.widget.Custom_Footer_Scripts\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserRegistrationDate\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserRegistrationDate-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeDescription\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageListMenu\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageListMenu-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1744394574856"}],"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"components/customComponent/CustomComponent\"]})":[{"__ref":"CachedAsset:text:en_US-components/customComponent/CustomComponent-1744394574856"}],"message({\"id\":\"message:83069\"})":{"__ref":"BlogReplyMessage:message:83069"},"message({\"id\":\"message:83070\"})":{"__ref":"BlogReplyMessage:message:83070"},"message({\"id\":\"message:83071\"})":{"__ref":"BlogReplyMessage:message:83071"},"message({\"id\":\"message:83072\"})":{"__ref":"BlogReplyMessage:message:83072"},"message({\"id\":\"message:83073\"})":{"__ref":"BlogReplyMessage:message:83073"},"message({\"id\":\"message:83064\"})":{"__ref":"BlogReplyMessage:message:83064"},"message({\"id\":\"message:83065\"})":{"__ref":"BlogReplyMessage:message:83065"},"message({\"id\":\"message:83066\"})":{"__ref":"BlogReplyMessage:message:83066"},"message({\"id\":\"message:83067\"})":{"__ref":"BlogReplyMessage:message:83067"},"message({\"id\":\"message:83068\"})":{"__ref":"BlogReplyMessage:message:83068"},"cachedText({\"lastModified\":\"1744394574856\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1744394574856"}]},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Anonymous","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"true","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MM-dd-yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":null,"possibleValues":["en-US","es-ES"]},"repliesSortOrder":{"__typename":"InheritableStringSettingWithPossibleValues","key":"config.user_replies_sort_order","value":"DEFAULT","localValue":"DEFAULT","possibleValues":["DEFAULT","LIKES","PUBLISH_TIME","REVERSE_PUBLISH_TIME"]}},"deleted":false},"CachedAsset:pages-1744274432490":{"__typename":"CachedAsset","id":"pages-1744274432490","value":[{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"HealthCheckPage","type":"COMMUNITY","urlPath":"/health","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1744274432490,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}","userBanned":"We're sorry, but you have been banned from using this site.","userBannedReason":"You have been banned for the following reason: {reason}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"Rank:rank:28":{"__typename":"Rank","id":"rank:28","position":5,"name":"Quickbase Alumni","color":"707070","icon":null,"rankStyle":"TEXT"},"User:user:27718":{"__typename":"User","id":"user:27718","uid":27718,"login":"GrahamLeto1","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.quickbase.com/t5/s/kqufx49752/images/dS0yNzcxOC0zejBONXY?image-coordinates=0%2C0%2C740%2C739"},"rank":{"__ref":"Rank:rank:28"},"email":"","messagesCount":7,"biography":null,"topicsCount":5,"kudosReceivedCount":11,"kudosGivenCount":2,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-08-08T06:32:53.000-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":0},"Category:category:blog":{"__typename":"Category","id":"category:blog","entityType":"CATEGORY","displayId":"blog","nodeType":"category","depth":1,"title":"Blog","shortTitle":"Blog","parent":{"__ref":"Category:category:top"}},"Category:category:top":{"__typename":"Category","id":"category:top","entityType":"CATEGORY","displayId":"top","nodeType":"category","depth":0,"title":"Top","shortTitle":"Top"},"Blog:board:the-qrew-blog-":{"__typename":"Blog","id":"board:the-qrew-blog-","entityType":"BLOG","displayId":"the-qrew-blog-","nodeType":"board","depth":2,"conversationStyle":"BLOG","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"LIKES","repliesFormat":"threaded"},"tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"FREEFORM_AND_PRESET","description":"Where The Qrew can learn of upcoming events and product updates.","title":"The Qrew Blog","shortTitle":"The Qrew Blog","parent":{"__ref":"Category:category:blog"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:kqufx49752"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:blog"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":true,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"theme":{"__ref":"Theme:customTheme1"},"boardPolicies":{"__typename":"BoardPolicies","canViewSpamDashBoard":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.access_spam_quarantine.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.access_spam_quarantine.allowed.accessDenied","args":[]}},"canArchiveMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.content_archivals.enable_content_archival_settings.accessDenied","key":"error.lithium.policies.content_archivals.enable_content_archival_settings.accessDenied","args":[]}},"canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}},"canReadNode":{"__typename":"PolicyResult","failureReason":null}},"blogPolicies":{"__typename":"BlogPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/"},"BlogTopicMessage:message:83033":{"__typename":"BlogTopicMessage","uid":83033,"subject":"Upcoming Changes to JavaScript in Quickbase","id":"message:83033","revisionNum":2,"repliesCount":63,"author":{"__ref":"User:user:27718"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"conversation":{"__ref":"Conversation:conversation:83033"},"messagePolicies":{"__typename":"MessagePolicies","canPublishArticleOnEdit":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","args":[]}},"canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false},"shortScheduledTimezone":null},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:83033"},"teaser":"","body":"
If you’ve ever used JavaScript to modify UI or enable a non-native workflow in a Quickbase app, this post is for you. We know that adding custom code to an application can be a valuable way to extend Quickbase. However, we need to provide this capability in a secure and supportable way. To that end, Quickbase provides the ability to use custom code in code pages. On the other hand, we also see builders inserting custom code into places it was never intended to be used. To improve the security and stability of the platform, we are changing the way Quickbase handles custom code. Specifically, we are changing how the platform handles JavaScript and unsupported HTML tags in places other than code pages. Code pages are where custom code has always been supported, and we encourage app builders to insert it there. We will roll out these changes throughout 2021. This post will cover the background on where custom code is supported in Quickbase, and why it’s important for us to make a change. You can also find details about our plan below, and how that impacts you.
For years, Quickbase builders have inserted JavaScript outside of code pages. This has been done to customize the UI or to automate workflow (such as reloading the current page). Yet custom code such as JavaScript was never intended to be used in a Quickbase app, except in code pages. Builders have shared many solutions like this on our community forum. You might see them called \"Image OnLoad\" or \"Branding OnLoad\".
\n
Because the added JavaScript code cannot be sanitized by Quickbase, it could open asecurity vulnerability that a sophisticated, malicious, builder could take advantage of.“Sanitizing” is simply making sure that an input into a field is what the software intended. For example, to sanitize a field that says “Image URL”, we would ensure it only accepts a format like https://mywebsite.com/images/banner.pngand that it only contains secure content. None of the code within a code page can access the native Quickbase document object model (DOM). When you write custom code such as JavaScript in a code page, you are creating a new web page from scratch. This is why it is more secure to restrict JavaScript to being used only in a code page
\n
The Quickbase platform includes many security measures which protect you against the risks mentioned above. For example, when you create a new app, any API call pointed at that app must include an application token. We have put in place policies to control cross-origin resource sharing (CORS). And we allow realm admins to restrict what type of content may be embedded as an iFrame within their apps. But the work of building a platform with world-class, enterprise grade security never stops. Our software engineers and system architects are always searching for opportunities to improve. Changing how JavaScript is handled in Quickbase apps is the next step in that journey.
\n
Besides this security issue, it's impossible for us to test inserted JavaScript as we make changes to the Quickbase platform. A routine upgrade to anopen source library, a change to styling, or to the DOM may cause these custom solutions to break without warning. As we progress with projects like the UI Refresh in 2021 and beyond, these kinds of changes will become more frequent.
\n
In order to move the platform forward in a safe, secure, and sustainable way, we must close the loopholes that allow builders to insert unsanitized custom code into their apps.
\n
Upcoming Changes
\n
There are three areas of the product that need to have the loophole closed. We will close one area at a time, every two months starting in April 2021.
\n\n\n
Rich Text Fields, where customers could unintentionally allow end users to insert JavaScript. This area was closedin the April 2021 release. Note: This does not include Formula-Rich Text fields.
\n
Custom Branding, where customers typically insert JavaScript to modify the UI in non-native ways. This area was closed in the June 2021 release.
\n
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 closedin the August 2021 release. This includes Formula-Rich Text fields.
\n\n\n
When an area is closed, builders will no longer be able to insert new JavaScript or edit the JavaScript that has been inserted into the area. With these series of changes, we will not remove or modify any existing custom code.We will notintentionally break any existing solutions that leverage these techniques. But a change to styling, a change to the DOM, or an update to a technical library could cause a solution to unintentionally break without warning. And, if a solution breaks for one of these reasons after the area has been closed, builders will not be able to edit the JavaScript to fix it.
\n
After we close each loophole, builders will no longer be able to insert or update JavaScript in that part of their apps. For example, imagine you have a formula that contains JavaScript. You need to update the formula, so you open the field properties. In that case, we would pop up a message warning that the field contains unsupported content. If you click Save without removing the JavaScript, you will see an error message preventing the save. You may hit cancel at that point, to back out and keep the previous configuration of your field.
\n
We encourage you to continue extending your ecosystem of apps using custom code. You can use custom code such as JavaScript in code pages, even after we close all the loopholes above.
NOTE: The vast majority of custom code that's inserted into Quickbase apps outside of code pages is JavaScript code. However, the product changes above will not just restrict where JavaScript can be used. Those restrictions will apply to all custom code that is unsupported outside of code pages. The only custom code that may be used outside of code pages is:
Any native HTML attributes for those tags. (Such as the \"width\" and \"height\" attributes of the img tag)
\n
CSS style code which is included in-line, as part of one of the supported HTML tags above
\n\n
As a reminder, iFrame HTML tags are not supported outside of code pages and they will be affected by the product changes above.
\n
Product Alternatives
\n
Many agile companies extend their Quickbase apps today using custom code. This is a crucial tool for flexing and adapting to a fast-paced business environment. The intended workflow for Quickbase to interact with custom code is by having a formula-url or formula-rich text field as a button or link. Clicking on one of these would open a new browser tab, or redirect the current tab, to the code page. Custom HTML, CSS and JavaScript can be included in this code page. If desired, the page can close itself and redirect to the original page. For example, see the animation below:
\n\n
We will also work to make this even easier in the future. Overtime, we will address the majority of extensibility needs in a few ways:
\n\n
\n\n
Our ongoing product initiatives have an increased focus on customization and power natively. We know will not be able to build a native setting, switch or toggle for every possibility. Yet we conduct research and make data-informed decisions on where more flexibility makes sense.
\n
We will continue to absorb small items into future product iterations that customers need so custom code isn’t needed. Examples of this include, but are not limited to:\n\n
Ability to use Now to get the live time a formula-url was pressed, rather than when the first page loaded
\n
New formula functions likeUserRoles() and NameOfMonth()
\n
More control over the behavior of formula-urls
\n\n
\n
Allow app builders to use JavaScript in certain areas outside of Code Pages. These would not allow arbitrary code to be inserted. Instead, they would support specific methods of extending a Quickbase app with custom code. For example, let's consider the new dashboards in beta as of February 2021. These new dashboards allow app builders to create filters which apply to all reports and charts on the page. We could allow a developer to create a custom chart type, which connects to the dashboard filter. So when an app user clicks that filter, all the reports and charts on the dashboard would update - including the custom-coded charts. This would allow builders to create their own chart, and have it behave natively and seamlessly for their users.We have many plans in this area. While this is not an overnight deliverable, we are confident in the research we have done and our roadmap to deliver on this promise.
\n\n
\n\n
Programming languages like JavaScript are powerful because they are open-ended. You can use JavaScript to solve virtually any problem if you have the time and technical know-how. But Quickbase is a no-code platform. Quickbase is powerful because of how fast it allows you to build and update apps, deliver value and unlock insights within your data. So we will always focus on accelerating that speed and ease of use. We do not intend for Quickbase to become a full-fledged integrated development environment (IDE).
\n
Next Steps
\n
First, we want to be as transparent as possible,so app builders are aware of any risks in their applications. To that end, builders will begin seeing a warning in areas that have unsupported content in the near future. This will not prohibitchanges to these areas of the platform.
\n\n
\n
Are you already thinking about some of your apps which use these JavaScript techniques? If so, please start planning how you can migrate to supported solutions. We have been logging Quickbase apps that contain unsupported custom code. Those logs are onlyable to cover apps where you've updated the app’s structure recently. So if you have an app you're unsure about, you can update the properties of any field or table to get it added to the logs. That way, if that app does contain JavaScript or other types of unsupported custom code, it will appear in the logs the following day. On February 11th, we'll send an email inviting account admins to a Quickbase app so you can see where inserted JavaScript is being used. If your account admin does not receive that email, it means that our logs do not show any inserted JavaScript in your account.
\n
Review the list of FAQs below. If you stillhave questions or need help, don’t hesitate to reach out to our Care team by submitting a ticket. We're happy to help identify alternative solutions. However, please note that we will not be able to interpret or troubleshoot custom code. If you find yourself in need of more hands-on assistance, we recommend engaging with one of our QSPs, whom we can help you connect with.
\n
\n
FAQ
\n
What is JavaScript Insertion?
\n
JavaScript Insertion occurs when custom JavaScript code is added to any part of a Quickbase app other than a code page. Some examples include formula fields, rich text fields, and custom branding. While officially not supported, these techniques are used to more deeply customize an app’s UI or workflow. While this has never been officially supported, the platform was not explicitly blocking this as it should have been. As we have added features to the platform over the years, many of the reasons why these techniques were used have become obsolete.
\n
What is changing with regards to JavaScript Insertion?
\n
We will begin restricting app builders from inserting JavaScript in formula fields, app branding, and rich text fields. Builders will no longer be able to insert new JavaScript code in those areas. We will also block edits to any existing JavaScript in those same places. These areas were never intended to allow for JavaScript insertion. You can still insert JavaScript in a Code Page, which is the appropriate place in a Quickbase application.
\n
Will these changes only affect inserted JavaScript code?
\n
The vast majority of custom code that's inserted into Quickbase apps outside of code pages is JavaScript code. However, the product changes above will not just restrict where JavaScript can be used. Those restrictions will apply to all custom code that is unsupported outside of code pages. The only custom code that may be used outside of code pages is:
Any native HTML attributes for those tags. (Such as the \"width\" and \"height\" attributes of the img tag)
\n
CSS style code which is included in-line, as part of one of the supported HTML tags above
\n\n
As a reminder, iFrame HTML tags are not supported outside of code pages and they will be affected by the product changes above.
\n
When will these changes take place?
\n
Throughout a series of releases in 2021. After the April 2021 release, users will no longer be able to insert JavaScript into Rich text fields. After the June 2021 release, users will no longer be able to insert JavaScript into Custom Branding. After the August 2021 release, users will no longer be able to insert JavaScript into Formula Fields.
\n
Why do we need to make these changes?
\n
Custom JavaScript inserted into these areas is not sanitized by Quickbase. This opens the platform up to potential attacks from malicious users, to modify pages or gain access to protected data. Such custom code is also impossible for Quickbase to test. This means routine changes to the platform could (and do) cause a solution to break without warning. Closing these loopholes allows us to provide a more supportable, enterprise-grade platform. It also enables our support resources to triage and troubleshoot more effectively.
\n
How are we informing customers of this change?
\n
On February 11, 2021, we will email Account Adminswho will be affected by this change. The email will include a link to a Quickbase app which will help you locate inserted JavaScript in your apps. We will email those Account Admins before we make each of the product changes above. Those changes will take affect with our product releases in April 2021, June 2021, and August 2021. Application Managers will also see warnings in apps that include inserted JavaScript. For example, a message will appear if you edit the properties of a formula that includes inserted JavaScript.
\n
What will happen with existing JavaScript solutions?
\n
We will not be making any changes to existing objects that contain inserted JavaScript at this time, or during any of the releases mentioned above. That means that solutions that leverage inserted JavaScript should continue to work as they were designed. However, builders will not be able to save changes to these objects after their respective release. After the April 2021 release, you will not be able to make changes to JavaScript within Rich Text fields.After the June 2021 release, you will not be able to make changes to JavaScript within Branding. After the August 2021 release you will not be able to make changes to JavaScript within Formula fields. As always, these solutions might break as a result of a routine change we make to the Quickbase platform. For example, upgrading a technical library, or changing either our styling or our Document Object Model (DOM) could cause inserted JavaScript to stop working.
\n
What will happen if a builder attempts to save changes to an object with inserted JavaScript?
\n
After we close each loophole, builders will no longer be able to insert or update JavaScript in that part of their apps. For example, imagine you have a formula that contains JavaScript. You need to update the formula, so you open the field properties. In that case, we would pop up a message warning that the field contains unsupported content. If you click Save without removing the JavaScript, you will see an error message preventing the save. You may hit cancel at that point, to back out and keep the previous configuration of your field.
\n
What will happen if I copy an app with inserted JavaScript?
\n
Customers should be able to copy applications with unsupported JavaScript. The inserted JavaScript will carry over to the copied app. As with any inserted JavaScript, after we close down the area it is inserted in, builders will not be able to edit it.
\n
Should I remove all inserted JavaScript from my Quickbase apps?
\n
We are not removing or modifying any existing inserted JavaScript. You can continue to use your apps that contain inserted JavaScript. But, while we are not intentionally breaking any solutions that rely on inserted JavaScript, these solutions could break as a result of a routine change to the platform, like a change to styling, an upgrade to technical libraries, or a change to the Document Object Model (DOM). As we progress with the UI Refresh Initiative, these changes will become more frequent, increasing the chances that your apps could break. If you want to avoid that risk, you should explore alternative, supported solutions to the problems you’re solving with inserted JavaScript.
\n
What if I need help?
\n
If you’re still not clear on exactly what is changing, or have a specific question about your account, you can always submit a support case to our Care team. Also, ourQuickbase Solution Providers(QSPs) are a network of professional services firms that you can contract with to help you plan for and execute any changes to your apps that you might deem necessary as a result of this announcement. They can help you identify and implement alternative, supported solutions to the problems you currently solve with inserted JavaScript.
\n
If you are working with a QSP already, you can follow up with that partner or find a potential partner here. We also have a list of partners who are providing services offerings to specifically handle JavaScript issues. If you would like a referral to a partner or potential partners, submit a support case, and a support representative can provide this for you.
\n
Can builders still insert JavaScript into code pages?
\n
Yes, users are encouraged to use code pages to leverage custom code for their Quickbase applications. These code pages should be used standalone, rather than attempted to be “injected” into a Quickbase page.
\n
What if I need help identifying my inserted JavaScript?
\n
The first place to look is the Inserted JavaScript Usage app. This is a Quickbase app that lists where inserted JavaScript is used in your apps. It includes details such as Field ID for formulas that include inserted JavaScript. On February 11, 2021, we will email a link to this app to Account Administrators. We will send this email only to accounts we've detected are using inserted JavaScript. Not sure whether a specific app includes inserted Javascript? You can check this by opening the app in question, then making any schema change. For instance, you could add a new field or update the properties of an existing field. Then, you can check the Usage app one day later. We update the Usage app daily. So if the app in question still does not appear in the Usage app then you do not need to take further action.
\n
Will Copy Master and Details buttons be affected?
\n
No, as long as you are using your Copy Master and Details button as it was originally generated (i.e. no changes were made to the formula) it should not be affected by these changes. If you have Copy Master and Details buttons, you may have received a warning in your application about the presence of unsupported content. To be clear, after the August release, you will not be able to edit these formulas. However, unlike other formulas that contain JavaScript, these buttons will continue to work as designed and do not need to be replaced with alternative solutions.
","body@stringLength":"40482","rawBody":"
If you’ve ever used JavaScript to modify UI or enable a non-native workflow in a Quickbase app, this post is for you. We know that adding custom code to an application can be a valuable way to extend Quickbase. However, we need to provide this capability in a secure and supportable way. To that end, Quickbase provides the ability to use custom code in code pages. On the other hand, we also see builders inserting custom code into places it was never intended to be used. To improve the security and stability of the platform, we are changing the way Quickbase handles custom code. Specifically, we are changing how the platform handles JavaScript and unsupported HTML tags in places other than code pages. Code pages are where custom code has always been supported, and we encourage app builders to insert it there. We will roll out these changes throughout 2021. This post will cover the background on where custom code is supported in Quickbase, and why it’s important for us to make a change. You can also find details about our plan below, and how that impacts you.
For years, Quickbase builders have inserted JavaScript outside of code pages. This has been done to customize the UI or to automate workflow (such as reloading the current page). Yet custom code such as JavaScript was never intended to be used in a Quickbase app, except in code pages. Builders have shared many solutions like this on our community forum. You might see them called \"Image OnLoad\" or \"Branding OnLoad\".
\n
Because the added JavaScript code cannot be sanitized by Quickbase, it could open asecurity vulnerability that a sophisticated, malicious, builder could take advantage of.“Sanitizing” is simply making sure that an input into a field is what the software intended. For example, to sanitize a field that says “Image URL”, we would ensure it only accepts a format like https://mywebsite.com/images/banner.pngand that it only contains secure content. None of the code within a code page can access the native Quickbase document object model (DOM). When you write custom code such as JavaScript in a code page, you are creating a new web page from scratch. This is why it is more secure to restrict JavaScript to being used only in a code page
\n
The Quickbase platform includes many security measures which protect you against the risks mentioned above. For example, when you create a new app, any API call pointed at that app must include an application token. We have put in place policies to control cross-origin resource sharing (CORS). And we allow realm admins to restrict what type of content may be embedded as an iFrame within their apps. But the work of building a platform with world-class, enterprise grade security never stops. Our software engineers and system architects are always searching for opportunities to improve. Changing how JavaScript is handled in Quickbase apps is the next step in that journey.
\n
Besides this security issue, it's impossible for us to test inserted JavaScript as we make changes to the Quickbase platform. A routine upgrade to anopen source library, a change to styling, or to the DOM may cause these custom solutions to break without warning. As we progress with projects like the UI Refresh in 2021 and beyond, these kinds of changes will become more frequent.
\n
In order to move the platform forward in a safe, secure, and sustainable way, we must close the loopholes that allow builders to insert unsanitized custom code into their apps.
\n
Upcoming Changes
\n
There are three areas of the product that need to have the loophole closed. We will close one area at a time, every two months starting in April 2021.
\n\n\n
Rich Text Fields, where customers could unintentionally allow end users to insert JavaScript. This area was closedin the April 2021 release. Note: This does not include Formula-Rich Text fields.
\n
Custom Branding, where customers typically insert JavaScript to modify the UI in non-native ways. This area was closed in the June 2021 release.
\n
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 closedin the August 2021 release. This includes Formula-Rich Text fields.
\n\n\n
When an area is closed, builders will no longer be able to insert new JavaScript or edit the JavaScript that has been inserted into the area. With these series of changes, we will not remove or modify any existing custom code.We will notintentionally break any existing solutions that leverage these techniques. But a change to styling, a change to the DOM, or an update to a technical library could cause a solution to unintentionally break without warning. And, if a solution breaks for one of these reasons after the area has been closed, builders will not be able to edit the JavaScript to fix it.
\n
After we close each loophole, builders will no longer be able to insert or update JavaScript in that part of their apps. For example, imagine you have a formula that contains JavaScript. You need to update the formula, so you open the field properties. In that case, we would pop up a message warning that the field contains unsupported content. If you click Save without removing the JavaScript, you will see an error message preventing the save. You may hit cancel at that point, to back out and keep the previous configuration of your field.
\n
We encourage you to continue extending your ecosystem of apps using custom code. You can use custom code such as JavaScript in code pages, even after we close all the loopholes above.
NOTE: The vast majority of custom code that's inserted into Quickbase apps outside of code pages is JavaScript code. However, the product changes above will not just restrict where JavaScript can be used. Those restrictions will apply to all custom code that is unsupported outside of code pages. The only custom code that may be used outside of code pages is:
Any native HTML attributes for those tags. (Such as the \"width\" and \"height\" attributes of the img tag)
\n
CSS style code which is included in-line, as part of one of the supported HTML tags above
\n\n
As a reminder, iFrame HTML tags are not supported outside of code pages and they will be affected by the product changes above.
\n
Product Alternatives
\n
Many agile companies extend their Quickbase apps today using custom code. This is a crucial tool for flexing and adapting to a fast-paced business environment. The intended workflow for Quickbase to interact with custom code is by having a formula-url or formula-rich text field as a button or link. Clicking on one of these would open a new browser tab, or redirect the current tab, to the code page. Custom HTML, CSS and JavaScript can be included in this code page. If desired, the page can close itself and redirect to the original page. For example, see the animation below:
\n\n
We will also work to make this even easier in the future. Overtime, we will address the majority of extensibility needs in a few ways:
\n\n
\n\n
Our ongoing product initiatives have an increased focus on customization and power natively. We know will not be able to build a native setting, switch or toggle for every possibility. Yet we conduct research and make data-informed decisions on where more flexibility makes sense.
\n
We will continue to absorb small items into future product iterations that customers need so custom code isn’t needed. Examples of this include, but are not limited to:\n\n
Ability to use Now to get the live time a formula-url was pressed, rather than when the first page loaded
\n
New formula functions likeUserRoles() and NameOfMonth()
\n
More control over the behavior of formula-urls
\n\n
\n
Allow app builders to use JavaScript in certain areas outside of Code Pages. These would not allow arbitrary code to be inserted. Instead, they would support specific methods of extending a Quickbase app with custom code. For example, let's consider the new dashboards in beta as of February 2021. These new dashboards allow app builders to create filters which apply to all reports and charts on the page. We could allow a developer to create a custom chart type, which connects to the dashboard filter. So when an app user clicks that filter, all the reports and charts on the dashboard would update - including the custom-coded charts. This would allow builders to create their own chart, and have it behave natively and seamlessly for their users.We have many plans in this area. While this is not an overnight deliverable, we are confident in the research we have done and our roadmap to deliver on this promise.
\n\n
\n\n
Programming languages like JavaScript are powerful because they are open-ended. You can use JavaScript to solve virtually any problem if you have the time and technical know-how. But Quickbase is a no-code platform. Quickbase is powerful because of how fast it allows you to build and update apps, deliver value and unlock insights within your data. So we will always focus on accelerating that speed and ease of use. We do not intend for Quickbase to become a full-fledged integrated development environment (IDE).
\n
Next Steps
\n
First, we want to be as transparent as possible,so app builders are aware of any risks in their applications. To that end, builders will begin seeing a warning in areas that have unsupported content in the near future. This will not prohibitchanges to these areas of the platform.
\n\n
\n
Are you already thinking about some of your apps which use these JavaScript techniques? If so, please start planning how you can migrate to supported solutions. We have been logging Quickbase apps that contain unsupported custom code. Those logs are onlyable to cover apps where you've updated the app’s structure recently. So if you have an app you're unsure about, you can update the properties of any field or table to get it added to the logs. That way, if that app does contain JavaScript or other types of unsupported custom code, it will appear in the logs the following day. On February 11th, we'll send an email inviting account admins to a Quickbase app so you can see where inserted JavaScript is being used. If your account admin does not receive that email, it means that our logs do not show any inserted JavaScript in your account.
\n
Review the list of FAQs below. If you stillhave questions or need help, don’t hesitate to reach out to our Care team by submitting a ticket. We're happy to help identify alternative solutions. However, please note that we will not be able to interpret or troubleshoot custom code. If you find yourself in need of more hands-on assistance, we recommend engaging with one of our QSPs, whom we can help you connect with.
\n
\n
FAQ
\n
What is JavaScript Insertion?
\n
JavaScript Insertion occurs when custom JavaScript code is added to any part of a Quickbase app other than a code page. Some examples include formula fields, rich text fields, and custom branding. While officially not supported, these techniques are used to more deeply customize an app’s UI or workflow. While this has never been officially supported, the platform was not explicitly blocking this as it should have been. As we have added features to the platform over the years, many of the reasons why these techniques were used have become obsolete.
\n
What is changing with regards to JavaScript Insertion?
\n
We will begin restricting app builders from inserting JavaScript in formula fields, app branding, and rich text fields. Builders will no longer be able to insert new JavaScript code in those areas. We will also block edits to any existing JavaScript in those same places. These areas were never intended to allow for JavaScript insertion. You can still insert JavaScript in a Code Page, which is the appropriate place in a Quickbase application.
\n
Will these changes only affect inserted JavaScript code?
\n
The vast majority of custom code that's inserted into Quickbase apps outside of code pages is JavaScript code. However, the product changes above will not just restrict where JavaScript can be used. Those restrictions will apply to all custom code that is unsupported outside of code pages. The only custom code that may be used outside of code pages is:
Any native HTML attributes for those tags. (Such as the \"width\" and \"height\" attributes of the img tag)
\n
CSS style code which is included in-line, as part of one of the supported HTML tags above
\n\n
As a reminder, iFrame HTML tags are not supported outside of code pages and they will be affected by the product changes above.
\n
When will these changes take place?
\n
Throughout a series of releases in 2021. After the April 2021 release, users will no longer be able to insert JavaScript into Rich text fields. After the June 2021 release, users will no longer be able to insert JavaScript into Custom Branding. After the August 2021 release, users will no longer be able to insert JavaScript into Formula Fields.
\n
Why do we need to make these changes?
\n
Custom JavaScript inserted into these areas is not sanitized by Quickbase. This opens the platform up to potential attacks from malicious users, to modify pages or gain access to protected data. Such custom code is also impossible for Quickbase to test. This means routine changes to the platform could (and do) cause a solution to break without warning. Closing these loopholes allows us to provide a more supportable, enterprise-grade platform. It also enables our support resources to triage and troubleshoot more effectively.
\n
How are we informing customers of this change?
\n
On February 11, 2021, we will email Account Adminswho will be affected by this change. The email will include a link to a Quickbase app which will help you locate inserted JavaScript in your apps. We will email those Account Admins before we make each of the product changes above. Those changes will take affect with our product releases in April 2021, June 2021, and August 2021. Application Managers will also see warnings in apps that include inserted JavaScript. For example, a message will appear if you edit the properties of a formula that includes inserted JavaScript.
\n
What will happen with existing JavaScript solutions?
\n
We will not be making any changes to existing objects that contain inserted JavaScript at this time, or during any of the releases mentioned above. That means that solutions that leverage inserted JavaScript should continue to work as they were designed. However, builders will not be able to save changes to these objects after their respective release. After the April 2021 release, you will not be able to make changes to JavaScript within Rich Text fields.After the June 2021 release, you will not be able to make changes to JavaScript within Branding. After the August 2021 release you will not be able to make changes to JavaScript within Formula fields. As always, these solutions might break as a result of a routine change we make to the Quickbase platform. For example, upgrading a technical library, or changing either our styling or our Document Object Model (DOM) could cause inserted JavaScript to stop working.
\n
What will happen if a builder attempts to save changes to an object with inserted JavaScript?
\n
After we close each loophole, builders will no longer be able to insert or update JavaScript in that part of their apps. For example, imagine you have a formula that contains JavaScript. You need to update the formula, so you open the field properties. In that case, we would pop up a message warning that the field contains unsupported content. If you click Save without removing the JavaScript, you will see an error message preventing the save. You may hit cancel at that point, to back out and keep the previous configuration of your field.
\n
What will happen if I copy an app with inserted JavaScript?
\n
Customers should be able to copy applications with unsupported JavaScript. The inserted JavaScript will carry over to the copied app. As with any inserted JavaScript, after we close down the area it is inserted in, builders will not be able to edit it.
\n
Should I remove all inserted JavaScript from my Quickbase apps?
\n
We are not removing or modifying any existing inserted JavaScript. You can continue to use your apps that contain inserted JavaScript. But, while we are not intentionally breaking any solutions that rely on inserted JavaScript, these solutions could break as a result of a routine change to the platform, like a change to styling, an upgrade to technical libraries, or a change to the Document Object Model (DOM). As we progress with the UI Refresh Initiative, these changes will become more frequent, increasing the chances that your apps could break. If you want to avoid that risk, you should explore alternative, supported solutions to the problems you’re solving with inserted JavaScript.
\n
What if I need help?
\n
If you’re still not clear on exactly what is changing, or have a specific question about your account, you can always submit a support case to our Care team. Also, ourQuickbase Solution Providers(QSPs) are a network of professional services firms that you can contract with to help you plan for and execute any changes to your apps that you might deem necessary as a result of this announcement. They can help you identify and implement alternative, supported solutions to the problems you currently solve with inserted JavaScript.
\n
If you are working with a QSP already, you can follow up with that partner or find a potential partner here. We also have a list of partners who are providing services offerings to specifically handle JavaScript issues. If you would like a referral to a partner or potential partners, submit a support case, and a support representative can provide this for you.
\n
Can builders still insert JavaScript into code pages?
\n
Yes, users are encouraged to use code pages to leverage custom code for their Quickbase applications. These code pages should be used standalone, rather than attempted to be “injected” into a Quickbase page.
\n
What if I need help identifying my inserted JavaScript?
\n
The first place to look is the Inserted JavaScript Usage app. This is a Quickbase app that lists where inserted JavaScript is used in your apps. It includes details such as Field ID for formulas that include inserted JavaScript. On February 11, 2021, we will email a link to this app to Account Administrators. We will send this email only to accounts we've detected are using inserted JavaScript. Not sure whether a specific app includes inserted Javascript? You can check this by opening the app in question, then making any schema change. For instance, you could add a new field or update the properties of an existing field. Then, you can check the Usage app one day later. We update the Usage app daily. So if the app in question still does not appear in the Usage app then you do not need to take further action.
\n
Will Copy Master and Details buttons be affected?
\n
No, as long as you are using your Copy Master and Details button as it was originally generated (i.e. no changes were made to the formula) it should not be affected by these changes. If you have Copy Master and Details buttons, you may have received a warning in your application about the presence of unsupported content. To be clear, after the August release, you will not be able to edit these formulas. However, unlike other formulas that contain JavaScript, these buttons will continue to work as designed and do not need to be replaced with alternative solutions.
","kudosSumWeight":5,"postTime":"2021-02-03T14:08:07.000-08:00","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.quickbase.com/t5/s/kqufx49752/images/bS04MzAzMy0xNTk3NGlCRkNBMTJDQUM2NTAwODBB?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.quickbase.com/t5/s/kqufx49752/images/bS04MzAzMy0xNTk3MWk5MjNEOURBNDE5MTAwQkM1?revision=2\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":13,"rawTeaser":"","introduction":"","coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""},"currentRevision":{"__ref":"Revision:revision:83033_2"},"latestVersion":{"__typename":"FriendlyVersion","major":"2","minor":"0"},"metrics":{"__typename":"MessageMetrics","views":887},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"placeholder":false,"originalMessageForPlaceholder":null,"contributors":{"__typename":"UserConnection","edges":[]},"nonCoAuthorContributors":{"__typename":"UserConnection","edges":[]},"coAuthors":{"__typename":"UserConnection","edges":[]},"blogMessagePolicies":{"__typename":"BlogMessagePolicies","canDoAuthoringActionsOnBlog":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","key":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","args":[]}}},"archivalData":null,"replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzE","node":{"__ref":"BlogReplyMessage:message:83064"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzI","node":{"__ref":"BlogReplyMessage:message:83065"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzM","node":{"__ref":"BlogReplyMessage:message:83066"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzQ","node":{"__ref":"BlogReplyMessage:message:83067"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzU","node":{"__ref":"BlogReplyMessage:message:83068"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzY","node":{"__ref":"BlogReplyMessage:message:83069"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8Mzc","node":{"__ref":"BlogReplyMessage:message:83070"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8Mzg","node":{"__ref":"BlogReplyMessage:message:83071"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8Mzk","node":{"__ref":"BlogReplyMessage:message:83072"}},{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8NDA","node":{"__ref":"BlogReplyMessage:message:83073"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":true,"endCursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8NDA","hasPreviousPage":true,"startCursor":"MjUuM3wyLjF8b3wxMHwxNDowLDM5OjF8MzE"}},"customFields":[],"revisions({\"constraints\":{\"isPublished\":{\"eq\":true}},\"first\":1})":{"__typename":"RevisionConnection","totalCount":2}},"Conversation:conversation:83033":{"__typename":"Conversation","id":"conversation:83033","solved":false,"topic":{"__ref":"BlogTopicMessage:message:83033"},"lastPostingActivityTime":"2024-04-09T09:59:53.899-07:00","lastPostTime":"2021-08-18T10:37:46.000-07:00","unreadReplyCount":63,"isSubscribed":false},"ModerationData:moderation_data:83033":{"__typename":"ModerationData","id":"moderation_data:83033","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AssociatedImage:{\"url\":\"https://community.quickbase.com/t5/s/kqufx49752/images/bS04MzAzMy0xNTk3NGlCRkNBMTJDQUM2NTAwODBB?revision=2\"}":{"__typename":"AssociatedImage","url":"https://community.quickbase.com/t5/s/kqufx49752/images/bS04MzAzMy0xNTk3NGlCRkNBMTJDQUM2NTAwODBB?revision=2","title":"16016.gif","associationType":"BODY","width":632,"height":540,"altText":"null"},"AssociatedImage:{\"url\":\"https://community.quickbase.com/t5/s/kqufx49752/images/bS04MzAzMy0xNTk3MWk5MjNEOURBNDE5MTAwQkM1?revision=2\"}":{"__typename":"AssociatedImage","url":"https://community.quickbase.com/t5/s/kqufx49752/images/bS04MzAzMy0xNTk3MWk5MjNEOURBNDE5MTAwQkM1?revision=2","title":"16017.png","associationType":"BODY","width":437,"height":294,"altText":"null"},"Revision:revision:83033_2":{"__typename":"Revision","id":"revision:83033_2","lastEditTime":"2024-04-09T09:59:39.759-07:00"},"CachedAsset:theme:customTheme1-1744274432089":{"__typename":"CachedAsset","id":"theme:customTheme1-1744274432089","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"3px","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"Browser_Favicon_QB_Icon_512x512-1711046472639.png","imageLastModified":"1711046475044","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"quickbase-logo-300-1711548884441.png","imageLastModified":"1711548886217","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1320px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"3px","borderRadius":"3px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"400","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-body-color)","secondaryTextHoverColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), calc(var(--lia-bs-body-color-l) * 0.9))","secondaryBgColor":"#2C9382","secondaryBgHoverColor":"hsl(170.10000000000002, 53.9%, 31.8%)","secondaryBgActiveColor":"hsl(170.10000000000002, 53.9%, 26.2%)","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"LIGHT","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08)","sm":"0","md":"0","lg":"0","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-primary)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","defaultMessageFontFamily":"var(--lia-bs-font-family-base)","forumColor":"#1DD1E0","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#28A745","blogColor":"#2C9382","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#2C9382","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#F25E30","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#949494","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#10503C","secondary":"#333333","bodyText":"#000000","bodyBg":"#FFFFFF","info":"#17A2B8","success":"#28A745","warning":"#FFC107","danger":"#B50000","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#2C9382","#F25E30","#1DD1E0","#F2B203","#FFABA2","#363432","#E6EEEB","#AAA9A8"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Tinos","fontStyle":"NORMAL","fontWeight":"700","h1FontSize":"56px","h2FontSize":"48px","h3FontSize":"36px","h4FontSize":"32px","h5FontSize":"24px","h6FontSize":"24px","lineHeight":"1.2","subHeaderFontSize":"14px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":null,"imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"10px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"30px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"10px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"30px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"AvenirNext3","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"20px","fontSizeXxs":"11px","fontSizeXs":"14px","fontSizeSm":"16px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[{"source":"SERVER","name":"AvenirNext","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"500","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"}],"assetNames":["AvenirNext-normal-400.woff2","AvenirNext-normal-500.woff2","AvenirNext-normal-600.woff2","AvenirNext-normal-400.woff2","AvenirNext-normal-500.woff2","AvenirNext-normal-700.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"AvenirNext2","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"500","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"}],"assetNames":["AvenirNext2-normal-400.woff2","AvenirNext2-normal-500.woff2","AvenirNext2-normal-700.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"AvenirNext3","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"500","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"}],"assetNames":["AvenirNext3-normal-400.woff2","AvenirNext3-normal-500.woff2","AvenirNext3-normal-700.woff2"],"__typename":"CustomFont"},{"source":"GOOGLE","name":"Tinos","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"ITALIC","weight":"400","__typename":"FontStyleData"}],"assetNames":["Tinos-italic-400.woff2","Tinos-normal-400.woff2","Tinos-normal-700.woff2"],"__typename":"CustomFont"}],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1744394574856","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:quickbase.prod:pages/blogs/BlogMessagePage:board:the-qrew-blog--1744394786444":{"__typename":"CachedAsset","id":"quilt:quickbase.prod:pages/blogs/BlogMessagePage:board:the-qrew-blog--1744394786444","value":{"id":"BlogMessagePage","container":{"id":"Common","headerProps":{"removeComponents":["community.widget.bannerWidget"],"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"items":[{"id":"blog-article","sectionEditLevel":"LOCKED","layout":"ONE_COLUMN","columnMap":{"main":[{"id":"blogs.widget.blogArticleWidget","className":"lia-blog-container","__typename":"QuiltComponent"}],"__typename":"OneSectionColumns"},"__typename":"OneColumnQuiltSection"}],"__typename":"QuiltContainer"},"__typename":"Quilt"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1744394574856","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-pages/blogs/BlogMessagePage-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-pages/blogs/BlogMessagePage-1744394574856","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This blog post cannot be found","name":"Blog Message Page","section.blog-article.title":"Blog Post","archivedMessageTitle":"This Content Has Been Archived"},"localOverride":false},"CachedAsset:quiltWrapper:quickbase.prod:Common:1744274378005":{"__typename":"CachedAsset","id":"quiltWrapper:quickbase.prod:Common:1744274378005","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":"header.png","backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"RIGHT_CENTER","lastModified":"1709066928000","__typename":"BackgroundImageProps"},"backgroundColor":"var(--lia-bs-body-bg)","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":false,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"links":{"sideLinks":[],"mainLinks":[{"children":[],"linkType":"INTERNAL","id":"migrated-link-0","params":{"boardId":"welcome-to-the-qrew","categoryId":"overview"},"routeName":"BlogBoardPage"},{"children":[{"linkType":"INTERNAL","id":"migrated-link-2","params":{"boardId":"quickbase-discussions","categoryId":"top"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"migrated-link-3","params":{"categoryId":"qrew-networks-"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"migrated-link-4","url":"https://qrewchampions.influitive.com/forum/","target":"BLANK"}],"linkType":"INTERNAL","id":"migrated-link-1","params":{"categoryId":"qrew-networks-"},"routeName":"CategoryPage"},{"children":[{"linkType":"EXTERNAL","id":"migrated-link-6","url":"https://university.quickbase.com/","target":"BLANK"},{"linkType":"INTERNAL","id":"migrated-link-7","params":{"boardId":"getting-started","categoryId":"getting-started"},"routeName":"ForumBoardPage"},{"linkType":"EXTERNAL","id":"migrated-link-8","url":"https://www.quickbase.com/customers","target":"BLANK"},{"linkType":"EXTERNAL","id":"migrated-link-9","url":"https://www.quickbase.com/exchange","target":"BLANK"}],"linkType":"INTERNAL","id":"migrated-link-5","params":{"boardId":"quickbase-knowledge","categoryId":"learn"},"routeName":"TkbBoardPage"},{"children":[{"linkType":"EXTERNAL","id":"migrated-link-11","url":"https://helpv2.quickbase.com/hc/en-us","target":"BLANK"},{"linkType":"EXTERNAL","id":"migrated-link-13","url":"https://helpv2.quickbase.com/hc/en-us/categories/4404742594708-Release-Notes","target":"BLANK"},{"linkType":"INTERNAL","id":"migrated-link-14","params":{"boardId":"quickbase-knowledge","categoryId":"learn"},"routeName":"TkbBoardPage"},{"linkType":"EXTERNAL","id":"migrated-link-12","url":"https://team.quickbase.com/qb/support/newcase?subject=New+Case","target":"BLANK"}],"linkType":"EXTERNAL","id":"migrated-link-10","url":"https://helpv2.quickbase.com/hc/en-us","target":"BLANK"},{"children":[{"linkType":"EXTERNAL","id":"migrated-link-16","url":"https://www.quickbase.com/events","target":"BLANK"},{"linkType":"EXTERNAL","id":"migrated-link-17","url":"https://www.quickbase.com/empower","target":"BLANK"}],"linkType":"EXTERNAL","id":"migrated-link-15","url":"https://www.quickbase.com/events","target":"BLANK"},{"children":[],"linkType":"INTERNAL","id":"migrated-link-18","params":{"boardId":"the-qrew-blog-","categoryId":"blog"},"routeName":"BlogBoardPage"},{"children":[],"linkType":"INTERNAL","id":"migrated-link-19","params":{"boardId":"job-board","categoryId":"connect"},"routeName":"ForumBoardPage"}]},"className":"QuiltComponent_lia-component-edit-mode__0nCcm","style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","linkFontWeight":"700","controllerHighlightColor":"#F25E30","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkFontSize":"16px","linkBoxShadowHover":"none","backgroundOpacity":1,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","linkTextBorderBottom":"none","hamburgerColor":"var(--lia-nav-controller-icon-color)","brandLogoHeight":"26px","linkLetterSpacing":"normal","linkBgHoverColor":"transparent","collapseMenuDividerOpacity":0.16,"paddingBottom":"15px","dropdownPaddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","linkJustifyContent":"flex-start","linkColor":"var(--lia-bs-body-color)","collapseMenuDividerBg":"var(--lia-nav-link-color)","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-primary)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"0","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","linkPaddingX":"10px","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","paddingTop":"15px","linkPaddingY":"5px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkBgColor":"transparent","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"showSearchIcon":true,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.bannerWidget","props":{"backgroundColor":"transparent","visualEffects":{"showBottomBorder":false},"backgroundOpacity":50,"backgroundImageProps":{"backgroundSize":"COVER","backgroundPosition":"CENTER_CENTER","backgroundRepeat":"NO_REPEAT"},"fontColor":"var(--lia-bs-body-color)"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"var(--lia-bs-white)","linkHighlightColor":"#363432","visualEffects":{"showBottomBorder":true},"backgroundOpacity":100,"linkTextColor":"#363432"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.footerWidget","props":null,"__typename":"QuiltComponent"},{"id":"custom.widget.Custom_Footer","props":{"customComponentId":"custom.widget.Custom_Footer"},"__typename":"QuiltComponent"},{"id":"custom.widget.Custom_Footer_Scripts","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1744394574856","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"QueryVariables:TopicReplyList:message:83033:2":{"__typename":"QueryVariables","id":"TopicReplyList:message:83033:2","value":{"id":"message:83033","first":10,"after":"MjUuMnwyLjF8b3wxMHwxNDowLDM5OjF8MzA","sorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"kudosSumWeight":{"direction":"DESC","order":0},"postTime":{"direction":"ASC","order":1}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":false,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":true,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:component:custom.widget.Custom_Footer-en-us-1744394959308":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Footer-en-us-1744394959308","value":{"component":{"id":"custom.widget.Custom_Footer","template":{"id":"Custom_Footer","markupLanguage":"HTML","style":null,"texts":{},"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Custom_Footer","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"TEXTHTML","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Custom_Footer_Scripts-en-us-1744394959308":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Footer_Scripts-en-us-1744394959308","value":{"component":{"id":"custom.widget.Custom_Footer_Scripts","template":{"id":"Custom_Footer_Scripts","markupLanguage":"HANDLEBARS","style":null,"texts":{},"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Custom_Footer_Scripts","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1744394574856","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1744394574856","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1744394574856","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solution","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1744394574856","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1744394574856","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"CachedAsset:text:en_US-components/community/FooterWidget-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/FooterWidget-1744394574856","value":{"homeLink":"Community Home","topOfPage":"Top of Page","buildHash":"Build Hash:","buildNumber":"Build Number:","buildTime":"Build Time:","privacyPolicy":"Privacy Policy","helpLink":"Help"},"localOverride":false},"Category:category:qrew-networks-":{"__typename":"Category","id":"category:qrew-networks-","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:quickbase-discussions":{"__typename":"Forum","id":"board:quickbase-discussions","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:job-board":{"__typename":"Forum","id":"board:job-board","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Tkb:board:quickbase-knowledge":{"__typename":"Tkb","id":"board:quickbase-knowledge","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:getting-started":{"__typename":"Forum","id":"board:getting-started","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Rank:rank:15":{"__typename":"Rank","id":"rank:15","position":16,"name":"Qrew Commander","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:43368":{"__typename":"User","id":"user:43368","uid":43368,"login":"AdamKeever1","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-07-16T14:46:15.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.quickbase.com/t5/s/kqufx49752/images/dS00MzM2OC1FSmducm4?image-coordinates=0%2C65%2C1316%2C1381"},"rank":{"__ref":"Rank:rank:15"},"entityType":"USER","eventPath":"community:kqufx49752/user:43368"},"ModerationData:moderation_data:83064":{"__typename":"ModerationData","id":"moderation_data:83064","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83064":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:43368"},"id":"message:83064","revisionNum":1,"uid":83064,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83064"},"body":"@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.","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"147","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-12T06:53:48.000-08:00","lastPublishTime":"2021-02-12T06:53:48.000-08:00","metrics":{"__typename":"MessageMetrics","views":4},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83064","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Rank:rank:4":{"__typename":"Rank","id":"rank:4","position":4,"name":"Moderator","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:42960":{"__typename":"User","id":"user:42960","uid":42960,"login":"EvanMartinez","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-07-16T14:43:43.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.quickbase.com/t5/s/kqufx49752/m_assets/avatars/default/avatar-11.svg?time=0"},"rank":{"__ref":"Rank:rank:4"},"entityType":"USER","eventPath":"community:kqufx49752/user:42960"},"ModerationData:moderation_data:83065":{"__typename":"ModerationData","id":"moderation_data:83065","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83065":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:42960"},"id":"message:83065","revisionNum":1,"uid":83065,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83065"},"body":"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 Slackright 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.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-12T07:07:42.000-08:00","lastPublishTime":"2021-02-12T07:07:42.000-08:00","metrics":{"__typename":"MessageMetrics","views":0},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83065","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:83066":{"__typename":"ModerationData","id":"moderation_data:83066","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83066":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:43368"},"id":"message:83066","revisionNum":1,"uid":83066,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83066"},"body":"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?","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-12T10:44:02.000-08:00","lastPublishTime":"2021-02-12T10:44:02.000-08:00","metrics":{"__typename":"MessageMetrics","views":5},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83066","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"AssociatedImage:{\"url\":\"https://community.quickbase.com/t5/s/kqufx49752/images/cmstMjktSnVCdmZL\"}":{"__typename":"AssociatedImage","url":"https://community.quickbase.com/t5/s/kqufx49752/images/cmstMjktSnVCdmZL","height":1084,"width":1085,"mimeType":"image/png"},"Rank:rank:29":{"__typename":"Rank","id":"rank:29","position":7,"name":"Qrew Legend","color":"2C9382","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.quickbase.com/t5/s/kqufx49752/images/cmstMjktSnVCdmZL\"}"},"rankStyle":"FILLED"},"User:user:24077":{"__typename":"User","id":"user:24077","uid":24077,"login":"QuickBaseJunkie","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-07-16T15:08:52.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.quickbase.com/t5/s/kqufx49752/images/dS0yNDA3Ny1FbWFEWTU?image-coordinates=0%2C0%2C718%2C718"},"rank":{"__ref":"Rank:rank:29"},"entityType":"USER","eventPath":"community:kqufx49752/user:24077"},"ModerationData:moderation_data:83067":{"__typename":"ModerationData","id":"moderation_data:83067","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83067":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:24077"},"id":"message:83067","revisionNum":1,"uid":83067,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83067"},"body":"
These comments have been very helpful. Thank you If possible I'd like more information on these 2 use cases:
\n\n
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?
\n
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.
\n","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-12T10:58:22.000-08:00","lastPublishTime":"2021-02-12T10:58:22.000-08:00","metrics":{"__typename":"MessageMetrics","views":3},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83067","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:83068":{"__typename":"ModerationData","id":"moderation_data:83068","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83068":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:42960"},"id":"message:83068","revisionNum":1,"uid":83068,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83068"},"body":"@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 Slackright 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. ","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-12T11:38:35.000-08:00","lastPublishTime":"2021-02-12T11:38:35.000-08:00","metrics":{"__typename":"MessageMetrics","views":1},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83068","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Rank:rank:19":{"__typename":"Rank","id":"rank:19","position":20,"name":"Qrew Cadet","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:37353":{"__typename":"User","id":"user:37353","uid":37353,"login":"EricEvans_Varga","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-07-16T14:07:10.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.quickbase.com/t5/s/kqufx49752/m_assets/avatars/default/avatar-6.svg?time=0"},"rank":{"__ref":"Rank:rank:19"},"entityType":"USER","eventPath":"community:kqufx49752/user:37353"},"ModerationData:moderation_data:83069":{"__typename":"ModerationData","id":"moderation_data:83069","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83069":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:37353"},"id":"message:83069","revisionNum":1,"uid":83069,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83069"},"body":"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.","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-17T09:51:03.000-08:00","lastPublishTime":"2021-02-17T09:51:03.000-08:00","metrics":{"__typename":"MessageMetrics","views":1},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83069","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"ModerationData:moderation_data:83070":{"__typename":"ModerationData","id":"moderation_data:83070","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83070":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:42960"},"id":"message:83070","revisionNum":1,"uid":83070,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83070"},"body":"@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 Slackright here. ","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-17T13:54:13.000-08:00","lastPublishTime":"2021-02-17T13:54:13.000-08:00","metrics":{"__typename":"MessageMetrics","views":0},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83070","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"ModerationData:moderation_data:83071":{"__typename":"ModerationData","id":"moderation_data:83071","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83071":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:42960"},"id":"message:83071","revisionNum":1,"uid":83071,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83071"},"body":"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. ","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-18T11:13:28.000-08:00","lastPublishTime":"2021-02-18T11:13:28.000-08:00","metrics":{"__typename":"MessageMetrics","views":4},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83071","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"Rank:rank:18":{"__typename":"Rank","id":"rank:18","position":19,"name":"Qrew Assistant Captain","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:28979":{"__typename":"User","id":"user:28979","uid":28979,"login":"BradLemke","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-07-16T15:09:37.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.quickbase.com/t5/s/kqufx49752/m_assets/avatars/default/avatar-10.svg?time=0"},"rank":{"__ref":"Rank:rank:18"},"entityType":"USER","eventPath":"community:kqufx49752/user:28979"},"ModerationData:moderation_data:83072":{"__typename":"ModerationData","id":"moderation_data:83072","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83072":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:28979"},"id":"message:83072","revisionNum":1,"uid":83072,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83072"},"body":"@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.","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-22T10:33:32.000-08:00","lastPublishTime":"2021-02-22T10:33:32.000-08:00","metrics":{"__typename":"MessageMetrics","views":4},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83072","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"ModerationData:moderation_data:83073":{"__typename":"ModerationData","id":"moderation_data:83073","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:83073":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:24077"},"id":"message:83073","revisionNum":1,"uid":83073,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:the-qrew-blog-"},"parent":{"__ref":"BlogTopicMessage:message:83033"},"conversation":{"__ref":"Conversation:conversation:83033"},"subject":"Re: Upcoming Changes to JavaScript in Quickbase","moderationData":{"__ref":"ModerationData:moderation_data:83073"},"body":"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>\",\"\")","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2021-02-23T17:14:16.000-08:00","lastPublishTime":"2021-02-23T17:14:16.000-08:00","metrics":{"__typename":"MessageMetrics","views":5},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:blog/community:kqufx49752board:the-qrew-blog-/message:83033/message:83073","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"CachedAsset:text:en_US-components/community/Navbar-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1744394574856","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","migrated-link-9":"App Exchange","migrated-link-7":"Getting Started","migrated-link-8":"Success Stories","migrated-link-1":"Connect","migrated-link-10":"Help","migrated-link-2":"Quickbase Discussions","migrated-link-11":"Quickbase Help","migrated-link-0":"Welcome","migrated-link-5":"Learn","migrated-link-6":"Quickbase University","migrated-link-3":"Qrew Groups","migrated-link-4":"Qrew Champions Program ","migrated-link-18":"Blog","migrated-link-19":"Job Board","migrated-link-16":"Qrew Events","migrated-link-17":"Empower","migrated-link-14":"Qrew Tips","migrated-link-15":"Events","migrated-link-12":"Open Support Case","migrated-link-13":"Release Notes"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1744394574856","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1744394574856","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1744394574856","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/search/SpotlightSearchIcon-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/search/SpotlightSearchIcon-1744394574856","value":{"search":"Search"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1744394574856","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1744394574856","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCoverImage-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCoverImage-1744394574856","value":{"coverImageTitle":"Cover Image"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeTitle-1744394574856","value":{"nodeTitle":"{nodeTitle, select, community {Community} other {{nodeTitle}}} "},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTimeToRead-1744394574856","value":{"minReadText":"{min} MIN READ"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1744394574856","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1744394574856","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1744394574856","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1744394574856","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1744394574856","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1744394574856","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageRevision-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageRevision-1744394574856","value":{"lastUpdatedDatePublished":"{publishCount, plural, one{Published} other{Updated}} {date}","lastUpdatedDateDraft":"Created {date}","version":"Version {major}.{minor}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1744394574856","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1744394574856","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageAuthorBio-1744394574856","value":{"sendMessage":"Send Message","actionMessage":"Follow this blog board to get notified when there's new activity","coAuthor":"CO-PUBLISHER","contributor":"CONTRIBUTOR","userProfile":"View Profile","iconlink":"Go to {name} {type}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/BuildInformation-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/BuildInformation-1744394574856","value":{"buildHash":"Build Hash: {buildHash}","buildNumber":"Build Number: {buildNumber}","buildTime":"Build Time: {buildTime}"},"localOverride":false},"CachedAsset:text:en_US-components/community/KhorosLogo-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/KhorosLogo-1744394574856","value":{"alt":"Powered By Khoros"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1744394574856","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1744394574856","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1744394574856","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserRegistrationDate-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserRegistrationDate-1744394574856","value":{"noPrefix":"{date}","withPrefix":"Joined {date}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeAvatar-1744394574856","value":{"altTitle":"Node avatar for {nodeTitle}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeDescription-1744394574856","value":{"description":"{description}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListMenu-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListMenu-1744394574856","value":{"postTimeAsc":"Oldest","postTimeDesc":"Newest","kudosSumWeightAsc":"Least Liked","kudosSumWeightDesc":"Most Liked","sortTitle":"Sort By","sortedBy.item":" { itemName, select, postTimeAsc {Oldest} postTimeDesc {Newest} kudosSumWeightAsc {Least Liked} kudosSumWeightDesc {Most Liked} other {}}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1744394574856","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-components/customComponent/CustomComponent-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-components/customComponent/CustomComponent-1744394574856","value":{"errorMessage":"Error rendering component id: {customComponentId}","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1744394574856":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1744394574856","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false}}}},"page":"/blogs/BlogMessagePage/BlogMessagePage","query":{"after":"MjUuMnwyLjF8b3wxMHwxNDowLDM5OjF8MzA","boardId":"the-qrew-blog-","messageSubject":"upcoming-changes-to-javascript-in-quickbase","messageId":"83033"},"buildId":"qjItjPUjFcK4Aq3-X33tk","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"quickbase","openTelemetryServiceVersion":"25.3.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/blogs/BlogArticleWidget/BlogArticleWidget.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","./components/community/FooterWidget/FooterWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/community/FooterWidgetHelpLink/FooterWidgetHelpLink.tsx","./components/community/KhorosLogo/KhorosLogo.tsx","../shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable/PagerLoadMorePreviousNextLinkable.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","./components/customComponent/CustomComponentContent/HtmlContent.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx","./components/customComponent/CustomComponentContent/CustomComponentScripts.tsx"],"appGip":true,"scriptLoader":[]}