Skip to content

Commit f636cc2

Browse files
committed
add in page actions
1 parent df59194 commit f636cc2

File tree

6 files changed

+83
-10
lines changed

6 files changed

+83
-10
lines changed

core/src/main/java/hudson/model/AbstractProject.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1681,10 +1681,10 @@ protected void buildDependencyGraph(DependencyGraph graph) {
16811681
triggers().buildDependencyGraph(this, graph);
16821682
}
16831683

1684-
// @Override
1685-
// protected SearchIndexBuilder makeSearchIndex() {
1686-
// return getParameterizedJobMixIn().extendSearchIndex(super.makeSearchIndex());
1687-
// }
1684+
@Override
1685+
protected SearchIndexBuilder makeSearchIndex() {
1686+
return getParameterizedJobMixIn().extendSearchIndex(super.makeSearchIndex());
1687+
}
16881688

16891689
@Override
16901690
protected HistoryWidget createHistoryWidget() {

core/src/main/java/hudson/model/Run.java

+45-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@
5656
import hudson.model.listeners.RunListener;
5757
import hudson.model.listeners.SaveableListener;
5858
import hudson.model.queue.SubTask;
59+
import hudson.search.SearchIndex;
5960
import hudson.search.SearchIndexBuilder;
61+
import hudson.search.SearchItem;
62+
import hudson.search.SearchItemCategory;
6063
import hudson.security.ACL;
6164
import hudson.security.AccessControlled;
6265
import hudson.security.Permission;
@@ -1572,8 +1575,48 @@ public void writeWholeLogTo(@NonNull OutputStream out) throws IOException, Inter
15721575
@Override
15731576
protected @NonNull SearchIndexBuilder makeSearchIndex() {
15741577
SearchIndexBuilder builder = super.makeSearchIndex()
1575-
.add("console")
1576-
.add("changes");
1578+
.add(new SearchItem() {
1579+
@Override
1580+
public String getSearchName() {
1581+
return "Console";
1582+
}
1583+
1584+
@Override
1585+
public String getSearchUrl() {
1586+
return "console";
1587+
}
1588+
1589+
@Override
1590+
public SearchItemCategory getSearchItemCategory() {
1591+
return SearchItemCategory.IN_PAGE_ACTIONS;
1592+
}
1593+
1594+
@Override
1595+
public SearchIndex getSearchIndex() {
1596+
return null;
1597+
}
1598+
})
1599+
.add(new SearchItem() {
1600+
@Override
1601+
public String getSearchName() {
1602+
return "Changes";
1603+
}
1604+
1605+
@Override
1606+
public String getSearchUrl() {
1607+
return "changes";
1608+
}
1609+
1610+
@Override
1611+
public SearchItemCategory getSearchItemCategory() {
1612+
return SearchItemCategory.IN_PAGE_ACTIONS;
1613+
}
1614+
1615+
@Override
1616+
public SearchIndex getSearchIndex() {
1617+
return null;
1618+
}
1619+
});
15771620
for (Action a : getAllActions()) {
15781621
if(a.getIconFileName()!=null)
15791622
builder.add(a.getUrlName());

core/src/main/java/hudson/search/Icon.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package hudson.search;
22

3-
import jenkins.model.Jenkins;
43
import org.kohsuke.stapler.export.Exported;
54
import org.kohsuke.stapler.export.ExportedBean;
65

core/src/main/java/hudson/search/ParsedQuickSilver.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public String getSearchUrl() {
174174

175175
@Override
176176
public SearchItemCategory getSearchItemCategory() {
177-
return SearchItemCategory.NODES;
177+
return SearchItemCategory.IN_PAGE_ACTIONS;
178178
}
179179

180180
@Override

core/src/main/java/hudson/search/SearchItemCategory.java

+1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ public enum SearchItemCategory {
88
BUILDS,
99
PEOPLE,
1010
NODES,
11+
IN_PAGE_ACTIONS,
1112
OTHER
1213
}

core/src/main/java/jenkins/model/ParameterizedJobMixIn.java

+32-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@
4747
import hudson.model.Run;
4848
import hudson.model.listeners.ItemListener;
4949
import hudson.model.queue.QueueTaskFuture;
50+
import hudson.search.Icon;
51+
import hudson.search.SearchIndex;
5052
import hudson.search.SearchIndexBuilder;
53+
import hudson.search.SearchItem;
54+
import hudson.search.SearchItemCategory;
5155
import hudson.triggers.Trigger;
5256
import hudson.triggers.TriggerDescriptor;
5357
import hudson.util.AlternativeUiTextProvider;
@@ -63,6 +67,7 @@
6367
import jenkins.model.lazy.LazyBuildMixIn;
6468
import jenkins.triggers.SCMTriggerItem;
6569
import jenkins.util.TimeDuration;
70+
import org.jenkins.ui.icon.IconSet;
6671
import org.kohsuke.accmod.Restricted;
6772
import org.kohsuke.accmod.restrictions.DoNotUse;
6873
import org.kohsuke.accmod.restrictions.NoExternalUse;
@@ -259,8 +264,33 @@ public final void doCancelQueue( StaplerRequest req, StaplerResponse rsp ) throw
259264
* @return the value to return
260265
*/
261266
public final SearchIndexBuilder extendSearchIndex(SearchIndexBuilder sib) {
262-
if (asJob().isBuildable() && asJob().hasPermission(Item.BUILD)) {
263-
sib.add("build", "build");
267+
if (asJob().isBuildable() && asJob().isParameterized() && asJob().hasPermission(Item.BUILD)) {
268+
sib.add(new SearchItem() {
269+
@Override
270+
public String getSearchName() {
271+
return "Build project";
272+
}
273+
274+
@Override
275+
public String getSearchUrl() {
276+
return "build";
277+
}
278+
279+
@Override
280+
public Icon getSearchItemIcon() {
281+
return Icon.fromSvg(IconSet.getIonicon("play-outline", null));
282+
}
283+
284+
@Override
285+
public SearchItemCategory getSearchItemCategory() {
286+
return SearchItemCategory.IN_PAGE_ACTIONS;
287+
}
288+
289+
@Override
290+
public SearchIndex getSearchIndex() {
291+
return null;
292+
}
293+
});
264294
}
265295
return sib;
266296
}

0 commit comments

Comments
 (0)