Search in sources :

Example 66 with User

use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.

the class MySubscriptionsPortlet method doView.

@Override
public void doView(RenderRequest request, RenderResponse response) throws IOException, PortletException {
    List<Component> components = null;
    List<Release> releases = null;
    try {
        final User user = UserCacheHolder.getUserFromRequest(request);
        ComponentService.Iface componentClient = thriftClients.makeComponentClient();
        components = componentClient.getSubscribedComponents(user);
        releases = componentClient.getSubscribedReleases(user);
    } catch (TException e) {
        log.error("Could not fetch your subscriptions from backend", e);
    }
    request.setAttribute(PortalConstants.COMPONENT_LIST, CommonUtils.nullToEmptyList(components));
    request.setAttribute(PortalConstants.RELEASE_LIST, CommonUtils.nullToEmptyList(releases));
    super.doView(request, response);
}
Also used : TException(org.apache.thrift.TException) User(org.eclipse.sw360.datahandler.thrift.users.User) ComponentService(org.eclipse.sw360.datahandler.thrift.components.ComponentService) Component(org.eclipse.sw360.datahandler.thrift.components.Component) Release(org.eclipse.sw360.datahandler.thrift.components.Release)

Example 67 with User

use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.

the class DisplayProjectChanges method renderProjectLinkListCompare.

private void renderProjectLinkListCompare(StringBuilder display, Map<String, ProjectRelationship> oldProjectRelationshipMap, Map<String, ProjectRelationship> deleteProjectRelationshipMap, Map<String, ProjectRelationship> updateProjectRelationshipMap, Set<String> projectIds, User user) {
    if (projectIds.isEmpty())
        return;
    StringBuilder candidate = new StringBuilder();
    try {
        ProjectService.Iface client = new ThriftClients().makeProjectClient();
        Map<String, ProjectRelationship> changeMap = new HashMap<>();
        for (String projectId : projectIds) {
            ProjectRelationship updateProjectRelationship = updateProjectRelationshipMap.get(projectId);
            ProjectRelationship oldProjectRelationship = oldProjectRelationshipMap.get(projectId);
            if (!updateProjectRelationship.equals(oldProjectRelationship)) {
                changeMap.put(projectId, oldProjectRelationshipMap.get(projectId));
            }
        }
        // ! This code doubling is done to reduce the database queries. I.e. one big query instead of multiple small ones
        for (ProjectLink projectLink : client.getLinkedProjects(changeMap, user)) {
            ProjectRelationship updateProjectRelationship = updateProjectRelationshipMap.get(projectLink.getId());
            ProjectRelationship deleteProjectRelationship = deleteProjectRelationshipMap.get(projectLink.getId());
            ProjectRelationship oldProjectRelationship = oldProjectRelationshipMap.get(projectLink.getId());
            candidate.append(String.format("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", projectLink.getName(), oldProjectRelationship, deleteProjectRelationship, updateProjectRelationship));
        }
    } catch (TException ignored) {
    }
    String tableContent = candidate.toString();
    if (!tableContent.isEmpty()) {
        display.append(String.format("<table class=\"%s\" id=\"%sUpdated\" >", tableClasses, idPrefix));
        display.append("<thead><tr><th colspan=\"4\">Updated Project Links</th></tr>" + "<tr><th>Project Name</th>" + "<th>Current Project Relationship</th>" + "<th>Deleted Project Relationship</th>" + "<th>Suggested Project Relationship</th></tr>" + "</thead><tbody>");
        display.append(tableContent);
        display.append("</tbody></table>");
    }
}
Also used : TException(org.apache.thrift.TException) ProjectLink(org.eclipse.sw360.datahandler.thrift.projects.ProjectLink) HashMap(java.util.HashMap) ProjectRelationship(org.eclipse.sw360.datahandler.thrift.projects.ProjectRelationship) ProjectService(org.eclipse.sw360.datahandler.thrift.projects.ProjectService) ThriftClients(org.eclipse.sw360.datahandler.thrift.ThriftClients)

