Ah, that may well be the issue.
We set this.options.popupform to the ID of the form you select in the "popup form'' menu in the join element options, line 1557 of the main databasejoin.php code, in elementjavaScriptOpts():
PHP:
$popupform = (int)$params->get('databasejoin_popupform');
... which is what get passed in on the options array when the join's JS object is created at page load.
But then in the main list view.html.php that builds the popup for the list selection, we're setting ...
PHP:
$item = $model->getTable();
...
PHP:
$this->form = new stdClass();
$this->form->id = $item->id;
And in the 'dbjoinselect' template, the json.formid is set as the id being passed in on the object creation ...
PHP:
$script = "head.ready(function() {
var trs = new TableRowSelect('".JRequest::getVar('triggerElement') . "', ".(int)$this->form->id.");
});
";
So it's kind of a double problem. First issue is that we're using the form id for popupform from what is really an unrelated feature, i.e. the selection for the "popup form" (for adding new entries). Compounded by the fact that we then use the list ID, not the form associated with the list, for the returned json.formid.
A short term fix would probably be to change ...
PHP:
$this->form = new stdClass();
$this->form->id = $item->id;
... to ...
PHP:
$this->form = new stdClass();
$this->form->id = $item->form_id;
... which should work, as long as the "popup form" you have selected on the join settings is for the same copy of the list that gets popped up.
I think this change would be "safe", as far as I can tell $this->form->id is only used in that one 'dbjoinselect' template, so it shouldn't have any untoward side effects.
So ... can you test this out for me? Around line 343 in ./components/com_fabrik/views/list/view.html.php, make the change I suggested above, from $list->id to $list->form_id.
And let me know ...
-- hugh