List Shifter: Reverse, Rotate, Swap and ITERATE (Loop) Over Bubble Lists | Now Part of Floppy

You write them as text literals. You’re writing code.

For example, here’s a script for you:

console.log(i)

1 Like

Hi @keith!
Very thanks for the clarification.
Now I can use eval(x) aka Run Javascript.
Despite it being written on “Pro Tip” I thought that it worked like a common expression in the editor.
Thanks once again.

Sure i missed something but i couldn’t find out how to do this seemingly very easy task.
The sort function sorts entries but it does not exclude entries, so far i could see. How would i go by filtering entries with list shifter?
Right now i run a workflow to display a filtered list of shifters shifted list in a repeating group but there might be a better build in way to do this.
Am i missing a feature? Can i actually filter items with the list shifter sort action?

1 Like

Hello Friends
With the List Shifter can I add an item to the list without having to create it in the database?
In this case the list is not a primitive data type.

Hey @keith ,

I’m totally stoked to use this plugin and watched all the videos you kindly made.

Unfortunately I may be an idiot, regardless I drew what i’m trying to do right here…

If you could help my nugget of a brain use this plugin i’ll definitely be contributing as getting this to work would be pure ecstasy.

another EDIT: I did it omg. I did it. BUT…how might I remove items from the list based on that x variable?

Kind regards,

Tristan

Hi, Does anyone know if its possible to swap a value with a value from your database using the list shifter process list function. I could see a bunch of operands and wasn’t sure which one would let me do this.

Thanks

Hello @Keith ,

I posted my original question in this following thread:

@boston85719 was kind enough to refer me to your plug-in and I’m impressed!

Think it can do what I need but in reading through a large number of posts (not all of them, of course) and watching all your videos, I haven’t seen you specifically refer to this. I’m now at the point where I have to ask. Hope you can help!

My problem is simple. I have a menu and a list of people. I would like to select a menu item, then chose the person it belongs to and build a list. Once complete I want to take the list of data and build orders in the backend. The list in plain English would look as follows:

John: Lager, Burger, Salad
Anne: Ale, Burger, Fries
Sally: Lager, Fried Chicken

In the custom value there would be an entry for each item that includes the menu item and the person for whom it’s for. I’m using commas and semi colons for clarity, I’m not sure what would be needed in actuality. I would also use the item ID and name ID in actuality but again, for visual representation I am not.

john, lager;
john, Burger;
john, Salad;
anne, ale;
anne, burger;
anne, fries
sally, lager;
sally, fried chicken;

From there I would go through the list one at a time and build an order to look like the cleaned up list I first posted.

Can your plug-in do this?

Sounds like all you’re doing is building a shopping cart, really. In your case, a line item in an order has not just the item in question and a price, but an additional bit of data indicating who the item is for.

While I don’t address your specific use case, it might be useful to watch this video about shopping carts. In it, I do show how you might construct and process an order on the backend (using server side plugin List POPPER) to iterate over line items:

Sweet deal, @Keith . You magnificent person. Thank you so much. You do some really great work and now we’re getting places!

I’m trying to understand at what point the user’s devices being turned off, or navigated to a different page can interrupt this workflow. I’ve noticed our customers are quick to hit the lock button on their device the second they hit “submit order”. Given the speed I saw on your video this could be a concern if I’m misunderstanding what’s happening and at which point it’s happening. Right now it’s not an issue because everything writes to the server so the final “submit order” is simply changing one thing from a 0 to a 1 and it’s done. Very quick.

Back to the question, sounds like as soon as the workflow is launched and Bubble has the lists, the rest is done server side - right? So only in a very rare case where the sever and bubble disconnect would we have an issue - did I catch that correctly?

OK - So I’m all clear on list popper. Do you happen to have a video that shows how you were able to create the list in the drag and drop? I think I know how you’re doing it but it you have a video it will likely remove a few trial and error sessions for me.

Last and somewhat related, you showed the performance of using vanilla bubble (and java?) and how well it worked. You mentioned this was all writing to the data base, therefore if two people where logged into the same page it would show on both pages right? Do you have a video for this one too. Just curious about options.

@Keith I think I’m just spoiled here but you were so quick to reply last time, I thought I’d nudge this to see if you could have a look?

@boston85719 Maybe you might know where that video is? Based on how Keith has done his other videos, I’m guessing there is likely a video on how to build what he has before the video linked above (which Keith built on top of)

