Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
30f9656
Show an Argo CD Application Set as Details page in Dev Console
aali309 Aug 27, 2025
15d5664
fix AS icon color and style
aali309 Aug 27, 2025
6f63272
label styling
aali309 Aug 27, 2025
dfc8ef4
more label styling
aali309 Aug 27, 2025
6a4e8d9
add annotation && Generators && more formatting
aali309 Aug 28, 2025
803e288
add Generators, Applications and Event tabs
aali309 Aug 28, 2025
94e8a06
add filter logic for generated apps to display on appset details page
aali309 Aug 28, 2025
d4549b2
restore Applist
aali309 Aug 28, 2025
fd82b05
reapply filter logic keeping the empty state when no apps are available
aali309 Aug 28, 2025
3dd5411
rename ApplicationDetailsTitle and move it to where DetailsPageTitle
aali309 Aug 28, 2025
234fe2a
remove border on the pages
aali309 Aug 28, 2025
d23ff9a
fix formatting
aali309 Aug 28, 2025
297443a
pull common attributes to a common component
aali309 Aug 28, 2025
9ddc76b
use pf
aali309 Aug 28, 2025
d51d094
Replaced inline styles with CSS classes
aali309 Aug 28, 2025
40208db
enable or disable the edit buttons according to permission
aali309 Aug 28, 2025
82142fa
proper logic for matrix genertar
aali309 Aug 28, 2025
bf00a47
refactor and restructure code
aali309 Aug 29, 2025
93c4408
show YAML page
aali309 Aug 29, 2025
d6182c4
show YAML page better
aali309 Aug 29, 2025
7c6e00b
complete YAML page and cleanup
aali309 Aug 29, 2025
ee8ff9f
implement edit appset
aali309 Aug 29, 2025
372aeca
add fav icon and fix formatting
aali309 Aug 29, 2025
6012e3d
more Details formating
aali309 Sep 9, 2025
a194729
use shared component from Keith
aali309 Sep 17, 2025
ecac502
format details tab info
aali309 Sep 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions console-extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -388,5 +388,23 @@
"$codeRef": "yamlApplicationTemplates.defaultApplicationSetYamlTemplate"
}
}
},
{
"type": "console.page/resource/details",
"flags": {
"required": [
"APPLICATIONSET"
]
},
"properties": {
"model": {
"group": "argoproj.io",
"kind": "ApplicationSet",
"version": "v1alpha1"
},
"component": {
"$codeRef": "ApplicationSetDetailsPage"
}
}
}
]
1 change: 1 addition & 0 deletions plugin-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const metadata: ConsolePluginBuildMetadata = {
"topology": "./components/topology",
ApplicationList: "./gitops/components/application/ApplicationListTab.tsx",
ApplicationSetList: "./gitops/components/application/ApplicationSetListTab.tsx",
ApplicationSetDetailsPage: "./gitops/components/application/ApplicationSetDetailsPage.tsx",
yamlApplicationTemplates: "./gitops/components/application/templates/index.ts"
}
};
Expand Down
219 changes: 219 additions & 0 deletions src/gitops/components/application/ApplicationSetDetailsPage.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
.application-set-details-page {
&__main-section {
// PatternFly page main section styles
}

&__body {
// PatternFly flex layout styles
}

&__pane-body {
// Console pane body styles
}

&__grid {
// PatternFly grid styles
}

&__grid-item {
// PatternFly grid item styles
}

&__header {
margin-bottom: 24px;
padding-left: 24px;
padding-top: 24px;

&-title {
font-size: 20px;
font-weight: 600;
margin-bottom: 16px;
}
}

&__content {
padding-left: 24px;
}

&__conditions {
margin-top: 32px;

&-title {
font-weight: 700;
font-size: 24px;
margin-bottom: 20px;
margin-top: 8px;
}

&-table {
width: 100%;
border-top: 1px solid #393F44;
margin-bottom: 0;

&-header {
display: flex;
font-weight: 600;
font-size: 16px;
padding: 16px 0 8px 0;

&-cell {
text-align: left;

&--type {
flex: 2;
padding-left: 0;
}

&--status {
flex: 1;
}

&--updated {
flex: 2;
}

&--reason {
flex: 2;
}

&--message {
flex: 4;
}
}
}

&-row {
display: flex;
font-size: 15px;
padding: 16px 0;
align-items: flex-start;
border-top: 1px solid #393F44;

&:first-child {
border-top: none;
}

&-cell {
text-align: left;

&--type {
flex: 2;
padding-left: 0;
}

&--status {
flex: 1;
}

&--updated {
flex: 2;
display: flex;
align-items: center;
}

&--reason {
flex: 2;
}

&--message {
flex: 4;
}
}
}
}
}

&__generators {
&-container {
display: flex;
flex-direction: column;
gap: 16px;
}

&-item {
border: 1px solid #393F44;
border-radius: 8px;
padding: 16px;
background-color: #212427;

&-header {
display: flex;
align-items: center;
margin-bottom: 12px;

&-icon {
width: 24px;
height: 24px;
background-color: #73bcf7;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 8px;
font-size: 12px;
font-weight: bold;
color: #003a70;
}

&-title {
font-weight: 600;
font-size: 16px;
}
}

&-content {
display: flex;
flex-direction: column;
gap: 8px;

&-row {
display: flex;
align-items: center;

&-label {
font-weight: 500;
min-width: 80px;
color: #8a8d90;
}

&-value {
color: #73bcf7;
text-decoration: underline;
cursor: pointer;
}
}
}
}
}

&__yaml-editor {
&-header {
&-buttons {
// YAML editor header buttons styles
}

&-shortcuts {
// YAML editor shortcuts styles

&-link {
// YAML editor shortcuts link styles
}
}
}

&-content {
background: #1e1e1e;
color: #d4d4d4;
font-family: monospace;
font-size: 14px;
border-radius: 4px;
padding: 0;

pre {
margin: 0;
padding: 16px;
overflow: auto;
}
}
}
}
17 changes: 17 additions & 0 deletions src/gitops/components/application/ApplicationSetDetailsPage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import * as React from 'react';
import { useParams } from 'react-router-dom-v5-compat';
import AppSetNavPage from '../appset/AppSetNavPage';

