Dashboard добавление своего графика

Обсуждаем TrackStudio по-русски

Dashboard добавление своего графика

Postby sberezin » Tue Apr 26, 2016 10:52 am

Добрый день!
Прошу помочь с выводом своего графика на Dashboard.
Сейчас в TrackStudio на Dashboard можно вывести 8 графиков, изначально заданных в системе, указав задачу, фильтр и некоторые настройки Google visualisation API, мне необходимо добавить свой график с указанием ответственных и количеством задач на них (есть похожие графики, но они не подходят).
Просмотрел документацию по Dashboard (http://www.trackstudio.ru/dashboard-charts.html), нашел пример проекта, который лежит в etc/development/scripts/src/main/java/macros/example/GoogleGantt.java в котором добавляется chart, но остаются некоторые вопросы:
1. в проекте указан package macros.example; если собирать свой макрос, то какой package указывать?
2. в папке etc/development/scripts лежит файл проекта maven, можно собрать под ним, но будет ли при этом файл обрабатываться системой или это только проект с тестовым примером?
3. после добавления нового графика как потом вывести его на Dashboard, нужно будет как-то подключать новый макрос к задаче (категории) или система автоматически его подключит и вызов графика будет доступен на Dashboard.
sberezin
 
Posts: 2
Joined: Tue Apr 26, 2016 10:20 am

Re: Dashboard добавление своего графика

Postby Petr » Tue Apr 26, 2016 4:39 pm

Добрый день.
1. пакет можно указать любой. Главное потом правильно его прописать в properties.
2. да можно прямо в нем собрать mvn clean install. jar сразу разместить в etc/plugins/scripts/ и будет подгружен системой.
3. Механизм простой. когда данные задачи отрисовывается система проверяет описание задачи на наличие специальной маски например gantchart{} и вместо нее отображает данные, которые формирует скрипт. То есть в вашем макросе надо проверять в тексте такую маску и заменять ее на ваш код.
Стань Java программистом с www.job4j.ru
Petr
 
Posts: 2929
Joined: Wed Aug 12, 2009 4:38 pm

Re: Dashboard добавление своего графика

Postby sberezin » Wed Apr 27, 2016 12:04 pm

Petr wrote: То есть в вашем макросе надо проверять в тексте такую маску и заменять ее на ваш код.

Подскажите, а есть пример проверки такой маски? к тексту на Dashboard обращаться, как к описанию обычной задачи Task.GetDeskription?
Обычно в скриптах указывалась во входных параметрах задача как SecuredTaskBean Task, и далее к ее полям можно было обратиться в примере же указан TaskView view
sberezin
 
Posts: 2
Joined: Tue Apr 26, 2016 10:20 am

Re: Dashboard добавление своего графика

Postby Petr » Wed Apr 27, 2016 12:19 pm

вот самый простой пример.

Code: Select all
package com.trackstudio.app.adapter.macros;

import com.trackstudio.app.adapter.AdapterManager;
import com.trackstudio.app.adapter.MacrosTaskAdapter;
import com.trackstudio.app.session.SessionContext;
import com.trackstudio.exception.GranException;
import com.trackstudio.kernel.cache.UserRelatedInfo;
import com.trackstudio.kernel.cache.UserRelatedManager;
import com.trackstudio.kernel.manager.KernelManager;
import com.trackstudio.secured.SecuredUserBean;
import com.trackstudio.view.TaskView;
import net.jcip.annotations.Immutable;


import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Immutable
public class Username implements MacrosTaskAdapter {


    @Override
    /**
     * @root max@gmail.com (@root) (max.v@gmail.com)
     */
    public String convert(TaskView view, String description) throws GranException {

        StringBuffer sb = new StringBuffer();
        Pattern usernamePattern = Pattern.compile("@(\\w+)(\\.?)(\\w+)(\\.?)(\\w+)");
        Matcher matcher = usernamePattern.matcher(description);
        SessionContext sc = view.getTask().getSecure();
        while (matcher.find()) {
            String login = matcher.group().substring(1);
            String userId = KernelManager.getUser().findByLogin(login);
            if (userId != null) {
                matcher.appendReplacement(sb, view.getUserView(new SecuredUserBean(UserRelatedManager.getInstance().find(userId), sc)).getPath());
            }
        }
        matcher.appendTail(sb);
        if (sb.toString().isEmpty()) {
            return description;
        }  else {
            return sb.toString();
        }
    }
    @Override
    public boolean init() {
        return true;
    }

    @Override
    public String getDescription() {
        return null;
    }
}
Стань Java программистом с www.job4j.ru
Petr
 
Posts: 2929
Joined: Wed Aug 12, 2009 4:38 pm


Return to TrackStudio Support [Russian]

Who is online

Users browsing this forum: No registered users and 9 guests

cron