Create AJAX modal form: using Dispatcher or Router

I am writing a plugin, which allows me to add a link to a submission page in the workflow. This link would call up a Modal, which has to be loaded on the fly.

The link is set, and a modal does come up, but I keep getting a 404 error, and an alert with repsonse or AJAX format is incorrect.

I have gone through a number of examples: some use dispatcher, some use router, but in the end whatever I am doing is not working.

Once I get this going, I can finish the plugin, so any help is more than appreciated!

My code:

handler to load up the TPL file
function callbackLoadHandler ($hookName, $args) {
if ($args[0] === “workflow” && $args[1] === “fetch”) {
$args[0] = “plugins.generic.changejournal.modals.ChangeJournalForm”;
import($args[0]);
$testing = new ChangeJournalForm(6, null, $this->getTemplatePath().‘ChangeJournalForm.tpl’);
$request = Application::getRequest();
$testing->fetch($request);
return true;
}
return false;
}

To construct the link:
function __construct($request, $image = ‘information’) {
// Instantiate the modal.
$dispatcher = $request->getDispatcher();
$router = $request->getRouter();
import(‘lib.pkp.classes.linkAction.request.AjaxModal’);

	$actionArgs = array();

	$modal = new AjaxModal(
  
	$dispatcher->url(
			$request, ROUTE_COMPONENT, null,
			'plugins.generic.changejournal.ChangeJournalHandler',
			'fetch'
		),
		__('changeJournal.modalTitle'),
		'modal_more_info'
	);

	// Configure the link action.
	$toolTip = ($image == 'completed') ? __('grid.action.galleyInIssueEntry') : null;
	parent::__construct('issueEntry', $modal, __('submission.issueEntry'), $image, $toolTip);
}

}

Using this, I get a link:
http://mmsjournals.org/index.php/test/$$$call$$$/plugins/generic/changejournal/change-journal/fetch

Why does the link become hyphenated?

Of course, I get a page not found.