/**
  * @copydoc Plugin::manage()
  */
 function manage($args, $request)
 {
     $user = $request->getUser();
     $router = $request->getRouter();
     $context = $router->getContext($request);
     $form = $this->instantiateSettingsForm($context->getId());
     $notificationManager = new NotificationManager();
     switch ($request->getUserVar('verb')) {
         case 'save':
             $form->readInputData();
             if ($form->validate()) {
                 $form->execute();
                 $notificationManager->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS);
                 return new JSONMessage(true);
             }
             return new JSONMessage(true, $form->fetch($request));
         case 'clearPubIds':
             if (!$request->checkCSRF()) {
                 return new JSONMessage(false);
             }
             $contextDao = Application::getContextDAO();
             $contextDao->deleteAllPubIds($context->getId(), $this->getPubIdType());
             $notificationManager->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS);
             return new JSONMessage(true);
         default:
             $form->initData();
             return new JSONMessage(true, $form->fetch($request));
     }
     return parent::manage($args, $request);
 }