FLOPPY: Plugin for localStorage, sessionStorage, IndexedDB storage, List Creation/Manipulation, Iteration, and More! Now with even more video docs!

Lol what part doesn’t work? It all works, just needs various plugins. Was just trying to give you another idea to boost up your plugin.

No worries.

You have no idea what you’re talking about.

1 Like

Lol. Nevermind. I’m doing exactly what I said already, but that’s cool. Guess I’m going crazy by using other plugins :slight_smile:

Good morning grumpy.

Hi @keith
Thanks for your work on this. Bought your plugin yesterday hoping I could sort a RG based on a calculated field. I followed your video here.

My calculated field is calculated by taking the count of values intersecting with a multi drop down search and stored locally. So for example, similar to Supercook app where you can choose your ingredients and supercook shows the recipes you can make based on your ingredients. See my example below.

In Floppy I tried to use Custom Count and use an expression that also intersects with the values in the search multidropdown but that doesn’t seem to work. Is there a way with Floppy to do this?

Below you can see I’m selecting the crypto and show the websites that have these crypto. The last number is a count I do based on the intersection of brands & the multi select on top. But I would want the website with the highest count (so best match to the search) on top.

This is how the count is done in the RG

And here you can see I tried to use Floppy’s Custom Count but didn’t work

Hope you can help, thanks a lot!

Well the red text means your expression does not evaluate to a list of numbers. Consult the issue checker to see what your expression actually is.

Also, go turn on the parentheses feature in Bubble. Makes life much easier.

Hey @keith, is there any possibility to get Floppy Rehydrator as a backend action?

I’m bulk creating things through the Data API, which only returns the unique IDs of the newly created things (in a strange non JSON format :neutral_face:).

I’m assuming some kind of Rehydrator would be way more efficient (time and CPU wise) than doing some recursive search for unique ID?

Thanks!

Hey @tylerboodman, that’s definitely possible. Check out Floppy v 1.9.6, which adds the Floppy Rehydrator SSA.

I’d never thought about this use case. Cold-start time aside, as long as your UIDs are already in a list (or are a comma separated string or whatnot that you can :split into a list), this should be way faster than recursing over such a list and “Do a search for…”.

Aside: This might be my record for new plugin creation. Just 45 minutes or so.

1 Like

Holy Christ that was fast… Thank you I will try it out :grinning_face_with_smiling_eyes:

1 Like

I guess the alternative would be “Do a search for… Things” where List_of_UIDs contains This Thing’s UID. Which would be under advanced so would never scale (and crap out after X-thousand items)? This is one of those weird Bubble edge cases I’d never thought of.

(As I think you know, all this plugin does is read the UIDs and then publish them to the output as the correct type. Bubble does all the rest. But it’s funny that this is a missing feature.)

Yea I was going to ask you, isn’t this “rehydration” a native feature (just not exposed in vanilla Bubble)? I feel like their app is literally doing it all the time in the background?

Yea when you Create a thing, you can take that result and add it to a list, but after I did the Data API I was like wait how am I supposed to find the Things created? (efficiently)

1 Like

@tylerboodman yes it’s just a thing that Bubble does with Things. We are told (in the plugin API “documentation”) that we are to reference Things as their unique IDs (but this doesn’t seem to be a requirement as we can in most cases also just send a native Bubble Thing object to an output and the Thing appears there).

There’s even an undocumented server-side function for this that I have railed against the use of (get_object_from_id()) that would seem to do the same thing, but if you had an array of objects of differing types you could never publish that list, so I don’t understand why that function exists, really, except to make “Server Script” a reality (also, I don’t know how anyone knows about it except that it seems to be referenced in MishaV’s Server Script plugin… I assume Bubble added this to make Server Script a useful plugin, but AFAICT the real story has never been told).

1 Like

My knowledge grows after every question to Keith, except I’m still terrified of the keith

2 Likes

That’s not a bug but a feature @tylerboodman.

1 Like

Rehydrating 1000 items from Bulk Data API, all good so far :+1:

1 Like

Sweet, @tylerboodman!

Although, I guess I should note: Apparently you can now do “unique ID is in” some list (as of early December). I’d be interested to know if there’s any performance difference in your use case, @tylerboodman. (Announcement about that here.)

I’ll test it later today (Personal plan)

Okay so on my test app both the Rehydrate action and the “is in” search are finishing 500 items in under a second (no data creation in this time just purely matching UIDs to Things)… I have no idea if Bubble is caching things while I’m testing back and forth, but even the first time was like a second or two

In my actual app with real world data, I’m making 908 things in 50 item chunks (recursive creating, rehydrating). Rehydrating method take 62s, and “is in” taking 45s. Times are total time including Data API creation, Rehydrate/is in search, etc.

It might be not scientific the way I’m doing it but just dropping in Rehydrate and testing a few times, then dropping in the “is in” instead getting the same results every time :thinking:

Maybe if Bubble capacity logs weren’t literal :poop: I could tell if one was just doing it faster and using more capacity

1 Like

@tylerboodman it would make sense that using the plugin is a little slower than the native Search expression, what with spin-up time and such. But hey at least you have multiple options for doing this type of thing!

(Edit: Oh, and yeah understanding the “capacity” impact of one versus the other is probably pretty much impossible.)

1 Like

Hi Keith

Been using floppy for 3 days now so still very much a newbie, so excuse silly quesitons. I am trying to create an HTML Table from a datatype which consists of five columns (one text field and 4 calculated fields. I have a button which runs a workflow, this has five steps in it, each one stores a different value and key (one for each column). If I load this and look at the data in chrome developer I can see all the keys and values. My questions are:

  1. Is it OK using this workflow and storing individual keys and values or do I need a different floppy for each single key?
  2. If yes, how do I read each key value? So far I have only been able to read the first one, which makes me suspect I need individual floppies for column.
    Thanks in Advance
    Dave