diff --git a/pom.xml b/pom.xml index 01841e8d..84417462 100644 --- a/pom.xml +++ b/pom.xml @@ -68,8 +68,9 @@ 999999-SNAPSHOT jenkinsci/${project.artifactId}-plugin - 2.479 - ${jenkins.baseline}.1 + 2.528 + + 2.543-rc37824.9e78b_3809343 1372 @@ -91,7 +92,7 @@ io.jenkins.tools.bom bom-${jenkins.baseline}.x - 3482.vc10d4f6da_28a_ + 5804.v80587a_38d937 import pom diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java index 5cd54db4..3b1519b2 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsStoreAction.java @@ -28,6 +28,13 @@ import com.cloudbees.plugins.credentials.domains.Domain; import com.cloudbees.plugins.credentials.domains.DomainSpecification; import com.cloudbees.plugins.credentials.impl.BaseStandardCredentials; +import com.cloudbees.plugins.credentials.links.DeleteCredentialsLink; +import com.cloudbees.plugins.credentials.links.DeleteDomainLink; +import com.cloudbees.plugins.credentials.links.MoveCredentialsLink; +import com.cloudbees.plugins.credentials.links.NewCredentialsLink; +import com.cloudbees.plugins.credentials.links.NewDomainLink; +import com.cloudbees.plugins.credentials.links.UpdateCredentialsLink; +import com.cloudbees.plugins.credentials.links.UpdateDomainLink; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; @@ -86,6 +93,7 @@ import org.apache.commons.lang3.StringUtils; import org.jenkins.ui.icon.IconSpec; import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.HttpResponse; @@ -575,6 +583,11 @@ public void checkPermission(@NonNull Permission permission) throws AccessDeniedE getACL().checkPermission(permission); } + @Restricted(DoNotUse.class) // jelly + public NewDomainLink getNewDomainLink() { + return new NewDomainLink(); + } + /** * {@inheritDoc} */ @@ -646,6 +659,21 @@ public CredentialsStoreAction getParent() { return parent; } + @Restricted(DoNotUse.class) // jelly + public UpdateDomainLink getUpdateDomainLink() { + return new UpdateDomainLink(); + } + + @Restricted(DoNotUse.class) // jelly + public DeleteDomainLink getDeleteDomainLink() { + return new DeleteDomainLink(); + } + + @Restricted(DoNotUse.class) // jelly + public NewCredentialsLink getNewCredentialsLink() { + return new NewCredentialsLink(); + } + /** * Return the URL name. * @@ -1158,6 +1186,22 @@ public Api getApi() { return new Api(this); } + @Restricted(DoNotUse.class) // jelly + public UpdateCredentialsLink getUpdateLink() { + return new UpdateCredentialsLink(); + } + + @Restricted(DoNotUse.class) // jelly + public DeleteCredentialsLink getDeleteLink() { + return new DeleteCredentialsLink(); + } + + @Restricted(DoNotUse.class) // jelly + public MoveCredentialsLink getMoveLink() { + return new MoveCredentialsLink(); + } + + /** * Gets the display name of the {@link Credentials}. * diff --git a/src/main/java/com/cloudbees/plugins/credentials/ManageCredentialsConfiguration.java b/src/main/java/com/cloudbees/plugins/credentials/ManageCredentialsConfiguration.java index 1b59455d..ff32261a 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/ManageCredentialsConfiguration.java +++ b/src/main/java/com/cloudbees/plugins/credentials/ManageCredentialsConfiguration.java @@ -16,8 +16,10 @@ @Restricted(NoExternalUse.class) public class ManageCredentialsConfiguration extends ManagementLink { - public String getCategoryName() { - return "SECURITY"; + @NonNull + @Override + public Category getCategory() { + return Category.SECURITY; } @Override diff --git a/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java b/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java index 6eb744b7..056ba866 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java +++ b/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java @@ -29,10 +29,12 @@ import edu.umd.cs.findbugs.annotations.CheckForNull; import edu.umd.cs.findbugs.annotations.NonNull; import hudson.Extension; +import hudson.ExtensionList; import hudson.model.Action; import hudson.model.Api; import hudson.model.Item; import hudson.model.ItemGroup; +import hudson.model.ManagementLink; import hudson.model.ModelObject; import hudson.model.RootAction; import hudson.model.TopLevelItem; @@ -59,6 +61,7 @@ import jenkins.model.TransientActionFactory; import org.jenkins.ui.icon.IconSpec; import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.StaplerRequest2; import org.kohsuke.stapler.StaplerResponse2; @@ -239,6 +242,11 @@ public boolean isVisible() { return false; } + @Restricted(DoNotUse.class) // for jelly + public ManagementLink getManagementLink() { + return ExtensionList.lookupSingleton(ManageCredentialsConfiguration.class); + } + /** * Administrator's view credentials from 'Manage Jenkins'. * @param accessControlled an access controlled object. @@ -513,6 +521,11 @@ public String getId() { return credentials instanceof IdCredentials ? ((IdCredentials) credentials).getId() : null; } + @SuppressWarnings("unused") // jelly + public boolean isEditable() { + return store.hasPermission(CredentialsProvider.UPDATE); + } + /** * Returns the {@link Credentials#getScope()} of the {@link #credentials}. * diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/DeleteCredentialsLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/DeleteCredentialsLink.java new file mode 100644 index 00000000..eb1f25b4 --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/DeleteCredentialsLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class DeleteCredentialsLink { + public String getDisplayName() { + return Messages.DeleteCredentialsLink_displayName(); + } +} diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/DeleteDomainLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/DeleteDomainLink.java new file mode 100644 index 00000000..8ddec352 --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/DeleteDomainLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class DeleteDomainLink { + public String getDisplayName() { + return Messages.DeleteDomainLink_displayName(); + } +} diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/MoveCredentialsLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/MoveCredentialsLink.java new file mode 100644 index 00000000..3864444f --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/MoveCredentialsLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class MoveCredentialsLink { + public String getDisplayName() { + return Messages.MoveCredentialsLink_displayName(); + } +} diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/NewCredentialsLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/NewCredentialsLink.java new file mode 100644 index 00000000..aeee6086 --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/NewCredentialsLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class NewCredentialsLink { + public String getDisplayName() { + return Messages.NewCredentialsLink_displayName(); + } +} diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/NewDomainLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/NewDomainLink.java new file mode 100644 index 00000000..ed03e2aa --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/NewDomainLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class NewDomainLink { + public String getDisplayName() { + return Messages.NewDomainLink_displayName(); + } +} diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/UpdateCredentialsLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/UpdateCredentialsLink.java new file mode 100644 index 00000000..7ef1e6eb --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/UpdateCredentialsLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class UpdateCredentialsLink { + public String getDisplayName() { + return Messages.UpdateCredentialsLink_displayName(); + } +} diff --git a/src/main/java/com/cloudbees/plugins/credentials/links/UpdateDomainLink.java b/src/main/java/com/cloudbees/plugins/credentials/links/UpdateDomainLink.java new file mode 100644 index 00000000..641858b1 --- /dev/null +++ b/src/main/java/com/cloudbees/plugins/credentials/links/UpdateDomainLink.java @@ -0,0 +1,7 @@ +package com.cloudbees.plugins.credentials.links; + +public class UpdateDomainLink { + public String getDisplayName() { + return Messages.UpdateDomainLink_displayName(); + } +} diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/delete.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/delete.jelly index 18624621..a7d28b01 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/delete.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/delete.jelly @@ -1,15 +1,33 @@ - - - - -

