mirror of
https://github.com/theonedev/onedev.git
synced 2025-12-08 18:26:30 +00:00
feat: Add description field in iterations view (OD-2420)
This commit is contained in:
parent
9ac90063f2
commit
c40271c01b
@ -0,0 +1,12 @@
|
||||
package io.onedev.server.web.component.iteration.list;
|
||||
|
||||
import io.onedev.server.web.page.base.BaseDependentCssResourceReference;
|
||||
|
||||
public class IterationListCssResourceReference extends BaseDependentCssResourceReference {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public IterationListCssResourceReference() {
|
||||
super(IterationListCssResourceReference.class, "iteration-list.css");
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,41 @@
|
||||
package io.onedev.server.web.component.iteration.list;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.behavior.AttributeAppender;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.link.Link;
|
||||
import org.apache.wicket.markup.html.panel.Fragment;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.request.cycle.RequestCycle;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
|
||||
import io.onedev.commons.utils.StringUtils;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.IssueManager;
|
||||
import io.onedev.server.entitymanager.IterationManager;
|
||||
@ -18,45 +54,21 @@ import io.onedev.server.web.WebSession;
|
||||
import io.onedev.server.web.component.datatable.DefaultDataTable;
|
||||
import io.onedev.server.web.component.floating.FloatingPanel;
|
||||
import io.onedev.server.web.component.issue.statestats.StateStatsBar;
|
||||
import io.onedev.server.web.component.iteration.IterationDateLabel;
|
||||
import io.onedev.server.web.component.iteration.actions.IterationActionsPanel;
|
||||
import io.onedev.server.web.component.link.ActionablePageLink;
|
||||
import io.onedev.server.web.component.link.ViewStateAwarePageLink;
|
||||
import io.onedev.server.web.component.menu.MenuItem;
|
||||
import io.onedev.server.web.component.menu.MenuLink;
|
||||
import io.onedev.server.web.component.iteration.IterationDateLabel;
|
||||
import io.onedev.server.web.component.iteration.actions.IterationActionsPanel;
|
||||
import io.onedev.server.web.page.project.issues.iteration.IterationIssuesPage;
|
||||
import io.onedev.server.web.page.project.issues.iteration.NewIterationPage;
|
||||
import io.onedev.server.web.util.LoadableDetachableDataProvider;
|
||||
import io.onedev.server.web.util.paginghistory.PagingHistorySupport;
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.behavior.AttributeAppender;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.link.Link;
|
||||
import org.apache.wicket.markup.html.panel.Fragment;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.request.cycle.RequestCycle;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
|
||||
public class IterationListPanel extends GenericPanel<Project> {
|
||||
|
||||
private static final int MAX_DESC_DISP_LEN = 64;
|
||||
|
||||
private boolean closed;
|
||||
|
||||
private IterationSort sort;
|
||||
@ -258,6 +270,21 @@ public class IterationListPanel extends GenericPanel<Project> {
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
columns.add(new AbstractColumn<>(Model.of("Description")) {
|
||||
|
||||
@Override
|
||||
public String getCssClass() {
|
||||
return "description d-none d-lg-table-cell align-middle";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populateItem(Item<ICellPopulator<Iteration>> cellItem, String componentId,
|
||||
IModel<Iteration> rowModel) {
|
||||
cellItem.add(new Label(componentId, StringUtils.abbreviate(rowModel.getObject().getDescription(), MAX_DESC_DISP_LEN)));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
columns.add(new AbstractColumn<>(Model.of("Issue Stats")) {
|
||||
|
||||
@ -390,6 +417,12 @@ public class IterationListPanel extends GenericPanel<Project> {
|
||||
return getModelObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
response.render(CssHeaderItem.forReference(new IterationListCssResourceReference()));
|
||||
}
|
||||
|
||||
protected void onSortChanged(AjaxRequestTarget target, IterationSort sort) {
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
.iteration-list .issue-stats {
|
||||
min-width: 200px;
|
||||
}
|
||||
@ -1029,6 +1029,8 @@ public class Translation_zh_CN extends TranslationResourceBundle {
|
||||
"如果未检索到成员资格信息,可选择将新认证的用户添加到指定组");
|
||||
m.put("Optionally add newly authenticated user to specified group if membership information is not retrieved",
|
||||
"如果未检索到成员资格信息,可选择将新认证的用户添加到指定组");
|
||||
m.put("Optionally choose required builds. You may also input jobs not listed here, and press ENTER to add them",
|
||||
"可选:选择所需验证的任务。您也可以在此处输入未列出的任务,并按回车添加它们");
|
||||
m.put("Optionally configure proxy to access remote repository. Proxy should be in the format of <proxy host>:<proxy port>",
|
||||
"可选择为访问远程仓库配置代理。代理应为 <i><代理主机>:<代理端口></i> 格式");
|
||||
m.put("Optionally define a unique key for the project with two or more upper case letters. This key can be used to reference issues, builds, and pull requests with a stable and short form <code><project key>-<number></code> instead of <code><project path>#<number></code>",
|
||||
@ -2232,8 +2234,6 @@ public class Translation_zh_CN extends TranslationResourceBundle {
|
||||
m.put("new field","新字段");
|
||||
m.put("root","根");
|
||||
m.put("true","真");
|
||||
m.put("Optionally choose required builds. You may also input jobs not listed here, and press ENTER to add them",
|
||||
"可选:选择所需验证的任务。您也可以在此处输入未列出的任务,并按回车添加它们");
|
||||
|
||||
// Manually added keys
|
||||
m.put("Create Administrator Account", "创建管理员账户");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user