Skip to content

Commit 59ad7fd

Browse files
committed
📝 docs(config-wizard): update description for migration architectures
- Enhance the wizard description to include support for three migration type architectures: Work Items, Pipelines, and Custom. - Clarify the types and constraints associated with each migration type. 💄 style(config-wizard): improve CSS for migration type selection - Introduce new styles for constrained and flexible migration types, adding gradient backgrounds and hover effects. - Enhance form styling for better readability and user experience. ♻️ refactor(config-wizard): enhance JS logic for type and processor handling - Refactor logic to handle pre-configured migration types with locked processors and endpoints. - Update UI interactions to better guide users based on selected migration type and available processors. - Improve code readability and consistency by standardizing string literals and object properties.
1 parent 4447c5f commit 59ad7fd

File tree

3 files changed

+645
-469
lines changed

3 files changed

+645
-469
lines changed

docs/content/docs/config-wizard.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Interactive Configuration Wizard
3-
description: Build your Azure DevOps Migration Tools configuration with our interactive step-by-step wizard
3+
description: Build your Azure DevOps Migration Tools configuration with our interactive step-by-step wizard supporting three migration type architectures
44
weight: 50
55
date: 2025-06-26T12:00:00Z
66
discussionId:
@@ -11,4 +11,10 @@ aliases:
1111
layout: config-wizard
1212
---
1313

14-
Use this interactive wizard to build your Azure DevOps Migration Tools configuration. The wizard will guide you through each step and generate a complete configuration file based on your selections.
14+
Use this interactive wizard to build your Azure DevOps Migration Tools configuration. The wizard supports three primary migration types:
15+
16+
- **Work Items**: Standard work item migration with pre-configured TfsWorkItemEndpoint and TfsWorkItemMigrationProcessor
17+
- **Pipelines**: Pipeline migration with pre-configured AzureDevOpsEndpoint and AzureDevOpsPipelineProcessor
18+
- **Custom**: Advanced scenarios with complete flexibility to configure multiple endpoints and processors
19+
20+
The wizard will guide you through each step and generate a complete configuration file based on your selections and the migration type constraints.

docs/static/css/config-wizard.css

Lines changed: 98 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
}
3838

3939
.wizard-step:not(:last-child)::after {
40-
content: '';
40+
content: "";
4141
position: absolute;
4242
top: 15px;
4343
left: 60%;
@@ -205,77 +205,114 @@
205205
margin-bottom: 0;
206206
}
207207