${%Delete credentials}

-
-

${%confirm(it.displayName,it.typeName)}

-
- -
-
-
-
+ + + + +
+

${%confirm(it.displayName,it.typeName)}

+
+ +
+
+
+
+ + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/index.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/index.jelly index 742b91c5..9c6d0ba1 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/index.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/index.jelly @@ -27,14 +27,17 @@ Index page --> - - - - -

${it.displayName}

-
- -
+ + + + + +
+ +
+
+

${%Usage}

@@ -45,14 +48,18 @@

${%This credential has not been recorded as used anywhere.}
- ${%usageTrackingImperfect} + + ${%usageTrackingImperfect} +

${%This credential has been recorded as used in the following places}:
- ${%usageTrackingImperfect} + + ${%usageTrackingImperfect} +

@@ -85,6 +92,41 @@

${%fingerprintDisabledWarning(app.rootUrl)}

- - + + + + + + + + + ${%Update} + + + ${%Delete} + + + ${%Move} + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/move.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/move.jelly index f863801a..21d3e019 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/move.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/move.jelly @@ -1,9 +1,8 @@ - - - - -

${%Move credentials}

+ + +

${%blurb(it.displayName,it.typeName)}

@@ -26,6 +25,24 @@
-
-
+ + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/sidepanel.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/sidepanel.jelly deleted file mode 100644 index 5f0b75a1..00000000 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/sidepanel.jelly +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/update.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/update.jelly index e02b4cc8..18edeaa8 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/update.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/CredentialsWrapper/update.jelly @@ -28,27 +28,59 @@ --> - - - -

