-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drag & Drop Bootstrap Grid Support #1237
Comments
I'm more than happy to help. But XMas being around the corner, things have
slowed up a bit here. I can take this up in 3 weeks if nobody else is
interested
…On Mon, 6 Dec 2021 at 11:59 PM, calmond01 ***@***.***> wrote:
Description:
I know this has been asked for so many times, but I think we are almost
there with @oneplugin <https://github.com/oneplugin>’s contribution and
others, so I’m willing to put up a bounty to get us across the finish line.
So here’s the pitch: The formBuilder already supports rendering fields
using BootStrap grid system. Let’s make the designer place the appropriate
bootstrap classes into each field class property upon drag and drop.
The end goal here is to support multiple fields in one column. By updating
the designer to automatically insert the appropriate bootsrap class and
then display this in the designer, we would be good to go.
@oneplugin <https://github.com/oneplugin> has done a beautiful job in the
designer with the ability to drag and drop multiple items in one row.
However, It appears he is using div’s to accomplish this rather than
bootstrap grid. Such implementation requires a custom renderer.
Here’s a video of oneplugin’s implementation which is effectively what I’m
looking for:
https://user-images.githubusercontent.com/92248128/140612092-07d2baa2-c861-4106-9855-67486af15a73.mov
Perhaps we can re-work his front end to implement this via BootStrap grid
rather than the divs. Then we can use the existing formBuilder renderer.
(Just to put the formeo suggestion to rest…I have looked at formeo. It is
nice but a bit more complex than I’m looking for and no BootStrap support.
So that brings me back to formBuilder.)
Please, if anyone has a better approach, suggestions, etc, please share.
Environment Details:
- formBuilder Version: v3.7.3
- Browser: All
- OS: All
Expected Behavior Actual Behavior Steps to Reproduce Screenshot -
*(optional)*
https://user-images.githubusercontent.com/92248128/140612092-07d2baa2-c861-4106-9855-67486af15a73.mov
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQBPW2B2P23TMMKOOODUPT6IJANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Issue Status: 1. Open 2. Started 3. Submitted 4. Done This issue now has a funding of 2500.0 USD (2496.25 USD @ $1.0/USD) attached to it.
|
Hey Oneplugin. Sure thing...if we need to wait 3 weeks, it won't be to terribly bad. Let's see if anyone else expresses interest. |
Could you just be a little more specific as to what needs to be done? As
far as I know Bootstrip grid also uses div’s and if i just need to use the
respective bootstrap classes, it’s a simple fix and for that a bounty is
not required and I can do it in a day or two.
I’m asking these questions because I haven’t used your renderer as I’m
using a custom one using the json.
…On Tue, 7 Dec 2021 at 12:17 AM, calmond01 ***@***.***> wrote:
Hey Oneplugin.
thanks for posting a response so quickly.
Sure thing...if we need to wait 3 weeks, it won't be to terribly bad.
Let's see if anyone else expresses interest.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQE254VWMS2OSYHY4ILUPUAN3ANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Sure, so this posts shows how the out of the box renderer can display the fields in the default grid. So we can add the following text to the class property in the designer: form-control row-1 col-md-6 |
Ok. So if I’m not wrong the generated json has to have the corresponding
bootstrap classes and the renderer will take care of the rest. If that’s so
and as long as I don’t have to remove the classes I used in the designer to
make the multi-column work, it’s easy to do. Please confirm and if my
understanding is right, I will send this over tomorrow itself.
…On Tue, 7 Dec 2021 at 1:03 AM, calmond01 ***@***.***> wrote:
Sure, so this posts shows how the out of the box renderer can display the
fields in the default grid.
3e4332c
<3e4332c>
So we can add the following text to the class property in the designer:
form-control row-1 col-md-6
to two of the fields. Then when it renders they will be in the same column
as two rows.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQAW6ZSLJ4SXJIUUFSTUPUFW7ANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Ok, let me parse your question here... "the generated json has to have the corresponding "as long as I don’t have to remove the classes I used in the designer to thx, |
Let me rephrase the question. The classes I add in the designer to make
multi-column work has nothing to do with the json output and those classes
will not appear in the output json if that’s what you are concerned about.
The reason being I add those classes in the parent div and they are not
part of the field and when changing this I will make sure the bootstrap
class will be added to the field. That way it will have no impact on the
output json.
And I have added two more options in the current build
1. Ability to display the properties in a bootstrap model as there isn’t
always enough space to display the properties in-line when you go for a
multi-column approach
2. Max number of fields per row
Do you still need these options to be configured from the constructor?
…On Tue, 7 Dec 2021 at 1:12 AM, calmond01 ***@***.***> wrote:
Ok, let me parse your question here...
"the generated json has to have the corresponding
bootstrap classes and the renderer will take care of the rest" <-- Yes,
correct.
"as long as I don’t have to remove the classes I used in the designer to
make the multi-column work" <-- Sorry, I don't know how the added classes
affect the designer/renderer...I guess we would have to try it.
thx,
-Chris.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQGRJOERCVGXTV54463UPUGZ5ANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Happy to see you guys already started discussion. I am also interested to contribute. |
Hi Naseem. Sounds like oneplugin is moving forward while leveraging the code he had previously written. With that, I'll defer to him to see if he could use some assistance. Thanks again!! |
Ok
#1 it's not actually bootstrap classes.
By properties I mean this
All the properties for a field are currently being shown in-line as of
v3.7.3 and that works well if there is only one field per row because it
can take up the whole width. But when you switch to multi-column, the width
for a field is much less compared to the whole row and the
properties/attributes for a field won’t fit in that width. So I added an
option to decide how the properties of a field should be displayed, like
how it used to be in v3.7.3 or move the whole properties thing to a
bootstrap popup.
And this is how it looks
Screenshot 2021-12-07 at 2.08.05 AM.png (273K)
<https://mail.google.com/mail/u/3?ui=2&ik=9590cb5266&attid=0.1&permmsgid=msg-a:r3623036961020347437&view=att&disp=safe&realattid=f_kwv50a3s1>
#2 my best bet would be max 4/5 fields per row and anything above that will
be cramping the space. That’s why I thought it’s better to let them decide
how many max fields they want in a row.
So I presume you’d like the build with those two options as well. I will
send the source tomorrow.
…On Tue, 7 Dec 2021 at 1:25 AM, calmond01 ***@***.***> wrote:
Ok, sounds good.
Re: options...
Not clear on #1 <#1>
but if its just more info about the boot strap classes, should be good.
On #2 <#2>, I think BS
limits to 12 anyway but I dont see how it could hurt anything.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQHPSAPBEBMY4KCAEV3UPUIM7ANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Re#1: Re#2: Looking forward to seeing the updates!!! Thank you,. |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Workers have applied to start work. These users each claimed they can complete the work by 264 years, 11 months from now. 1) ahmadny has applied to start work (Funders only: approve worker | reject worker). hopefully in the future this will be better Learn more on the Gitcoin Issue Details page. |
@calmond01 As discussed and agreed, I've made the changes and you can find the updated source code in the attached zip archive. Just letting you know what to expect in this build.
Known Issues
For those who would like to run this build using the source file, I suggest using NPM v12.22.1 as saas-loader is not yet compatible with the latest npm. You can manage NPM versions using NVM. For bootstrap dialog I've added bootstrap and since jquery-ui doesn't play nicely with webpack, I have added jquery-ui-bundle as well. You can find a working codepen for the same below. If you run into any issues, please free to let me know and I will be happy to fix it. That's it I guess. |
@calmond01 The codepen link I sent earlier was wrong. You can find the updated one below. |
@oneplugin , You delivered exactly when you said you would. I'm guessing you were up all night doing this. Fantastic. I'm going to get on this today, testing etc as soon as I figure out how to get it compiled to a min file...lol. Thanks again and I'll be back in touch shortly. -Chris. |
Thanks for those kind words mate.
To tell you the truth, it took me just 3 hours as everything else was done
beforehand.
If you need help in setting this up let me know.
Cheers
…On Tue, 7 Dec 2021 at 8:26 PM, calmond01 ***@***.***> wrote:
@oneplugin <https://github.com/oneplugin> ,
Absolutely amazing and thank you.
You delivered exactly when you said you would. I'm guessing you were up
all night doing this. Fantastic.
I'm going to get on this today, testing etc as soon as I figure out how to
get it compiled to a min file...lol.
Thanks again and I'll be back in touch shortly.
-Chris.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQGI2DME4D6CUWCIIDDUPYOCBANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Ok, that's impressive. On this now. |
@oneplugin I think with a few more tweaks this update will be ready for prime time. Here's what I have so far: -B1.1---------------------------------- -B1.1.1---------------------------------- -B1.2----------------------------------
-B1.3---------------------------------- -B1.4---------------------------------- Here is Json produced by origintal formbuilder: Here is Json produced by multicolum formbuilder: -B1.5---------------------------------- -B1.6---------------------------------- Here is scrn shot of the form built from scratch in the new designer: Here is scrn shot of form loaded from JSON which the new builder produced: If we remove the bootstrap classes inserted by the new builder, the form renders correctly in the new builder. -B1.7--------------------------------- Scrn shot: Looks like the bootstrap classes may be getting applied also to the child elements Example: |
Sorry, B1.7 got truncated... -B1.7--------------------------------- Scrn shot: Looks like the bootstrap classes may be getting applied also to the child elements Example: |
One more try... Example: |
I can fix all of these issues but I’m afraid it will take a bit of time. Your initial requirements were easy to fix but these ones demand more time. If you’re ok I will take up the bounty and will fix these for you. An estimated two hour fix was fine but making this perfect and ready-to-go will need more time investment considering the issues you guys might raise in the future. so if you are fine with absorbing the cost, I will be more than happy to fix all of these for you. Over to you! |
@oneplugin, Thank you! |
Thanks Chris!
I’m fully booked tomorrow and so I will fix all of these issues on Thursday.
I’d like to give you a bit more but I really don’t want to commit anything
now.
Cheers
Jugs
…On Wed, 8 Dec 2021 at 12:23 AM, calmond01 ***@***.***> wrote:
@oneplugin <https://github.com/oneplugin>,
Yes, absolutely.
Take up the bounty and let's invest the time needed.
Thank you!
-Chris.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1237 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV7ZQQCF62U35LGNKPNTK5TUPZJ3XANCNFSM5JPJ5ZKA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
That works. |
@calmond01 I have a few questions regarding the issues you reported. Are you available now to clarify them? |
@calmond01 you can view my comments below B1.1---------------------------------- I agree sometimes it acts a bit weird and is impossible to drop in the small vertical drop targets. Is this what you are also referring to? -B1.1.1---------------------------------- Ok. Will fix B1.2---------------------------------- Will fix B1.3---------------------------------- I’m afraid this cannot be fixed as the output json like you have mentioned later has an extra array or [] for managing rows. So the new form builder will have to be loaded with the forms created in the new builder or if you have many forms that are already designed in the old one, then you will have to tweak the json a bit by adding [] before every element in the json. I can send you two sample jsons, one created using the old builder and the other will show you how to convert it to make it work in the new one. Let me know if you need this. B1.4---------------------------------- Same as above. I will update the form renderer library to make it work with the new json B1.5---------------------------------- Will fix B1.6---------------------------------- Can you explain this a bit more? I didn’t quite understand what you mean. Is this related to B1.3? B1.7--------------------------------- Will fix One more try... Example: Was this a continuation of B1.7? Are there any other issues worth fixing for? I’m going to start working on these today and hopefully will send you the updated code tomorrow first thing. I couldn’t start in the am because there was a bit of work pending from last day. |
Good morning @oneplugin. Here are my comments on your questions below: B1.1---------------------------------- I agree sometimes it acts a bit weird and is impossible to drop in the small vertical drop targets. Is this what you are also referring to? CA-Yes, exactly. It's the little vertical blue bar drop zones that seem to be challenging to drop into. Sometimes they light up on hover, other times the don't. B1.3---------------------------------- I’m afraid this cannot be fixed as the output json like you have mentioned later has an extra array or [] for managing rows. So the new form builder will have to be loaded with the forms created in the new builder or if you have many forms that are already designed in the old one, then you will have to tweak the json a bit by adding [] before every element in the json. I can send you two sample jsons, one created using the old builder and the other will show you how to convert it to make it work in the new one. Let me know if you need this. CA-Ok, I understand now. I don't personally have any old forms but I'm sure there are lots of folks out there that do have legacy forms built with the old builder that would to be able to use this new one you are working on. So for that purpose, if you could share the conversion sample code that would be great!! B1.4---------------------------------- Same as above. I will update the form renderer library to make it work with the new json CA-Perfect. A new renderer will have to be the route we take given your extra "[" arrays in the JSON. Thx. B1.6---------------------------------- Can you explain this a bit more? I didn’t quite understand what you mean. Is this related to B1.3? CA-Sure...Not related to B1.3. Create a form using a control that has sub elements like a Radio Group, Checkbox Group, or Select. Here is a screen shot of the Radio Group after dragging it into the builder for the first time. Note the formatting is correct: Save the JSON, then re-load the designer with the JSON you just created. You will see that the form elements with sub controls don't line up properly in the builder. This may be due to the injection of bootstrap classes into the sub form elements. Not sure. B1.7----------------------------------- B1.8----------------------------------- Example JSON: To reproduce, create a form using the new builder. Save it, then reload that same JSON back into the new builder. Then save again. OK, that's all I have for now. I think this is going incredibly well. Thank you for your time and effort on this. I look forward to seeing the next iteration!! Thank you |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work for 2500.0 USD (2496.25 USD @ $1.0/USD) has been submitted by:
|
@calmond01, as the designer of the existing bootstrap integration, I wanted to thank you for helping push this to the next level. |
Yes a big thanks to you both. This is some great work. |
Hey guys. My pleasure. I wonder if the formBuilder owners/moderators will push @onepugin 's code onto the main build as a new version? |
I'd argue that I enjoy developing more than testing. You definitely contributed quite a bit. I doubt that this will get merged any time soon due to the creator rebuilding it as Formeo. Big thanks goes to him as well and other contributors (LucasAu). I believe this should be turned into and maintained as a fork if anyone is willing to do so. |
You're a beast @oneplugin! Thanks for all this work! |
It also isn't working with the multi page layout: https://formbuilder.online/docs/formBuilder/demos/tabs/ The error I am getting is:
The error referrs to this section:
|
@ajhalls I didn’t see this message until now, maybe because I wasn’t subscribed to this thread. Are you still experiencing this issue? Did you try the latest version I uploaded? |
Having following issue in building this with node 12.22.1 |
I am not able to edit the label of fields in form builder |
Enhanced grid support is now available |
Hey bro, are you still avaiable for some work on the formBuilder? |
Hi Jojoshua are you avaiable for a little work on formbuilder? |
...how "little" are you talking? @GiorgioRindonone |
Can we talk by mail pls, here it's little bit diffucult, write me here g.rindonone@contech.xyz |
@oneplugin |
@oneplugin |
can u please provide the video how we implement this in our code ? |
@oneplugin TypeError: e.forEach is not a function throw error when i use library form-builder.3.7.3 OR 3.7.3_01 If i use 3.7.3_01 then field edit popup not work form-builder.3.7.3_01.min.js:228 Uncaught TypeError: E.modal is not a function
AbstractXHRObject._start @ sockjs.js:1609 Please Give Solution any one one this ? |
@oneplugin |
Description:
I know this has been asked for so many times, but I think we are almost there with @oneplugin’s contribution and others, so I’m willing to put up a bounty to get us across the finish line.
So here’s the pitch: The formBuilder already supports rendering fields using BootStrap grid system. Let’s make the designer place the appropriate bootstrap classes into each field class property upon drag and drop.
The end goal here is to support multiple fields in one column. By updating the designer to automatically insert the appropriate bootsrap class and then display this in the designer, we would be good to go.
@oneplugin has done a beautiful job in the designer with the ability to drag and drop multiple items in one row. However, It appears he is using div’s to accomplish this rather than bootstrap grid. Such implementation requires a custom renderer.
Here’s a video of oneplugin’s implementation which is effectively what I’m looking for:
https://user-images.githubusercontent.com/92248128/140612092-07d2baa2-c861-4106-9855-67486af15a73.mov
Perhaps we can re-work his front end to implement this via BootStrap grid rather than the divs. Then we can use the existing formBuilder renderer.
(Just to put the formeo suggestion to rest…I have looked at formeo. It is nice but a bit more complex than I’m looking for and no BootStrap support. So that brings me back to formBuilder.)
Please, if anyone has a better approach, suggestions, etc, please share.
Environment Details:
Expected Behavior
Actual Behavior
Steps to Reproduce
Screenshot - (optional)
fb-demo.mov
The text was updated successfully, but these errors were encountered: