Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
a4159d7
intial changes to load empty dialog
ssreerama Sep 12, 2025
cc2167f
UI intial changes
ssreerama Sep 15, 2025
94f8dae
advanced options added
ssreerama Sep 16, 2025
463b2e8
basic UI final changes
ssreerama Sep 16, 2025
f75c54c
UI changes with formwebviewcontroller
ssreerama Sep 16, 2025
a6c2545
Basic UI final changes
ssreerama Sep 16, 2025
90844a1
Merge branch 'sai/vscodePublishDialog' of https://github.com/microsof…
ssreerama Sep 16, 2025
6e1970c
removed Advanced related changes from the current set
ssreerama Sep 16, 2025
13b93a9
converting const to static class
ssreerama Sep 16, 2025
28fc897
localized files
ssreerama Sep 16, 2025
0c24390
copilot comments adjusted
ssreerama Sep 17, 2025
6c85bdd
using new webview provider
ssreerama Sep 19, 2025
c091477
updating the code
ssreerama Sep 20, 2025
8f586c8
Adding publish dialog basic test file
ssreerama Sep 21, 2025
0e24de1
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Sep 21, 2025
6e5aa69
adding target field changes
ssreerama Sep 21, 2025
bba6d85
revert service instnace update and add loc fiels
ssreerama Sep 21, 2025
3f7eeff
addressing code review comments
ssreerama Sep 22, 2025
7d95c74
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Sep 22, 2025
4415ad2
Merge branch 'sai/vscodePublishDialog' into sai/vscodePublishDialog_1…
ssreerama Sep 22, 2025
db5f691
adding tests that covers the target field
ssreerama Sep 23, 2025
561fda8
copilot review updates
ssreerama Sep 23, 2025
73d1926
little refactoring
ssreerama Sep 23, 2025
1108c73
updating the variable name
ssreerama Sep 23, 2025
407e740
Merge branch 'sai/vscodePublishDialog' into sai/vscodePublishDialog_1…
ssreerama Sep 23, 2025
9d5bdb9
addressing code review comments
ssreerama Sep 24, 2025
4929b34
updating LOC and fixing test
ssreerama Sep 24, 2025
978735e
merging the base pr changes and little bit of refactoring
ssreerama Sep 24, 2025
78b6117
confirm password validation with both pwd fields
ssreerama Sep 29, 2025
00c2965
addressing code review comments
ssreerama Sep 30, 2025
7392e72
undo double wrapping
ssreerama Sep 30, 2025
41b022b
rebase on intial setup PR with modification
ssreerama Oct 1, 2025
a74ee8c
loc updates
ssreerama Oct 1, 2025
91fb9d7
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Oct 1, 2025
669394c
Merge branch 'sai/vscodePublishDialog' into sai/vscodePublishDialog_1…
ssreerama Oct 2, 2025
c016d0f
adding tests
ssreerama Oct 2, 2025
eaf3918
checkbox alignment
ssreerama Oct 2, 2025
fe73219
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Oct 3, 2025
ffb206c
Merge branch 'sai/vscodePublishDialog' into sai/vscodePublishDialog_1…
ssreerama Oct 3, 2025
4510b80
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Oct 3, 2025
9e25ee2
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Oct 3, 2025
af8f986
Merge branch 'main' into sai/vscodePublishDialog
ssreerama Oct 6, 2025
6d4f032
adding main controller test to validate publish proj call
ssreerama Oct 6, 2025
fb60764
Merge branch 'sai/vscodePublishDialog' into sai/vscodePublishDialog_1…
ssreerama Oct 6, 2025
26623a6
LOC update
ssreerama Oct 6, 2025
017e042
Merge branch 'main' into sai/vscodePublishDialog_1Target
ssreerama Oct 7, 2025
34a1054
fixing the issues caused due to resolve conflicts
ssreerama Oct 7, 2025
89b5f4d
fixing tests
ssreerama Oct 7, 2025
f098fdd
refactoring
ssreerama Oct 7, 2025
f0b216a
fixing build errors
ssreerama Oct 7, 2025
5850736
moving to utils and constants
ssreerama Oct 7, 2025
0cf7041
removing multi tests and adding clear comments for the methods
ssreerama Oct 7, 2025
83e4b60
renaming profileName to publishprofileName for clear understanding
ssreerama Oct 8, 2025
1007b90
refactoring for options
ssreerama Oct 8, 2025
728ae14
intial commit to add select publish profile reducer that opens and se…
ssreerama Oct 8, 2025
0477e1d
moving parseHtmlLabel method to react view utils file
ssreerama Oct 8, 2025
bc499a3
save profile onclick and saving the xml, without connectionstring
ssreerama Oct 8, 2025
c655422
Merge branch 'sai/vscodePublishDialog_1Target' into sai/vscodePublish…
ssreerama Oct 8, 2025
bbb1500
format updates and save button logic update
ssreerama Oct 8, 2025
2f20abd
adding tests for select and save profile
ssreerama Oct 9, 2025
efc107b
Merge branch 'main' into sai/vscodePublishDialog_1Target
ssreerama Oct 9, 2025
6136b3d
Merge branch 'sai/vscodePublishDialog_1Target' into sai/vscodePublish…
ssreerama Oct 9, 2025
95e62d6
Using required constants throught the shared interfaces.
ssreerama Oct 9, 2025
e69f0dd
Merge branch 'sai/vscodePublishDialog_1Target' into sai/vscodePublish…
ssreerama Oct 9, 2025
39e5d45
adding telemetry
ssreerama Oct 9, 2025
147a406
exclude options are default to empty, add upon selection
ssreerama Oct 9, 2025
ff917e9
reading publish.xml on selct profile
ssreerama Oct 9, 2025
594feda
removing unsed method
ssreerama Oct 9, 2025
b330729
Merge branch 'sai/vscodePublishDialog_1Target' into sai/vscodePublish…
ssreerama Oct 9, 2025
d1abe67
Final changes for the profile section
ssreerama Oct 10, 2025
de953ca
LOC missing changes addding back
ssreerama Oct 10, 2025
6b7b582
adding icon and disabling server input
ssreerama Oct 10, 2025
b970759
connection work
ssreerama Oct 11, 2025
e580db5
LOC
ssreerama Oct 11, 2025
156fa69
adding conneciton string to the state and saving in profile
ssreerama Oct 11, 2025
d279530
copilot review updates
ssreerama Oct 14, 2025
5b78e17
Merge branch 'sai/vscodePublishDialog_1Target' into sai/vscodePublish…
ssreerama Oct 14, 2025
778961c
Merge branch 'sai/vscodePublishDialog_2Profile' into sai/vscodePublis…
ssreerama Oct 14, 2025
70616cf
reverting sqlprojservice to optional
ssreerama Oct 14, 2025
6daeb77
Merge branch 'sai/vscodePublishDialog_2Profile' into sai/vscodePublis…
ssreerama Oct 14, 2025
6c2264e
combobox style fixes
ssreerama Oct 14, 2025
e671f61
saving selected DB
ssreerama Oct 14, 2025
24a1ea1
adding tests
ssreerama Oct 15, 2025
8d7bee6
preserving database options and value on target switch
ssreerama Oct 15, 2025
0be7012
fixing the stabilize conneciton switching issue
ssreerama Oct 16, 2025
9c46c16
adding placeholder
ssreerama Oct 16, 2025
2f810ec
LOC
ssreerama Oct 16, 2025
890c708
making conn string empty for container
ssreerama Oct 16, 2025
5ffb1e0
addressing copilot code suggestions
ssreerama Oct 16, 2025
6267375
advanced drawer initial implementation
ssreerama Oct 17, 2025
722110e
Loc
ssreerama Oct 17, 2025
a33be73
using onsuccessfulconneciton responce
ssreerama Oct 17, 2025
888cf07
Merge branch 'main' into sai/vscodePublishDialog_2Profile
ssreerama Oct 21, 2025
39bb3f3
Loc
ssreerama Oct 21, 2025
86ae055
removing dockerUtils file
ssreerama Oct 21, 2025
945c504
update read sqlcmd variabled from profile using the xmlDom parser
ssreerama Oct 21, 2025
1481733
Merge branch 'sai/vscodePublishDialog_2Profile' into sai/vscodePublis…
ssreerama Oct 21, 2025
91a3920
typo updates and guard check added
ssreerama Oct 21, 2025
7a47f30
Merge branch 'sai/vscodePublishDialog_2Profile' into sai/vscodePublis…
ssreerama Oct 21, 2025
2a9dc0d
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 21, 2025
a79bc6b
connection null check
ssreerama Oct 21, 2025
e14e9be
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 21, 2025
0eb7979
optimizing the validation logic
ssreerama Oct 22, 2025
f55ee14
Merge branch 'sai/vscodePublishDialog_2Profile' into sai/vscodePublis…
ssreerama Oct 22, 2025
059c0bc
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 22, 2025
962dde4
fixing the duplicate afterSetFormProperty methods
ssreerama Oct 22, 2025
c5fc619
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 22, 2025
2ae2d40
ignore option group added
ssreerama Oct 22, 2025
d97d352
LOC
ssreerama Oct 22, 2025
5e4e950
moving method to Utils
ssreerama Oct 27, 2025
44966d4
Merge branch 'sai/vscodePublishDialog_2Profile' into sai/vscodePublis…
ssreerama Oct 27, 2025
23dae46
Merge branch 'main' into sai/vscodePublishDialog_3ServerConnection
ssreerama Oct 27, 2025
87b3190
logging when database connection fails
ssreerama Oct 27, 2025
2e0af22
handle new connection details updates
ssreerama Oct 27, 2025
c75432d
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 27, 2025
809ddaf
test fixes
ssreerama Oct 27, 2025
f210b46
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 27, 2025
01c1dbc
all are done except update profile and save profile changes with opti…
ssreerama Oct 28, 2025
4adadcb
removed unnecessary advancedgroup options state
ssreerama Oct 28, 2025
8c0288e
test updates
ssreerama Oct 28, 2025
c7c0490
fixing the reset button and refactoring the comments
ssreerama Oct 28, 2025
f31b41e
final changes
ssreerama Oct 29, 2025
a8560b3
Merge branch 'main' into sai/vscodePublishDialog_3ServerConnection
ssreerama Oct 29, 2025
23d85b1
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 29, 2025
430f082
removing additional div element that disturbs the alignment
ssreerama Oct 29, 2025
c83e41b
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 29, 2025
94f9924
cleanup
ssreerama Oct 29, 2025
35493ef
Merge branch 'sai/vscodePublishDialog_3ServerConnection' into sai/vsc…
ssreerama Oct 29, 2025
37529d1
Merge branch 'main' into sai/vscodePublishDialog_4AdvancedOption
ssreerama Oct 31, 2025
d25af5b
final refactoring
ssreerama Nov 1, 2025
a8ee484
test fix and redundant state update removed
ssreerama Nov 1, 2025
282f7b9
Merge branch 'main' into sai/vscodePublishDialog_4AdvancedOption
ssreerama Nov 3, 2025
22aa1a5
updates and loc
ssreerama Nov 3, 2025
3f2a5c1
Merge branch 'main' into sai/vscodePublishDialog_4AdvancedOption
ssreerama Nov 4, 2025
9e8d9b9
addressing review comments by refactoring and updating tests
ssreerama Nov 4, 2025
890f0fa
Merge branch 'main' into sai/vscodePublishDialog_4AdvancedOption
ssreerama Nov 5, 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
6 changes: 5 additions & 1 deletion localization/l10n/bundle.l10n.json
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,9 @@
"Processing include or exclude all differences operation.": "Processing include or exclude all differences operation.",
"Select Profile": "Select Profile",
"Save As...": "Save As...",
"Advanced Publish Options": "Advanced Publish Options",
"Ignore Options": "Ignore Options",
"Exclude Object Types": "Exclude Object Types",
"Create New Connection Group": "Create New Connection Group",
"Edit Connection Group: {0}/{0} is the name of the connection group being edited": {
"message": "Edit Connection Group: {0}",
Expand Down Expand Up @@ -1513,7 +1516,8 @@
"Failed to load publish profile": "Failed to load publish profile",
"Publish profile saved to: {0}": "Publish profile saved to: {0}",
"Failed to save publish profile": "Failed to save publish profile",
"DacFx service is not available": "DacFx service is not available",
"DacFx service is not available. Publish and generate script operations cannot be performed.": "DacFx service is not available. Publish and generate script operations cannot be performed.",
"DacFx service is not available. Profile loaded without deployment options. Publish and generate script operations cannot be performed.": "DacFx service is not available. Profile loaded without deployment options. Publish and generate script operations cannot be performed.",
"Failed to list databases": "Failed to list databases",
"Schema Compare": "Schema Compare",
"Options have changed. Recompare to see the comparison?": "Options have changed. Recompare to see the comparison?",
Expand Down
9,384 changes: 4,698 additions & 4,686 deletions localization/xliff/vscode-mssql.xlf

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion src/constants/locConstants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1353,7 +1353,12 @@ export class PublishProject {
return l10n.t("Publish profile saved to: {0}", path);
};
public static PublishProfileSaveFailed = l10n.t("Failed to save publish profile");
public static DacFxServiceNotAvailable = l10n.t("DacFx service is not available");
public static DacFxServiceNotAvailable = l10n.t(
"DacFx service is not available. Publish and generate script operations cannot be performed.",
);
public static DacFxServiceNotAvailableProfileLoaded = l10n.t(
"DacFx service is not available. Profile loaded without deployment options. Publish and generate script operations cannot be performed.",
);
public static FailedToListDatabases = l10n.t("Failed to list databases");
}