${%Update credentials}

+ xmlns:f="/lib/form" xmlns:d="jelly:define" xmlns:local="local"> + + - + - + - + -
-
+ + + + + + + + ${%Delete} + + + ${%Move} + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/configure.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/configure.jelly index 36e491d4..38b9e6e5 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/configure.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/configure.jelly @@ -28,10 +28,10 @@ --> - - -

${%Update domain}

+ xmlns:f="/lib/form" + xmlns:d="jelly:define" xmlns:local="local"> + + @@ -54,7 +54,8 @@ items="${instance.specifications}"/> - @@ -62,6 +63,25 @@ -
-
+ + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/delete.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/delete.jelly index 5c1ad7d7..7dd5eedc 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/delete.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/delete.jelly @@ -1,8 +1,8 @@ - - - -

${%Delete domain}

+ + + ${%The global domain cannot be deleted} @@ -14,11 +14,30 @@

${%Are you sure about deleting this domain and all credentials in this domain?}

- +
-
-
+ + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.jelly index 9f8eed6d..6de8d927 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.jelly @@ -23,98 +23,113 @@ ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ~ THE SOFTWARE. --> - - - + + + + + +
+ +
+ + + + + + + ${%noCredentialsCallToAction} + + + + + + + + +
+ + + +
+
+ + +
+ ${c.id} + + - + ${safeDescription} + +
+ +
+
+ + + + + + +
+
+
+
+
+
+
+
+ + - + ${%Add Credentials} + - + ${%Configure domain} - - + + ${%Delete domain} -
- -
- -
- - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - -
- ${%ID}${%Name}${%Kind}${%Description} -
- - - ${%noCredentialsAddSome} - - - ${%noCredentials} - - -
- - - ${c.id} - - ${c.displayName} - - ${c.typeName} - - ${safeDescription} - - - - - - -
- -
-
+ + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.properties b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.properties index ed675334..fe1d2961 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.properties +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index.properties @@ -21,5 +21,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # -noCredentials=This credential domain is empty. -noCredentialsAddSome=This credential domain is empty. How about adding some credentials? +noCredentials=This credentials domain is empty +noCredentialsCallToAction=How about adding some credentials? diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_de.properties b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_de.properties index 73aeaaea..07ffaffc 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_de.properties +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_de.properties @@ -22,7 +22,6 @@ # THE SOFTWARE. # noCredentials=Diese Zugangsdaten-Dom\u00E4ne ist leer. -noCredentialsAddSome=Diese Zugangsdaten-Dom\u00E4ne ist leer. M\u00F6chten Sie Zugangsdaten hinzuf\u00FCgen? Name=Name Kind=Art Description=Beschreibung diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_fr.properties b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_fr.properties index f5f06016..7e39b5ec 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_fr.properties +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_fr.properties @@ -21,7 +21,6 @@ # THE SOFTWARE. noCredentials=Ce domaine d''identifiants est vide. -noCredentialsAddSome=Ce domaine d''identifiants est vide. Que diriez-vous d''ajouter des identifiants ? Name=Nom Kind=Type Description=Description diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_ja.properties b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_ja.properties index 73cb1bab..bd162efe 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_ja.properties +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/index_ja.properties @@ -24,7 +24,5 @@ Name=\u540d\u79f0 Kind=\u7a2e\u985e Description=\u8aac\u660e noCredentials=\u3053\u306e\u8a8d\u8a3c\u30c9\u30e1\u30a4\u30f3\u306f\u672a\u8a2d\u5b9a\u3067\u3059\u3002 -noCredentialsAddSome=\ - \u3053\u306e\u8a8d\u8a3c\u30c9\u30e1\u30a4\u30f3\u306f\u672a\u8a2d\u5b9a\u3067\u3059\u3002\u8a8d\u8a3c\u60c5\u5831\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Update=\u66f4\u65b0 diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/newCredentials.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/newCredentials.jelly index 254c7dbe..9a874303 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/newCredentials.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/DomainWrapper/newCredentials.jelly @@ -24,14 +24,13 @@ ~ THE SOFTWARE. --> - - -

