Compare commits
3
Commits
b1af757976
...
68a7052c35
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68a7052c35 | ||
|
|
aaf367480b | ||
|
|
f5476d7f1c |
@@ -14,7 +14,6 @@ import de.srsoftware.umbrella.bookmarks.BookmarkApi;
|
||||
import de.srsoftware.umbrella.company.CompanyModule;
|
||||
import de.srsoftware.umbrella.contact.ContactModule;
|
||||
import de.srsoftware.umbrella.core.SettingsService;
|
||||
import de.srsoftware.umbrella.core.Util;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.documents.DocumentApi;
|
||||
import de.srsoftware.umbrella.files.FileModule;
|
||||
@@ -34,7 +33,6 @@ import de.srsoftware.umbrella.translations.Translations;
|
||||
import de.srsoftware.umbrella.user.UserModule;
|
||||
import de.srsoftware.umbrella.web.WebHandler;
|
||||
import de.srsoftware.umbrella.wiki.WikiModule;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
@@ -15,7 +15,6 @@ import static java.lang.System.Logger.Level.*;
|
||||
import static java.lang.System.Logger.Level.WARNING;
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import com.xrbpowered.jparsedown.JParsedown;
|
||||
import de.srsoftware.tools.Mappable;
|
||||
import de.srsoftware.tools.Query;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
@@ -27,12 +26,13 @@ import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class Util {
|
||||
@@ -188,4 +188,19 @@ jspreadsheet(document.getElementById('spreadsheet'), {
|
||||
public static String dateTimeOf(long epochMilis){
|
||||
return LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilis), ZoneId.systemDefault()).format(TIME_FORMATTER);
|
||||
}
|
||||
|
||||
public static String toJson(ResultSet rs) {
|
||||
try {
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
var meta = rs.getMetaData();
|
||||
for (int col = 1; col <= meta.getColumnCount(); col++) {
|
||||
var key = meta.getColumnName(col);
|
||||
var val = rs.getObject(col);
|
||||
map.put(key, val);
|
||||
}
|
||||
return new JSONObject(map).toString();
|
||||
} catch (SQLException e){
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
let { project, select = o => {}, task } = $props();
|
||||
let tree = $state({});
|
||||
let loading = $state(true);
|
||||
|
||||
async function loadParentCandidates(){
|
||||
let url = api(`task/${task.id}/parent_candidates`);
|
||||
@@ -14,6 +15,7 @@
|
||||
if (res.ok){
|
||||
yikes();
|
||||
tree = await res.json();
|
||||
loading = false;
|
||||
} else error(res);
|
||||
}
|
||||
|
||||
@@ -21,7 +23,16 @@
|
||||
</script>
|
||||
|
||||
<div class="overlay parent_selector">
|
||||
<h2>{t('select a new parent for {entity}',{entity:task.name})}</h2>
|
||||
<h2>
|
||||
{t('select a new parent for {entity}',{entity:task.name})}
|
||||
<button onclick={ev => select(null)}>{t('abort')}</button>
|
||||
</h2>
|
||||
{t('project')}: {project.name}
|
||||
{#if loading}
|
||||
<p>
|
||||
{t('loading')}
|
||||
</p>
|
||||
{:else}
|
||||
<TaskTree {tree} {select} />
|
||||
{/if}
|
||||
</div>
|
||||
@@ -193,7 +193,7 @@
|
||||
|
||||
function update_parent(newVal){
|
||||
select_parent = false;
|
||||
update({parent_task_id:newVal.id});
|
||||
if (newVal) update({parent_task_id:newVal.id});
|
||||
}
|
||||
|
||||
function updatePermission(user_id,permission){
|
||||
|
||||
@@ -14,11 +14,8 @@ import de.srsoftware.configuration.Configuration;
|
||||
import de.srsoftware.tools.Path;
|
||||
import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.Util;
|
||||
import de.srsoftware.umbrella.core.api.MarkdownService;
|
||||
import de.srsoftware.umbrella.core.constants.Field;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
@@ -18,10 +18,12 @@ import static de.srsoftware.umbrella.core.model.Status.*;
|
||||
import static de.srsoftware.umbrella.core.model.Translatable.t;
|
||||
import static de.srsoftware.umbrella.project.Constants.*;
|
||||
import static de.srsoftware.umbrella.task.Constants.*;
|
||||
import static java.lang.System.Logger.Level.TRACE;
|
||||
import static java.text.MessageFormat.format;
|
||||
|
||||
import de.srsoftware.tools.jdbc.Query;
|
||||
import de.srsoftware.umbrella.core.BaseDb;
|
||||
import de.srsoftware.umbrella.core.Util;
|
||||
import de.srsoftware.umbrella.core.constants.Text;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.*;
|
||||
@@ -242,6 +244,7 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
var tasks = new HashMap<Long,Task>();
|
||||
var rs = query.exec(db);
|
||||
while (rs.next()){
|
||||
LOG.log(TRACE,() -> Util.toJson(rs));
|
||||
var task = Task.of(rs);
|
||||
tasks.put(task.id(),task);
|
||||
}
|
||||
|
||||
@@ -195,7 +195,7 @@ public class TaskModule extends BaseHandler implements TaskService {
|
||||
private boolean getParentCandidates(HttpExchange ex, long taskId, UmbrellaUser user) throws IOException {
|
||||
var task = taskDb.load(taskId);
|
||||
var project = projectService().load(task.projectId());
|
||||
var projectTasks = taskDb.listProjectTasks(project.id(),null, false);
|
||||
var projectTasks = taskDb.listProjectTasks(project.id(),null, true);
|
||||
var mapped = projectTasks.values().stream().collect(Collectors.toMap(Task::id,Task::toMap));
|
||||
var roots = new HashMap<Long,Map<String,Object>>();
|
||||
for (var map : mapped.values()){
|
||||
|
||||
Reference in New Issue
Block a user