Skip to content

Commit

Permalink
More
Browse files Browse the repository at this point in the history
  • Loading branch information
janfaracik committed Mar 17, 2024
1 parent 5b4d587 commit 6bcf863
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package jenkins.model.view;

import hudson.Extension;
import hudson.model.Action;
import hudson.model.Job;
import java.util.Collection;
import java.util.Set;
import jenkins.model.TransientActionFactory;
import jenkins.model.menu.Group;
import jenkins.model.menu.event.LinkAction;

public class ConfigureProjectMenuItem implements Action {

@Override
public String getDisplayName() {
return "Configure";
}

@Override
public String getIconFileName() {
return "symbol-settings";
}

@Override
public Group getGroup() {
return Group.IN_APP_BAR;
}

@Override
public jenkins.model.menu.event.Action getAction() {
return LinkAction.of("configure");
}

@Extension
public static class TransientActionFactoryImpl extends TransientActionFactory<Job> {

@Override
public Class<Job> type() {
return Job.class;
}

@Override
public Collection<? extends Action> createFor(Job target) {
if (!target.hasPermission(Job.CONFIGURE)) {
return Set.of();
}

return Set.of(new ConfigureProjectMenuItem());
}
}
}
57 changes: 57 additions & 0 deletions core/src/main/java/jenkins/model/view/DeleteProjectMenuItem.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package jenkins.model.view;

import hudson.Extension;
import hudson.model.Action;
import hudson.model.Job;
import java.util.Collection;
import java.util.Set;
import jenkins.model.TransientActionFactory;
import jenkins.model.menu.Group;
import jenkins.model.menu.Semantic;
import jenkins.model.menu.event.LinkAction;

public class DeleteProjectMenuItem implements Action {

@Override
public String getDisplayName() {
return "Delete project";
}

@Override
public String getIconFileName() {
return "symbol-trash";
}

@Override
public Group getGroup() {
return Group.LAST_IN_MENU;
}

@Override
public jenkins.model.menu.event.Action getAction() {
return LinkAction.of("delete");
}

@Override
public Semantic getSemantic() {
return Semantic.DESTRUCTIVE;
}

@Extension
public static class TransientActionFactoryImpl extends TransientActionFactory<Job> {

@Override
public Class<Job> type() {
return Job.class;
}

@Override
public Collection<? extends Action> createFor(Job target) {
if (!target.hasPermission(Job.DELETE)) {
return Set.of();
}

return Set.of(new DeleteProjectMenuItem());
}
}
}
26 changes: 13 additions & 13 deletions core/src/main/resources/lib/hudson/project/configurable.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ THE SOFTWARE.
<?jelly escape-by-default='true'?>
<!-- Displayed by projects (assignable to ParameterizedJobMixIn.ParameterizedJob) which can be configured and built. -->
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout" xmlns:st="jelly:stapler">
<j:if test="${it.buildable}">
<st:adjunct includes="lib.hudson.project.configurable.configurable"/>
<l:task href="${url}/build?delay=0sec" icon="icon-clock icon-md" permission="${it.BUILD}" post="${!it.parameterized}" data-callback="lib_hudson_project_configurable_build_now_callback" data-build-success="${%Build scheduled}" data-parameterized="${it.parameterized}" title="${it.buildNowText}"/>
</j:if>
<j:choose>
<j:when test="${h.hasPermission(it,it.CONFIGURE)}">
<l:task href="${url}/configure" icon="symbol-settings" title="${%Configure}"/>
</j:when>
<j:when test="${h.hasPermission(it,it.EXTENDED_READ)}">
<l:task href="${url}/configure" icon="symbol-settings" title="${%View Configuration}"/>
</j:when>
</j:choose>
<l:delete message="${%delete.confirm(it.pronoun, it.displayName)}" urlPrefix="${url}" permission="${it.DELETE}" title="${%delete(it.pronoun)}"/>
<!-- <j:if test="${it.buildable}">-->
<!-- <st:adjunct includes="lib.hudson.project.configurable.configurable"/>-->
<!-- <l:task href="${url}/build?delay=0sec" icon="icon-clock icon-md" permission="${it.BUILD}" post="${!it.parameterized}" data-callback="lib_hudson_project_configurable_build_now_callback" data-build-success="${%Build scheduled}" data-parameterized="${it.parameterized}" title="${it.buildNowText}"/>-->
<!-- </j:if>-->
<!-- <j:choose>-->
<!-- <j:when test="${h.hasPermission(it,it.CONFIGURE)}">-->
<!-- <l:task href="${url}/configure" icon="symbol-settings" title="${%Configure}"/>-->
<!-- </j:when>-->
<!-- <j:when test="${h.hasPermission(it,it.EXTENDED_READ)}">-->
<!-- <l:task href="${url}/configure" icon="symbol-settings" title="${%View Configuration}"/>-->
<!-- </j:when>-->
<!-- </j:choose>-->
<!-- <l:delete message="${%delete.confirm(it.pronoun, it.displayName)}" urlPrefix="${url}" permission="${it.DELETE}" title="${%delete(it.pronoun)}"/>-->
</j:jelly>

0 comments on commit 6bcf863

Please sign in to comment.