Example 68 with User

use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.

the class DisplayProjectChanges method doStartTag.

public int doStartTag() throws JspException {
    JspWriter jspWriter = pageContext.getOut();
    StringBuilder display = new StringBuilder();
    String namespace = getNamespace();
    if (additions == null || deletions == null) {
        return SKIP_BODY;
    }
    try {
        for (Project._Fields field : Project._Fields.values()) {
            switch(field) {
                // ignored Fields
                case ID:
                case REVISION:
                case TYPE:
                case CREATED_BY:
                case CREATED_ON:
                case PERMISSIONS:
                case RELEASE_CLEARING_STATE_SUMMARY:
                case DOCUMENT_STATE:
                // Taken care of externally
                case ATTACHMENTS:
                // Done in extra tables
                case LINKED_PROJECTS:
                case RELEASE_ID_TO_USAGE:
                    break;
                default:
                    FieldMetaData fieldMetaData = Project.metaDataMap.get(field);
                    displaySimpleFieldOrSet(display, actual, additions, deletions, field, fieldMetaData, "");
            }
        }
        String renderString = display.toString();
        if (Strings.isNullOrEmpty(renderString)) {
            renderString = "<h4> No changes in basic fields </h4>";
        } else {
            renderString = String.format("<table class=\"%s\" id=\"%schanges\" >", tableClasses, idPrefix) + "<thead><tr><th colspan=\"4\"> Changes for Basic fields</th></tr>" + String.format("<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr></thead><tbody>", FIELD_NAME, CURRENT_VAL, DELETED_VAL, SUGGESTED_VAL) + renderString + "</tbody></table>";
        }
        StringBuilder linkedProjectsDisplay = new StringBuilder();
        User user = getUserFromContext("Cannot render project changes without logged in user in request");
        renderLinkedProjects(linkedProjectsDisplay, user);
        StringBuilder releaseUsageDisplay = new StringBuilder();
        renderReleaseIdToUsage(releaseUsageDisplay, user);
        jspWriter.print(renderString + linkedProjectsDisplay.toString() + releaseUsageDisplay.toString());
    } catch (Exception e) {
        throw new JspException(e);
    }
    return SKIP_BODY;
}
Also used : Project(org.eclipse.sw360.datahandler.thrift.projects.Project) JspException(javax.servlet.jsp.JspException) FieldMetaData(org.apache.thrift.meta_data.FieldMetaData) User(org.eclipse.sw360.datahandler.thrift.users.User) JspWriter(javax.servlet.jsp.JspWriter) JspException(javax.servlet.jsp.JspException) TException(org.apache.thrift.TException)

Example 69 with User

use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.

the class DisplayProjectChanges method renderProjectLinkList.

private void renderProjectLinkList(StringBuilder display, Map<String, ProjectRelationship> projectRelationshipMap, Set<String> projectIds, String msg, User user) {
    if (projectIds.isEmpty())
        return;
    Map<String, ProjectRelationship> filteredMap = new HashMap<>();
    for (String id : projectIds) {
        filteredMap.put(id, projectRelationshipMap.get(id));
    }
    StringBuilder candidate = new StringBuilder();
    try {
        ProjectService.Iface client = new ThriftClients().makeProjectClient();
        for (ProjectLink projectLink : client.getLinkedProjects(filteredMap, user)) {
            candidate.append(String.format("<tr><td>%s</td><td>%s</td></tr>", projectLink.getName(), projectLink.getRelation()));
        }
    } catch (TException ignored) {
    }
    String tableContent = candidate.toString();
    if (!tableContent.isEmpty()) {
        display.append(String.format("<table class=\"%s\" id=\"%s%s\" >", tableClasses, idPrefix, msg));
        display.append(String.format("<thead><tr><th colspan=\"2\">%s</th></tr>" + "<tr><th>Project Name</th><th>Project Relationship</th></tr></thead><tbody>", msg));
        display.append(tableContent);
        display.append("</tbody></table>");
    }
}
Also used : TException(org.apache.thrift.TException) ProjectLink(org.eclipse.sw360.datahandler.thrift.projects.ProjectLink) HashMap(java.util.HashMap) ProjectRelationship(org.eclipse.sw360.datahandler.thrift.projects.ProjectRelationship) ProjectService(org.eclipse.sw360.datahandler.thrift.projects.ProjectService) ThriftClients(org.eclipse.sw360.datahandler.thrift.ThriftClients)

