/**
  * Action to go to the previous type of action for the provided node
  * @param \ride\web\cms\Cms $cms
  * @param \ride\web\cms\controller\backend\action\node\NodeActionManager $nodeActionManager
  * @param string $locale
  * @param string $site
  * @param string $revision
  * @param string $node
  * @return null
  */
 public function defaultAction(Cms $cms, NodeActionManager $nodeActionManager, $locale, $site, $revision, $node)
 {
     if (!$cms->resolveNode($site, $revision, $node)) {
         return;
     }
     $nodeType = $cms->getNodeType($node);
     $urlVars = array('site' => $node->getRootNodeId(), 'revision' => $node->getRevision(), 'node' => $node->getId(), 'locale' => $locale);
     $redirectUrl = null;
     $action = $cms->getLastAction(ContentNodeAction::NAME);
     if ($action == 'edit') {
         $redirectUrl = $this->getUrl($nodeType->getRouteEdit(), $urlVars);
     } else {
         $nodeAction = $nodeActionManager->getNodeAction($action);
         if ($nodeAction->isAvailableForNode($node)) {
             $redirectUrl = $this->getUrl($nodeAction->getRoute(), $urlVars);
         } else {
             $redirectUrl = $this->getUrl($nodeType->getRouteEdit(), $urlVars);
         }
     }
     $referer = $this->request->getQueryParameter('referer');
     if ($referer) {
         $referer = '?referer=' . urlencode($referer);
     }
     $this->response->setRedirect($redirectUrl . $referer);
 }