/** * @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); }