Forum Discussion

ltduranltduran's avatar
ltduranltduran
Qrew Cadet
7 years ago

Is it possible to create a ""Save and Keep Working"" button from a formula URL field?

I realize the "Save and Keep Working" button was introduced by Quickbase, but I am wanting to add it somewhere in the middle of my form. I've seen posts relating to this kind of thing, but all of theme were published prior to the introduction of the "Save and Keep Working Button" and I can't seem to get any of them to work. Any thoughts?
  • AlexWilkinson's avatar
    AlexWilkinson
    Qrew Assistant Captain
    Here's a cleaner way to do this, replicating the color and style of the standard 'Save & keep working button' while allowing it to be placed anywhere on the form:

    1) In the form properties, check the box to "Show save & keep working choice." (It's not necessary to also check the box to show the save and cancel buttons at the bottom of the form. That's optional.)

    2) Create a global variable for your app at Setting >> Variables ... Let's say you call it "mySaveKeepWorking" or something similar ... and give it exactly the following value (the quotes are critical!)

    <a class='Vibrant' style='font-size:14px; color:white; background:#6BBD57; white-space:nowrap;' onclick='$("#saveAndKeepWorkingMenuOption").click();'>Save & keep working</a>

    3) In your table, create a rich text variable ... say it's called "mySKW" and give it exactly and only the following value:

    [mySaveKeepWorking]

    4) In your form, place the mySKW field wherever you want, as often as you like. Each time, be sure to check the box for "Use Alternate Label Text" while leaving the value blank, and to set the form-row for "edit and add" modes.

    When you save the form, Quick Base will ask you to confirm that you really do want the mySKW field to appear multiple times, which you do!

    That's it. One wrinkle: it might be nice to have mySKW return to the same spot on the form where it was clicked. That's doable but a bit fancier. Post back here if interested.
    • QuickBaseCoachD's avatar
      QuickBaseCoachD
      Qrew Captain
      Thx for posting. Is there similar syntax for a (regular) Save button?
    • _anomDiebolt_'s avatar
      _anomDiebolt_
      Qrew Elite
      Alex's formula:
      <a class='Vibrant' style='font-size:14px; color:white; background:#6BBD57; white-space:nowrap;' onclick='$("#saveAndKeepWorkingMenuOption").click();'>Save & keep working</a>
      can be shortened to this (not tested):
      <a class='Vibrant' style='font-size:14px; color:white; background:#6BBD57; white-space:nowrap;' onclick='saveAndKeepWorkingMenuOption.click();'>Save & keep working</a>
      It is a little know fact (to even seasoned developers) that modern browsers automatically create a global variable named after every attribute id in the page. So in the above formula instead of using a jQuery selector and jQuery's click() method, you can use native JavaScript and a raw reference to the global variable saveAndKeepWorkingMenuOption.

      This can be applied to Mark's inquiry as well. These two fragments are essentially equivalent:
      <a class='Vibrant' style='font-size:14px; color:white; background:#6BBD57; white-space:nowrap;' onclick='$("#saveButton").click();'>Save & Nothing More</a> 
      <a class='Vibrant' style='font-size:14px; color:white; background:#6BBD57; white-space:nowrap;' onclick='saveButton.click();'>Save & Nothing More</a>
      • RichieEyles1's avatar
        RichieEyles1
        Qrew Member
        Can we check a box first and then save and carry on, when it is a new record?

        ------------------------------
        Richie Eyles
        ------------------------------
    • AlexWilkinson's avatar
      AlexWilkinson
      Qrew Assistant Captain
      Yes. You could make three global variables, one for each of the possible values on the drop-down in the standard green save button.

      the field "mySC" would use [mySaveClose] which would have #saveMenuOption

      the field "mySN" would use [mySaveNext] would have #saveAndNextMenuOption

      ... instead of #saveAndKeepWorkingMenuOption ... otherwise everything is identical.

      Quick Base could change these, of course, but that seems low-probability for now. You can find them by using the developer tools in your browser to inspect the source code for a page, and doing ctrl-F for "#save" ...
  • ChadBrandmire's avatar
    ChadBrandmire
    Qrew Assistant Captain
    Try this in a Formula Rich Text

    var text urlone = URLRoot() & "db/" & [_DBID_TABLE_1] & "?a=dr&dfid=2&rid=" & URLEncode([Route ID#]);

    "<a href="& $urlone &"><img width=\"100\"src=\"<i><u>Link your button image here</u></i>\"></a>";
    • ltduranltduran's avatar
      ltduranltduran
      Qrew Cadet
      Hi Chad,

      Thanks for your response. I just tried this and perhaps I'm doing something wrong, but this is saving the record, but then opening the form in view mode; as opposed to saving and reopening edit mode. Any thoughts?
    • ltduranltduran's avatar
      ltduranltduran
      Qrew Cadet
      I tried this as well, but now I'm noticing that regardless of whether it is dr or er, it doesn't save any of the data entered into the form prior to pressing the button. All it is doing is reopening the form in either view or edit mode, as opposed to saving and reopening the edit form.

      My code is as follows:

      var text urlone = URLRoot() & "db/" & [_DBID_GAMES] & "?a=er&dfid=2&rid=" & URLEncode([Record ID#]);

      "<a href="& $urlone &"><img width=\"100\"src=\"<i><u>https://cdn.maxbuttons.com/wp-content/themes/maxbuttons-theme/images/icons/basic-buttons-pack.png<...;
  • Put a Rich Text Formula field in the middle of your form with this definition:

    "<div style='Vibrant Success' onclick=$('#footerSaveAndKeepWorkingMenuOption').click();>Save and Keep Working</div>"

    When it is clicked it will trigger the clicking of the native Save and Keep Working button (even though it is not visible at the moment).  FWIW, this type of strategy of embedding JavaScript into a form which emulates a user clicking on a native features is safer than other methods of more directly invading the native markup and code.
    • ltduranltduran's avatar
      ltduranltduran
      Qrew Cadet
      Thank you so much, this is exactly what I was looking for! HUGE help.
    • _anomDiebolt_'s avatar
      _anomDiebolt_
      Qrew Elite
       
      _________________ < You are welcome > ----------------- \ /\/\ \ \/\/ \ / -\ \ / oo -\ \ / \ | ---\ -\ \--/ \ \ | -\ \ -\ -------------\ /-\ \ \-------/ ---/ \ \ |\ \ | / | | \ | \ | | / \ | | / \ | \ \ \| - /--------\ | o \+ +--------- \ | | | | \ | | \ | | | | \ | | \ | \ | | | | | \ \ | | | | +--+ ---+
    • GauravSharma3's avatar
      GauravSharma3
      Qrew Commander
      Hat's Off Dan! You will always be a Champ of this Community. :)

      Thanks,
      Gaurav
  • Wow, I will need to try that trick myself.
    Thx for the Boxing week Christmas Present. 
  • Well I have a truckload (100s) of similar techniques for which I just need a kitschy name, an image macro or some other gimmick in order to promote the technique. Just get me the raw concept and I will get you the technical solution. Something creative like this:


  • This works great. But, how can I activate the Save & keep working feature from the header? Using "onclick=$('#saveButton')" as mentioned above activates the normal save function which I've set to redirect to an error message because I have created my own own 'save' and 'apply changes' buttons
    And, using  "onclick=$('#footerSaveAndKeepWorkingMenuOption')" only works if the footer is added to the form. I'd prefer not to have it there.