Expand Down
39 changes: 30 additions & 9 deletions src/publishProject/publishProjectWebViewController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ export class PublishProjectWebViewController extends FormWebviewController<
lastPublishResult: undefined,
hasFormErrors: true,
deploymentOptions: deploymentOptions,
defaultDeploymentOptions: deploymentOptions
? structuredClone(deploymentOptions)
: undefined,
waitingForNewConnection: false,
} as PublishDialogState,
{
Expand All @@ -91,18 +94,15 @@ export class PublishProjectWebViewController extends FormWebviewController<
},
);

// Clear default excludeObjectTypes for publish dialog, no default exclude options should exist
if (deploymentOptions?.excludeObjectTypes !== undefined) {
deploymentOptions.excludeObjectTypes.value = [];
}

this._sqlProjectsService = sqlProjectsService;
this._dacFxService = dacFxService;
this._connectionManager = connectionManager;

// Clear default excludeObjectTypes for publish dialog, no default exclude options should exist
if (
this.state.deploymentOptions &&
this.state.deploymentOptions.excludeObjectTypes !== undefined
) {
this.state.deploymentOptions.excludeObjectTypes.value = [];
}

this.registerRpcHandlers();

// Listen for successful connections
Expand Down Expand Up @@ -210,6 +210,22 @@ export class PublishProjectWebViewController extends FormWebviewController<
return state;
});

