GSoC2019 Working Hours Plugin - UI Improvements

This site is the new docs site currently being tested. For the actual docs in use please go to https://www.jenkins.io/doc.

Goal: Rewrite Working Hours plugin UI in React, providing much needed usability Improvements

Status: Completed

Team

Student: jackshen Jack Shen

Mentor(s): jeffpearce Jeff Pearce no image Keith Zantow

Overview

The Working Hour Plugin provides an interface to set up a schedule of allowable build days and times. Jobs that run outside of configured working hours are held until the next allowable build time.

Why UI improvements

The current Working Hour Plugin provides an interface to set up a schedule of allowable build times but the user interface and usability still need enhancement. Thus a new user interface based on new technologies like React could be used to optimize user experience and code readability.

How it is improved

We use React to improve the Plugin UI, while the integration from React to Jenkins plugin is the key point, and we are using a pattern to make this possible, which is then extracted to a code template, the React Plugin Template, for more information about the integration plan, you can read more at Github: React Plugin Template

Summary

During this summer, we have 3 presentations for three code phases, they can be accessed at

Plugin screenshots

Exclude Dates

Excluded Dates Example

Time Ranges

Time Ranges Example

Added features

We use react-datepicker to help pick a date, rather than input a hard-coded string. datepicker

Provide holiday presets to help user select excluded dates presets

Support repeat on excluded dates repeat

Support dynamic date dynamic date

Slider to help select time ranges slider

Set timezone to allow setting the excluded date to a different timezone from the jenkins instance. timezone