Best way to Frame App and remove all headers

  • 0
  • 1
  • Question
  • Updated 1 month ago
  • Answered
Hi,
I want to remove all the headers for users of the app, both for viewing benefit and security - I am using roles and permissions, so this is more for viewing and removing dead screen space. 

&ifv=1 works fine and I can add it to most buttons. However, when using native QB functions, like: save from a form, or click a record to view it, you see all the headers again. 

Is there a good way to frame the app and keep the native functionality?
If no option for this, is there a way at least to hit a save button and then add an &ifv1?

Thanks.
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb

Posted 5 months ago

  • 0
  • 1
Photo of Rob White IV

Rob White IV

  • 948 Points 500 badge 2x thumb
There are pretty granular settings that can be enforced from the User Interface tab on the role settings form for a particular role.  

Are these not restrictive enough?



~Rob
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Thanks Rob. Hiding all the UI elements is better, but does not remove the row entirely. So at the top, you are left with 3 rows I don't need:
1. Row with My Apps and New App
2. Home button row- only home button left 
3. Row with table name on left, and Edit and More options on right.

I want to remove the row altogether as it is wasting screen space.
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Any ideas?
If not, is there a way that save and keep working can at least work in an &ifv=1 view?
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 26,522 Points 20k badge 2x thumb
I don't recommend doing this but it is possible using either a Service Worker or the BOL technique.
QuickBase was not designed to work like this and I think you would be constantly tweaking the code to get it to operate the way you want.

This demo knocks out the various "headers" on a successive five second delay for demonstration purposes.

BOL Example ~ Add New Record
https://haversineconsulting.quickbase.com/db/bnsqxwfef?a=nwr

Code Page moduleBOL.js
https://haversineconsulting.quickbase.com/db/bnsqw7ep7?a=dbpage&pagename=moduleBOL.js
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Thanks - like it. It does what i want to achieve, but obviously don't want to do anything not secure in quick base.
Would be good if there was a safe way to suppress the headers when required, as they take al lot of screen space.
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Thank you. Do you know how to do this directly without delay. I would like to check if the outcome is different to &ifv=1 ?
The missing functionality for me  if i use &ifv=1 :
1.  'Save and keep working' does not function.
2. Will need to disable direct viewing or editing of records from all reports, and restrict everything to buttons, as can't add &ifv=1 to the url otherwise.
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 26,272 Points 20k badge 2x thumb
Sure - I put the delay for demonstration purposes. Use this code instead with BOL

$("#brandBarHeader").hide();
$("#navTop").hide();
$("#tablesMenuBarWrapper").hide();
//$("#pageNavBar").hide();
How to install BOL (Branding On Load)?
https://community.quickbase.com/quickbase/topics/how-to-install-bol-branding-on-load
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Many thanks. I will try this tomorrow.
Much appreciated.
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 26,272 Points 20k badge 2x thumb
IMPORTANT

Try is in a disposable application in case you make a mistake. You don't want to get into a situation where you kill the headers and then can't edit the code page. To restore the headers you can enter these commands from the console:
$("#brandBarHeader").show();
$("#navTop").show();
$("#tablesMenuBarWrapper").show();
//$("#pageNavBar").show(); 
Also, know how to turn off BOL (it is in the instructions).

It should be obvious that hiding and showing does not remove anything from the page - it just makes it not visible. Using ifv may in fact remove things from the page as well as not showing the page's chrome.
(Edited)
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Thanks. I keep coming back to this and getting scared off- not because your solution won't work, but I may end up out of my depth and am reluctant to do something non-standard in quickbase.

The main part I want to block is the tab with the tables on it (or only home when the tables are all blocked) as it is twice as big and I cannot put text on it. So I could find a later problem and become stuck out of the application in the way you suggested above. Many thanks for your advice.
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
Finally had some courage to try iol - my only regret is not trying earlier. Great advice Dan- many thanks.

I used your iol setup page ( https://community.quickbase.com/quickbase/topics/how-do-i-setup-the-image-onload-technique-iol ) with your bol instructions above:

$("#brandBarHeader").hide();
$("#navTop").hide();
$("#tablesMenuBarWrapper").hide();
//$("#pageNavBar").hide();

I don't have the courage to try bol yet & iol will hopefully meet my needs.
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 26,272 Points 20k badge 2x thumb
>Finally had some courage to try iol - my only regret is not trying earlier.

IOL is not as complicated as it might appear is it?

My only regret is not coming up with it earlier.
Photo of Gary Boyd

Gary Boyd

  • 800 Points 500 badge 2x thumb
iol was definitely easier than expected- although I've only touched the tip of the iceberg.
Is there a way to remove the toolbar the top of the browser, so the url is not visible?
Photo of Competition Time

Competition Time

  • 60 Points
This was very informative.

I tried the BOL method and it worked for my app. It was a bit scary as it definitely obliterated all of the QB headers even for me as the admin. Took a bit of fiddling to get back to the branding page to turn it off.

What I would really like to be able to do is to remove the QB headers only for certain user roles - and not globally for the app for all users / roles.

It seems that the Service Worker (SW) approach might be able to do this as it is dynamic for every page/resource fetched.

Could anyone point me to an SW method of removing the QB headers that I could make selective based on User Role?

thanks in advance for any info, Kirsten
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 26,522 Points 20k badge 2x thumb
>It seems that the Service Worker (SW) approach might be able to do this as it is dynamic for every page/resource fetched.

Service Workers is so powerful it is essentially god mode for QuickBase as it can do just about anything you can dream up. The only real drawback is that when you register a Service Worker you have to specify its scope which is either (1)  every URL in the entire account or (2) every URL in an individual table dbid. This is behavior is due to the URL structure QuickBase uses and cannot be changed.

The only reason I have not provided more working demos of Service Workers is because I have created a lot of earlier demos that need to be individually checked that they still work if I turn Service Workers on for my entire account. Also, enabling Service Workers for individual tables becomes rather work intensive if the goal it to apply it to all tables in an application.

Eventually I will get around to converting my entire account to work seamlessly with Service Workers. For the time being if you want to pursue using Service Workers feel free to contact me off-world using the information in my profile:

https://getsatisfaction.com/people/dandiebolt
(Edited)