208-
/* Processor configuration */
209-
.processor-config {
210-
background: var(--bs-light);
211-
border-radius: 8px;
212-
padding: 1.5rem;
213-
margin-top: 1rem;
214-
display: none;
208+
/* Migration Type Architecture Styles */
209+
210+
/* Constrained migration types (WorkItems & Pipelines) */
211+
.config-option-constrained {
212+
border: 2px solid var(--bs-info);
213+
background: linear-gradient(135deg, rgba(13, 110, 253, 0.05) 0%, rgba(13, 110, 253, 0.1) 100%);
215214
}
216215

217-
[data-bs-theme="dark"] .processor-config {
218-
background: var(--bs-gray-800);
216+
.config-option-constrained:hover {
217+
border-color: var(--bs-info);
218+
background: linear-gradient(135deg, rgba(13, 110, 253, 0.1) 0%, rgba(13, 110, 253, 0.15) 100%);
219+
transform: translateY(-2px);
220+
box-shadow: 0 8px 25px rgba(13, 110, 253, 0.15);
219221
}
220222

221-
.processor-config.active {
222-
display: block;
223-
animation: slideDown 0.3s ease;
223+
.config-option-constrained.selected {
224+
border-color: var(--bs-info);
225+
background: linear-gradient(135deg, rgba(13, 110, 253, 0.15) 0%, rgba(13, 110, 253, 0.2) 100%);
224226
}
225227

226-
@keyframes slideDown {
227-
from {
228-
opacity: 0;
229-
max-height: 0;
230-
}
231-
to {
232-
opacity: 1;
233-
max-height: 500px;
234-
}
228+
/* Flexible migration types (Custom) */
229+
.config-option-flexible {
230+
border: 2px solid var(--bs-success);
231+
background: linear-gradient(135deg, rgba(25, 135, 84, 0.05) 0%, rgba(25, 135, 84, 0.1) 100%);
235232
}
236233

237-
/* Configuration preview */
238-
.config-preview {
239-
background: var(--bs-dark);
240-
color: var(--bs-light);
234+
.config-option-flexible:hover {
235+
border-color: var(--bs-success);
236+
background: linear-gradient(135deg, rgba(25, 135, 84, 0.1) 0%, rgba(25, 135, 84, 0.15) 100%);
237+
transform: translateY(-2px);
238+
box-shadow: 0 8px 25px rgba(25, 135, 84, 0.15);
239+
}
240+
241+
.config-option-flexible.selected {
242+
border-color: var(--bs-success);
243+
background: linear-gradient(135deg, rgba(25, 135, 84, 0.15) 0%, rgba(25, 135, 84, 0.2) 100%);
244+
}
245+
246+
/* Configuration detail styling */
247+
.config-option-detail {
248+
font-size: 0.9rem;
249+
color: var(--bs-gray-700);
250+
margin-bottom: 0.5rem;
251+
}
252+
253+
/* Processor configuration forms */
254+
.processor-config-form {
255+
background: var(--bs-gray-50);
241256
border-radius: 8px;
242257
padding: 1.5rem;
243-
font-family: 'Monaco', 'Menlo', monospace;
244-
font-size: 0.9rem;
245-
overflow-x: auto;
246-
max-height: 600px;
247-
overflow-y: auto;
258+
border: 1px solid var(--bs-gray-200);
248259
}
249260

250-
[data-bs-theme="dark"] .config-preview {
251-
background: var(--bs-black);
252-
border: 1px solid var(--bs-gray-700);
261+
.config-subsection {
262+
background: white;
263+
border-radius: 6px;
264+
padding: 1rem;
265+
border: 1px solid var(--bs-gray-200);
266+
margin-bottom: 1rem;
253267
}
254268

255-
/* Validation alerts */
256-
.validation-alert {
257-
border-radius: 8px;
269+
.config-subsection h4 {
270+
border-bottom: 2px solid var(--bs-primary);
271+
padding-bottom: 0.5rem;
258272
margin-bottom: 1rem;
259273
}
260274

261-
/* Form controls */
262-
.wizard-form-group {
263-
margin-bottom: 1.5rem;
275+
.config-subsection h5 {
276+
color: var(--bs-gray-700);
277+
font-size: 1.1rem;
264278
}
265279

266-
.wizard-form-label {
267-
font-weight: 600;
268-
margin-bottom: 0.5rem;
269-
color: var(--bs-dark);
280+
/* Named endpoint configuration */
281+
#namedEndpointsContainer .card {
282+
border-left: 4px solid var(--bs-primary);
270283
}
271284

272-
[data-bs-theme="dark"] .wizard-form-label {
273-
color: var(--bs-light);
285+
#namedEndpointsContainer .card-header {
286+
background: linear-gradient(135deg, rgba(13, 110, 253, 0.05) 0%, rgba(13, 110, 253, 0.1) 100%);
287+
}
288+
289+
/* Selected processors configuration */
290+
#selectedProcessorsConfig .card {
291+
border-left: 4px solid var(--bs-success);
292+
}
293+
294+
#selectedProcessorsConfig .card-header {
295+
background: linear-gradient(135deg, rgba(25, 135, 84, 0.05) 0%, rgba(25, 135, 84, 0.1) 100%);
296+
}
297+
298+
/* Locked/pre-configured indicators */
299+
.badge.bg-info {
300+
background-color: var(--bs-info) !important;
301+
}
302+
303+
.badge.bg-success {
304+
background-color: var(--bs-success) !important;
305+
}
306+
307+
/* Enhanced form styling for constrained modes */
308+
.wizard-form-group label {
309+
font-weight: 600;
310+
color: var(--bs-gray-800);
274311
}
275312

276313
.wizard-form-help {
277-
font-size: 0.9rem;
278-
color: var(--bs-secondary);
314+
font-size: 0.875rem;
315+
color: var(--bs-gray-600);
279316
margin-top: 0.25rem;
280317
}
281318

@@ -285,23 +322,32 @@
285322
flex-direction: column;
286323
gap: 1rem;
287324
}
288-
325+
289326
.wizard-step:not(:last-child)::after {
290327
display: none;
291328
}
292-
329+
293330
.wizard-content {
294331
padding: 1rem;
295332
}
296-
333+
297334
.wizard-navigation {
298335
flex-direction: column;
299336
gap: 1rem;
300337
}
301-
338+
302339
.wizard-nav-button {
303340
width: 100%;
304341
}
342+
343+
.config-option-constrained,
344+
.config-option-flexible {
345+
margin-bottom: 1rem;
346+
}
347+
348+
.config-option-detail {
349+
font-size: 0.8rem;
350+
}
305351
}
306352

307353
/* Loading states */

0 commit comments

Comments
 (0)