Drupal 7: Add duplicates for form fields on the fly - drupal-7

I've got a form that's being generated using the Form API. There is a fieldset that contains several text fields. What I need to do is have a link or button that a user clicks if they want to add a duplicate of that fieldset to the form so they can add another set of similar information to the form. This is to essentially allow them to add multiple records without having to add each record individually. Is there a good way to go about adding this kind of functionality using the Forms API in Drupal 7?

There's a good example of this in the examples module package:
http://api.drupal.org/api/examples/ajax_example%21ajax_example_graceful_degradation.inc/function/ajax_example_add_more/7
It's a little complex, but that is very well documented, so you should be able to follow along.
You'll want to look at the entire ajax_example module (part of http://drupal.org/project/examples) for the relevant menu callbacks as well.

Related

Admin-on-rest: how to decrease button spacing and how to edit page without ID in url

I started with admin-on-rest recently and I love what it brings. However, I am stuck on 2 issues and I was hoping to get some help:
Question 1
I created a custom theme with custom color pallette etcetera. How can I reduce the spacing around buttons? You can see it on the demo here: https://marmelab.com/admin-on-rest-demo/#/customers/121, the save button has an indent of maybe 20-30 pixels. Can I remove this and align the button with the input fields, title, etcetera?
Question 2
What is the best approach for creating an /#/user/details/ view for example, where users can edit their own account details, re-using the EDIT component? I have now added this resource:
<Resource name="user/details" edit={EditDetails} />
I can edit the account by going to /#/user/details/ID (replacing ID with the actual user ID). But I don't want to expose the ID. Better yet, the SPA doesn't need to know about the ID at all, because the API can understand a PUT request to /user/details/ as a request to update the current user details. So I don't actually need the SPA to send or need this ID. Any ideas on this?
Question 1: https://marmelab.com/admin-on-rest/Theming.html#overriding-a-component-style
Customizing the Toolbar which contain the button will require a bit a of work in versions 1.*.*. You'll have to create a custom Toolbar using the original as a starting point (https://github.com/marmelab/admin-on-rest/blob/master/src/mui/form/Toolbar.js) and use it as the toolbar prop for your form (https://marmelab.com/admin-on-rest/CreateEdit.html#toolbar). This will be a lot easier in v2.
Question 2: this can be achieved using a custom restClient. In a nutshell, intercept calls which target the user resource and build the url yourself, not forgetting to handle the response.
However, for such a thing, I would advise against using the admin-on-rest mechanisms as it seems users are not really a resource but an application concept. As such you might want to handle this in a custom page with fetch by yourself.

Can we use drupal AHAH in webform module of drupal 7

I intend to add dynamically fields like text boxes, radio buttons, checkboxes ,select boxes on a click of button like "ADD More".
I heard we can use AHAH to add fields dynamically, since I used a webform module to build my form, can I still be able to use AHAH to add the feature of "dynamically addition of fields" ?
I found an alternative solution, Simply used php files in building web pages and got the required functionality.
Simple web pages will have an option to add php scripts directly. And relying on AHAH is No- No for the required functionality.

searching for a tool/solution that allows angular to show forms and form elements dynamically based on metadata

the forms in my app display themself based on metadata.
In design mode the user should be able to change the form (metadata) by dragging all form elements (text, input ...) somewhere in the browsers window. I want to save the new metadata to display the changed form.
I wonder, if there is allready any solution or a tool.
Thanks in advance
Chris
Check this link - http://ngmodules.org/ which contains a detailed list of plugins developed for angularjs. I have found many useful plugins here.

Best way to implement custom search form

Firstly, I am a Drupal newbie and am still alien to many of Drupal's core concepts. My questions probably seem lame but .... I am trying my best.
I want to implement a custom search form like in the picture attached.
Hotel, flight, etc. are taxonomy terms.
Depending on the taxonomy term selected, the parameters below will also change, like in the picture below:
I came across Drupal Search API. I saw the Munich DrupalCon screencast on search api.
http://www.youtube.com/watch?v=rArRwp_1h8Q
From what I have seen so far, I am not sure whether this can be implemented using Search API.
I know this can be implemted using Forms API (I will create the form manually).
I want to know which way will be faster, Forms API or Search API.
I am using : Drupal 7.26
A simple way is to build a regular view with exposed filters.
To add and configure a views exposed filter:
Go to your views edit page.
Create the filter criteria that we want our users to be able to control, by clicking the "Add" button, in the filter criteria box.
Choose the fields that you want your users to be able to filter through them and click "Add".
In Configure filter criterion, check the option Expose this filter to visitors, to allow them to change it.
Configure the rest of the settings to your liking and click "Next".
After saving the view, this filter should be exposed to your users and they are able to search your view.
For a demo with screenshots; Check this tutorial.

Drupal 7 custom voting solution

I need to create a voting system which will essentially consist of several forms each with a list of radio buttons, of which a single choice can be made. Submission of the form loads the next one, this will go on for about 10 pages, before finally sending the user to a generic data capture form where they will submit their credentials for inclusion in a prize draw.
Several approaches spring to mind:
Create a clone of the core poll module and modify it to achieve the required functionality
Modify the drupal quiz module to allow anonymous recording of votes (the fact that it doesn't is the only thing stopping me approaching it this way, it works almost exactly as I want it to otherwise)
Create something completely custom using the webform module.
I just wondered if anyone had come across this same problem/dilemma and could share any knowledge???
Can you accomplish this with a multi-page webform? You can build the webform by adding a "select options" field, followed by a "page break", then another "select options" field, and another "page break", etc, etc.
You can limit the select options field to 1 answer. Then when you want to gather their information, just add simple text fields at the end.

Resources