diff --git a/server-core/src/main/java/io/onedev/server/web/component/datatable/OneDataTable.java b/server-core/src/main/java/io/onedev/server/web/component/datatable/OneDataTable.java index 21a594b8e7..eec4de83c2 100644 --- a/server-core/src/main/java/io/onedev/server/web/component/datatable/OneDataTable.java +++ b/server-core/src/main/java/io/onedev/server/web/component/datatable/OneDataTable.java @@ -10,7 +10,6 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider; import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar; import org.apache.wicket.extensions.markup.html.repeater.data.table.NoRecordsToolbar; -import org.apache.wicket.markup.html.WebComponent; import org.apache.wicket.markup.html.navigation.paging.PagingNavigator; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.OddEvenItem; @@ -41,13 +40,6 @@ public class OneDataTable extends DataTable { return new OnePagingNavigator(navigatorId, table, pagingHistorySupport); } - @Override - protected WebComponent newNavigatorLabel(String navigatorId, DataTable table) { - WebComponent navigatorLabel = new WebComponent(navigatorId); - navigatorLabel.setVisible(false); - return navigatorLabel; - } - }); addBottomToolbar(new NoRecordsToolbar(this, Model.of("Not defined"))); } diff --git a/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/JobBuildInfo.java b/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/JobBuildInfo.java new file mode 100644 index 0000000000..826bfbfaab --- /dev/null +++ b/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/JobBuildInfo.java @@ -0,0 +1,33 @@ +package io.onedev.server.web.component.pullrequest.build; + +import java.util.List; + +import io.onedev.server.model.Build; + +public class JobBuildInfo { + + private final String jobName; + + private final boolean required; + + private final List builds; + + public JobBuildInfo(String jobName, boolean required, List builds) { + this.jobName = jobName; + this.required = required; + this.builds = builds; + } + + public String getJobName() { + return jobName; + } + + public boolean isRequired() { + return required; + } + + public List getBuilds() { + return builds; + } + +} \ No newline at end of file diff --git a/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/PullRequestJobsPanel.java b/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/PullRequestJobsPanel.java index f34daf62bb..4a6d882dc2 100644 --- a/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/PullRequestJobsPanel.java +++ b/server-core/src/main/java/io/onedev/server/web/component/pullrequest/build/PullRequestJobsPanel.java @@ -1,6 +1,8 @@ package io.onedev.server.web.component.pullrequest.build; -import static io.onedev.server.model.Build.*; +import static io.onedev.server.model.Build.NAME_COMMIT; +import static io.onedev.server.model.Build.NAME_JOB; +import static io.onedev.server.model.Build.NAME_PULL_REQUEST; import static io.onedev.server.search.entity.build.BuildQuery.getRuleName; import static io.onedev.server.search.entity.build.BuildQueryLexer.And; import static io.onedev.server.search.entity.build.BuildQueryLexer.Is; @@ -24,7 +26,7 @@ import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; -import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.html.panel.GenericPanel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.Model; import org.unbescape.html.HtmlEscape; @@ -45,17 +47,11 @@ import io.onedev.server.web.component.link.DropdownLink; import io.onedev.server.web.page.project.builds.ProjectBuildsPage; @SuppressWarnings("serial") -public abstract class PullRequestJobsPanel extends Panel { +public abstract class PullRequestJobsPanel extends GenericPanel> { public PullRequestJobsPanel(String id) { super(id); - } - - @Override - protected void onInitialize() { - super.onInitialize(); - - add(new ListView("jobs", new LoadableDetachableModel>() { + setModel(new LoadableDetachableModel>() { @Override protected List load() { @@ -91,7 +87,14 @@ public abstract class PullRequestJobsPanel extends Panel { return listOfJobBuildInfo; } - }) { + }); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new ListView("jobs", getModel()) { @Override protected void populateItem(ListItem item) { @@ -189,6 +192,12 @@ public abstract class PullRequestJobsPanel extends Panel { setOutputMarkupId(true); } + @Override + protected void onConfigure() { + super.onConfigure(); + setVisible(!getModelObject().isEmpty()); + } + @Override public void renderHead(IHeaderResponse response) { super.renderHead(response); @@ -196,33 +205,5 @@ public abstract class PullRequestJobsPanel extends Panel { } protected abstract PullRequest getPullRequest(); - - private static class JobBuildInfo { - - private final String jobName; - - private final boolean required; - - private final List builds; - - public JobBuildInfo(String jobName, boolean required, List builds) { - this.jobName = jobName; - this.required = required; - this.builds = builds; - } - - public String getJobName() { - return jobName; - } - - public boolean isRequired() { - return required; - } - - public List getBuilds() { - return builds; - } - - } } diff --git a/server-core/src/main/java/io/onedev/server/web/component/pullrequest/list/PullRequestListPanel.java b/server-core/src/main/java/io/onedev/server/web/component/pullrequest/list/PullRequestListPanel.java index 64689c1b8f..2bc83077b8 100644 --- a/server-core/src/main/java/io/onedev/server/web/component/pullrequest/list/PullRequestListPanel.java +++ b/server-core/src/main/java/io/onedev/server/web/component/pullrequest/list/PullRequestListPanel.java @@ -843,6 +843,7 @@ public abstract class PullRequestListPanel extends Panel { if (getPagingHistorySupport() != null) requestsTable.setCurrentPage(getPagingHistorySupport().getCurrentPage()); + requestsTable.addBottomToolbar(new NavigationToolbar(requestsTable) { @Override diff --git a/server-core/src/main/java/io/onedev/server/web/page/base/base.css b/server-core/src/main/java/io/onedev/server/web/page/base/base.css index 5d47b07097..ded0748bd6 100644 --- a/server-core/src/main/java/io/onedev/server/web/page/base/base.css +++ b/server-core/src/main/java/io/onedev/server/web/page/base/base.css @@ -106,6 +106,12 @@ table>thead>tr>th, table>tbody>tr>td { border-top: none; } +.navigatorLabel { + margin-bottom: 1rem; + text-align: center; + font-size: 0.9rem; +} + tr.navigation>td { padding: 20px; } diff --git a/server-core/src/main/java/io/onedev/server/web/page/project/pullrequests/detail/PullRequestDetailPage.java b/server-core/src/main/java/io/onedev/server/web/page/project/pullrequests/detail/PullRequestDetailPage.java index f729cae7be..8e6fb04714 100644 --- a/server-core/src/main/java/io/onedev/server/web/page/project/pullrequests/detail/PullRequestDetailPage.java +++ b/server-core/src/main/java/io/onedev/server/web/page/project/pullrequests/detail/PullRequestDetailPage.java @@ -718,12 +718,6 @@ public abstract class PullRequestDetailPage extends ProjectPage implements PullR return PullRequestDetailPage.this.getPullRequest(); } - @Override - protected void onConfigure() { - super.onConfigure(); - setVisible(!getPullRequest().getCurrentBuilds().isEmpty()); - } - }); fragment.add(new WebMarkupContainer("jobsHelp") {