${%New credentials}

+ xmlns:f="/lib/form" xmlns:d="jelly:define" xmlns:local="local"> + + - + @@ -72,6 +71,24 @@ -
-
+ + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.jelly b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.jelly index e35e5090..07600ac1 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.jelly @@ -23,8 +23,68 @@ ~ THE SOFTWARE. --> - + + + + + +
+ + +
+
+ +
+ ${%credentialsCount(size(d.credentials))} + + - + ${safeDescription} + +
+
+
+ + + + + + + + +
+
+
+
+
+
+ + + + + + + + + ${%Add domain} + + + + + + + @@ -34,49 +94,21 @@ - - - - - - - - ${%Add domain} - - - - - - - - - - - - - - - - - - - - - - - - -
- ${%Domain}${%Description}
- - - ${d.displayName} - ${safeDescription}
- -
-
+ + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.properties b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.properties new file mode 100644 index 00000000..ff1ffb74 --- /dev/null +++ b/src/main/resources/com/cloudbees/plugins/credentials/CredentialsStoreAction/index.properties @@ -0,0 +1 @@ +credentialsCount={0} {0,choice,0#credentials|1#credential|1 - - -

${%New domain}

+ xmlns:f="/lib/form" xmlns:d="jelly:define" xmlns:local="local"> + + + @@ -43,11 +43,32 @@ -
-
+ + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration/index.jelly b/src/main/resources/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration/index.jelly index 3dc57020..55570c67 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration/index.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/GlobalCredentialsConfiguration/index.jelly @@ -25,26 +25,21 @@ --> - - - -

${it.displayName}

-

-

${%LOADING}
- - - - - - - - - - - - - - -
-
+ + + + + + + + + + + + + + + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.jelly b/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.jelly index 912d1a2a..6e80aacf 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.jelly +++ b/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.jelly @@ -24,190 +24,192 @@ ~ THE SOFTWARE. --> - - - - - + xmlns:t="/lib/hudson" xmlns:d="jelly:define" xmlns:f="/lib/form" xmlns:local="local"> + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + +
+ -
- - - - - - - -
${%T}${%P}${%Store}${%Domain}${%ID}${%Name}
- - - - - - ${d.store.context == app ? d.store.displayName : d.store.contextDisplayName} - - - - - - ${%global} - - - ${app.markupFormatter.translate(d.domain.name)} - - - - - - ${d.id} - - - ${d.name} -
+ + + + + + + -

${%storesScopedTo(it.contextFullDisplayName)}

- - - - - - - - - - - - - - - - - - - - - - -
${%P}${%Store}${%Domains}
- - - - ${store.context == app ? store.displayName : store.contextDisplayName} - - - - - - - ${%global} - - - ${app.markupFormatter.translate(domain.name)} - - - - - -
+ + +
+ -

${%Stores from parent}

- - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + -
${%P}${%Store}${%Domains}
- - - - ${store.context == app ? store.displayName : store.contextDisplayName} - - - - - - - ${%global} - - - ${app.markupFormatter.translate(domain.name)} - - - - - -
-
- + + + + - -
+ + + +
diff --git a/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.properties b/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.properties index cdda9a2e..47459e55 100644 --- a/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.properties +++ b/src/main/resources/com/cloudbees/plugins/credentials/ViewCredentialsAction/index.properties @@ -1,2 +1,2 @@ -global=(global) +global=Global storesScopedTo=Stores scoped to {0} diff --git a/src/main/resources/com/cloudbees/plugins/credentials/common/card.css b/src/main/resources/com/cloudbees/plugins/credentials/common/card.css new file mode 100644 index 00000000..d8092d07 --- /dev/null +++ b/src/main/resources/com/cloudbees/plugins/credentials/common/card.css @@ -0,0 +1,92 @@ +.masked-credential { + opacity: 0.3; + + * { + color: var(--text-color-secondary) !important; + } +} + +.credentials-wrapper { + display: flex; + flex-direction: column; + background: var(--card-background); + border: var(--card-border-width) solid var(--card-border-color); + border-radius: var(--form-input-border-radius); + margin-bottom: var(--section-padding); +} + +.credentials-card { + position: relative; + flex-direction: row; + display: flex; + gap: 0.5rem; + border-bottom: var(--jenkins-border); + + &:last-of-type { + border-bottom: none; + } +} + +.credentials-card__controls { + display: flex; + gap: var(--jenkins-border-width); + align-items: center; + + .jenkins-button { + padding: 0; + aspect-ratio: 1; + } +} + +.credentials-card__inner { + padding: 0.75rem 1rem; +} + +.credentials-card__details { + display: inline-flex; + align-items: center; + justify-content: start; + flex-wrap: wrap; + gap: 1ch; + padding-left: 2rem; + margin-top: 0.1875rem; + font-size: var(--font-size-xs); + color: var(--text-color-secondary); + + a { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 1ch; + color: inherit; + + img, svg { + width: 0.875rem !important; + height: 0.875rem !important; + } + } +} + +.credentials-card__tags { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: var(--font-size-xs); + color: var(--text-color-secondary); +} + +.credentials-card__controls { + margin-left: auto; + padding-right: 0.75rem; +} + +.credentials-card__title { + display: flex; + align-items: center; + gap: 0.75rem; + + & > svg, img { + width: 1.25rem !important; + height: 1.25rem !important; + } +} \ No newline at end of file diff --git a/src/main/resources/com/cloudbees/plugins/credentials/links/Messages.properties b/src/main/resources/com/cloudbees/plugins/credentials/links/Messages.properties new file mode 100644 index 00000000..71dd4331 --- /dev/null +++ b/src/main/resources/com/cloudbees/plugins/credentials/links/Messages.properties @@ -0,0 +1,7 @@ +NewDomainLink.displayName=New domain +UpdateDomainLink.displayName=Update domain +DeleteDomainLink.displayName=Delete domain +NewCredentialsLink.displayName=New credentials +DeleteCredentialsLink.displayName=Delete credentials +MoveCredentialsLink.displayName=Move credentials +UpdateCredentialsLink.displayName=Update credentials