/** * Claim-tasks action. * * @param redirector unused. * @param resolver unused. * @param objectModel Cocoon's object model. * @param source unused. * @param parameters unused. * @return null. * @throws java.lang.Exception passed through. */ @Override public Map act( Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters parameters) throws Exception { Request request = ObjectModelHelper.getRequest(objectModel); Context context = ContextUtil.obtainContext(objectModel); // Or the user selected a checkbox full of workflow IDs String[] workflowIDs = request.getParameterValues("workflowID"); if (workflowIDs != null) { for (String workflowID : workflowIDs) { BasicWorkflowItem workflowItem = basicWorkflowItemService.find(context, Integer.valueOf(workflowID)); int state = workflowItem.getState(); // Only unclaim tasks that are already claimed. if (state == BasicWorkflowServiceImpl.WFSTATE_STEP1POOL || state == BasicWorkflowServiceImpl.WFSTATE_STEP2POOL || state == BasicWorkflowServiceImpl.WFSTATE_STEP3POOL) { basicWorkflowService.claim(context, workflowItem, context.getCurrentUser()); } } } return null; }
private Map<String, String[]> createParametersMap(Request request) { Map<String, String[]> result = new HashMap<String, String[]>(); Enumeration parameterNames = request.getParameterNames(); while (parameterNames.hasMoreElements()) { String paramName = (String) parameterNames.nextElement(); result.put(paramName, request.getParameterValues(paramName)); } return result; }
public void readFromRequest(FormContext formContext) { // TODO: crawl open nodes, calling their widget's readFromRequest Request req = formContext.getRequest(); String paramName = getRequestParameterName(); // --------------------------------------------------------------------- // Handle node selection using checkboxes named <id>$select // --------------------------------------------------------------------- String[] selectValues = req.getParameterValues(paramName + ":select"); if (selectValues != null) { // Create the set of paths given by the request Set newSelection = new HashSet(); for (int i = 0; i < selectValues.length; i++) { newSelection.add(TreePath.valueOf(selectValues[i])); } // Check if all visible selections are in the new selection TreePath[] currentSelection = (TreePath[]) this.selectedPaths.toArray(new TreePath[this.selectedPaths.size()]); for (int i = 0; i < currentSelection.length; i++) { TreePath p = currentSelection[i]; if (!newSelection.contains(p) && isVisible(p)) { removeSelectionPath(p); } } // Now add the currently selected items (may be selected already) Iterator iter = newSelection.iterator(); while (iter.hasNext()) { addSelectionPath((TreePath) iter.next()); } } // --------------------------------------------------------------------- // Handle tree actions: // - action is in <name>$action // - path is in <name>$path // --------------------------------------------------------------------- String action = req.getParameter(paramName + ":action"); if (action == null || action.length() == 0) { // Nothing more to do here return; } getForm().setSubmitWidget(this); String pathValue = req.getParameter(paramName + ":path"); if (pathValue == null || pathValue.length() == 0) { // this.treeDef.getLogger().warn("No tree path given"); return; } // Parse the path TreePath path = TreePath.valueOf(pathValue); if ("expand".equals(action)) { this.expandPath(path); } else if ("collapse".equals(action)) { this.collapsePath(path); } else if ("toggle-collapse".equals(action)) { if (this.isExpanded(path)) { this.collapsePath(path); } else { this.expandPath(path); } } else if ("select".equals(action)) { this.addSelectionPath(path); } else if ("unselect".equals(action)) { this.removeSelectionPath(path); } else if ("toggle-select".equals(action)) { if (this.isPathSelected(path)) { this.removeSelectionPath(path); } else { this.addSelectionPath(path); } } else { // Unknown action // this.treeDef.getLogger().warn("Unknown action " + action); } }
public String[] getParameterFacetQueries() { Request request = ObjectModelHelper.getRequest(objectModel); return request.getParameterValues("fq") != null ? request.getParameterValues("fq") : new String[0]; }
@Override public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException { Request request = ObjectModelHelper.getRequest(objectModel); DSpaceObject dso = HandleUtil.obtainHandle(objectModel); // Set up the major variables // Collection collection = (Collection) dso; // Build the collection viewer division. // Make sure we get our results queryResults = getQueryResponse(dso); if (this.queryResults != null) { Map<String, List<DiscoverResult.FacetResult>> facetFields = this.queryResults.getFacetResults(); if (facetFields == null) { facetFields = new LinkedHashMap<String, List<DiscoverResult.FacetResult>>(); } // facetFields.addAll(this.queryResults.getFacetDates()); if (facetFields.size() > 0) { String facetField = String.valueOf(facetFields.keySet().toArray(new String[facetFields.size()])[0]); java.util.List<DiscoverResult.FacetResult> values = facetFields.get(facetField); if (values != null && 0 < values.size()) { Division results = body.addDivision("browse-by-" + facetField + "-results", "primary"); results.setHead( message( "xmlui.ArtifactBrowser.AbstractSearch.type_" + request.getParameter(FACET_FIELD) + "_browse")); // Find our faceting offset int offSet = queryArgs.getFacetOffset(); if (offSet == -1) { offSet = 0; } // Only show the nextpageurl if we have at least one result following our current results String nextPageUrl = null; if (values.size() == (DEFAULT_PAGE_SIZE + 1)) { nextPageUrl = getNextPageURL(request); } results.setSimplePagination( (int) queryResults.getDspaceObjects().size(), offSet + 1, (offSet + (values.size() - 1)), getPreviousPageURL(request), nextPageUrl); Table singleTable = results.addTable( "browse-by-" + facetField + "-results", (int) (queryResults.getDspaceObjects().size() + 1), 1); List<String> filterQueries = new ArrayList<String>(); if (request.getParameterValues("fq") != null) { filterQueries = Arrays.asList(request.getParameterValues("fq")); } for (int i = 0; i < values.size(); i++) { DiscoverResult.FacetResult value = values.get(i); String displayedValue = value.getDisplayedValue(); String filterQuery = value.getAsFilterQuery(); // if(field.getGap() != null){ // //We have a date get the year so we can display it // DateFormat simpleDateformat = new // SimpleDateFormat("yyyy"); // displayedValue = // simpleDateformat.format(SolrServiceImpl.toDate(displayedValue)); // filterQuery = // ClientUtils.escapeQueryChars(value.getFacetField().getName()) + ":" + displayedValue // + "*"; // } Cell cell = singleTable.addRow().addCell(); // No use in selecting the same filter twice if (filterQueries.contains(filterQuery)) { cell.addContent(displayedValue + " (" + value.getCount() + ")"); } else { cell.addXref( contextPath + (dso == null ? "" : "/handle/" + dso.getHandle()) + "/discover?" + "&fq=" + URLEncoder.encode(filterQuery, "UTF-8") + (request.getQueryString() != null ? "&" + request.getQueryString() : ""), displayedValue + " (" + value.getCount() + ")"); } } } } } // DSpaceObject dso = HandleUtil.obtainHandle(objectModel); /* if (dso != null) { if (dso instanceof Collection) { browseContext.addItem().addXref(contextPath + "/discovery/?q=search.resourcetype%3A2+AND+location%3Al" + dso.getID(), T_head_this_collection ); } if (dso instanceof Community) { browseContext.addItem().addXref(contextPath + "/discovery/?q=search.resourcetype%3A2+AND+location%3Am" + dso.getID(), T_head_this_community ); } } browseGlobal.addItem().addXref(contextPath + "/discovery/?q=search.resourcetype%3A2", T_head_all_of_dspace ); */ }