Conversation
rarajes2
left a comment
There was a problem hiding this comment.
Please update the vidcast showing the working of Single Version View as well after addressing the comments. Confirm with Shreyas and Kesava if we need to call it "Single Version View"
docs/changelog/assets/css/app.css
Outdated
| select { | ||
| -webkit-appearance: none; | ||
| appearance: none; | ||
| padding-right: 2.5em; | ||
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23555' d='M6 8L2 4h8z'/%3E%3C/svg%3E"); | ||
| background-repeat: no-repeat; | ||
| background-position: right 0.5em center; | ||
| } |
There was a problem hiding this comment.
Let's avoid adding common styles to all the select elements
| .select-with-clear { | ||
| display: flex; | ||
| gap: 8px; | ||
| align-items: center; | ||
| } | ||
| .select-with-clear .full-width { | ||
| flex: 1; | ||
| min-width: 0; | ||
| } | ||
| .select-with-clear .btn-clear-select { | ||
| flex-shrink: 0; | ||
| } |
There was a problem hiding this comment.
nitpick: Leave a newline between classes. Applicable everywhere in this file
docs/changelog/assets/js/app.js
Outdated
| const getAllPackagesFromChangelogs = (changelogs) => { | ||
| const allPackages = new Set(); | ||
| (changelogs || []).forEach(changelog => { | ||
| if (changelog && typeof changelog === 'object') { | ||
| Object.keys(changelog).forEach(pkg => allPackages.add(pkg)); | ||
| } | ||
| }); | ||
| const specialPackages = ['webex', '@webex/calling']; | ||
| const filtered = [...allPackages].filter(pkg => !specialPackages.includes(pkg)); | ||
| filtered.sort(); | ||
| return [...specialPackages.filter(pkg => allPackages.has(pkg)), ...filtered]; | ||
| }; |
There was a problem hiding this comment.
Why do we need to create this method? Methods for business logic should have been there
docs/changelog/assets/js/app.js
Outdated
| /** | ||
| * Populate package dropdown with full list (used when we already have the package array) | ||
| */ | ||
| const populateComparisonPackageDropdown = (allPackages) => { |
docs/changelog/assets/js/app.js
Outdated
| /** | ||
| * Load initial package list for comparison mode: fetch ALL versions and show union of ALL packages from the start | ||
| */ | ||
| const populateComparisonPackagesInitial = async () => { |
|
|
||
| /** | ||
| * Check and update comparison button state based on form selections | ||
| * Package is required; Base and Target versions are required after package is selected. |
There was a problem hiding this comment.
Please fix the comments. Applicable everywhere
docs/changelog/assets/js/app.js
Outdated
| if (!selectedPackage) { | ||
| compareButton.disabled = true; | ||
| return; | ||
| } | ||
| if (!stableA || !stableB) { | ||
| compareButton.disabled = true; | ||
| return; | ||
| } | ||
| if (stableA === stableB) { | ||
| compareButton.disabled = true; | ||
| return; | ||
| } |
docs/changelog/assets/js/app.js
Outdated
| if (versionASelect) { | ||
| versionASelect.disabled = true; | ||
| versionASelect.value = ''; | ||
| } | ||
| if (versionBSelect) { | ||
| versionBSelect.disabled = true; | ||
| versionBSelect.value = ''; | ||
| } |
docs/changelog/assets/js/app.js
Outdated
| */ | ||
| const validateComparisonInputs = (stableA, stableB, selectedPackage, versionASpecific, versionBSpecific) => { | ||
| if (!selectedPackage) { | ||
| alert('Please select a package'); |
There was a problem hiding this comment.
Add a full stop at the end of sentence. Please take care of all the user facing messages
docs/changelog/index.html
Outdated
| <select id="comparison-package-select" class="full-width" required> | ||
| <option value="">Select a package (required)</option> | ||
| </select> | ||
| <span class="help-text" style="font-weight: normal; font-size: 12px; color: #666;">Choose a package first; then Base and Target versions will be enabled.</span> |
There was a problem hiding this comment.
Let's avoid inline styles. Applicable everywhere
|
@codex review |
|
To use Codex here, create a Codex account and connect to github. |
|
@codex review |
|
To use Codex here, create a Codex account and connect to github. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3a8b5394ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (versionAPrereleaseSelect) versionAPrereleaseSelect.value = enhancedParams.versionA; | ||
| if (versionBPrereleaseSelect) versionBPrereleaseSelect.value = enhancedParams.versionB; | ||
| handlePackageChange(); |
There was a problem hiding this comment.
Apply package change before restoring prerelease URL values
When loading an enhanced comparison permalink, this code sets versionAPrereleaseSelect/versionBPrereleaseSelect and then calls handlePackageChange(), but handlePackageChange() immediately clears both prerelease selects. That means the form no longer reflects the versions encoded in the URL, and a user re-submitting can compare different (defaulted) versions than the shared link intended.
Useful? React with 👍 / 👎.
COMPLETES https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-747985
This pull request addresses
The need for a clear and user-friendly changelog comparison interface that allows users to compare different SDK versions and view package-level changes and commit history. The existing implementation required UI improvements to better visualize version comparisons and related changelog data.
by making the following changes
Change Type
The following scenarios were tested
https://app.vidcast.io/share/ab8925cf-de62-4437-a686-4200b6f748a3
The GAI Coding Policy And Copyright Annotation Best Practices
GAI was not used (or, no additional notation is required)
Code was generated entirely by GAI
GAI was used to create a draft that was subsequently customized or modified
Coder created a draft manually that was non-substantively modified by GAI
Tool used for AI assistance (GitHub Copilot / Other - specify)
Github Copilot
Other - ChatGPT
This PR is related to
I certified that