implemented showing members of companies
This commit is contained in:
@@ -17,9 +17,8 @@ import de.srsoftware.umbrella.core.BaseHandler;
|
|||||||
import de.srsoftware.umbrella.core.api.CompanyService;
|
import de.srsoftware.umbrella.core.api.CompanyService;
|
||||||
import de.srsoftware.umbrella.core.api.UserService;
|
import de.srsoftware.umbrella.core.api.UserService;
|
||||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||||
import de.srsoftware.umbrella.core.model.Company;
|
import de.srsoftware.umbrella.core.model.*;
|
||||||
import de.srsoftware.umbrella.core.model.Token;
|
|
||||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -110,7 +109,23 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<Long,Company> listCompaniesOf(UmbrellaUser user) throws UmbrellaException {
|
public Map<Long,Company> listCompaniesOf(UmbrellaUser user) throws UmbrellaException {
|
||||||
return companyDb.listCompaniesOf(user.id());
|
return loadMembers(companyDb.listCompaniesOf(user.id()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Long,Company> loadMembers(Map<Long,Company> companyMap){
|
||||||
|
loadMembers(companyMap.values());
|
||||||
|
return companyMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<Company> loadMembers(Collection<Company> companyList) {
|
||||||
|
var userMap = new HashMap<Long,UmbrellaUser>();
|
||||||
|
for (var company : companyList){
|
||||||
|
for (var userId : companyDb.getMembers(company.id())){
|
||||||
|
var user = userMap.computeIfAbsent(userId,k -> users.loadUser(userId));
|
||||||
|
company.members().put(userId,user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return companyList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -9,10 +9,7 @@ import de.srsoftware.tools.Mappable;
|
|||||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Currency;
|
import java.util.*;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@@ -23,6 +20,7 @@ public class Company implements Mappable {
|
|||||||
private long lastCustomerNumber;
|
private long lastCustomerNumber;
|
||||||
private int decimals;
|
private int decimals;
|
||||||
private final Set<String> dirtyFields = new HashSet<>();
|
private final Set<String> dirtyFields = new HashSet<>();
|
||||||
|
private final Map<Long,UmbrellaUser> members;
|
||||||
|
|
||||||
private Company(long id){
|
private Company(long id){
|
||||||
this(id,null,null,null,null,null,null,null,0,2,null,null,null,null);
|
this(id,null,null,null,null,null,null,null,0,2,null,null,null,null);
|
||||||
@@ -43,6 +41,7 @@ public class Company implements Mappable {
|
|||||||
this.currency = currency;
|
this.currency = currency;
|
||||||
this.email = email;
|
this.email = email;
|
||||||
this.bankAccount = bankAccount;
|
this.bankAccount = bankAccount;
|
||||||
|
this.members = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String address(){
|
public String address(){
|
||||||
@@ -98,6 +97,10 @@ public class Company implements Mappable {
|
|||||||
return lastCustomerNumber;
|
return lastCustomerNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Long, UmbrellaUser> members(){
|
||||||
|
return members;
|
||||||
|
}
|
||||||
|
|
||||||
public String name(){
|
public String name(){
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
@@ -175,6 +178,10 @@ public class Company implements Mappable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> toMap() {
|
public Map<String, Object> toMap() {
|
||||||
|
var memberMap = new HashMap<Long,Map<String,Object>>();
|
||||||
|
if (members != null) for (var entry : members.entrySet()){
|
||||||
|
memberMap.put(entry.getKey(),entry.getValue().toMap());
|
||||||
|
}
|
||||||
return Map.ofEntries(
|
return Map.ofEntries(
|
||||||
entry(ID,id),
|
entry(ID,id),
|
||||||
entry(NAME,name),
|
entry(NAME,name),
|
||||||
@@ -189,7 +196,8 @@ public class Company implements Mappable {
|
|||||||
entry(CUSTOMER_NUMBER_PREFIX,emptyIfNull(customerNumberPrefix)),
|
entry(CUSTOMER_NUMBER_PREFIX,emptyIfNull(customerNumberPrefix)),
|
||||||
entry(FIELD_CURRENCY,emptyIfNull(currency)),
|
entry(FIELD_CURRENCY,emptyIfNull(currency)),
|
||||||
entry(EMAIL,emptyIfNull(email)),
|
entry(EMAIL,emptyIfNull(email)),
|
||||||
entry(FIELD_BANK_ACCOUNT,emptyIfNull(bankAccount))
|
entry(FIELD_BANK_ACCOUNT,emptyIfNull(bankAccount)),
|
||||||
|
entry(MEMBERS,memberMap)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,7 +84,13 @@
|
|||||||
<tr onclick={e => showDetail(cid)}>
|
<tr onclick={e => showDetail(cid)}>
|
||||||
<td>{company.name}</td>
|
<td>{company.name}</td>
|
||||||
<td>{company.email}</td>
|
<td>{company.email}</td>
|
||||||
<td>{company.address.replace('\r','').replaceAll('\n',' / ')}</td>
|
<td>
|
||||||
|
<ul>
|
||||||
|
{#each Object.entries(company.members) as [uid,member]}
|
||||||
|
<li>{member.name}</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{#if selected==cid}
|
{#if selected==cid}
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -247,7 +247,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
{t('tasks')}
|
{t('tasks')}
|
||||||
<button onclick={addTask}>{t('add_task')}</button>
|
<button onclick={addTask}>{t('add_object',{object:t('task')})}</button>
|
||||||
</th>
|
</th>
|
||||||
<td class="tasks">
|
<td class="tasks">
|
||||||
{#if tasks}
|
{#if tasks}
|
||||||
|
|||||||
Reference in New Issue
Block a user