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);
}
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>");
}
}
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;
}
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>");
}
}
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);
}
}
Aggregations