📄 mydspaceservlet.java
字号:
/** * Process input from preview task page * * @param context * current context * @param request * current servlet request object * @param response * current servlet response object */ private void processPreviewTask(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { String buttonPressed = UIUtil.getSubmitButton(request, "submit_cancel"); // Get workflow item WorkflowItem workflowItem; try { int wfID = Integer.parseInt(request.getParameter("workflow_id")); workflowItem = WorkflowItem.find(context, wfID); } catch (NumberFormatException nfe) { workflowItem = null; } if (workflowItem == null) { log.warn(LogManager.getHeader(context, "integrity_error", UIUtil .getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); return; } if (buttonPressed.equals("submit_start")) { // User clicked "start" button to claim the task WorkflowManager.claim(context, workflowItem, context .getCurrentUser()); // Display "perform task" page request.setAttribute("workflow.item", workflowItem); JSPManager.showJSP(request, response, "/mydspace/perform-task.jsp"); context.complete(); } else { // Return them to main page showMainPage(context, request, response); } } /** * Process input from perform task page * * @param context * current context * @param request * current servlet request object * @param response * current servlet response object */ private void processPerformTask(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { String buttonPressed = UIUtil.getSubmitButton(request, "submit_cancel"); // Get workflow item WorkflowItem workflowItem; try { int wfID = Integer.parseInt(request.getParameter("workflow_id")); workflowItem = WorkflowItem.find(context, wfID); } catch (NumberFormatException nfe) { workflowItem = null; } if (workflowItem == null) { log.warn(LogManager.getHeader(context, "integrity_error", UIUtil .getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); return; } if (buttonPressed.equals("submit_approve")) { Item item = workflowItem.getItem(); // Advance the item along the workflow WorkflowManager.advance(context, workflowItem, context .getCurrentUser()); // FIXME: This should be a return value from advance() // See if that gave the item a Handle. If it did, // the item made it into the archive, so we // should display a suitable page. String handle = HandleManager.findHandle(context, item); if (handle != null) { String displayHandle = HandleManager.getCanonicalForm(handle); request.setAttribute("handle", displayHandle); JSPManager.showJSP(request, response, "/mydspace/in-archive.jsp"); } else { JSPManager.showJSP(request, response, "/mydspace/task-complete.jsp"); } context.complete(); } else if (buttonPressed.equals("submit_reject")) { // Submission rejected. Ask the user for a reason log.info(LogManager.getHeader(context, "get_reject_reason", "workflow_id=" + workflowItem.getID() + ",item_id=" + workflowItem.getItem().getID())); request.setAttribute("workflow.item", workflowItem); JSPManager .showJSP(request, response, "/mydspace/reject-reason.jsp"); } else if (buttonPressed.equals("submit_edit")) { // FIXME: Check auth log.info(LogManager.getHeader(context, "edit_workflow_item", "workflow_id=" + workflowItem.getID() + ",item_id=" + workflowItem.getItem().getID())); // Forward control to the submission interface // with the relevant item response.sendRedirect(response.encodeRedirectURL(request .getContextPath() + "/submit?workflow=" + workflowItem.getID())); } else if (buttonPressed.equals("submit_pool")) { // Return task to pool WorkflowManager.unclaim(context, workflowItem, context .getCurrentUser()); showMainPage(context, request, response); context.complete(); } else { // Cancelled. The user hasn't taken the task. // Just return to the main My DSpace page. showMainPage(context, request, response); } } /** * Process input from "reason for rejection" page * * @param context * current context * @param request * current servlet request object * @param response * current servlet response object */ private void processRejectReason(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { String buttonPressed = UIUtil.getSubmitButton(request, "submit_cancel"); // Get workflow item WorkflowItem workflowItem; try { int wfID = Integer.parseInt(request.getParameter("workflow_id")); workflowItem = WorkflowItem.find(context, wfID); } catch (NumberFormatException nfe) { workflowItem = null; } if (workflowItem == null) { log.warn(LogManager.getHeader(context, "integrity_error", UIUtil .getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); return; } if (buttonPressed.equals("submit_send")) { String reason = request.getParameter("reason"); WorkspaceItem wsi = WorkflowManager.reject(context, workflowItem, context.getCurrentUser(), reason); // Set the "stage_reached" column on the returned workspace item // to the "verify" stage wsi.setStageReached(SubmitServlet.REVIEW_SUBMISSION); wsi.update(); JSPManager .showJSP(request, response, "/mydspace/task-complete.jsp"); context.complete(); } else { request.setAttribute("workflow.item", workflowItem); JSPManager.showJSP(request, response, "/mydspace/perform-task.jsp"); } } // **************************************************************** // **************************************************************** // METHODS FOR SHOWING FORMS // **************************************************************** // **************************************************************** /** * Show the main My DSpace page * * @param context * current context * @param request * current servlet request object * @param response * current servlet response object */ private void showMainPage(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { log.info(LogManager.getHeader(context, "view_mydspace", "")); // FIXME: WorkflowManager should return arrays List ownedList = WorkflowManager.getOwnedTasks(context, context .getCurrentUser()); WorkflowItem[] owned = new WorkflowItem[ownedList.size()]; owned = (WorkflowItem[]) ownedList.toArray(owned); // Pooled workflow items List pooledList = WorkflowManager.getPooledTasks(context, context .getCurrentUser()); WorkflowItem[] pooled = new WorkflowItem[pooledList.size()]; pooled = (WorkflowItem[]) pooledList.toArray(pooled); // User's WorkflowItems WorkflowItem[] workflowItems = WorkflowItem.findByEPerson(context, context.getCurrentUser()); // User's PersonalWorkspace WorkspaceItem[] workspaceItems = WorkspaceItem.findByEPerson(context, context.getCurrentUser()); // User's authorization groups Group[] memberships = context.getCurrentUser().getGroupMemberships(); SupervisedItem[] supervisedItems = SupervisedItem.findbyEPerson( context, context.getCurrentUser()); // Set attributes request.setAttribute("mydspace.user", context.getCurrentUser()); request.setAttribute("workspace.items", workspaceItems); request.setAttribute("workflow.items", workflowItems); request.setAttribute("workflow.owned", owned); request.setAttribute("workflow.pooled", pooled); request.setAttribute("group.memberships", memberships); request.setAttribute("supervised.items", supervisedItems); // Forward to main mydspace page JSPManager.showJSP(request, response, "/mydspace/main.jsp"); } /** * Show the user's previous submissions. * * @param context * current context * @param request * current servlet request object * @param response * current servlet response object */ private void showPreviousSubmissions(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { ItemIterator subs = Item.findBySubmitter(context, context .getCurrentUser()); // Turn the iterator into a list List subList = new LinkedList(); while (subs.hasNext()) { subList.add(subs.next()); } Item[] items = new Item[subList.size()]; for (int i = 0; i < subList.size(); i++) { items[i] = (Item) subList.get(i); } log.info(LogManager.getHeader(context, "view_own_submissions", "count=" + items.length)); request.setAttribute("user", context.getCurrentUser()); request.setAttribute("items", items); JSPManager.showJSP(request, response, "/mydspace/own-submissions.jsp"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -