private static BreadcrumbList standardBreadcrumbs(Node node, Input input, Extractor extractor) { BreadcrumbList bc = new BreadcrumbList(); bc.addCrumb("System", controllers.routes.SystemController.index(0)); bc.addCrumb("Nodes", controllers.routes.NodesController.nodes()); bc.addCrumb(node.getShortNodeId(), controllers.routes.NodesController.node(node.getNodeId())); bc.addCrumb("Input: " + input.getTitle(), null); bc.addCrumb( "Extractors", controllers.routes.ExtractorsController.manage(node.getNodeId(), input.getId())); if (extractor != null) { bc.addCrumb("Extractor: " + extractor.getTitle(), null); } return bc; }
public Result editExtractor(String nodeId, String inputId, String extractorId) { if (!Permissions.isPermitted(RestPermissions.INPUTS_EDIT, inputId)) { return redirect(routes.StartpageController.redirect()); } try { final Node node = nodeService.loadNode(nodeId); final Input input = node.getInput(inputId); final Extractor extractor = extractorService.load(node, input, extractorId); final String sourceField = extractor.getSourceField(); String example; try { final MessageResult exampleMessage = input.getRecentlyReceivedMessage(nodeId); example = exampleMessage.getFields().get(sourceField).toString(); } catch (Exception e) { example = null; } return ok( views.html.system.inputs.extractors.edit_extractor.render( currentUser(), standardBreadcrumbs(node, input, extractor), node, input, extractor, example)); } catch (IOException e) { return status(500, views.html.errors.error.render(ApiClient.ERROR_MSG_IO, e, request())); } catch (APIException e) { String message = "Could not fetch system information. We expected HTTP 200, but got a HTTP " + e.getHttpCode() + "."; return status(500, views.html.errors.error.render(message, e, request())); } catch (NodeService.NodeNotFoundException e) { return status( 404, views.html.errors.error.render(ApiClient.ERROR_MSG_NODE_NOT_FOUND, e, request())); } }