Changes in [28:f4ed2ed33e5b:29:3be0ebb6d5ad] in AnnotationManagerN4J


Ignore:
Location:
src/main/java/de/mpiwg/itgroup/annotations
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java

    r28 r29  
    212212        }
    213213        return members;
     214    }
     215   
     216    /**
     217     * Add Person newMember to Group group.
     218     *
     219     * @param group
     220     * @param member
     221     */
     222    public Person addGroupMember(Group group, Person member) {
     223        Node gn = getActorNode(group);
     224        Node pn = getActorNode(member);
     225        Person addedMember = null;
     226        if (gn != null && pn != null) {
     227            getOrCreateRelation(pn, RelationTypes.MEMBER_OF, gn);
     228            addedMember = member;
     229        }
     230        return addedMember;
     231    }
     232   
     233    /**
     234     * Delete Person oldMember from Group group.
     235     *
     236     * @param group
     237     * @param member
     238     */
     239    public void deleteGroupMember(Group group, Person member) {
     240        Node gn = getActorNode(group);
     241        Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF);
     242        for (Relationship rel : rels) {
     243            Node mn = rel.getStartNode();
     244            if (mn.equals(member)) {
     245                rel.delete();
     246                // there should be only one
     247                break;
     248            }
     249        }       
    214250    }
    215251   
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/GroupMembersResource.java

    r24 r27  
    4747        result += String.format("<p>Group: %s <a href=\"%s\">(%s)</a></p>\n", group.getName(), groupsUrl, group.getId());
    4848        result += "<p>Members:</p>\n";
     49        result += String.format("<form method=\"post\" action=\"%s\">", thisUrl);
    4950        result += "<table>";
    5051        List<Person> members = store.getMembersOfGroup(group);
    5152        for (Person p : members) {
    5253            result += String.format("<tr><td>%s</td><td>(%s)</td>", p.getName(), p.getIdString());
    53             //result += String.format("<td></td></tr>\n", p.getName(), p.getIdString());
     54            result += String.format("<td><input type=\"submit\" name=\"del_member\" value=\"delete:%s\"></td></tr>\n", p.getIdString());
    5455        }
    5556        result += "</table>\n";
     57        result += "</form>\n";
    5658        result += String.format("<form method=\"post\" action=\"%s\">\n", thisUrl);
    5759        result += "<p>Add new member: <select name=\"add_member\">\n";
     
    8587            return null;
    8688        }
    87        
     89        if (addMemberId != null) {
     90            logger.debug("adding member: "+addMemberId);
     91            Person member = new Person(addMemberId);
     92            store.addGroupMember(group, member);
     93        } else if (delMemberId != null) {
     94            if (delMemberId.startsWith("delete:")) {
     95                delMemberId = delMemberId.substring(7);
     96            }
     97            logger.debug("deleting member: "+delMemberId);
     98            Person member = new Person(delMemberId);
     99            store.deleteGroupMember(group, member);
     100        }
    88101        // return 303: see other
    89102        setStatus(Status.REDIRECTION_SEE_OTHER);
Note: See TracChangeset for help on using the changeset viewer.