Hey @matthew7 : So, in that video, you’ll recall that I showed two different methods for how we might collect the data we need for an “Order” and then (in the case of the “in the page”/ListShifter method) assembling that data into an Order object on the backend (using List Popper to take all of the info for each Line Item, create a Line Item and then attach those to an order).

VANILLA CASE: In the “vanilla Bubble” case, we just let Bubble create an actual Order object (a Thing called an Order) using the normal Bubble Create New Thing action, and as the user adds or removes Line Items, we create or remove those, using the normal Bubble Create/Delete Thing actions.

LISTSHIFTER CASE: In the other (“in the page”) case, we build up parallel lists of the bits of data we need to construct an order later (using List Shifter to hold the parallel lists of line item data)… and then we pass those lists to an API workflow which uses List Popper to conveniently assemble the Line items and ultimately create the Order object itself.

Now, in both cases, we arrive at having an Order object. Of course, that’s where the tutorial ends. Obviously, we are not done as – however we created the Order – now we must do something with the Order.

This is left as an exercise to the reader, as they say.

In the Vanilla case, our Order already exists, and so what your “Submit” button or Buy button or whatever would do is kick off an API Workflow that then processes the order. Since our Order has a list of Line Items on it that already neatly contain all the bits of info we need, we’re probably not going to need List Popper as we have backend actions that can handle lists of Things just fine. (Though it may come in handy.)

In the ListShifter case, we created an API workflow that kicks off Order creation (via an “Order Proxy”) and then a recursive workflow that assembles our bits of data into a proper Order. What we would in this case, is have an action at the end of the “process order proxy (recursive)” workflow that, when we are done, kicks off the next step in Order handling.

In both cases the next step is the same: Do whatever you need to do with your Order.

Edit/postscript: Note that there are several ways that you could kick off those next Order processing steps (which would be things like processing payment, kicking off order fulfillment in the real world, etc.). For example, the user clicking the Buy button could cause the Order to be sent as the argument to some backend workflow, or clicking the Buy button might just set some flag on the Order object (e.g., set Order’s “Submitted” field to true.) In the latter case, you could have a backend workflow that triggers on the “New Database Trigger event” that’s watching for when an Order goes from Submitted is no to Submitted is yes.

(Obviously, I was glossing over the entirety of fields that might exist on an Order and just focusing on two different ways that we might create an Order and its Line Items.)

Hello! Thank you for your plugin. It looks cool, but I can’t do what I want.

I have users who have certain skills, there are only 12 of them for each user. Each skill has a score from 1 to 4.

I created a separate data type “Sorted” where the skill, score is recorded and each line is linked to the user.

I need to make sure that when a user selects certain skills, users with the maximum selected skills are shown to him in descending order. The filter should also take into account the country and language.

Is it possible to do this through your plugin? Please help me, I tried different options and finally got confused… :pray: :pray: :pray:

video: Запись экрана 2021-10-25 в 12.53.14.mov - Google Drive



Uploading: Снимок экрана 2021-10-25 в 12.48.03.png…

Do you want to sort them by total score or average score across skills?

1 Like

I want to sort by the score of the selected skill in descending order.

I have 3 skill categories, each category has 4 skills. User. wants to find players whose selected skills have the maximum value.

for example, the user selects Motivation, Team working, Creativity & innovation.

My repeating group should show users whose skills have the maximum value, sorted in descending order. Sorting should take place according to the score of the selected skill. The repeating group data type is users.I want to sort by the score of the selected skill in descending order.


Hey,

Amazing plugin, I am just experimenting with it.

I had a question and can’t seem to find the answer in the docs.

Once I have moved my items around in a list and they have new positions in LS ‘Shifted List’ - how do I then save those changes back to the Bubble database?

I’ve managed to get elements moving up and down in the list, but stuck on how to save those changes back to the DB!

Cheers, James

Hi @keith, Please, I will like to ask you one question so that it can help me decide if your plugin is what I need to solve my problem. I have a data from the database, and a data from the API, and I want to display both data in a single repeating group. Please can this plugin solve this issue? I will appreciate your response.

Why does List Shifter work when I use “List Shifter Iterator” but not when I try to do the same with “PROCESS List”? Am I doing something wrong? Maybe a bug? @keith