working on project settings update:

adding/updating members not implemented
This commit is contained in:
2025-07-21 00:16:14 +02:00
parent c8b6c3feb7
commit 6016f81c27
17 changed files with 169 additions and 34 deletions

View File

@@ -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);
}

View File

@@ -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())