ContributionsMost RecentMost LikesSolutionsRe: How can I copy a table?i am blown away, thread is 6 years old and yet these basic crud actions haven't been nativity developed for multi table with relationship. I wrote a grouped table template function on my api server to do this, took a couple of days to write the module...Re: Javascript in Formula URL Helphttps://www.w3schools.com/jquery/ajax_get.asp Re: Javascript in Formula URL Helpthere's no need to use .then in this case, the get function in Jquery allows a call back function after completion. Scott has demonstrated the correct use of the call back function in his example. He just needs to use the block per below: "javascript:" & "$.get('" & $URL & "',function(){" & "setTimeout(()=> location.reload(true),2000)location.reload(true);" & & "void(0);" "});" Re: Javascript in Formula URL HelpAs for the popup box, there are so many ways to do this, for the sake of expedience have a look at Dans pastie in the below link, his pastie collection is a good starting point in extreme cases or a good resource to save time in general as you are starting your Javascript adventure in quickbase. https://haversineconsulting.quickbase.com/db/bgcwm2m4g?a=dr&rid=7&rl=w2v Re: Javascript in Formula URL HelpFor the first one is straight forward, below is the timeout function, i use a fat arrow function with no input, and call location.reload(true) after 2 seconds or 2000 milliseconds. setTimeout(()=> location.reload(true),2000) Re: Can jquery tabs return back to same tab once I update the form?So the Quickbase Tab Handler doesn't work as expected in most situations. if anyone has this issue the below code block will give you a starting hand in getting a solution to the problem which you could extend to other purposes. I have also provided a code flow diagram. This script is used in conjunction with the function in the above comment with both applied to either a IOL or BOL tag. //Add an event listener on all href tags which include #tab, this will trigger the function to run every time you change tabs. $('a[href^="#tab"]').on('click', sendMeBackRight(event)) //lets define our function thats run on each event trigger above function sendMeBackRight(event) { //below we set our realm variable var realmName = "unimatrix001" //gets the hash from the event var EvName = event.target.hash; //Below setsup all Regular Expressions required for the whole function var regexEdPg = new RegExp(/(&z=.+?.{1,10}(?='))/); var regexP = new RegExp(/(\?a=.+?(?=&))/); var regexPt = new RegExp(/(\?a=.+?.{1,6})/); var regexPrd = new RegExp(/(&z=.+?.{1,10})/); var regexNuR = new RegExp(/(\&nexturl=.+?.{1,100})/); var regexNeD = new RegExp(/(\&nexturl=.+?.{1,100})(?=')/); //setup variable for the location var regLocS = document.location.search; //below we test 2 situations and set a variable accordingly, we look for the action and make it a variable to apply to the return string. if (regexP.test(regLocS) !== null) { var regRedV = regLocS.match(regexP)[0];} if (typeof regRedV === 'undefined') { if (regexPt.test(regLocS) !== null) { var regRedV = regLocS.match(regexPt)[0];}} if (typeof regRedV !== undefined) { //Only if the action type is found and set to variable do we move on to encode and build the next url string to be applied to all href tags in scope as well as onclick event for edit record buttons. does apply to new records but gets overwritten by the onclick function - you can write your own handler for this if you like. if (regRedV !== null) { var conChe = encodeURIComponent(EvName); var conChD = encodeURIComponent(regRedV); //Below is the literal block to build our return path var lstVisResSS = '&nexturl=https%3A%2F%2F${realmName}}.quickbase.com%2Fdb%2F${gDBID}${conChD}%26rid%3D${kRid}${conChe}'; //set a variable with selector to obtain then loop through each add href tag in the form that contains text 'Add' and the class 'vibrant', just add a code block for other URLs like save and close etc for edit forms back to same tab in view record and so on. var daTagz = $("a:contains('Add')[class='Vibrant']"); let vibUrlLen = $("a:contains('Add')[class='Vibrant']").length; for (let i = 0; i < vibUrlLen; i++) { var resToPro = ""; //if the href tag includes the z redirect we strip it and add the current tab info if (daTagz.href.includes("&z=")) { //using regexp replace the z with the nexturl resToPro = daTagz.href.replace(regexPrd,lstVisResSS); //apply the attribute to the element daTagz.setAttribute('href', resToPro); } else if (daTagz.href.includes("&nexturl=")) { //this updates previously set urls with the latest tab resToPro = daTagz.href.replace(regexNuR,lstVisResSS); daTagz.setAttribute('href', resToPro); //the below block similar to above handles onclick href in add and edit screens, remember it works for edit, for add you will need to extend to handle add or remove it from scope only in this situation. } else if (typeof daTagz.attributes.onclick !== 'undefined') { var edPgVa = daTagz.attributes.onclick.value; if (regexEdPg.test(edPgVa) !== false) { var pgEdVa = edPgVa.replace(regexEdPg,lstVisResSS); daTagz.setAttribute('onclick', pgEdVa); } else if(regexNeD.test(edPgVa) !== false) { var pgEdNr = edPgVa.replace(regexNeD,lstVisResSS); daTagz.setAttribute('onclick', pgEdNr); } } }}}} Re: Can jquery tabs return back to same tab once I update the form?more to follow on the whole local storage thing soon :) this is one of the biggest pain points for people on quickbase, figure i will just give out the solution as it SHOULD have been a standard feature in quickbase.Re: Can jquery tabs return back to same tab once I update the form?Hey Dan, Heres a solution to the above question, so long as #tab_TXX is in the RURL that is set before the user creates a new record etc this function can be run on page load via BOL/IOL etc function returnToTabz(){ //Step1 - find the hash in the URL and make it match the tab naming convention var rmHas = document.location.hash.replace("#", ''); //add link to end of the variable rmHas += "_link" //Step2 - Generate an array from tablist var finoActivo = document.querySelector('#formTabsList').childNodes var moloActivo = Array.from(finoActivo); //Step3 - iterate through each confirming the expected result is not the current tab viewed else make it the active tab. var moloLen = moloActivo.length-1; for (var ps = 0; ps < moloLen; ps++) { if (moloActivo[ps].nodeName !== "#text") { if (moloActivo[ps].classList.contains('ui-state-active') === true ) { if(moloActivo[ps].id !== rmHas) { var rmBoA = moloActivo[ps].id.replace('_link', ''); var rmBoB = rmHas.replace('_link', ''); //if current active is not the target then make it so var rmGiv = document.querySelector('#'+rmHas).classList; var rmBoAcl = document.querySelector('#'+rmBoA).classList; var rmBoBcl = document.querySelector('#'+rmBoB).classList; var liteBe = moloActivo[ps].classList; liteBe.remove('ui-state-active', 'ui-tabs-selected'); rmGiv.add('ui-tabs-selected', 'ui-state-active'); rmBoBcl.remove('ui-tabs-hide'); rmBoAcl.add('ui-tabs-hide'); }} }}} Re: API CALL URLYou will need to generate a user token through your settings, go to the top bar, drop arrow per below then my preferences. then find he manager user tokens and intuitivly generate one from there. then using the API Guide, they have examples like below. If you require app tokens for your app also add that too https://target_domain/db/target_dbid?a=API_EditRecord&usertoken=xxxxxxxxxx&apptoken=xxxxxxxxxxxx&rid=154 then Re: API CALL URLusertoken is one option the other is a token which you can get from an particular api call but requires you not have 2FA enabled. user token is the best bet but dont use it when its at all client side and another user is using it else they will have as much access as the user the token belongs too.