package cz.cuni.mff.d3s.been.web.pages.task;
import cz.cuni.mff.d3s.been.api.BeenApiException;
import cz.cuni.mff.d3s.been.logging.LogMessage;
import cz.cuni.mff.d3s.been.core.task.TaskEntry;
import cz.cuni.mff.d3s.been.logging.ServiceLogMessage;
import cz.cuni.mff.d3s.been.logging.TaskLogMessage;
import cz.cuni.mff.d3s.been.persistence.DAOException;
import cz.cuni.mff.d3s.been.util.JSONUtils;
import cz.cuni.mff.d3s.been.util.JsonException;
import cz.cuni.mff.d3s.been.web.components.Layout;
import cz.cuni.mff.d3s.been.web.pages.Page;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Property;
import org.got5.tapestry5.jquery.ImportJQueryUI;
import java.util.Collection;
/**
* @author Kuba Brecka
*/
@Page.Navigation(section = Layout.Section.TASK_DETAIL)
@ImportJQueryUI
@Import(library = { "context:js/logs.js" })
public class Logs extends Page {
@Property
private TaskEntry task;
@Property
private Collection<TaskLogMessage> logs;
@Property
private TaskLogMessage log;
private JSONUtils jsonUtils = JSONUtils.newInstance();
void onActivate(String taskId) throws DAOException, BeenApiException {
task = api.getApi().getTask(taskId);
logs = api.getApi().getLogsForTask(taskId);
}
public String shortLogMessage(LogMessage log) {
if (log.getMessage().length() < 80) {
return log.getMessage();
}
return log.getMessage().substring(0, 75) + " ...";
}
public String shortClass(LogMessage log) {
int idx = log.getName().lastIndexOf('.');
if (idx == -1) return log.getName();
return "..." + log.getName().substring(idx + 1);
}
public String jsonTaskLog(TaskLogMessage taskLog) {
try {
return jsonUtils.serialize(taskLog);
} catch (JsonException e) {
return "";
}
}
}