Удобный Dashboard (опыт)

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

Удобный Dashboard (опыт)

Postby Eugene » Sat Apr 30, 2016 1:59 am

Приветствую!
Форум мне сильно помог - хочу отблагодарить, поделившись своим опытом:
Судя по всему, даже опытные пользователи TS не всегда пользуются Dashboard'ом, т.к. он кажется им менее удобным, чем дерево задач (хотя дерево - скорее для навигации) или чем фильтры в папках/категориях. Но вот пример Dashboard, который мы недавно сделали - нам нравится:

Снимок экрана - Dashboard.jpg
Снимок экрана - Dashboard.jpg (241.66 KiB) Viewed 9228 times


Сделано это всё обычным html, CSS, фильтрами и одним скриптом.

СТРУКТУРА:
Слева вверху - популярные ссылки.
Справа вверху - срочные/urgent задачи (статус Blocking)
По-середине - задачи. Этот блок делится на две половины (распределение задач происходит автоматически - фильтрами, основанными на поле "Deadline check:" задачи):
В правой - задачи без Deadline.
В левой - Просроченные задачи и задачи на ближайшие 7 дней (На сегодня + на завтра + на след. 5 дней = 1 неделя).

Думаем добавить ещё блок с недавно закрытыми задачами.


КАК СДЕЛАТЬ:
Наши таблицы (html + CSS) я выкладывать не буду. Да и всем всё разное нравится (текущий дизайн - тоже временный :roll: ).
Фильтры выглядят так (самое ключевое) (+ не забудьте включить "Deep Search"):
Urgent:
urgent.png
urgent.png (25.95 KiB) Viewed 9228 times

For today:
For today.png
For today.png (32.69 KiB) Viewed 9228 times

Кастом поле, которое желательно создать корневой задаче: "Deadline check:"
Скрипт (нужно положить в папку "/TrackStudio/etc/plugins/scripts/task_custom_field_value/" и подключить его в настройках кастом поля "Deadline check:"):
Code: Select all
package scripts.task_custom_field_value;

import com.trackstudio.exception.GranException;
import com.trackstudio.external.TaskUDFValueScript;
import com.trackstudio.secured.SecuredTaskBean;

import java.util.Calendar;

public class Deadline_Check_For_Dashboard implements TaskUDFValueScript {
    public Object calculate( SecuredTaskBean securedTaskBean ) throws GranException {
        String result = "Deadline check:";
        Calendar deadline = securedTaskBean.getDeadline();
        if( deadline == null ) {
            return "No Deadline";
        }
        Calendar now = Calendar.getInstance();

        Calendar today = Calendar.getInstance();
        today.set( Calendar.HOUR_OF_DAY, 23 );
        today.set( Calendar.MINUTE, 59 );
        today.set( Calendar.SECOND, 59 );

        Calendar tomorrow = Calendar.getInstance();
        tomorrow.add( Calendar.DAY_OF_YEAR, 1 );
        tomorrow.set( Calendar.HOUR_OF_DAY, 23 );
        tomorrow.set( Calendar.MINUTE, 59 );
        tomorrow.set( Calendar.SECOND, 59 );

        Calendar days = Calendar.getInstance();
        days.add( Calendar.DAY_OF_YEAR, 6 );
        days.set( Calendar.HOUR_OF_DAY, 23 );
        days.set( Calendar.MINUTE, 59 );
        days.set( Calendar.SECOND, 59 );   

        if( deadline.after( days ) ) {
            result = "Much later";
        } else if( deadline.after( tomorrow ) ) {
            result = "Next 5 days";
        } else if( deadline.after( today ) ) {
            result = "Tomorrow";
        } else if( deadline.after( now ) ) {
            result = "Today";
        } else {
            result = "Overdue";
        }   

        return result;
    }
}

Когда всё продумано и сделано - выглядит просто. Но у нас это заняло несколько недель. Зато теперь, мы довольны результатами!

Если интересно, то, может быть, в будущем расскажу ещё что-нибудь так же подробно (если форум поможет мне с реализацией других идей, чтобы было, о чём рассказывать :wink: ).
Eugene
 
Posts: 127
Joined: Tue Jan 19, 2016 10:57 pm

Re: Удобный Dashboard (опыт)

Postby admin » Sat Apr 30, 2016 2:04 am

Спасибо!

Интерфейс самой системы не правили, только дашборд ?
Maxim Kramarenko (mailto: maximkr@trackstudio.com)
TrackStudio - Hierarchical Bug & Issue Tracking Software
http://www.trackstudio.com
admin
Site Admin
 
Posts: 8148
Joined: Thu Jan 01, 1970 3:00 am
Location: Smolensk, Russia

Re: Удобный Dashboard (опыт)

Postby Eugene » Sat Apr 30, 2016 2:13 am

Только дашборд через штатные возможности системы. :)
Редактор TinyMCE, используемый в TS, даёт широкие возможности (в т.ч. там есть кнопка "html"). А CSS добавляли в файл webapps/TrackStudio/style_src.css

Кстати - совет по CSS: не используйте классы для своих CSS-классов/элементов. Используйте id (#), т.к. редактор TinyMCE беспощадно режет "class" в html. Я с этим ничего поделать не смог, хоть и копал... Проще использовать id вместо class, хотя иногда это делает трудности, но они преодолимы, например: #urgent-tasks table.general.sortable tr:last-child td:first-child или #common-tasks-table em.number.
Eugene
 
Posts: 127
Joined: Tue Jan 19, 2016 10:57 pm

Re: Удобный Dashboard (опыт)

Postby Eugene » Sat Apr 30, 2016 2:57 am

Забыл ещё про фильтр Overdue - вот как он делается:
overdue.png
overdue.png (29.26 KiB) Viewed 9219 times
Eugene
 
Posts: 127
Joined: Tue Jan 19, 2016 10:57 pm


Return to TrackStudio Support [Russian]

Who is online

Users browsing this forum: No registered users and 9 guests

cron