Example 70 with User

use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.

the class DisplayProjectChanges method renderReleaseIdToUsage.

private void renderReleaseIdToUsage(StringBuilder display, User user) {
    if (ensureSomethingTodoAndNoNullReleaseIdUsage()) {
        Set<String> changedReleaseIds = Sets.intersection(additions.getReleaseIdToUsage().keySet(), deletions.getReleaseIdToUsage().keySet());
        changedReleaseIds = Sets.intersection(changedReleaseIds, // remove projects already deleted in database
        actual.getReleaseIdToUsage().keySet());
        Set<String> removedReleaseIds = Sets.difference(deletions.getReleaseIdToUsage().keySet(), changedReleaseIds);
        removedReleaseIds = Sets.intersection(removedReleaseIds, actual.getReleaseIdToUsage().keySet());
        Set<String> addedReleaseIds = Sets.difference(additions.getReleaseIdToUsage().keySet(), changedReleaseIds);
        LinkedReleaseRenderer renderer = new LinkedReleaseRenderer(display, tableClasses, idPrefix, user);
        renderer.renderReleaseLinkList(display, deletions.getReleaseIdToUsage(), removedReleaseIds, "Removed Release Links");
        renderer.renderReleaseLinkList(display, additions.getReleaseIdToUsage(), addedReleaseIds, "Added Release Links");
        renderer.renderReleaseLinkListCompare(display, actual.getReleaseIdToUsage(), deletions.getReleaseIdToUsage(), additions.getReleaseIdToUsage(), changedReleaseIds);
    }
}
Also used : LinkedReleaseRenderer(org.eclipse.sw360.portal.tags.urlutils.LinkedReleaseRenderer)

Aggregations

User (org.eclipse.sw360.datahandler.thrift.users.User)169 TException (org.apache.thrift.TException)100 Release (org.eclipse.sw360.datahandler.thrift.components.Release)58 Project (org.eclipse.sw360.datahandler.thrift.projects.Project)44 Test (org.junit.Test)30 Attachment (org.eclipse.sw360.datahandler.thrift.attachments.Attachment)27 ComponentService (org.eclipse.sw360.datahandler.thrift.components.ComponentService)26 Component (org.eclipse.sw360.datahandler.thrift.components.Component)20 ModerationRequest (org.eclipse.sw360.datahandler.thrift.moderation.ModerationRequest)20 ResponseEntity (org.springframework.http.ResponseEntity)20 AttachmentContent (org.eclipse.sw360.datahandler.thrift.attachments.AttachmentContent)19 WrappedTException (org.eclipse.sw360.datahandler.common.WrappedException.WrappedTException)18 IOException (java.io.IOException)17 RequestStatus (org.eclipse.sw360.datahandler.thrift.RequestStatus)16 UsedAsLiferayAction (org.eclipse.sw360.portal.common.UsedAsLiferayAction)16 HalResource (org.eclipse.sw360.rest.resourceserver.core.HalResource)13 RequestSummary (org.eclipse.sw360.datahandler.thrift.RequestSummary)12 SW360Exception (org.eclipse.sw360.datahandler.thrift.SW360Exception)12 Before (org.junit.Before)12 ArrayList (java.util.ArrayList)11