Posted by Athos on September 28, 2011 at 7:19am
46 followers
| Project: | Hierarchical Select |
| Version: | 7.x-3.0-alpha5 |
| Component: | Code |
| Category: | bug report |
| Priority: | critical |
| Assigned: | Unassigned |
| Status: | needs review |
Issue Summary
When creating a new node and selecting a term from HS the node is saved instantly.
I have a taxonomy vocabulary with Countries / Cities.
Upon selecting a parent term (country) i.e. Russia, it instantly shows me the Cities i.e. Moscow, St. Petersburg but the node itself is instantly saved. If i have any other fields that are compulsory, it will keep me on the editing page but pops up the warnings that i must complete the remaining fields. If i don't have any compulsory fields left to complete it will simply save the node and redirects me to the "view" page.
I don't know if this is a bug.
PS: Excuse my english
| Attachment | Size |
|---|---|
| HS.png | 29.29 KB |
Comments
#1
+1. Same happening for me, whith the slight difference that if there are no mandatory fields it saves the node but keeps the form open. When I do complete all the fields and save, the node duplicates.
I'm using 7.x-3.x-dev.
Thanks
#2
Same here. If the node is new (Add Content), a new copy of the node, complete with a new NID, is created for any click to create a new Taxonomy term at any level, including if I then [Cancel] out of that without actually creating a new Taxonomy term!
If Editing a node, it saves the node (pops up the green Content Saved banner right above the Hierarchical Select instead of its usual place), but does not create a duplicate (presumably unless Create New Revision is on), again on any attempt to add a new term.
This seriously messes up workflow. I don’t want to have to tell my clients any jump-through-hoops workarounds (e.g. save the new node without any Taxonomy, then go back and edit it to set Taxonomy terms to prevent duplicate nodes from being created en masse), especially since the whole point of this module is to make things easier.
Upgrading to “Critical” because this bug effectively makes Hierarchical Select worse than totally useless, being an actual danger to the integrity of site node data (e.g. a customer wants to try out a change to a node, intending to Preview it before Saving it, and also changes Taxonomy — oops! Create New Revision wasn’t on, so now the “trial” change is made permanent and not easily revertible!).
#3
Found these other issues that may be related to this one (or may even be the same issue):
http://drupal.org/node/1312762
http://drupal.org/node/1312286
http://drupal.org/node/1267768
http://drupal.org/node/1270306
#4
@Athos and @Joel MMCC
are you using Administration Language module?
I discover this module was being a source of multiple problems, and after disabling it, this issue (and others) completely disappeared.
I hope this info can be of some help
#5
@clanet, I don’t see any module by that name in my system. It was created on and exported from Drupal Gardens.
Here’s a “prettified” version of the output of DRUSH pm-list, showing every module we have:
pm-listPackage Name Type Status Version
Acquia Ntwrk Cnctr Acquia agent (acquia_agent) Module Disabled 7.x-1.3
Acquia Ntwrk Cnctr Acquia search (acquia_search) Module Not installed 7.x-1.3
Acquia Ntwrk Cnctr Acquia site information (acquia_spi) Module Disabled 7.x-1.3
Administration Administration Development tools (admin_devel) Module Enabled 7.x-3.0-rc1
Administration Administration menu (admin_menu) Module Enabled 7.x-3.0-rc1
Administration Administration menu Toolbar style (admin_menu_toolbar) Module Enabled 7.x-3.0-rc1
Administration Administration views (admin_views) Module Not installed 7.x-3.0-rc1
CCK Content Templates (contemplate) Module Enabled 7.x-1.0-rc3
CCK Location CCK (location_cck) Module Enabled 7.x-3.x-dev
Chaos tool suite Bulk Export (bulk_export) Module Enabled 7.x-1.x-dev
Chaos tool suite Chaos tools (ctools) Module Enabled 7.x-1.x-dev
Chaos tool suite Chaos Tools (CTools) AJAX Example (ctools_ajax_sample) Module Not installed 7.x-1.x-dev
Chaos tool suite Chaos Tools (CTools) Plugin Example (ctools_plugin_example) Module Not installed 7.x-1.x-dev
Chaos tool suite Custom content panes (ctools_custom_content) Module Enabled 7.x-1.x-dev
Chaos tool suite Custom rulesets (ctools_access_ruleset) Module Enabled 7.x-1.x-dev
Chaos tool suite Page manager (page_manager) Module Enabled 7.x-1.x-dev
Chaos tool suite Stylizer (stylizer) Module Enabled 7.x-1.x-dev
Chaos tool suite Views content panes (views_content) Module Enabled 7.x-1.x-dev
Core Aggregator (aggregator) Module Enabled 7.9
Core Block (block) Module Enabled 7.9
Core Blog (blog) Module Enabled 7.9
Core Book (book) Module Not installed 7.9
Core Color (color) Module Enabled 7.9
Core Comment (comment) Module Enabled 7.9
Core Contact (contact) Module Enabled 7.9
Core Content translation (translation) Module Not installed 7.9
Core Contextual links (contextual) Module Enabled 7.9
Core Dashboard (dashboard) Module Enabled 7.9
Core Database logging (dblog) Module Enabled 7.9
Core Field (field) Module Enabled 7.9
Core Field SQL storage (field_sql_storage) Module Enabled 7.9
Core Field UI (field_ui) Module Enabled 7.9
Core File (file) Module Enabled 7.9
Core Filter (filter) Module Enabled 7.9
Core Forum (forum) Module Disabled 7.9
Core Help (help) Module Enabled 7.9
Core Image (image) Module Enabled 7.9
Core List (list) Module Enabled 7.9
Core Locale (locale) Module Not installed 7.9
Core Menu (menu) Module Enabled 7.9
Core Node (node) Module Enabled 7.9
Core Number (number) Module Enabled 7.9
Core OpenID (openid) Module Disabled 7.9
Core Options (options) Module Enabled 7.9
Core Overlay (overlay) Module Enabled 7.9
Core Path (path) Module Enabled 7.9
Core PHP filter (php) Module Enabled 7.9
Core Poll (poll) Module Enabled 7.9
Core RDF (rdf) Module Enabled 7.9
Core Search (search) Module Enabled 7.9
Core Shortcut (shortcut) Module Enabled 7.9
Core Statistics (statistics) Module Enabled 7.9
Core Syslog (syslog) Module Enabled 7.9
Core System (system) Module Enabled 7.9
Core Taxonomy (taxonomy) Module Enabled 7.9
Core Testing (simpletest) Module Not installed 7.9
Core Text (text) Module Enabled 7.9
Core Toolbar (toolbar) Module Disabled 7.9
Core Tracker (tracker) Module Not installed 7.9
Core Trigger (trigger) Module Enabled 7.9
Core Update manager (update) Module Enabled 7.9
Core User (user) Module Enabled 7.9
Date/Time Calendar (calendar) Module Enabled 7.x-3.x-dev
Date/Time Calendar iCal (calendar_ical) Module Enabled 7.x-3.x-dev
Date/Time Date (date) Module Enabled 7.x-2.x-dev
Date/Time Date API (date_api) Module Enabled 7.x-2.x-dev
Date/Time Date Context (date_context) Module Not installed 7.x-2.x-dev
Date/Time Date Migration (date_migrate) Module Not installed 7.x-2.x-dev
Date/Time Date Popup (date_popup) Module Enabled 7.x-2.x-dev
Date/Time Date Repeat API (date_repeat) Module Enabled 7.x-2.x-dev
Date/Time Date Tools (date_tools) Module Enabled 7.x-2.x-dev
Date/Time Date Views (date_views) Module Enabled 7.x-2.x-dev
Development Devel (devel) Module Disabled 7.x-1.2
Development Devel generate (devel_generate) Module Disabled 7.x-1.2
Development Devel node access (devel_node_access) Module Enabled 7.x-1.2
Development Location Generate (location_generate) Module Disabled 7.x-3.x-dev
Drupal Gardens Gardens features (gardens_features) Module Enabled
Drupal Gardens Gardens feedback (feedback) Module Disabled
Features Date Migration Example (date_migrate_example) Module Not installed 7.x-2.x-dev
Fields Email (email) Module Enabled 7.x-1.0
Fields Link (link) Module Enabled 7.x-1.0
Form Elements Hierarchical Select (hierarchical_select) Module Enabled 7.x-3.0-alpha5
Form Elements Hierarchical Select Flat List (hs_flatlist) Module Enabled 7.x-3.0-alpha5
Form Elements Hierarchical Select Menu (hs_menu) Module Enabled 7.x-3.0-alpha5
Form Elements Hierarchical Select Small Hierarchy (hs_smallhierarchy) Module Enabled 7.x-3.0-alpha5
Form Elements Hierarchical Select Taxonomy (hs_taxonomy) Module Enabled 7.x-3.0-alpha5
Form Elements Hierarchical Select Taxonomy Views (hs_taxonomy_views) Module Enabled 7.x-3.0-alpha5
Location GMap (gmap) Module Enabled 7.x-1.x-dev
Location GMap Location (gmap_location) Module Enabled 7.x-1.x-dev
Location GMap Macro Builder (gmap_macro_builder) Module Enabled 7.x-1.x-dev
Location GMap Taxonomy Markers (gmap_taxonomy) Module Enabled 7.x-1.x-dev
Location Location (location) Module Enabled 7.x-3.x-dev
Location Location Add Another (location_addanother) Module Disabled 7.x-3.x-dev
Location Location Fax (location_fax) Module Enabled 7.x-3.x-dev
Location Location Phone (location_phone) Module Enabled 7.x-3.x-dev
Location Location Search (location_search) Module Enabled 7.x-3.x-dev
Location Location Taxonomy (location_taxonomy) Module Enabled 7.x-3.x-dev
Location Node Locations (location_node) Module Enabled 7.x-3.x-dev
Location User Locations (location_user) Module Enabled 7.x-3.x-dev
Login Toboggan Email Login (logintoboggan_email_login) Module Enabled
Mail Mailing List (mailing_list) Module Enabled 7.x-1.0-beta1
Media File entity (file_entity) Module Enabled 7.x-1.0-rc2
Media Media (media) Module Enabled 7.x-1.0-rc2
Media Media Browser Plus (media_browser_plus) Module Enabled 7.x-1.0-beta3
Media Media Gallery (media_gallery) Module Enabled 7.x-1.0-beta7
Media Media Internet Sources (media_internet) Module Enabled 7.x-1.0-rc2
Media Media: YouTube (media_youtube) Module Enabled 7.x-1.0-alpha5
Media Plupload integration module (plupload) Module Enabled 7.x-1.0-beta3
Organic groups Profile2 group access (profile2_og_access) Module Not installed 7.x-1.1
Other AddThis (addthis) Module Disabled 7.x-2.1-beta1
Other Advanced help (advanced_help) Module Enabled 7.x-1.0-beta1
Other Advanced help example (help_example) Module Not installed 7.x-1.0-beta1
Other Backports (backports) Module Enabled 7.x-1.0-alpha1
Other Block everything (block_everything) Module Enabled
Other Comment notify (comment_notify) Module Enabled 7.x-1.0-rc1
Other Contextual Flyout Links (contextual_flyout_links) Module Enabled
Other Entity API (entity) Module Enabled 7.x-1.0-beta11
Other Entity Reference (entityreference) Module Enabled 7.x-1.0-beta1
Other Entity tokens (entity_token) Module Enabled 7.x-1.0-beta11
Other Filter tips dialog (filter_tips_dialog) Module Enabled 7.x-1.x-dev
Other Flexible blogs (flexible_blogs) Module Disabled 7.x-1.0
Other Follow (follow) Module Enabled 7.x-1.0-alpha1
Other Font management (font_management) Module Enabled
Other Form builder (form_builder) Module Disabled 7.x-1.x-dev
Other Form builder examples (form_builder_examples) Module Not installed 7.x-1.x-dev
Other Form builder Node UI (form_builder_node) Module Disabled 7.x-1.x-dev
Other Form builder Webform UI (form_builder_webform) Module Disabled 7.x-1.x-dev
Other HTML Purifier (htmlpurifier) Module Enabled 7.x-2.x-dev
Other Libraries (libraries) Module Enabled 7.x-1.0
Other Mollom (mollom) Module Disabled 7.x-1.1
Other Multiple forms (multiform) Module Enabled 7.x-1.0-beta2
Other Options element (options_element) Module Disabled 7.x-1.4
Other Pathauto (pathauto) Module Enabled 7.x-1.0-rc2
Other Pathauto Live Preview (pathauto_live_preview) Module Enabled
Other Profile2 (profile2) Module Disabled 7.x-1.1
Other Profile2 pages (profile2_page) Module Disabled 7.x-1.1
Other Redirect (redirect) Module Enabled 7.x-1.0-beta3
Other Rotating banner (rotating_banner) Module Enabled 7.x-1.x-dev
Other Save Draft (save_draft) Module Enabled 7.x-1.4
Other Simple Query Builder for SimpleViews (sqbs) Module Enabled
Other SimpleViews (simpleviews) Module Enabled
Other Simplified menu administration (simplified_menu_admin) Module Enabled 7.x-1.0-beta2
Other Simplified modules (simplified_modules) Module Disabled 7.x-1.0-beta1
Other Site Verification (site_verify) Module Disabled 7.x-1.0
Other Token (token) Module Enabled 7.x-1.0-beta7
Other Unified SEO UI (seo_ui) Module Enabled
Other UX Elements (ux_elements) Module Disabled 7.x-1.0-beta1
Panels Mini panels (panels_mini) Module Enabled 7.x-3.x-dev
Panels Panel nodes (panels_node) Module Enabled 7.x-3.x-dev
Panels Panels (panels) Module Enabled 7.x-3.x-dev
Panels Panels In-Place Editor (panels_ipe) Module Enabled 7.x-3.x-dev
Statistics Google Analytics (googleanalytics) Module Disabled 7.x-1.2
Styles File Styles (file_styles) Module Enabled 7.x-2.0-alpha8
Styles Styles (styles) Module Enabled 7.x-2.0-alpha8
Styles Styles UI (styles_ui) Module Enabled 7.x-2.0-alpha8
User interface Dialog API (dialog) Module Enabled 7.x-1.x-dev
User interface Dialog Comment (dialog_comment) Module Enabled 7.x-1.x-dev
User interface Dialog contextual Links (dialog_contextual) Module Enabled 7.x-1.x-dev
User interface Dialog Example (dialog_example) Module Not installed 7.x-1.x-dev
User interface Dialog User (dialog_user) Module Enabled 7.x-1.x-dev
User interface External Links (extlink) Module Enabled 7.x-1.12
User interface Superfish (superfish) Module Enabled 7.x-1.8
User interface Typekit (typekit) Module Disabled 7.x-1.0-beta1
User interface Wysiwyg (wysiwyg) Module Enabled 7.x-2.1
Views Views (views) Module Enabled 7.x-3.x-dev
Views Views UI (views_ui) Module Enabled 7.x-3.x-dev
Voting Fivestar (fivestar) Module Disabled 7.x-2.0-alpha1
Voting Voting API (votingapi) Module Enabled 7.x-2.4
Webform Webform (webform) Module Disabled 7.x-3.13
Webform Webforms (webform_alt_ui) Module Disabled 7.x-1.x-dev
XML sitemap XML sitemap (xmlsitemap) Module Disabled 7.x-2.0-beta3
XML sitemap XML sitemap custom (xmlsitemap_custom) Module Disabled 7.x-2.0-beta3
XML sitemap XML sitemap engines (xmlsitemap_engines) Module Disabled 7.x-2.0-beta3
XML sitemap XML sitemap internationalization (xmlsitemap_i18n) Module Not installed 7.x-2.0-beta3
XML sitemap XML sitemap menu (xmlsitemap_menu) Module Disabled 7.x-2.0-beta3
XML sitemap XML sitemap node (xmlsitemap_node) Module Disabled 7.x-2.0-beta3
XML sitemap XML sitemap taxonomy (xmlsitemap_taxonomy) Module Disabled 7.x-2.0-beta3
XML sitemap XML sitemap user (xmlsitemap_user) Module Not installed 7.x-2.0-beta3
Core Bartik (bartik) Theme Disabled 7.9
Core Blossom (blossom) Theme Enabled 7.9
Core Garland (garland) Theme Disabled 7.9
Core Seven (seven) Theme Disabled 7.9
Core Stark (stark) Theme Disabled 7.9
Other My theme (acq_my_theme) Theme Disabled 1.20
Other SBSC Carbon (acq_sbsc_carbon) Theme Enabled 1.21
All are the absolute latest recommended (for most) or .dev (for Calendar, CTools, Date, and Views) versions except that Views has not yet been updated to the 31-Oct-2011 .dev yet, since the MD5 checksum on it mismatched (see my Issue there).
Edited only to “prettify” the Drush pm-list output above.
#6
Hi,
@clanet: No i don't use this specific module.
What i have noticed is that this issue occurs ONLY when i am logged in as an authenticated member.
When i am logged in as an administrator the problem described above DOES NOT happen.
It would be extremely complicating (at least to me) to find out if this issue is caused by another installed module. I 've compared the modules @Joel MMCC has installed with the ones i have and 70% are the same so...where do i begin?
regards
Athos
#7
I have a theory on why this happens
, just theory yet. So ajax is returning [...] correct form_id.Update: Theory is that
hierarchical_select_ajax()is inspired byfile_ajax_upload()which says "As long as the form processing is properly encapsulated in the widget element...". And in case offile_ajax_upload(), it is well encapsuled in widget element and operates on sub-form for that widget. On the other handhierarchical_select_ajax()is operating on full node form and when saving "Create new item form", submit button processes and submits whole node, not just widget. We need to investigate little more of how file.module does it :)#8
#9
I'm also seeing this issue when creating new taxonomy terms on a new node. I do not have a file upload in the form in this case. Because of this it is creating duplicates of each node. Makes the module almost unusable.
#10
Here is a temporary fix. Implement hook_node_validate, which fires after all other form validation happens (including after the taxonomy fields are saved / processed)
In the hook, check to see if we're in an AJAX callaback initiated from the hierarchical_select module, and if so, silently set the node submission to fail (ie mark the form as invalid).
Haven't tested extensively, but is working for me and seems like it should generally work.
Here is a copy-paste snippet, if anyone is interested:
/**
* Implements hook_node_validate().
* @see http://api.drupal.org/api/drupal/modules--node--node.api.php/function/ho... */
function <your-module-name>_node_validate($node, $form, &$form_state) {
// In general, don't save any nodes when the form submission is coming
// from an hierarchical_select callback, since this will result in
// duplicate copies of the same node being saved
if (arg(0) == 'hierarchical_select_ajax') {
form_set_error('');
}
}
Hope that helps!
#11
If i understand correctly we just need to paste the above somewhere? if yes then where?
Thanks
Athos
#12
snyderp's workaround http://drupal.org/node/1293166#comment-5237076 (#10 above) seems to work for me.
The error here is that ajax_get_form on line 294 hierarchical_select.module is returning the whole node form. I think this means the ajax is modifying the existing node form instead of embedding a separate form to add a new term. I'm not really experienced with ajax/javascript so I'm not sure exactly how to fix this one. But the real solution would be to embed a separate form for creating a new term instead of modifying the existing form.
This workaround will do for now but in the mean time this needs to be addressed as the critical priority it is despite the workaround.
Athos,
Instead of using hook_node_validate (which requires you to create the node type in the same module) I just used a form alter and added a new validate handler.
/**
* Implements hook_form_alter().
*/
function my_module_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == '{node_type}_node_form') {
$form['#validate'][] = 'my_module_hierarchy_validate';
}
}
/**
* Override the node edit form to not allow submission on hierarchical submit.
*
* This is a hack to get hierarchical select to not duplicate new nodes being
* created. It may become unneccesary pending: http://drupal.org/node/1293166.
*/
function my_module_hierarchy_validate($form, $form_state) {
if (arg(0) == 'hierarchical_select_ajax') {
form_set_error('');
}
}
You can past this into any custom module. Make sure to replace all occurances of "my_module" with the module name and "{node_type}" with the machine readable name of the node type you have the hierarchy form attached to.
#13
Just a quick clarification to danielson317's comment above, the hook_node_validate method does not require that the node content type be defined in the module. I'm sure :-)
But, both of these solutions have the exact same effect and use the same strategy.
#14
Yeah, this prevents me from saving nodes completely, because of
The content on this page has either been modified by another user, or you have already submitted modifications using this form. As a result, your changes cannot be saved....am using the admin language module.
-EDIT- that is the culprit: just dont use the admin language module
#15
I'm also having this problem on 6.x-3.7.
It seems like #14 is suggesting that there's another module interfering? I don't have the admin language module on my site. Not sure what else to suspect, but I'll comb through and start disabling things to check.
EDIT - Looks like this was the Ajax module. Disabled, drush cc all, tested the node/add with multiple terms from HS, and works fine (got one node, not several).
#16
Can you please be more specific. What is added? What is replaced? What line/s?
Or, could you upload the new file with corrections?
#17
@morningtime #14:
No, that isn’t the culprit. I’ve never used that module (see my module list above), and I have the same issue.
#18
:)...i am lost!!!
What do i have to do to fix this issue? i tried adding and deleting stuff from hiearchical.module (i am surprised it is still functioning) with no luck. I am not a programmer so if someone can explain in steps what we have to in order to correct this until next update would be great.
#19
I just figured it out.
The error is in "live preview". There is a javascript file called common_config.js. Part of it is designed to show your selections.
If you look at line #113 (.filter(':not(.create-new-item-input):not(.create-new-item-create):not(.create-new-item-cancel)')), you'll see that it will delay the input until node save.
If you write any javascript, you'll know that the quotes will prevent this from parsing.
Just delete the single quotes and it will work or paste this in its place:
.filter(:not(.create-new-item-input):not(.create-new-item-create):not(.create-new-item-cancel))
Note: If your field is required, you'll still see required field warnings but this won't effect anything. I am working on an if statement to add to fix this.
Please let me know if this works.
Philbert
#20
@MrPhilbert,
Hi,
Unfortunately your fix doesnt work on my site.
Please confirm that the file you are talking about is the common_config_form.js and NOT the common_config.js and it is located in sites/all/modules/hierarchical_select/includes
Thanks
Athos
#21
Afraid you're right. I added existing terms. It also seems that this module has now been abandoned.
Wim Leers is now working for Facebook and has not posted anything on Drupal.org since September (as far as I can tell).
Unless someone (with a lot more expertise than I) can take over this module, it will not look good for Drupal and the open source community.
I really like Drupal but when things like this and the token problems et. al. happen, it makes me worry about the future of Drupal.
#22
Yes this is unfortunate. (unfortunate for the project and not for Wim Leers whom I wish the very best). Perhaps we can somehow donate a little bit as an incentive to get this project moving forward?!
I believe that HS is one of the most important modules when creating forms.
#23
I agree and also wish him the best.
I believe that Facebook pays very well and also keeps their people very busy.
At one point, he was working on a re-write of this as a 4.x release. Maybe someone would like to contact him and see if he is making any progress?
#24
#10 works fine... Relax!
#25
here's a custom module that solves this issue (using #10) and other HS issues (see http://drupal.org/node/1389740):
http://drupal.org/sandbox/ahwebd/1389734
#26
@ahwebd: any chance you could extract your sandbox module and post it here for testing? not all of us have access to git
#27
I spent some time debugging this issue and comparing how HS works compared with the File module.
The actual cause is not what @mansspams or @danielson317 theorized about there needing to be a sub-form. I checked and it doesn't look like file fields use any kind of sub-form to do processing; they're just vanilla form widgets / form elements.
Instead, it's actually the fact that FAPI can't determine what button was actually clicked when processing the form, so it assumes it was the "Save" button. You can see this behavior in
includes/form.incon line 1856.The real hint here is that the other callbacks HS uses, such as the one that triggers the "add new item" form to be rendered in the first place or the callback once a user has chosen an item, do not cause the form to validate. Only the "Create" and "Cancel" buttons cause a problem. The process callback only places those buttons in the form array when the HS widget is in "creating new term" mode, and the process callback is fired BEFORE the FAPI evaluates what button was clicked, so they're not available for form processing.
The File module gets around this by always putting the upload controls / buttons in the form, even when the form is not in a state where uploads are accepted, and then enabling or disabling access to the controls in a "pre_render" callback. That didn't work here, so I used an "after_build" callback which seems to have done the trick.
I also noticed that the D7 AJAX API seems to handle some of these issues. Perhaps if HS was ported to use the built-in AJAX callbacks from D7, this problem might not need special handling. I'm not sure; I'm not up-to-speed yet on it. For now, I've just added a "TODO" comment inside
_hs_process_render_create_new_item()to this effect. Hopefully, someone with more D7 AJAX callback experience can look at this.The patch for this is attached. Please review.
#28
Setting this back to NW since it looks like this patch breaks the dropbox. With it applied, when you go back and edit a node that has existing terms selected in the dropbox, if you cancel the term add, the dropbox is cleared.
#29
Patch #27 works well when e.g. Title field is required but gives me the "field is required" error when the HS fields are required.
#30
http://drupal.org/node/1293166#comment-5691474
the same for me
#31
#10 works for me smoothly.
#32
This is not specific to Taxonomy.
@GuyPaddock: any progress regarding #28?
#33
#10 did it for me. Thanks!
#34
I've found another solution that is working for me.
Here's how I did it:
1) created my own custom module
2) first identified my form ID (using the helpful info on drupal.org/node/651106)
3) implemented the code found on www.elvisblogs.org/drupal/solved-how-bypass-nodevalidate-hookformalter
Code looks like this:
function my_custom_form_alter(&$form, $form_state, $form_id) {if($form_id == 'name-or-id-of-your-form') {
$form['changed']['#default_value'] = time()<strong> + 300; // gives the user 5 minutes to modify this form</strong>
}
}
Now when I add a term and the form submits the whole node, there is a 5 minute time delay for when the user can save the form. It's an alternative way to deal with it (and certainly not perfect ~ but it works.)
I don't know if this would create issues elsewhere though.
What do you think?
PS: Hey Wim Leers, I think you've created about the only multiselect solution that feels and looks good. I wish I won the lottery to share with you. :)
#35
I ran into a bug with the above patch when used inside the Panels IPE (and specifically when used with the Ctools modal dialog). The issue is that the "Cancel" button added by Ctools inside the form wizard wasn't working correctly. After some debugging I found this was due to the form API getting confused between the form's main "Cancel" button and the one added here, and not knowing which was clicked.
Since "Cancel" is a pretty common button name, I think if this patch is going to add it to a whole bunch of forms like that it would make sense to give it a different machine name other than the standard 'op' which Drupal normally uses.
I don't have time right now to roll this into the above patch directly, but the code for it looks something like below (applied on top of the patch in #27):
--- a/hierarchical_select.module
+++ b/hierarchical_select.module
@@ -596,6 +596,11 @@ function _hs_process_render_create_new_item($element, $hierarchy) {
$element['hierarchical_select']['create_new_item']['cancel'] = array(
'#type' => 'button',
+ // Since "Cancel" is a common button value, we set the name property to
+ // something Drupal doesn't normally use, to prevent the form API from
+ // confusing this with other buttons on the form and choosing the wrong
+ // triggering element when the form is submitted.
+ '#name' => 'hs_select_cancel',
'#value' => t('Cancel'),
'#attributes' => array('class' => array('create-new-item-cancel')),
#36
Hi,
I have problem applying the patch #27... I've tried it on both stable and dev version of hierarchical_select.
#37
Hi,
I have problem applying the patch #27... I've tried it on both 7.x-3.0-alpha5 and 7.x-3.x-dev version of hierarchical_select.
Thx
#38
The patch works without problems with 7.x-3.0-alpha5+9-dev.
#39
Rerolled patch @ #27 against DEV and added Davids recommendations @ #35.
#40
The patch from #39 works only when the "Create" button is clicked for me, I still get the "... field is required." error when the Cancel button is clicked.
#41
The patch in #39 fixes the duplicate saving of the node when a new term is saved. However, if cancel is selected instead, the whole node is saved resulting in a duplicate when the node is saved.
#42
#12 solved the issue for me.