在 Google Summer of Code 的第一个代码阶段,我一直在从事 Working Hours Project 项目,该项目还有待于改善可用性。
当我们想设计一个具有大量可以使用自定义库的 UI 时,React 似乎比经典的 Jelly 页面更受青睐,尤其是日期选择器之类的开源组件。
但是,我们目前正致力于将 React 和 Jenkins 集成在一起,这是一个挑战。
在第一个代码阶段,我们专注于 UI 改进,我们取得了以下主要改进:
可以在这里找到集成的解决方案文档
最初,我们发现 BlueOcean 是在 Jenkins 中使用 React 的一个很好的例子,但是对于使用插件进行通用开发来说,它并不是一个好的选择。因此,我们需要找到另一种集成方式。
这是进行集成的步骤:
ID
的元素。<script type="text/javascript"
src="${resURL}/plugin/working-hours/js/main.js"></script>
public HttpResponse doDynamic(StaplerRequest request) {
if (config == null) {
config = ExtensionList.lookup(WorkingHoursPlugin.class).get(0);
}
String restOfPath = request.getRestOfPath();
String[] pathTokens = restOfPath.split("/");
List<String> params = new ArrayList<>();
switch (params.get(0)) {
case "list-excluded-dates":
return listExcludedDate(request);
case "set-excluded-dates":
return setExcludedDates(request);
case "list-time-ranges":
return listTimeRanges(request);
case "set-time-ranges":
return setTimeRanges(request);
}
}
如果您想看一下我们的插件,可以查看 working-hours-plugin 的仓库。只需阅读 README 文件,即可运行 working-hours-plugin 的副本。
当前的插件外观有点简单,插件使用起来有些不便。比如说如果我们要输入排除的日期,它将是一个恒定格式的字符串,例如 15/9/2019,但是新的用户界面选择了 React,因此我们可以使用日期选择器进行改进。
如果您有任何疑问或建议,我们很高兴收到您的来信。下面列出了几个有用的链接: