Redmine의 무료 버전 Easy Gantt에 자유롭게 공휴일을 표시하는 방법

Easy Gantt은 Redmine에 고기능 Gantt 차트 기능을 추가하는 플러그인으로 프로 버전 외에 무료 버전도 준비되어있다. 이 무료 버전에서도 상당한 기능을 사용할 수 있기 때문에 매우 편리합니다.



대체로 호평에 도입되었지만, 도입 후에 제일 요망으로서 올라온 것이 공휴일을 간트 차트 위에 내고 싶다는 것이었다.

숨겨진 Easy Gantt 휴일 기능



실은, Easy Gantt에는 Redmine의 환경 설정으로 설정한 휴일 이외에도, 커스텀의 휴일을 설정하는 기능이 있다. 이 기능은 Easy Redmine사의 커스터마이즈판 Redmine과의 연계를 상정하고 있기 때문에, 통상은 (아마 프로판이었다고 해도) 사용할 수 없다.

또, Easy Gantt의 테이블은 JavaScript를 사용해 canvas 요소로서 생성되고 있기 때문에, Redmine의 View Customize plugin으로 캘린더에 공휴일 표시 - Qiita 와 같이 HTML/CSS 요소 레벨에서의 대응은 불가능했다.

거기서 canvas 요소를 생성하고 있는 JavaScript를 해석한 결과, 모든 데이터와 함수가 window.ysy 라는 글로벌 변수에 저장되어 있는 옛날의 구현인 것을 알았다. 게다가 휴일을 회색으로 칠하기 위한 데이터가 ysy.settings.holidays 라는 이름의 배열내에 Moment.js 로 해석할 수 있는 캐릭터 라인의 형식으로 격납할 수 있는 구현이 되고 있었다.

즉, 이 배열에 Easy Gantt의 초기화보다 전에 데이터를 넣어 두면, 마음대로 휴일을 조작할 수 있다는 것이다.

View Customize에서 전역 변수를 만지기



직접 플러그인내의 코드를 변경해도 좋지만, Easy Gantt의 JavaScript 코드는 오픈 소스가 아닌 라이센스로 제공되고 있기 때문에, 엄밀하게는 EULA 위반이 될 가능성이 있다. (루비 코드는 GPL)

그러나 View Customize 플러그인으로 간접적으로 변경한다면 문제 없을 것이다.
View Customize 플러그인은 Redmine의 관리 화면에서 임의의 CSS/JavaScript를 추가할 수 있는 매우 편리한 플러그인이다.

참고 사이트:


  • View Customize - Plugins - Redmine
  • Redmine 플러그인 "view customize plugin"의 사용자 정의 예 - Qiita

  • View Customize에서 공휴일 데이터 입력



    다음과 같은 설정을 View Customize에 추가함으로써 임의로 공휴일을 추가할 수 있다. 아래의 예에서는 2017년 일본 공휴일을 설정하고 있다.

    Path Pattern:


    /projects/.*/easy_gantt

    유형:


    JavaScript

    코드:


    // 休日をガントチャートにプロット
    window.ysy = { settings: { holidays: [
    // 2017年の日本の祝日
    "2017-01-02",
    "2017-01-09",
    "2017-02-11",
    "2017-03-20",
    "2017-04-29",
    "2017-05-03",
    "2017-05-04",
    "2017-05-05",
    "2017-07-17",
    "2017-08-11",
    "2017-09-18",
    "2017-09-23",
    "2017-10-09",
    "2017-11-03",
    "2017-11-23",
    "2017-12-23"
    ]}};
    

    재미있는 휴일 생활을 보내자!



    이렇게 그림처럼 3연휴 등이 간트차트에 반영되게 됐다. 이제 무심코 공휴일에 태스크를 당긴다는 블랙 사고를 피할 수 있게 됐다.



    이쪽도 부디!


  • 결정하는 것이 더 나은 Redmine 운영 규칙 - Qiita
  • 내가 redmine에 넣고있는 편리한 플러그인과 디자인의 멋진 테마 - Qiita
  • 좋은 웹페이지 즐겨찾기