const ApplicationSetDetailsPage: React.FC = () => {
const { name, ns } = useParams<{ name: string; ns: string }>();

return (
<AppSetNavPage
name={name}
namespace={ns}
kind="ApplicationSet"
/>
);
};

export default ApplicationSetDetailsPage;
73 changes: 73 additions & 0 deletions src/gitops/components/application/application-details-title.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// Application Details Title Styles
.co-resource-item__resource-name {
font-size: var(--pf-v6-global--font-size--2xl);
font-weight: var(--pf-v6-global--font-weight--bold);
color: var(--pf-v6-global--Color--100);
}

.co-actions {
display: flex;
align-items: center;
gap: var(--pf-v6-global--spacer--sm);
}

// Breadcrumb styles
.pf-c-breadcrumb.co-breadcrumb {
padding: var(--pf-v6-global--spacer--md) var(--pf-v6-global--spacer--lg);
background-color: var(--pf-v6-global--BackgroundColor--100);
border-bottom: 1px solid var(--pf-v6-global--BorderColor--100);
}

// Ensure AS icon matches ApplicationSet list page color
.co-m-resource-icon {
&.co-m-resource-icon--lg {
// Force the ApplicationSet color from console-extensions.json
background-color: #E9654B !important;
color: white !important;
}
}

// Ensure NS badge is green
.pf-v6-c-badge {
&.pf-m-green {
background-color: var(--pf-v6-global--success-color--100) !important;
color: var(--pf-v6-global--Color--100) !important;
}
}

// Labels container styling - ensure it's visible and vertical
.labels-container {
background-color: var(--pf-v6-global--BackgroundColor--200) !important;
border: 1px solid var(--pf-v6-global--BorderColor--200) !important;
border-radius: var(--pf-v6-global--BorderRadius--sm) !important;
padding: var(--pf-v6-global--spacer--md) !important;
min-height: 60px !important;
display: flex !important;
flex-direction: column !important;
gap: var(--pf-v6-global--spacer--sm) !important;
margin-top: var(--pf-v6-global--spacer--sm) !important;
}

// Labels styling - force vertical layout
.labels-container .pf-v6-c-label-group {
display: flex !important;
flex-direction: column !important;
gap: var(--pf-v6-global--spacer--sm) !important;
margin: 0 !important;
width: 100% !important;
}

.labels-container .pf-v6-c-label-group .pf-v6-c-label {
display: inline-flex !important;
align-items: center !important;
margin: 0 !important;
font-size: var(--pf-v6-global--font-size--sm) !important;
font-weight: var(--pf-v6-global--font-weight--normal) !important;
line-height: 1.2 !important;
padding: var(--pf-v6-global--spacer--xs) var(--pf-v6-global--spacer--sm) !important;
border-radius: var(--pf-v6-global--BorderRadius--sm) !important;
background-color: var(--pf-v6-global--BackgroundColor--300) !important;
color: var(--pf-v6-global--Color--100) !important;
border: 1px solid var(--pf-v6-global--BorderColor--300) !important;
width: fit-content !important;
}
Loading