Scripts

The following is a list of scripts your can add to your RightTool PRO, to perform functions that are not hard coded into RightTool yet. Tutorial: https://youtu.be/UPqXs-U90L8

Open Grid Gear on Detail Reports and remove all checkboxes for columns/fields except one

javascript:(function(){const settingsButton=document.querySelector('.gearIcon.hi-settings-o');if(settingsButton){settingsButton.click();setTimeout(()=>{const showMoreButton=document.querySelector('a[data-dojo-attach-point="_showMoreLink"]');if(showMoreButton&&showMoreButton.style.display!=='none'){showMoreButton.click();setTimeout(()=>{const checkboxes=document.querySelectorAll('.dijitPopup .checkBox');if(checkboxes.length>1){for(let i=1;i<checkboxes.length;i++){if(checkboxes[i].checked){checkboxes[i].click();}}}else{console.log('Not enough checkboxes found.');}},500);}else{console.error('Show More button not found or already displayed.');}},1000);}else{console.error('Settings button not found.');}})();



Rename the current browser tab

javascript:(function()%7Bvar%20newTitle%20%3D%20prompt(%22Enter%20a%20new%20name%20for%20this%20tab%3A%22%2C%20%22%22)%3Bif(newTitle)%7Bdocument.title%20%3D%20newTitle%3B%7D%7D)()

Save and Reverse the Journal Entry you are working on (reversed entry will be dated first date of following month)

javascript:(function(){let d=document.querySelector('input[data-automation-id="input-date-journal"]').value;document.querySelector('button[data-automation-id="btn-footer-save"]').click();setTimeout(()=>{document.querySelector('div[data-dojo-attach-event="onclick:reverseButtonPressed"]').click();},2000);setTimeout(()=>{let i=new Date(d),y=i.getFullYear(),m=i.getMonth()+1,n=new Date(y,m,1),s=(n.getMonth()+1)+'/'+n.getDate()+'/'+n.getFullYear();document.querySelector('input[data-automation-id="input-date-journal"]').value=s;},4000);setTimeout(()=>{document.querySelector('button[data-automation-id="btn-footer-save"]').click();},6000);})();

Make ALL Accounts Active (that are shown in the current Chart of Accounts Page)

javascript:(async function(){let b=Array.from(document.querySelectorAll('button')).filter(btn=>btn.textContent.trim()==='Make active');while(b.length>0){b[0].click();await new Promise(r=>setTimeout(r,500));b=Array.from(document.querySelectorAll('button')).filter(btn=>btn.textContent.trim()==='Make active');}})();



Make Current Selected Accounts Active (that are shown and checked in the current Chart of Accounts Page)

javascript:(async function(){const a=[];document.querySelectorAll('tbody > tr').forEach(e=>{const c=e.querySelector('input[type="checkbox"]');if(c&&c.checked){const n=e.cells[1].textContent.trim();a.push(n);}});for(const n of a){const r=document.querySelectorAll('tbody > tr');for(const e of r){if(e.cells[1].textContent.trim()===n){const b=e.querySelector('button');if(b&&b.textContent.trim()==='Make active'){b.click();await new Promise(resolve=>setTimeout(resolve,1000));break;}}}}})();

Copy Current Estimate into a Project/Cost Estimate

javascript:(function(){ var currentUrl = window.location.href; var regex = /^https:\/\/app.qbo.intuit.com\/app\/estimate\?txnId=(\d+)$/;%20%20%20%20%20var%20match%20=%20currentUrl.match(regex);%20%20%20%20%20if%20(match)%20{%20%20%20%20%20%20%20%20%20var%20txnId%20=%20match[1];%20%20%20%20%20%20%20%20%20var%20newUrl%20=%20%27https://app.qbo.intuit.com/app/estimate?srcTxnId=%27%20+%20txnId%20+%20%27&srcTxnTypeId=35&projectCostEstimate=true%27;%20%20%20%20%20%20%20%20%20window.open(newUrl,%20%27_blank%27);%20%20%20%20%20}%20else%20{%20%20%20%20%20%20%20%20%20alert(%27This%20bookmarklet%20only%20works%20on%20estimate%20pages%20with%20a%20txnId.%27);%20%20%20%20%20}%20})();

Copy Current Estimate to a PO (Plus/Adv Only)

javascript:(function(){
    var currentUrl = window.location.href;
    var regex = /^https:\/\/app\.qbo\.intuit\.com\/app\/estimate\?txnId=(\d+)$/;
    var match = currentUrl.match(regex);
    if (match) {
        var txnId = match[1];
        var newUrl = 'https://app.qbo.intuit.com/app/purchaseorder?srcTxnId=' + txnId + '&srcTxnTypeId=35&nameId=99999';
        window.open(newUrl, '_blank');
    } else {
        alert('This bookmarklet only works on estimate pages with a txnId.');
    }
})();