/** Display the login form. */ public void addBody(Body body) throws SQLException, SAXException, WingException { // Check if the user has previously attempted to login. Request request = ObjectModelHelper.getRequest(objectModel); HttpSession session = request.getSession(); String previousUserName = request.getParameter("username"); // Get any message parameters String header = (String) session.getAttribute(AuthenticationUtil.REQUEST_INTERRUPTED_HEADER); String message = (String) session.getAttribute(AuthenticationUtil.REQUEST_INTERRUPTED_MESSAGE); String characters = (String) session.getAttribute(AuthenticationUtil.REQUEST_INTERRUPTED_CHARACTERS); if (header != null || message != null || characters != null) { Division reason = body.addDivision("login-reason"); if (header != null) { reason.setHead(message(header)); } else { // Always have a head. reason.setHead("Authentication Required"); } if (message != null) { reason.addPara(message(message)); } if (characters != null) { reason.addPara(characters); } } Division login = body.addInteractiveDivision( "login", contextPath + "/ldap-login", Division.METHOD_POST, "primary"); login.setHead(T_head1); List list = login.addList("ldap-login", List.TYPE_FORM); Text email = list.addItem().addText("username"); email.setRequired(); email.setAutofocus("autofocus"); email.setLabel(T_userName); if (previousUserName != null) { email.setValue(previousUserName); email.addError(T_error_bad_login); } Item item = list.addItem(); Password password = item.addPassword("ldap_password"); password.setRequired(); password.setLabel(T_password); list.addLabel(); Item submit = list.addItem("login-in", null); submit.addButton("submit").setValue(T_submit); }
@Override public void addBody(Body body) throws SAXException, WingException, SQLException, IOException, AuthorizeException { Item item = workflowItem.getItem(); Collection collection = workflowItem.getCollection(); Request request = ObjectModelHelper.getRequest(objectModel); String actionURL = contextPath + "/handle/" + collection.getHandle() + "/xmlworkflow"; // Retrieve our pagenumber int page = ReviewAction.MAIN_PAGE; if (request.getAttribute("page") != null) { page = Integer.parseInt(request.getAttribute("page").toString()); } // Generate a from asking the user two questions: multiple // titles & published before. Division div = body.addInteractiveDivision( "perform-task", actionURL, Division.METHOD_POST, "primary workflow"); div.setHead(T_HEAD); addWorkflowItemInformation(div, item, request); switch (page) { case org.dspace.xmlworkflow.state.actions.processingaction.AcceptEditRejectAction.MAIN_PAGE: renderMainPage(div); break; case ReviewAction.REJECT_PAGE: renderRejectPage(div); break; } div.addHidden("submission-continue").setValue(knot.getId()); }
public void addBody(Body body) throws WingException, SQLException, AuthorizeException { // Get all our parameters MetadataSchema[] schemas = MetadataSchema.findAll(context); String idsString = parameters.getParameter("fieldIDs", null); ArrayList<MetadataField> fields = new ArrayList<MetadataField>(); for (String id : idsString.split(",")) { MetadataField field = MetadataField.find(context, Integer.valueOf(id)); fields.add(field); } // DIVISION: metadata-field-move Division moved = body.addInteractiveDivision( "metadata-field-move", contextPath + "/admin/metadata-registry", Division.METHOD_POST, "primary administrative metadata-registry"); moved.setHead(T_head1); moved.addPara(T_para1); Table table = moved.addTable("metadata-field-move", fields.size() + 1, 3); Row header = table.addRow(Row.ROLE_HEADER); header.addCell().addContent(T_column1); header.addCell().addContent(T_column2); header.addCell().addContent(T_column3); for (MetadataField field : fields) { String fieldID = String.valueOf(field.getID()); String fieldEelement = field.getElement(); String fieldQualifier = field.getQualifier(); MetadataSchema schema = MetadataSchema.find(context, field.getSchemaID()); String schemaName = schema.getName(); String fieldName = schemaName + "." + fieldEelement; if (fieldQualifier != null && fieldQualifier.length() > 0) fieldName += "." + fieldQualifier; String fieldScopeNote = field.getScopeNote(); Row row = table.addRow(); row.addCell().addContent(fieldID); row.addCell().addContent(fieldName); row.addCell().addContent(fieldScopeNote); } Row row = table.addRow(); Cell cell = row.addCell(1, 3); cell.addContent(T_para2); Select toSchema = cell.addSelect("to_schema"); for (MetadataSchema schema : schemas) { toSchema.addOption(schema.getID(), schema.getNamespace()); } Para buttons = moved.addPara(); buttons.addButton("submit_move").setValue(T_submit_move); buttons.addButton("submit_cancel").setValue(T_submit_cancel); moved.addHidden("administrative-continue").setValue(knot.getId()); }
/** Add the notice div to the body. */ public void addBody(Body body) throws WingException, SQLException, AuthorizeException { String outcome = parameters.getParameter("outcome", null); String header = parameters.getParameter("header", null); String message = parameters.getParameter("message", null); String characters = parameters.getParameter("characters", null); if ((message == null || message.length() <= 0) && (characters == null || characters.length() <= 0)) { throw new WingException("No message found."); } String rend = "notice"; if ("neutral".equals(outcome)) { rend += " neutral"; } else if ("success".equals(outcome)) { rend += " success"; } else if ("failure".equals(outcome)) { rend += " failure"; } Division div = body.addDivision("general-message", rend); if ((header != null) && (!"".equals(header))) { div.setHead(message(header)); } else { div.setHead(T_head); } if (message != null && message.length() > 0) { div.addPara(message(message)); } if (characters != null && characters.length() > 0) { div.addPara(characters); } }
public void addBody(Body body) throws WingException { Division cannot = body.addDivision("register-cannot", "primary"); cannot.setHead(T_head); EPersonUtils.registrationProgressList(cannot, 0); cannot.addPara(T_para1); }
private Division createMainDivision(Body body) throws WingException { Division main = body.addInteractiveDivision( "restore-version", contextPath + "/item/versionhistory", Division.METHOD_POST, "restore version"); main.setHead(T_head1); main.addPara(T_para1); return main; }
public void addBody(Body body) throws WingException, SQLException, AuthorizeException { // Get all our parameters String idsString = parameters.getParameter("formatIDs", null); ArrayList<BitstreamFormat> formats = new ArrayList<BitstreamFormat>(); for (String id : idsString.split(",")) { BitstreamFormat format = BitstreamFormat.find(context, Integer.valueOf(id)); formats.add(format); } // DIVISION: bitstream-format-confirm-delete Division deleted = body.addInteractiveDivision( "bitstream-format-confirm-delete", contextPath + "/admin/format-registry", Division.METHOD_POST, "primary administrative format-registry"); deleted.setHead(T_head); deleted.addPara(T_para1); Table table = deleted.addTable("format-confirm-delete", formats.size() + 1, 3); Row header = table.addRow(Row.ROLE_HEADER); header.addCell().addContent(T_column1); header.addCell().addContent(T_column2); header.addCell().addContent(T_column3); for (BitstreamFormat format : formats) { if (format == null) { continue; } String formatID = String.valueOf(format.getID()); String mimetype = format.getMIMEType(); String name = format.getShortDescription(); Row row = table.addRow(); row.addCell().addContent(formatID); row.addCell().addContent(mimetype); row.addCell().addContent(name); } Para buttons = deleted.addPara(); buttons.addButton("submit_confirm").setValue(T_submit_delete); buttons.addButton("submit_cancel").setValue(T_submit_cancel); deleted.addHidden("administrative-continue").setValue(knot.getId()); }
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException { Division div = body.addInteractiveDivision( "submit-complete", contextPath + "/handle/" + handle + "/submit", Division.METHOD_POST, "primary submission"); div.setHead(T_head); div.addPara(T_info1); div.addPara().addXref(contextPath + "/submissions", T_go_submission); div.addPara().addButton("submit_again").setValue(T_submit_again); div.addHidden("handle").setValue(handle); }
public void addBody(Body body) throws WingException, SQLException, AuthorizeException { // Get all our parameters String idsString = parameters.getParameter("schemaIDs", null); ArrayList<MetadataSchema> schemas = new ArrayList<MetadataSchema>(); for (String id : idsString.split(",")) { MetadataSchema schema = MetadataSchema.find(context, Integer.valueOf(id)); schemas.add(schema); } // DIVISION: metadata-schema-confirm-delete Division deleted = body.addInteractiveDivision( "metadata-schema-confirm-delete", contextPath + "/admin/metadata-registry", Division.METHOD_POST, "primary administrative metadata-registry"); deleted.setHead(T_head); deleted.addPara(T_para1); Para warning = deleted.addPara(); warning.addHighlight("bold").addContent(T_warning); warning.addContent(T_para2); Table table = deleted.addTable("schema-confirm-delete", schemas.size() + 1, 3); Row header = table.addRow(Row.ROLE_HEADER); header.addCell().addContent(T_column1); header.addCell().addContent(T_column2); header.addCell().addContent(T_column3); for (MetadataSchema schema : schemas) { Row row = table.addRow(); row.addCell().addContent(schema.getSchemaID()); row.addCell().addContent(schema.getNamespace()); row.addCell().addContent(schema.getName()); } Para buttons = deleted.addPara(); buttons.addButton("submit_confirm").setValue(T_submit_delete); buttons.addButton("submit_cancel").setValue(T_submit_cancel); deleted.addHidden("administrative-continue").setValue(knot.getId()); }
@Override public void addBody(Body body) throws SAXException, WingException, SQLException, IOException, AuthorizeException { Item item = workflowItem.getItem(); Collection collection = workflowItem.getCollection(); Request request = ObjectModelHelper.getRequest(objectModel); String actionURL = contextPath + "/handle/" + collection.getHandle() + "/xmlworkflow"; // Generate a from asking the user two questions: multiple // titles & published before. Division div = body.addInteractiveDivision( "perform-task", actionURL, Division.METHOD_POST, "primary workflow"); div.setHead(T_HEAD); addWorkflowItemInformation(div, item, request); renderMainPage(div); div.addHidden("submission-continue").setValue(knot.getId()); }
public void addBody(Body body) throws SAXException, WingException, SQLException { // Get our parameters and state; UUID collectionID = UUID.fromString(parameters.getParameter("collectionID", null)); Collection collection = collectionService.find(context, collectionID); List<Item> items = getMappedItems(collection); // DIVISION: browse-items Division div = body.addInteractiveDivision( "browse-items", contextPath + "/admin/mapper", Division.METHOD_GET, "primary administrative mapper"); div.setHead(T_head1); if (authorizeService.authorizeActionBoolean(context, collection, Constants.REMOVE)) { Para actions = div.addPara(); actions.addButton("submit_unmap").setValue(T_submit_unmap); actions.addButton("submit_return").setValue(T_submit_return); } else { Para actions = div.addPara(); Button button = actions.addButton("submit_unmap"); button.setValue(T_submit_unmap); button.setDisabled(); actions.addButton("submit_return").setValue(T_submit_return); div.addPara().addHighlight("fade").addContent(T_no_remove); } Table table = div.addTable("browse-items-table", 1, 1); Row header = table.addRow(Row.ROLE_HEADER); header.addCellContent(T_column1); header.addCellContent(T_column2); header.addCellContent(T_column3); header.addCellContent(T_column4); for (Item item : items) { String itemID = String.valueOf(item.getID()); Collection owningCollection = item.getOwningCollection(); String owning = owningCollection.getName(); String author = "unknown"; List<MetadataValue> dcAuthors = itemService.getMetadata( item, MetadataSchema.DC_SCHEMA, "contributor", Item.ANY, Item.ANY); if (dcAuthors != null && dcAuthors.size() >= 1) { author = dcAuthors.get(0).getValue(); } String title = "untitled"; List<MetadataValue> dcTitles = itemService.getMetadata(item, MetadataSchema.DC_SCHEMA, "title", null, Item.ANY); if (dcTitles != null && dcTitles.size() >= 1) { title = dcTitles.get(0).getValue(); } String url = contextPath + "/handle/" + item.getHandle(); Row row = table.addRow(); CheckBox select = row.addCell().addCheckBox("itemID"); select.setLabel("Select"); select.addOption(itemID); row.addCellContent(owning); row.addCell().addXref(url, author); row.addCell().addXref(url, title); } if (authorizeService.authorizeActionBoolean(context, collection, Constants.REMOVE)) { Para actions = div.addPara(); actions.addButton("submit_unmap").setValue(T_submit_unmap); actions.addButton("submit_return").setValue(T_submit_return); } else { Para actions = div.addPara(); Button button = actions.addButton("submit_unmap"); button.setValue(T_submit_unmap); button.setDisabled(); actions.addButton("submit_return").setValue(T_submit_return); div.addPara().addHighlight("fade").addContent(T_no_remove); } div.addHidden("administrative-continue").setValue(knot.getId()); }
public void addBody(Body body) throws WingException, SQLException { // Get all our parameters String baseURL = contextPath + "/admin/groups?administrative-continue=" + knot.getId(); String query = parameters.getParameter("query", ""); int page = parameters.getParameterAsInteger("page", 0); int highlightID = parameters.getParameterAsInteger("highlightID", -1); // FIXME: Bad! // int resultCount = Group.searchResultCount(context, query); int resultCount = Group.search(context, query).length; Group[] groups = Group.search(context, query, page * PAGE_SIZE, PAGE_SIZE); // DIVISION: groups-main Division main = body.addInteractiveDivision( "groups-main", contextPath + "/admin/groups", Division.METHOD_POST, "primary administrative groups"); main.setHead(T_main_head); // DIVISION: group-actions Division actions = main.addDivision("group-actions"); actions.setHead(T_actions_head); // Browse Epeople List actionsList = actions.addList("actions"); actionsList.addLabel(T_actions_create); actionsList.addItemXref(baseURL + "&submit_add", T_actions_create_link); actionsList.addLabel(T_actions_browse); actionsList.addItemXref(baseURL + "&query&submit_search", T_actions_browse_link); actionsList.addLabel(T_actions_search); org.dspace.app.xmlui.wing.element.Item actionItem = actionsList.addItem(); Text queryField = actionItem.addText("query"); if (query != null) queryField.setValue(query); queryField.setHelp(T_search_help); actionItem.addButton("submit_search").setValue(T_go); // DIVISION: group-search Division search = main.addDivision("group-search"); search.setHead(T_search_head); if (resultCount > PAGE_SIZE) { // If there are enough results then paginate the results int firstIndex = page * PAGE_SIZE + 1; int lastIndex = page * PAGE_SIZE + groups.length; String nextURL = null, prevURL = null; if (page < (resultCount / PAGE_SIZE)) nextURL = baseURL + "&page=" + (page + 1); if (page > 0) prevURL = baseURL + "&page=" + (page - 1); search.setSimplePagination(resultCount, firstIndex, lastIndex, prevURL, nextURL); } Table table = search.addTable("groups-search-table", groups.length + 1, 1); Row header = table.addRow(Row.ROLE_HEADER); header.addCell().addContent(T_search_column1); header.addCell().addContent(T_search_column2); header.addCell().addContent(T_search_column3); header.addCell().addContent(T_search_column4); header.addCell().addContent(T_search_column5); for (Group group : groups) { Row row; if (group.getID() == highlightID) row = table.addRow(null, null, "highlight"); else row = table.addRow(); if (group.getID() > 1) { CheckBox select = row.addCell().addCheckBox("select_group"); select.setLabel(new Integer(group.getID()).toString()); select.addOption(new Integer(group.getID()).toString()); } else { // Don't allow the user to remove the administrative (id:1) or // anonymous group (id:0) row.addCell(); } row.addCell().addContent(group.getID()); row.addCell().addXref(baseURL + "&submit_edit&groupID=" + group.getID(), group.getName()); int memberCount = group.getMembers().length + group.getMemberGroups().length; row.addCell().addContent(memberCount == 0 ? "-" : String.valueOf(memberCount)); Cell cell = row.addCell(); if (FlowGroupUtils.getCollectionId(group.getName()) > -1) { Collection collection = Collection.find(context, FlowGroupUtils.getCollectionId(group.getName())); if (collection != null) { String collectionName = collection.getMetadata("name"); if (collectionName == null) collectionName = ""; else if (collectionName.length() > MAX_COLLECTION_NAME) collectionName = collectionName.substring(0, MAX_COLLECTION_NAME - 3) + "..."; cell.addContent(collectionName + " "); Highlight highlight = cell.addHighlight("fade"); highlight.addContent("["); highlight.addXref( contextPath + "/handle/" + collection.getExternalIdentifier().getCanonicalForm(), T_collection_link); highlight.addContent("]"); } } } if (groups.length <= 0) { Cell cell = table.addRow().addCell(1, 5); cell.addHighlight("italic").addContent(T_no_results); } else { search.addPara().addButton("submit_delete").setValue(T_submit_delete); } search.addHidden("administrative-continue").setValue(knot.getId()); }
/** Display a single collection */ public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException { DSpaceObject dso = HandleUtil.obtainHandle(objectModel); if (!(dso instanceof Collection)) return; // Set up the major variables Collection collection = (Collection) dso; // Build the collection viewer division. Division home = body.addDivision("collection-home", "primary repository collection"); home.setHead(collection.getMetadata("name")); // The search / browse box. { Division search = home.addDivision("collection-search-browse", "secondary search-browse"); // Search query Division query = search.addInteractiveDivision( "collection-search", contextPath + "/handle/" + collection.getHandle() + "/search", Division.METHOD_POST, "secondary search"); Para para = query.addPara("search-query", null); para.addContent(T_full_text_search); para.addContent(" "); para.addText("query"); para.addContent(" "); para.addButton("submit").setValue(T_go); // Browse by list Division browseDiv = search.addDivision("collection-browse", "secondary browse"); List browse = browseDiv.addList("collection-browse", List.TYPE_SIMPLE, "collection-browse"); browse.setHead(T_head_browse); String url = contextPath + "/handle/" + collection.getHandle(); browse.addItemXref(url + "/browse-title", T_browse_titles); browse.addItemXref(url + "/browse-author", T_browse_authors); browse.addItemXref(url + "/browse-date", T_browse_dates); } // Add the refrence { Division viewer = home.addDivision("collection-view", "secondary"); ReferenceSet mainInclude = viewer.addReferenceSet("collection-view", ReferenceSet.TYPE_DETAIL_VIEW); mainInclude.addReference(collection); } // Reciently submitted items { java.util.List<BrowseItem> items = getRecientlySubmittedIems(collection); Division lastSubmittedDiv = home.addDivision("collection-recent-submission", "secondary recent-submission"); lastSubmittedDiv.setHead(T_head_recent_submissions); ReferenceSet lastSubmitted = lastSubmittedDiv.addReferenceSet( "collection-last-submitted", ReferenceSet.TYPE_SUMMARY_LIST, null, "recent-submissions"); for (BrowseItem item : items) { lastSubmitted.addReference(item); } } }
/** Add the browse-title division. */ public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException { BrowseParams params = getUserParams(); BrowseInfo info = getBrowseInfo(); String type = info.getBrowseIndex().getName(); // Build the DRI Body Division div = body.addDivision("browse-by-" + type, "primary"); div.setHead(getTitleMessage(info)); // Build the internal navigation (jump lists) addBrowseJumpNavigation(div, info, params); // Build the sort and display controls addBrowseControls(div, info, params); // This div will hold the browsing results Division results = div.addDivision("browse-by-" + type + "-results", "primary"); // Add the pagination results.setSimplePagination( info.getTotal(), browseInfo.getOverallPosition() + 1, browseInfo.getOverallPosition() + browseInfo.getResultCount(), getPreviousPageURL(params, info), getNextPageURL(params, info)); // Reference all the browsed items ReferenceSet referenceSet = results.addReferenceSet("browse-by-" + type, ReferenceSet.TYPE_SUMMARY_LIST, type, null); // Are we browsing items, or unique metadata? if (isItemBrowse(info)) { // Add the items to the browse results for (BrowseItem item : (java.util.List<BrowseItem>) info.getResults()) { referenceSet.addReference(item); } } else // browsing a list of unique metadata entries { // Create a table for the results Table singleTable = results.addTable("browse-by-" + type + "-results", browseInfo.getResultCount() + 1, 1); // Add the column heading singleTable .addRow(Row.ROLE_HEADER) .addCell() .addContent( message("xmlui.ArtifactBrowser.ConfigurableBrowse." + type + ".column_heading")); // Iterate each result for (String singleEntry : browseInfo.getStringResults()) { // Create a Map of the query parameters for the link Map<String, String> queryParams = new HashMap<String, String>(); queryParams.put(BrowseParams.TYPE, URLEncode(type)); queryParams.put(BrowseParams.FILTER_VALUE, URLEncode(singleEntry)); // Create an entry in the table, and a linked entry Cell cell = singleTable.addRow().addCell(); cell.addXref(super.generateURL(BROWSE_URL_BASE, queryParams), singleEntry); } } }
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException { Request request = ObjectModelHelper.getRequest(objectModel); boolean help = false, error = false; if (request.getParameter("help") != null) { help = true; } if (request.getParameter("error") != null) { error = true; } Division div = body.addInteractiveDivision("test", "", "post", "primary"); div.setHead("Inline form test"); div.addPara( "There are two options you can use to control how this page is generated. First is the help parameter, if this is present then help text will be provided for all fields. Next is the error parameter, if it is provided then all fields will be generated in error conditions."); if (help) { div.addPara().addXref(makeURL(false, error), "Turn help OFF"); } else { div.addPara().addXref(makeURL(true, error), "Turn help ON"); } if (error) { div.addPara().addXref(makeURL(help, false), "Turn errors OFF"); } else { div.addPara().addXref(makeURL(help, true), "Turn errors ON"); } Division suited = body.addDivision("suited"); suited.setHead("Fields suited towards being used inline"); suited.addPara( "Below are a list of embedded fields that are normally considered usefully in an inline context."); // Text field Para p = suited.addPara(); p.addContent("This is a plain 'Text' field, "); Text text = p.addText("text"); text.setLabel("Text"); if (help) { text.setHelp("This is helpfull text."); } if (error) { text.addError("This field is in error."); } text.setValue("Current raw value"); p.addContent(", embedded in a paragraph."); // Single Checkbox field p = suited.addPara(); p.addContent("This is a singe 'CheckBox' field, "); CheckBox checkBox = p.addCheckBox("yes-or-no"); if (help) { checkBox.setHelp("Select either yes or no."); } if (error) { checkBox.addError("You are incorrect, try again."); } checkBox.setLabel("Yes or no"); checkBox.addOption("yes"); p.addContent(", embedded in a paragraph."); // File p = suited.addPara(); p.addContent("This is a 'File' field, "); File file = p.addFile("file"); file.setLabel("File"); if (help) { file.setHelp("Upload a file."); } if (error) { file.addError("This field is in error."); } p.addContent(", embedded in a paragraph."); // Select (single) p = suited.addPara(); p.addContent("This is single 'Select' (aka dropdown) field, "); Select select = p.addSelect("select"); select.setLabel("Select (single)"); if (help) { select.setHelp("Select one of the options"); } if (error) { select.addError("This field is in error."); } select.addOption("one", "uno"); select.addOption("two", "dos"); select.addOption("three", "tres"); select.addOption("four", "cuatro"); select.addOption("five", "cinco"); select.setOptionSelected("one"); p.addContent(", embedded in a paragraph."); // Button p = suited.addPara(); p.addContent("This is a 'Button' field, "); Button button = p.addButton("button"); button.setLabel("Button"); button.setValue("When you touch me I do things, lots of things"); if (help) { button.setHelp("Submit buttons allow the user to submit the form."); } if (error) { button.addError("This button is in error."); } p.addContent(", embedded in a paragraph."); Division unsuited = body.addDivision("unsuited"); unsuited.setHead("Fields typicaly unsuited towards being used inline"); unsuited.addPara( "Below are a list of embedded fields that are normally considered useless in an inline context. This is because there widgets normally cross multiple lines making them hard to render inline. However these are all legal, but perhaps not advisable, and in some circumstances may be needed."); // Text Area Field p = unsuited.addPara(); p.addContent("This is a 'Text Area' field, "); TextArea textArea = p.addTextArea("textarea"); textArea.setLabel("Text Area"); if (help) { textArea.setHelp("This is helpfull text."); } if (error) { textArea.addError("This field is in error."); } textArea.setValue("This is the raw value"); p.addContent(", embedded in a paragraph."); // Multi-option Checkbox field p = unsuited.addPara(); p.addContent("This is a multi-option 'CheckBox' field, "); checkBox = p.addCheckBox("fruit"); if (help) { checkBox.setHelp("Select all the fruits that you like to eat"); } if (error) { checkBox.addError("You are incorrect you actualy do like Tootse Rolls."); } checkBox.setLabel("fruits"); checkBox.addOption("apple", "Apples"); checkBox.addOption(true, "orange", "Oranges"); checkBox.addOption("pear", "Pears"); checkBox.addOption("tootsie", "Tootsie Roll"); checkBox.addOption(true, "cherry", "Cherry"); p.addContent(", embedded in a paragraph."); // multi-option Radio field p = unsuited.addPara(); p.addContent("This is a multi-option 'Radio' field, "); Radio radio = p.addRadio("sex"); radio.setLabel("Football colors"); if (help) { radio.setHelp("Select the colors of the best (college) football team."); } if (error) { radio.addError("Error, Maroon & White is the only acceptable answer."); } radio.addOption("ut", "Burnt Orange & White"); radio.addOption(true, "tamu", "Maroon & White"); radio.addOption("ttu", "Tech Red & Black"); radio.addOption("baylor", "Green & Gold"); radio.addOption("rice", "Blue & Gray"); radio.addOption("uh", "Scarlet Red & Albino White"); p.addContent(", embedded in a paragraph."); // Select (multiple) p = unsuited.addPara(); p.addContent("This is multiple 'Select' field, "); select = p.addSelect("multi-select"); select.setLabel("Select (multiple)"); select.setMultiple(); select.setSize(4); if (help) { select.setHelp("Select one or more options"); } if (error) { select.addError("This field is in error."); } select.addOption("one", "uno"); select.addOption("two", "dos"); select.addOption("three", "tres"); select.addOption("four", "cuatro"); select.addOption("five", "cinco"); select.setOptionSelected("one"); select.setOptionSelected("three"); select.setOptionSelected("five"); p.addContent(", embedded in a paragraph."); // Composite p = unsuited.addPara(); p.addContent("This is a 'Composite' field of two text fields, "); Composite composite = p.addComposite("composite-2text"); composite.setLabel("Composite (two text fields)"); if (help) { composite.setHelp("I am the help for the entire composite"); } if (error) { composite.addError("Just the composite is in error"); } text = composite.addText("partA"); text.setLabel("Part A"); text.setValue("Value for part A"); if (help) { text.setHelp("Part A"); } text = composite.addText("partB"); text.setLabel("Part B"); text.setValue("Value for part B"); if (help) { text.setHelp("Part B"); } p.addContent(", embedded in a paragraph."); }
public void addBody(Body body) throws WingException, SQLException, AuthorizeException { int communityID = parameters.getParameterAsInteger("communityID", -1); Community thisCommunity = Community.find(context, communityID); String baseURL = contextPath + "/admin/community?administrative-continue=" + knot.getId(); Group admins = thisCommunity.getAdministrators(); // DIVISION: main Division main = body.addInteractiveDivision( "community-assign-roles", contextPath + "/admin/community", Division.METHOD_POST, "primary administrative community"); main.setHead(T_main_head.parameterize(thisCommunity.getName())); List options = main.addList("options", List.TYPE_SIMPLE, "horizontal"); options.addItem().addXref(baseURL + "&submit_metadata", T_options_metadata); options.addItem().addHighlight("bold").addXref(baseURL + "&submit_roles", T_options_roles); options.addItem().addXref(baseURL + "&submit_curate", T_options_curate); // The table of admin roles Table rolesTable = main.addTable("roles-table", 6, 5); Row tableRow; // The header row Row tableHeader = rolesTable.addRow(Row.ROLE_HEADER); tableHeader.addCell().addContent(T_role_name); tableHeader.addCell().addContent(T_role_group); tableHeader.addCell().addContent(T_role_buttons); rolesTable.addRow(); /* * The community admins */ // data row tableRow = rolesTable.addRow(Row.ROLE_DATA); tableRow.addCell(Cell.ROLE_HEADER).addContent(T_label_admins); if (admins != null) { try { AuthorizeUtil.authorizeManageAdminGroup(context, thisCommunity); tableRow.addCell().addXref(baseURL + "&submit_edit_admin", admins.getName()); } catch (AuthorizeException authex) { // add a notice, the user is not authorized to create/edit community's admin group tableRow.addCell().addContent(T_sysadmins_only); } try { AuthorizeUtil.authorizeRemoveAdminGroup(context, thisCommunity); tableRow.addCell().addButton("submit_delete_admin").setValue(T_delete); } catch (AuthorizeException authex) { // nothing to add, the user is not allowed to delete the group } } else { tableRow.addCell().addContent(T_no_role); Cell commAdminCell = tableRow.addCell(); try { AuthorizeUtil.authorizeManageAdminGroup(context, thisCommunity); commAdminCell.addButton("submit_create_admin").setValue(T_create); } catch (AuthorizeException authex) { // add a notice, the user is not authorized to create/edit community's admin group addAdministratorOnlyButton(commAdminCell, "submit_create_admin", T_create); } } // help and directions row tableRow = rolesTable.addRow(Row.ROLE_DATA); tableRow.addCell(); tableRow.addCell(1, 2).addHighlight("fade offset").addContent(T_help_admins); try { AuthorizeUtil.authorizeManageCommunityPolicy(context, thisCommunity); // add one last link to edit the raw authorizations Cell authCell = rolesTable.addRow().addCell(1, 3); authCell.addXref(baseURL + "&submit_authorizations", T_edit_authorizations); } catch (AuthorizeException authex) { // nothing to add, the user is not authorized to manage community's policies } Para buttonList = main.addPara(); buttonList.addButton("submit_return").setValue(T_submit_return); main.addHidden("administrative-continue").setValue(knot.getId()); }
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException { // If we are actually editing information of an uploaded file, // then display that body instead! if (this.editFile != null) { editFile.addBody(body); return; } // Get a list of all files in the original bundle Item item = submission.getItem(); Collection collection = submission.getCollection(); String actionURL = contextPath + "/handle/" + collection.getHandle() + "/submit/" + knot.getId() + ".continue"; boolean disableFileEditing = (submissionInfo.isInWorkflow()) && !ConfigurationManager.getBooleanProperty("workflow", "reviewer.file-edit"); Bundle[] bundles = item.getBundles("ORIGINAL"); Bitstream[] bitstreams = new Bitstream[0]; if (bundles.length > 0) { bitstreams = bundles[0].getBitstreams(); } // Part A: // First ask the user if they would like to upload a new file (may be the first one) Division div = body.addInteractiveDivision( "submit-upload", actionURL, Division.METHOD_MULTIPART, "primary submission"); div.setHead(T_submission_head); addSubmissionProgressList(div); List upload = null; if (!disableFileEditing) { // Only add the upload capabilities for new item submissions upload = div.addList("submit-upload-new", List.TYPE_FORM); upload.setHead(T_head); addRioxxVersionSection(upload, item); File file = upload.addItem().addFile("file"); file.setLabel(T_file); file.setHelp(T_file_help); file.setRequired(); // if no files found error was thrown by processing class, display it! if (this.errorFlag == org.dspace.submit.step.UploadStep.STATUS_NO_FILES_ERROR) { file.addError(T_file_error); } // if an upload error was thrown by processing class, display it! if (this.errorFlag == org.dspace.submit.step.UploadStep.STATUS_UPLOAD_ERROR) { file.addError(T_upload_error); } // if virus checking was attempted and failed in error then let the user know if (this.errorFlag == org.dspace.submit.step.UploadStep.STATUS_VIRUS_CHECKER_UNAVAILABLE) { file.addError(T_virus_checker_error); } // if virus checking was attempted and a virus found then let the user know if (this.errorFlag == org.dspace.submit.step.UploadStep.STATUS_CONTAINS_VIRUS) { file.addError(T_virus_error); } Text description = upload.addItem().addText("description"); description.setLabel(T_description); description.setHelp(T_description_help); Button uploadSubmit = upload.addItem().addButton("submit_upload"); uploadSubmit.setValue(T_submit_upload); } make_sherpaRomeo_submission(item, div); // Part B: // If the user has already uploaded files provide a list for the user. if (bitstreams.length > 0 || disableFileEditing) { Table summary = div.addTable("submit-upload-summary", (bitstreams.length * 2) + 2, 7); summary.setHead(T_head2); Row header = summary.addRow(Row.ROLE_HEADER); header.addCellContent(T_column0); // primary bitstream header.addCellContent(T_column1); // select checkbox header.addCellContent(T_column2); // file name header.addCellContent(T_column3); // size header.addCellContent(T_column4); // description header.addCellContent(T_column5); // format header.addCellContent(T_column6); // edit button for (Bitstream bitstream : bitstreams) { int id = bitstream.getID(); String name = bitstream.getName(); String url = makeBitstreamLink(item, bitstream); long bytes = bitstream.getSize(); String desc = bitstream.getDescription(); String algorithm = bitstream.getChecksumAlgorithm(); String checksum = bitstream.getChecksum(); Row row = summary.addRow(); // Add radio-button to select this as the primary bitstream Radio primary = row.addCell().addRadio("primary_bitstream_id"); primary.addOption(String.valueOf(id)); // If this bitstream is already marked as the primary bitstream // mark it as such. if (bundles[0].getPrimaryBitstreamID() == id) { primary.setOptionSelected(String.valueOf(id)); } if (!disableFileEditing) { // Workflow users can not remove files. CheckBox remove = row.addCell().addCheckBox("remove"); remove.setLabel("remove"); remove.addOption(id); } else { row.addCell(); } row.addCell().addXref(url, name); row.addCellContent(bytes + " bytes"); if (desc == null || desc.length() == 0) { row.addCellContent(T_unknown_name); } else { row.addCellContent(desc); } BitstreamFormat format = bitstream.getFormat(); if (format == null) { row.addCellContent(T_unknown_format); } else { int support = format.getSupportLevel(); Cell cell = row.addCell(); cell.addContent(format.getMIMEType()); cell.addContent(" "); switch (support) { case 1: cell.addContent(T_supported); break; case 2: cell.addContent(T_known); break; case 3: cell.addContent(T_unsupported); break; } } Button edit = row.addCell().addButton("submit_edit_" + id); edit.setValue(T_submit_edit); Row checksumRow = summary.addRow(); checksumRow.addCell(); Cell checksumCell = checksumRow.addCell(null, null, 0, 6, null); checksumCell.addHighlight("bold").addContent(T_checksum); checksumCell.addContent(" "); checksumCell.addContent(algorithm + ":" + checksum); } if (!disableFileEditing) { // Workflow users can not remove files. Row actionRow = summary.addRow(); actionRow.addCell(); Button removeSeleceted = actionRow.addCell(null, null, 0, 6, null).addButton("submit_remove_selected"); removeSeleceted.setValue(T_submit_remove); } upload = div.addList("submit-upload-new-part2", List.TYPE_FORM); } // Part C: // add standard control/paging buttons addControlButtons(upload); }
public void addBody(Body body) throws WingException, SQLException, AuthorizeException { int communityID = parameters.getParameterAsInteger("communityID", -1); Community parentCommunity = Community.find(context, communityID); // DIVISION: main Division main = body.addInteractiveDivision( "create-collection", contextPath + "/admin/collection", Division.METHOD_MULTIPART, "primary administrative collection"); main.setHead(T_main_head.parameterize(parentCommunity.getMetadata("name"))); // The grand list of metadata options List metadataList = main.addList("metadataList", "form"); // collection name metadataList.addLabel(T_label_name); Text name = metadataList.addItem().addText("name"); name.setSize(40); // short description metadataList.addLabel(T_label_short_description); Text short_description = metadataList.addItem().addText("short_description"); short_description.setSize(40); // introductory text metadataList.addLabel(T_label_introductory_text); TextArea introductory_text = metadataList.addItem().addTextArea("introductory_text"); introductory_text.setSize(6, 40); // copyright text metadataList.addLabel(T_label_copyright_text); TextArea copyright_text = metadataList.addItem().addTextArea("copyright_text"); copyright_text.setSize(6, 40); // legacy sidebar text; may or may not be used for news metadataList.addLabel(T_label_side_bar_text); TextArea side_bar_text = metadataList.addItem().addTextArea("side_bar_text"); side_bar_text.setSize(6, 40); // license text metadataList.addLabel(T_label_license); TextArea license = metadataList.addItem().addTextArea("license"); license.setSize(6, 40); // provenance description metadataList.addLabel(T_label_provenance_description); TextArea provenance_description = metadataList.addItem().addTextArea("provenance_description"); provenance_description.setSize(6, 40); // the row to upload a new logo metadataList.addLabel(T_label_logo); metadataList.addItem().addFile("logo"); Para buttonList = main.addPara(); buttonList.addButton("submit_save").setValue(T_submit_save); buttonList.addButton("submit_cancel").setValue(T_submit_cancel); main.addHidden("administrative-continue").setValue(knot.getId()); }
public void addBody(Body body) throws SQLException, WingException { // Get our parameters and state int itemID = parameters.getParameterAsInteger("itemID", -1); Item item = Item.find(context, itemID); String baseURL = contextPath + "/admin/item?administrative-continue=" + knot.getId(); // DIVISION: main div Division main = body.addInteractiveDivision( "edit-item-status", contextPath + "/admin/item", Division.METHOD_POST, "primary administrative item"); main.setHead(T_option_head); // LIST: options List options = main.addList("options", List.TYPE_SIMPLE, "horizontal"); options.addItem().addXref(baseURL + "&submit_status", T_option_status); options .addItem() .addHighlight("bold") .addXref(baseURL + "&submit_bitstreams", T_option_bitstreams); options.addItem().addXref(baseURL + "&submit_metadata", T_option_metadata); options.addItem().addXref(baseURL + "&view_item", T_option_view); // TABLE: Bitstream summary Table files = main.addTable("editItemBitstreams", 1, 1); files.setHead(T_head1); Row header = files.addRow(Row.ROLE_HEADER); header.addCellContent(T_column1); header.addCellContent(T_column2); header.addCellContent(T_column3); header.addCellContent(T_column4); header.addCellContent(T_column5); Bundle[] bundles = item.getBundles(); for (Bundle bundle : bundles) { Cell bundleCell = files.addRow().addCell(1, 5); bundleCell.addContent(T_bundle_label.parameterize(bundle.getName())); Bitstream[] bitstreams = bundle.getBitstreams(); for (Bitstream bitstream : bitstreams) { boolean primary = (bundle.getPrimaryBitstreamID() == bitstream.getID()); String name = bitstream.getName(); if (name != null && name.length() > 50) { // If the fiel name is too long the shorten it so that it will display nicely. String shortName = name.substring(0, 15); shortName += " ... "; shortName += name.substring(name.length() - 25, name.length()); name = shortName; } String description = bitstream.getDescription(); String format = null; BitstreamFormat bitstreamFormat = bitstream.getFormat(); if (bitstreamFormat != null) format = bitstreamFormat.getShortDescription(); String editURL = contextPath + "/admin/item?administrative-continue=" + knot.getId() + "&bitstreamID=" + bitstream.getID() + "&submit_edit"; String viewURL = contextPath + "/bitstream/id/" + bitstream.getID() + "/" + bitstream.getName(); Row row = files.addRow(); CheckBox remove = row.addCell().addCheckBox("remove"); remove.setLabel("remove"); remove.addOption(bundle.getID() + "/" + bitstream.getID()); if (!AuthorizeManager.authorizeActionBoolean(context, item, Constants.REMOVE)) { remove.setDisabled(); } if (AuthorizeManager.authorizeActionBoolean(context, bitstream, Constants.WRITE)) { // The user can edit the bitstream give them a link. Cell cell = row.addCell(); cell.addXref(editURL, name); if (primary) cell.addXref(editURL, T_primary_label); row.addCell().addXref(editURL, description); row.addCell().addXref(editURL, format); } else { // The user can't edit the bitstream just show them it. Cell cell = row.addCell(); cell.addContent(name); if (primary) cell.addContent(T_primary_label); row.addCell().addContent(description); row.addCell().addContent(format); } Highlight highlight = row.addCell().addHighlight("fade"); highlight.addContent("["); highlight.addXref(viewURL, T_view_link); highlight.addContent("]"); } } if (AuthorizeManager.authorizeActionBoolean(context, item, Constants.ADD)) { Cell cell = files.addRow().addCell(1, 5); cell.addXref( contextPath + "/admin/item?administrative-continue=" + knot.getId() + "&submit_add", T_submit_add); } else { Cell cell = files.addRow().addCell(1, 5); cell.addHighlight("fade").addContent(T_no_upload); } // PARA: actions Para actions = main.addPara("editItemActionsP", "editItemActionsP"); if (AuthorizeManager.authorizeActionBoolean(context, item, Constants.REMOVE)) actions.addButton("submit_delete").setValue(T_submit_delete); else { Button button = actions.addButton("submit_delete"); button.setValue(T_submit_delete); button.setDisabled(); main.addPara().addHighlight("fade").addContent(T_no_remove); } actions.addButton("submit_return").setValue(T_submit_return); main.addHidden("administrative-continue").setValue(knot.getId()); }
@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 ); */ }