diff --git a/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js b/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js index 5ab7e07ee..80bf1bea4 100644 --- a/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js +++ b/modules/backend/behaviors/relationcontroller/assets/js/october.relation.js @@ -59,6 +59,15 @@ }) } + /* + * This function is called every time a record is created, added, removed + * or deleted using the relation widget. It triggers the change.oc.formwidget + * event to notify other elements on the page about the changed form state. + */ + this.changed = function(relationId, event) { + $('[data-field-name="' + relationId + '"]').trigger('change.oc.formwidget', {event: event}); + } + /* * This function transfers the supplied variables as hidden form inputs, * to any popup that is spawned within the supplied container. The spawned diff --git a/modules/backend/behaviors/relationcontroller/partials/_button_delete.htm b/modules/backend/behaviors/relationcontroller/partials/_button_delete.htm index fc7420b7c..5e1e76268 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_button_delete.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_button_delete.htm @@ -3,6 +3,7 @@ class="btn btn-sm btn-secondary oc-icon-trash-o" data-request="onRelationButtonDelete" data-request-confirm="" + data-request-success="$.oc.relationBehavior.changed('vars['relationField']) ?>', 'deleted')" data-stripe-load-indicator> @@ -15,6 +16,7 @@ disabled="disabled" data-request="onRelationButtonDelete" data-request-confirm="" + data-request-success="$.oc.relationBehavior.changed('vars['relationField']) ?>', 'deleted')" data-trigger-action="enable" data-trigger="#relationGetId('view') ?> .control-list input[type=checkbox]" data-trigger-condition="checked" diff --git a/modules/backend/behaviors/relationcontroller/partials/_button_remove.htm b/modules/backend/behaviors/relationcontroller/partials/_button_remove.htm index 4c1e37771..b4f647641 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_button_remove.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_button_remove.htm @@ -2,6 +2,7 @@ @@ -13,6 +14,7 @@ })" disabled="disabled" data-request="onRelationButtonRemove" + data-request-success="$.oc.relationBehavior.changed('vars['relationField']) ?>', 'removed')" data-trigger-action="enable" data-trigger="#relationGetId('view') ?> .control-list input[type=checkbox]" data-trigger-condition="checked" diff --git a/modules/backend/behaviors/relationcontroller/partials/_button_unlink.htm b/modules/backend/behaviors/relationcontroller/partials/_button_unlink.htm index ca81b0f71..cfbec72fb 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_button_unlink.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_button_unlink.htm @@ -2,6 +2,7 @@ href="javascript:;" class="btn btn-sm btn-secondary oc-icon-unlink" data-request="onRelationButtonUnlink" + data-request-success="$.oc.relationBehavior.changed('vars['relationField']) ?>', 'removed')" data-request-confirm="" data-stripe-load-indicator> diff --git a/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm b/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm index da2e6959a..7ad9806c8 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm @@ -47,7 +47,11 @@ - true, 'sessionKey' => $newSessionKey]) ?> + true, + 'data-request-success' => "$.oc.relationBehavior.changed('" . e($this->vars['relationField']) . "', 'created')", + 'sessionKey' => $newSessionKey + ]) ?> diff --git a/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm b/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm index 865c82dee..49e71ddbb 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm @@ -21,6 +21,7 @@ class="btn btn-primary" data-request="onRelationManageAdd" data-dismiss="popup" + data-request-success="$.oc.relationBehavior.changed('vars['relationField']) ?>', 'added')" data-stripe-load-indicator>