diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index 2937955517b0fb39950d4f0e3d58308418999cea..581ef35b271be379c174f3720feb47b8d132c214 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -123,7 +123,6 @@ public class ListView extends View implements Saveable { return jobFilters; } - @WithBridgeMethods(Iterable.class) public DescribableList> getColumns() { return columns; } diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 6ab753e3c203100290753e865ca781a7f3e28f55..e21b3a5ac369983760fbf013c466535e3462189b 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -26,7 +26,9 @@ package hudson.model; import hudson.DescriptorExtensionList; import hudson.Extension; import hudson.ExtensionPoint; +import hudson.Indenter; import hudson.Util; +import hudson.matrix.Layouter.Column; import hudson.model.Descriptor.FormException; import hudson.model.Node.Mode; import hudson.model.labels.LabelAtomPropertyDescriptor; @@ -42,6 +44,7 @@ import hudson.util.AlternativeUiTextProvider.Message; import hudson.util.DescribableList; import hudson.util.DescriptorList; import hudson.util.RunList; +import hudson.views.ListViewColumn; import hudson.widgets.Widget; import jenkins.model.Jenkins; import net.sf.json.JSONObject; @@ -335,6 +338,21 @@ public abstract class View extends AbstractModelObject implements AccessControll return Collections.unmodifiableList(Jenkins.getInstance().getWidgets()); } + /** + * If this view uses <t:projectView> for rendering, this method returns columns to be displayed. + */ + public Iterable getColumns() { + return ListViewColumn.createDefaultInitialColumnList(); + } + + /** + * If this view uses <t:projectView> for rendering, this method returns the indenter used + * to indent each row. + */ + public Indenter getIndenter() { + return null; + } + /** * If true, this is a view that renders the top page of Hudson. */ diff --git a/core/src/main/resources/hudson/model/View/main.groovy b/core/src/main/resources/hudson/model/View/main.groovy new file mode 100644 index 0000000000000000000000000000000000000000..30ed5d86f4826e84716c42bedc40a1cf7a3df71f --- /dev/null +++ b/core/src/main/resources/hudson/model/View/main.groovy @@ -0,0 +1,23 @@ +package hudson.model.View; + +t=namespace(lib.JenkinsTagLib) +st=namespace("jelly:stapler") + +if (items.isEmpty()) { + if (app.items.size() != 0) { + context.variables["views"] = my.owner.views; + context.variables["currentView"] = my; + st.include(page: "viewTabs.jelly", it: my.owner.viewsTabBar); + } + st.include(page: "noJob.jelly"); +} else { + t.projectView(jobs: items, jobBaseUrl: "", showViewTabs: true, columnExtensions: my.columns, indenter: my.indenter) { + context.variables["currentView"] = my; + context.variables["views"] = my.owner.views; + if (my.owner.class == hudson.model.MyViewsProperty.class) { + st.include(page: "myViewTabs.jelly", 'it': my.owner?.myViewsTabBar); + } else { + st.include(page: "viewTabs.jelly", 'it': my.owner.viewsTabBar); + } + } +} \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/View/main.jelly b/core/src/main/resources/hudson/model/View/main.jelly deleted file mode 100644 index 51fd27bbc9730957f335aab7d835974a013052f3..0000000000000000000000000000000000000000 --- a/core/src/main/resources/hudson/model/View/main.jelly +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/core/src/main/resources/lib/hudson/projectView.jelly b/core/src/main/resources/lib/hudson/projectView.jelly index b075ded2dd5d9e56d532da922410a43396b2aad9..f0a196478260c882392c899589e3fb5c4b6bedb9 100644 --- a/core/src/main/resources/lib/hudson/projectView.jelly +++ b/core/src/main/resources/lib/hudson/projectView.jelly @@ -54,7 +54,7 @@ THE SOFTWARE. - +