working on project settings update:
adding/updating members not implemented
This commit is contained in:
@@ -118,9 +118,9 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
private boolean addMembers(Project project, HttpExchange ex) throws IOException {
|
||||
var map = project.toMap();
|
||||
var members = new HashMap<Long,Map<String,Object>>();
|
||||
for (var member : project.members()){
|
||||
var perm = member.permission().name();
|
||||
var userId = member.userId();
|
||||
for (var entry : project.members().entrySet()){
|
||||
var userId = entry.getKey();
|
||||
var perm = entry.getValue().permission().toMap();
|
||||
members.put(userId,Map.of(USER,users.loadUser(userId).toMap(),PERMISSION,perm));
|
||||
}
|
||||
if (!members.isEmpty()) map.put(MEMBERS,members);
|
||||
@@ -170,9 +170,9 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
var map = project.toMap();
|
||||
var members = new HashMap<Long,Map<String,Object>>();
|
||||
var userMap = new HashMap<Long,UmbrellaUser>();
|
||||
for (var member : project.members()){
|
||||
var perm = member.permission().name();
|
||||
var userId = member.userId();
|
||||
for (var memberEntry : project.members().entrySet()){
|
||||
var perm = memberEntry.getValue().permission().name();
|
||||
var userId = memberEntry.getKey();
|
||||
var u = userMap.get(userId);
|
||||
if (u == null) userMap.put(userId,u = users.loadUser(userId));
|
||||
members.put(userId,Map.of(USER,u.toMap(),PERMISSION,perm));
|
||||
@@ -205,7 +205,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
if (json.has(SETTINGS) && json.get(SETTINGS) instanceof JSONObject settingsJson){
|
||||
showClosed = settingsJson.has(SHOW_CLOSED) && settingsJson.get(SHOW_CLOSED) == TRUE;
|
||||
}
|
||||
var prj = new Project(0,name,description, OPEN,companyId,showClosed, List.of(new Member(user.id(), OWNER)));
|
||||
var prj = new Project(0,name,description, OPEN,companyId,showClosed, Map.of(user.id(),new Member(user.id(), OWNER)));
|
||||
prj = projects.save(prj);
|
||||
return sendContent(ex,prj);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class SqliteDb implements ProjectDb {
|
||||
var userId = rs.getLong(USER_ID);
|
||||
var projectId = rs.getLong(PROJECT_ID);
|
||||
var permission = Permission.of(rs.getInt(PERMISSIONS));
|
||||
projects.get(projectId).members().add(new Member(userId,permission));
|
||||
projects.get(projectId).members().put(userId, new Member(userId,permission));
|
||||
}
|
||||
rs.close();
|
||||
return projects;
|
||||
@@ -198,7 +198,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
|
||||
if (id != null){
|
||||
if (!prj.members().isEmpty()) {
|
||||
var query = insertInto(TABLE_PROJECT_USERS, PROJECT_ID, USER_ID, PERMISSIONS);
|
||||
for (var member : prj.members()) query.values(id, member.userId(), member.permission().code());
|
||||
for (var entry : prj.members().entrySet()) query.values(id, entry.getKey(), entry.getValue().permission().code());
|
||||
query.execute(db).close();
|
||||
}
|
||||
return new Project(id, prj.name(), prj.description(),prj.status(),prj.companyId().orElse(null),prj.showClosed(),prj.members());
|
||||
@@ -208,6 +208,11 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
|
||||
}
|
||||
} else { // Update
|
||||
try {
|
||||
if (prj.dirtyFields().contains(MEMBERS)){
|
||||
// TODO:
|
||||
LOG.log(ERROR,"Updating/Adding project members not implemented!");
|
||||
prj.dirtyFields().remove(MEMBERS);
|
||||
}
|
||||
if (prj.isDirty()){
|
||||
update(TABLE_PROJECTS).set(NAME,DESCRIPTION,STATUS,COMPANY_ID,SHOW_CLOSED).where(ID,equal(prj.id())).prepare(db)
|
||||
.apply(prj.name(),prj.description(),prj.status().code(),prj.companyId(),prj.showClosed())
|
||||
|
||||
Reference in New Issue
Block a user