I use a custom module which makes heavy use of the Forms API to do mathematical calculations.

The form which you can see at http://linsenrechner.de/node/27 is rendered with the #states attribute. each line uses a container to display two fields. When these fields are filled, a new line should appear.
This works perfect, BEFORE the calculation button is pressed and the ajax request is done.
After this, the behaviour of the form changes: When two fields of a specific line are filled not only one new line appears. In this case, all lines, which are defined in the form, appear at the same time.

The author of the custom module, sukr_s (http://drupal.org/user/554988) wasn't able to exactly locate the bug, but believes it's in states.js

Here are the form arrays, which are used to create the form at http://linsenrechner.de/node/27

$form['container0'] = array(
   '#type'   => 'container',
   '#weight'        => -53,
); 

$form['container0']['markup0'] = array(
   '#weight'        => -52,
   '#markup' => "<div id='ocalc_header_33'></div>
                 <div id='ocalc_header_33'>$ocalc_sag_height</div>
                 <div id='ocalc_header_33'>$ocalc_zone</div>",
); 


$form['container0'][$wrapper]['sag0'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_sag_height." 0",
    '#title_display' => 'invisible',
    '#weight'        => -51,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#prefix'  => "<div class='form-item-sag0'>$ocalc_zone 0</div>",
    '#field_suffix'  => "mm",
  );

$form['container0'][$wrapper]['zone0'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_zone." 0",
    '#title_display' => 'invisible',
    '#weight'        => -50,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm",
  );

$form['container1'] = array(
   '#type'   => 'container',
   '#weight'        => -43,
   '#states' => array('visible' => array(
		':input[name=sag0]'  => array ('filled' => TRUE),
		':input[name=zone0]' => array ('filled' => TRUE),
    ),
  ),
); 


$form['container1'][$wrapper]['sag1'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_sag_height." 1",
    '#title_display' => 'invisible',
    '#weight'        => -42,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm", 
    '#prefix' => "<div class='form-item-sag1'>$ocalc_zone 1</div>",
  );
  
 $form['container1'][$wrapper]['zone1'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_zone." 1",
    '#title_display' => 'invisible',
    '#weight'        => -41,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm",                   
  );
 
$form['container2'] = array(
   '#type'   => 'container',
   '#weight'        => -33,
   '#states' => array('visible' => array(
		':input[name=sag0]'  => array ('filled' => TRUE),
		':input[name=zone0]' => array ('filled' => TRUE),
		':input[name=sag1]'  => array ('filled' => TRUE),
		':input[name=zone1]' => array ('filled' => TRUE),
    ),
  ),
); 


$form['container2'][$wrapper]['sag2'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_sag_height." 2",
    '#title_display' => 'invisible',
    '#weight'        => -32,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm", 
    '#prefix' => "<div class='form-item-sag1'>$ocalc_zone 2</div>",
  );
  
 $form['container2'][$wrapper]['zone2'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_zone." 2",
    '#title_display' => 'invisible',
    '#weight'        => -31,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm",                 
  );

 
$form['container3'] = array(
   '#type'   => 'container',
   '#weight'        => -23,
   '#states' => array('visible' => array(
		':input[name=sag0]'  => array ('filled' => TRUE),
		':input[name=zone0]' => array ('filled' => TRUE),
		':input[name=sag1]'  => array ('filled' => TRUE),
		':input[name=zone1]' => array ('filled' => TRUE),
		':input[name=sag2]'  => array ('filled' => TRUE),
		':input[name=zone2]' => array ('filled' => TRUE),
    ),
  ),
); 


$form['container3'][$wrapper]['sag3'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_sag_height." 3",
    '#title_display' => 'invisible',
    '#weight'        => -22,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm", 
    '#prefix' => "<div class='form-item-sag1'>$ocalc_zone 3</div>",
  );
  
 $form['container3'][$wrapper]['zone3'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_zone." 3",
    '#title_display' => 'invisible',
    '#weight'        => -21,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm",                 
  );

$form['container4'] = array(
   '#type'   => 'container',
   '#weight'        => -13,
   '#states' => array('visible' => array(
		':input[name=sag0]'  => array ('filled' => TRUE),
		':input[name=zone0]' => array ('filled' => TRUE),
		':input[name=sag1]'  => array ('filled' => TRUE),
		':input[name=zone1]' => array ('filled' => TRUE),
		':input[name=sag2]'  => array ('filled' => TRUE),
		':input[name=zone2]' => array ('filled' => TRUE),
		':input[name=sag3]'  => array ('filled' => TRUE),
		':input[name=zone3]' => array ('filled' => TRUE),
    ),
  ),
); 


$form['container4'][$wrapper]['sag4'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_sag_height." 4",
    '#title_display' => 'invisible',
    '#weight'        => -12,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm", 
    '#prefix' => "<div class='form-item-sag1'>$ocalc_zone 4</div>",
  );
  
 $form['container4'][$wrapper]['zone4'] = array(
    '#type'          => 'textfield',
    '#title'         => $ocalc_zone." 4",
    '#title_display' => 'invisible',
    '#weight'        => -11,
    '#maxlength'     => 4,
    '#size'          => 4,
    '#field_suffix'  => "mm",                   
  );
Files: 
CommentFileSizeAuthor
#60 drupal-states_after_ajax-1091852-60.patch3.2 KBkalistos
#57 drupal-states_after_ajax-1091852-57.patch3.54 KBron_s
#57 interdiff-1091852-39-57.txt1.12 KBron_s
#40 interdiff-1091852-33-39.txt999 bytesrooby
#40 drupal-states_after_ajax-1091852-39.patch3.15 KBrooby
PASSED: [[SimpleTest]]: [MySQL] 41,600 pass(es). View
#33 1091852-display-bug-when-using-states-with-ajax-request-33.patch3.09 KBjgullstr
PASSED: [[SimpleTest]]: [MySQL] 41,598 pass(es). View
#24 1091852-Display-Bug-when-using-states-with-Ajax-Request-24.patch1.92 KBhibersh
PASSED: [[SimpleTest]]: [MySQL] 41,278 pass(es). View
#18 states_bug.tar_.gz900 bytesandypost
#17 1091852-Display-Bug-when-using-states-with-Ajax-Request-16.patch1.77 KBsukr_s
PASSED: [[SimpleTest]]: [MySQL] 29,936 pass(es). View
#13 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-12.patch1.77 KBsukr_s
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-12.patch. View
#11 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-10-D7.patch1.77 KBsukr_s
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-10-D7.patch. Unable to apply patch. See the log in the details link for more information. View
#9 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-8-D7.patch1.78 KBsukr_s
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-8-D7.patch. Unable to apply patch. See the log in the details link for more information. View
#6 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-6-D7.patch2.16 KBsukr_s
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-6-D7.patch. Unable to apply patch. See the log in the details link for more information. View
#3 Fix for #states behaviour when using in combination with ajax-1091852-3.patch1.78 KBsukr_s
FAILED: [[SimpleTest]]: [MySQL] Fetch test file: failed to retrieve [Fix for #states behaviour when using in combination with ajax-1091852-3_0.patch] from [drupal.org]. View
#1 1091852-Fix for #states behaviour when using in combination with ajax-1-D.patch1.78 KBsukr_s
FAILED: [[SimpleTest]]: [MySQL] Fetch test file: failed to retrieve [1091852-Fix for #states behaviour when using in combination with ajax-1-D.patch] from [drupal.org]. View

Comments

sukr_s’s picture

Status: Active » Needs review
FileSize
1.78 KB
FAILED: [[SimpleTest]]: [MySQL] Fetch test file: failed to retrieve [1091852-Fix for #states behaviour when using in combination with ajax-1-D.patch] from [drupal.org]. View

Please review the patch to fix the above problem and needs to be integrated in to the main batch.

Status: Needs review » Needs work
sukr_s’s picture

Status: Needs work » Needs review
FileSize
1.78 KB
FAILED: [[SimpleTest]]: [MySQL] Fetch test file: failed to retrieve [Fix for #states behaviour when using in combination with ajax-1091852-3_0.patch] from [drupal.org]. View

trying again with the patch instruction from http://drupal.org/node/3060/git-instructions/7.x

Status: Needs review » Needs work
sukr_s’s picture

Status: Needs work » Active

Can someone help on how to create a patch with git.
i followed the instruction from http://drupal.org/node/3060/git-instructions/7.x and named the patch as
[description]-[issue-number]-[comment-number].patch (comment 3). it does not work
and in comment 2 used
http://drupal.org/node/1054616 and named the patch [issue-number]-[description]-[comment-number]-D.patch
and this too did not work.
which of the two instructions are correct or did i miss something completely?

sukr_s’s picture

Status: Active » Needs review
FileSize
2.16 KB
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-6-D7.patch. Unable to apply patch. See the log in the details link for more information. View

One more attempt...

danSamara’s picture

Status: Needs review » Reviewed & tested by the community

Same problem.
Thanks, patch work for me.

linclark’s picture

Status: Reviewed & tested by the community » Needs work

Nice work on getting the patch up. This didn't work for my issue, but I probably have a different issue in my module.

I'm marking it as needs work because there are some whitespace errors. I noticed this when I applied the patch because the command line returned this message: "3 lines add whitespace errors." If you use Dreditor, you'll be able to see the errors in pink.

sukr_s’s picture

Status: Needs work » Needs review
FileSize
1.78 KB
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-8-D7.patch. Unable to apply patch. See the log in the details link for more information. View

removed spaces

linclark’s picture

Status: Needs review » Needs work

Looks good except for one thing.

+++ b/misc/states.jsundefined
@@ -34,6 +30,33 @@ Drupal.behaviors.states = {
+ * Check needs to be performed if states object exists for a given
+ * selector and state combination. If this is not done, multiple states
+ * are created when used in combination with ajax. This results
+ * in wrong evaluation of states.   ¶

There is still a space at the end of this comment.

Powered by Dreditor.

sukr_s’s picture

Status: Needs work » Needs review
FileSize
1.77 KB
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-10-D7.patch. Unable to apply patch. See the log in the details link for more information. View

wondering how that escaped...

andypost’s picture

Version: 7.0 » 8.x-dev

Please make a patch against current 8-dev and use no D7 suffix to allow testbot run tests

EDIT Anybody can review this from performance side?

sukr_s’s picture

FileSize
1.77 KB
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch 1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-12.patch. View

uploading 8.x ported patch

Status: Needs review » Needs work
sukr_s’s picture

i pulled

git clone --branch 8.x http://git.drupal.org/project/drupal.git 

and created the patch, but it has failed. I tried with 8-dev & 8.x-dev, but got a warning that both 8-dev and 8.x-dev does not exist. pls advise on the branch to use for creating patch.

andypost’s picture

Status: Needs work » Needs review
FileSize
1.77 KB
PASSED: [[SimpleTest]]: [MySQL] 32,189 pass(es). View

Testbot cant get your patch because of '(' in filename

so please reroll with a simple name like 1091852-multiple-states.patch

# wget http://drupal.org/files/issues/1091852-Display-Bug-when-using-states-(Forms-API)-with-Ajax-Request-10-D7.patch
bash: syntax error near unexpected token `('
sukr_s’s picture

FileSize
1.77 KB
PASSED: [[SimpleTest]]: [MySQL] 29,936 pass(es). View

@andypost: Thanks for your tip.

rerolling patch with clean name.

andypost’s picture

FileSize
900 bytes

Linked this issue with original issue to get 2 review #557272: FAPI: JavaScript States system

Also a lot of thanx to @dannie-walker module that demonstrates this bug

rfay’s picture

Subscribe. Some time ago I created a general #states testing regimen at https://github.com/rfay/states_exercise . Last I looked at it a few things didn't look like they worked right at all, but I didn't pursue it.

wjaspers’s picture

sub.

Berdir’s picture

Status: Needs review » Needs work

I have a similar issue, but I'm actually replacing a number of elements which have #states attached.

Basically, there is a select and for each value, there is a checkboxes element which shows up for a option of that select. Based on yet another radios element, I'm replacing all checkboxes elements with another set of them (different values/labels). The reason for that is that a combined #states definition does not seem to work reliably, after clicking around it falls apart and shows both options or something like that.

Without this patch, all checkboxes elements show up initially but after changing the select, it works correctly. With this patch, this stops working completely.

The inline comments in the patch also need work, they shouldn't be longer than 80 characters, be real sentences with a dot at the end, start with an uppercase character and a space before.. e.g. "// This is a correct inline comment."

akamaus’s picture

As Bendir I ran into the problems with the patch attached to #11. Without it after the first ajax call my js handler attached to document to 'state:required' event starts being called about a dozen of times on each value change of controlling select box. With this patch applied to D7.14 the state system seems to be totally disabled, no reactions on select box changes seem to occur.

akamaus’s picture

Component: forms system » search.module

I made some further experiments. Looks like the patch #11 works on D7.14 if corrected a bit.

+    new states.Dependent({
+      element: $(selector),
+      state: states.State.sanitize(state),
+      dependees: settings.states[selector][state]
+    });

here I had to replace 'dependees' with 'constraints'.

hibersh’s picture

Version: 8.x-dev » 7.x-dev
Component: search.module » forms system
Status: Needs work » Needs review
FileSize
1.92 KB
PASSED: [[SimpleTest]]: [MySQL] 41,278 pass(es). View

patch against drupal 7.x

Atomox’s picture

Any plans to roll this into a D7 release?

This also works for our issues.

Dmitriy.trt’s picture

Status: Needs review » Needs work

Last patch fails in our case. States event handler don't get re-binded to the AJAX-loaded elements, so it's impossible for other elements to depend on their state.

amar.deokar’s picture

Last patch also not worked for me. I am doing same as mentioned in comment #26.

alexweber’s picture

Weirdest thing, #24 worked in Chrome but not in Firefox, no errors to speak of though...

vyvee’s picture

Weird for me... #24 doesn't work for me at all, even in Chrome.

gagarine’s picture

Status: Needs work » Reviewed & tested by the community

I tested the patch #24 on Chrome 35 and Firefox 30. It works and I don't see how it could fail. Perhaps it was a browser cache problem?

gagarine’s picture

Status: Reviewed & tested by the community » Needs work

I see, if you replace the element with AJAX the states are not applied to this element again.

I think was what committed in D8 don't works neither but this should be tested.

Not sure how to fix that.. Any idea?

jgullstr’s picture

The states are not initialized on AJAX-requests, as the initialization is blocked by states.Trigger by the code

    if (!this.element.data('trigger:' + this.state)) {
      this.initialize();
    }

The reason to this guard is stated in the code to be

Only call the trigger initializer when it wasn't yet attached to this element. Otherwise we'd end up with duplicate events.

I'll have to examine further why this is necessary and how to solve the problem.

I'm not sure adding a states.CreateState function that checks for duplicates is the optimal solution. Wouldn't adding a behavior.detach method, that removes all traces of removed states, be a cleaner solution?

jgullstr’s picture

Status: Needs work » Needs review
FileSize
3.09 KB
PASSED: [[SimpleTest]]: [MySQL] 41,593 pass(es). View
3.09 KB
PASSED: [[SimpleTest]]: [MySQL] 41,601 pass(es). View
3.09 KB
PASSED: [[SimpleTest]]: [MySQL] 41,598 pass(es). View

Here's a patch that tries to solve the lack of initial states application after AJAX requests. In order to make it work without messing up the API (ie custom state callback function implementation), I have repurposed the dependee elements "triggered" data attribute. Instead of containing a flag whether or not the trigger has been initialized, it now contains the current value of that state for that trigger, and loads initial value from that when behaviors are attached.

This patch does not attempt to solve the issue with cleaning up orphaned dependants.

jgullstr’s picture

Oops, looks like a went a little trigger happy on the upload button.

rooby’s picture

Thanks for the patch, this is a very frustrating bug for me at the moment.

I have a had a quick try and it seems to work in most cases but I've found a case where it is still a problem.

I have an addressfield where one of the fields in it is shown/hidden with states based on a set of radios outside the addressfield.

Whenever I select a country and the addressfield ajax runs, my states controlled field appears, regardless of which radio button is selected.

It is possible that this may be some other unrelated issue so I will investigate further.

rooby’s picture

Strange. I've done nothing since my last test but now it is working even for the addressfield case.

I will report back if it stops working again.

rooby’s picture

Not sure if it's just me but I'm having problems when I have ajax that loads new fields that weren't originally on the form or removes fields from the form that have states.

Initially I was getting these errors:

TypeError: this.element.data(...) is null

for line 319 of states.js:

if (!this.element.data().hasOwnProperty('trigger:' + this.state)) {

Just to see what would happen (since I don't yet have much knowledge of how it all works) I changed it to:

        if ($dependee.data() !== null && $dependee.data().hasOwnProperty('trigger:' + state.name)) {

and it fixed the error, after which states are working for fields that were always on the form but not for ones that were added via ajax.

(this is unrelated to my previous addressfield ramblings.)

rooby’s picture

Status: Needs review » Needs work

It turned out I had some other bugs that were causing states to not work on new form elements added by my ajax, however the "TypeError: this.element.data(...) is null" bug remains.

I now have this working successfully with my form, which is a pretty good use case of a large drupal commerce checkout form that has a complex set of visibility and required field states, a lot of form alters, custom ajax and custom javascript.

I will roll an updated patch with my fix for the is null bug.

rooby’s picture

Component: forms system » javascript
Status: Needs work » Needs review
FileSize
3.15 KB
PASSED: [[SimpleTest]]: [MySQL] 41,600 pass(es). View
999 bytes

Updated patch.

I assume this is also going to need new tests.

[edit] Damn, I forgot to re-check the comment number before I posted.

fbrier’s picture

I am having a problem with a Javascript multi-page FAPI form when wrapped in ctools so as to bring up a modal dialog. The page advance just hides fieldset(s) using the #states triggered by a hidden field. It works before bringing up the modal dialog, but after bringing up and dismissing the modal dialog, the HTML field the selector specifies changes, but the #states do not hide/show their fieldsets(s). trigger() is explicitly being called on the tag using the selector, plus it works before the modal is opened/closed.

Initially my problem sounded like this bug #1592688: #states can cause the form "required" mark to appear more than once on the same element. Feeling in luck since the new 7.40 release was rolled out yesterday, I upgraded. Unfortunately, it did not fix it. So I cloned the git repo, branched 7.40, applied the above drupal-states_after_ajax-1091852-39.patch, and copied states.js up to the server. No change in behavior. Now David_Rothstein patch was also to the states.js file, but obviously to 7.39. Would this make a difference? The patch appeared to apply cleanly. Thank you.

hestenet’s picture

moonray’s picture

A similar (or the same) problem seems to be happening with D8 as well. I'll test the patch (and adapt it where need it) on D8 and report back.

moonray’s picture

This is definitely an issue in D8.
The D7 fix (manually applied) doesn't work for me in D8 and would need to be tweaked/fixed.

moonray’s picture

(removed duplicate post)

vilepickle’s picture

The patch in #40 is working for me.

vilepickle’s picture

Status: Needs review » Reviewed & tested by the community
stefan.r’s picture

Ideally this should be fixed in D8 first (where I believe we can also now add tests for this).

sumthief’s picture

Confirm that patch from #40 works perfect for 7.50 on my current project.

stefan.r’s picture

Version: 7.x-dev » 8.1.x-dev
Assigned: Unassigned » nod_
Status: Reviewed & tested by the community » Active

This also applies to Drupal 8 per #44, so assigning this to 8.x per the backport policy.

Possibly we already have an existing issue for this?

stefan.r’s picture

Assigned: nod_ » Unassigned
David_Rothstein’s picture

Issue tags: +needs backport to D7
nbouhid’s picture

I created a module that provides a temporary fix for those that does not want to patch the core and wait until this fix gets merged: https://www.drupal.org/sandbox/nbouhid/2776183 (D7)

We're using it and it works fine.

odegard’s picture

Thanks nbouhid! Working as advertised. I've got a doublefield showing both fields if different field A is X and only one field if A is Y. The old states.js showed both fields even when A is Y after adding another item. The new states.js fixes this.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

ron_s’s picture

For anyone using patch #40 or the sandbox project created by @nbouhid for Drupal 7, there are two critical errors. CKEditor fails to load every time in a ctools popup window (such as for Panels) due to these lines of code:

if ($dependee.data() !== null && $dependee.data().hasOwnProperty('trigger:' + state.name)) {
if (this.element.data() !== null && !this.element.data().hasOwnProperty('trigger:' + this.state)) {

The error generated by the console is as follows, pointed at $dependee.data() and !this.element.data(), respectively:

Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined

It does not matter if using the CKEditor or WYSIWYG modules, it fails in both cases. Rolling back the patch fixes the problem.

ron_s’s picture

Attached is an updated patch for review that checks if the objects are defined. Thanks.

Tim Bozeman’s picture

Status: Active » Needs review

#57 is a good addition!

I was getting the AJAX + states display bug and #40 fixed it, but I was getting Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined which was fixed by #57.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

kalistos’s picture

Thanks #57 helped me, but it's on Drupal 8.2, so I have updated it for Drupal 8.3.

ron_s’s picture

@kalistos, patch #57 is not Drupal 8.2. It is for Drupal 7.