this.registerReducer(
"updateDeploymentOptions",
async (
state: PublishDialogState,
payload: { deploymentOptions: mssql.DeploymentOptions },
) => {
// Update deployment options and regenerate grouped options for UI
const newState = {
...state,
deploymentOptions: payload.deploymentOptions,
};

return newState;
},
);

this.registerReducer("selectPublishProfile", async (state: PublishDialogState) => {
// Derive project folder path from the project file path
const projectFolderPath = state.projectFilePath
Expand Down Expand Up @@ -244,7 +260,6 @@ export class PublishProjectWebViewController extends FormWebviewController<
TelemetryActions.PublishProfileLoaded,
);

// Update state with all parsed values - UI components will consume when available
return {
...state,
formState: {
Expand All @@ -258,6 +273,12 @@ export class PublishProjectWebViewController extends FormWebviewController<
connectionString: parsedProfile.connectionString || state.connectionString,
deploymentOptions:
parsedProfile.deploymentOptions || state.deploymentOptions,
formMessage: !this._dacFxService
? {
message: Loc.DacFxServiceNotAvailableProfileLoaded,
intent: "error" as const,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this need as const? what does that do here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no use its just a string value, added by formatting the code using copilot. I'll remove it

}
: undefined,
};
} catch (error) {
return {
Expand Down
5 changes: 5 additions & 0 deletions src/reactviews/common/locConstants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -931,6 +931,11 @@ export class LocConstants {
SaveAs: l10n.t("Save As..."),
generateScript: l10n.t("Generate Script"),
publish: l10n.t("Publish"),
advancedOptions: l10n.t("Advanced"),
advancedPublishSettings: l10n.t("Advanced Publish Options"),
generalOptions: l10n.t("General Options"),
ignoreOptions: l10n.t("Ignore Options"),
excludeObjectTypes: l10n.t("Exclude Object Types"),
};
}

Expand Down
Loading