From b72555fb75968a9546a3ab0d119c0b148256c8ca Mon Sep 17 00:00:00 2001 From: Deyan Nenov Date: Thu, 7 Dec 2023 22:48:36 +0000 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit ca1b5ebcb82edb6ba365fc55682479bcae3e359a Merge: 50c0844d3c c640470e41 Author: Deyan Nenov Date: Mon Dec 4 18:38:22 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-mypackages-update commit 50c0844d3c06bcd7984a079c1c1d5b8c48ea45d8 Author: Deyan Nenov Date: Mon Dec 4 11:05:09 2023 +0000 rename ThisDataContextChanged to PackageManagerPublishControl_DataContextChanged commit bd0e65a1912803592f0ce24b89abd718c51f462e Author: Deyan Nenov Date: Fri Dec 1 17:56:10 2023 +0000 added missing resource commit 1c0e12fce7913097b36047898f6d0af6614adfc0 Author: Deyan Nenov Date: Fri Dec 1 15:23:59 2023 +0000 remove redundant test files commit b8f8b05a13564690232e51965fb06abb36b5aee1 Merge: c57133c9b8 b9ebacaa05 Author: Deyan Nenov Date: Fri Dec 1 15:18:03 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-mypackages-update commit c57133c9b89bb61b3280c97841232b3dec8ca2c6 Author: Deyan Nenov Date: Thu Nov 30 20:13:16 2023 +0000 font weight change commit 4767c6f2271876311def853ead97358fd1b709bb Author: Deyan Nenov Date: Thu Nov 30 19:18:56 2023 +0000 font size change commit e0a1f06e15e2ab4c429244e348780ba08cc17a76 Author: Deyan Nenov Date: Thu Nov 30 16:51:45 2023 +0000 font size alignment commit 1ec3d95c2dba5df8217b579d2cf152739c3b585f Merge: d3a444884b 45038c5cd0 Author: Deyan Nenov Date: Thu Nov 30 16:24:11 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-mypackages-update commit d3a444884b7f10fc7642a46e4caa7657c636ff87 Merge: 7cc915a654 1649d6698e Author: Deyan Nenov Date: Wed Nov 29 18:44:39 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-mypackages-update commit 7cc915a654e1d2d155528c2cf1038c698620fddb Author: Deyan Nenov Date: Wed Nov 29 15:35:38 2023 +0000 changes to publish package name validation - moved small fixes to publish package name validation to this branch commit 64058c643eb8cbd70b1dff9d774585aefb6713bb Author: Deyan Nenov Date: Wed Nov 29 15:05:53 2023 +0000 update selected known host value on clear - fixed a small issue where the selected known hosts were not being cleared on reset commit 6d8c7eac46289f4f53cac526276e8ed3b7f8c942 Author: Deyan Nenov Date: Wed Nov 29 13:48:16 2023 +0000 Squashed commit of the following: commit f5d55636f77605bc6e1f818f08fb367c43a87da5 Author: Deyan Nenov Date: Tue Nov 28 12:12:19 2023 +0000 dispose methods null checks - trying to prevent null exceptions in case resources have been cleared before dispose event has been called commit e43ad538f0a6c6416d3a9204a81311a99bbb23f0 Author: Deyan Nenov Date: Tue Nov 28 11:05:20 2023 +0000 remove begin invoke from mainFrame_Navigated - this was done to try and fix a failing test but it should not be needed commit 42bf04c0df4d52925cdecefc93a42a7565f909de Author: Deyan Nenov Date: Mon Nov 27 21:04:19 2023 +0000 null check to mainFrame_Navigated - added a null check commit 9dde030c5d565baf203f25794724dfa8eb51d91b Merge: a77a11a877 3f765b51ad Author: Deyan Nenov Date: Mon Nov 27 18:07:39 2023 +0000 Merge branch 'pm-publishpackage-cherrypick-resources' into pm-publishpackage-cherrypick-mypackage commit a77a11a8774c8c1f98f26e679905b492c691620f Author: Deyan Nenov Date: Mon Nov 27 17:47:17 2023 +0000 main changes - this cherry-pick contains all main changes minus resources and tests. - will need to merge resources to work correctly - if this breaks the test run, we will need to further split it up, or introduce the changes one by one somehow commit 3f765b51ad31c80e9c1f77d457310b32717ff4d0 Merge: 95d502a95b 36fb8d31b3 Author: Deyan Nenov Date: Mon Nov 27 17:38:11 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-cherrypick-resources commit 95d502a95b5437e809865b7170495c8007703055 Author: Deyan Nenov Date: Mon Nov 27 17:38:02 2023 +0000 resource cherry-pick - picked up all resource changes commit 36fb8d31b3fc60fcea57354d81d8a9ce070d6149 Author: Jorgen Dahl Date: Mon Nov 27 11:51:35 2023 -0500 Test net8 (#14635) * Test net8 * Also add DotNet to the build properties * Update CS_SDK.props * Update CS_SDK.props * update * update * update * Go back to net6 --------- Co-authored-by: pinzart commit cbba6d073ded1a4cfaf8a323401f5b80eae1b585 Author: Michael Kirschner Date: Mon Nov 27 11:26:04 2023 -0500 DYN-6412 fix performance issue with feature flags, and deadlock with CLI wrapper. (#14637) * fix for null data being shown over and over * fix issues with cli wrapper get data * revert * add test * review comments add tests * comments * review comments commit c5df6f9ab3ef5ad73a55cea82d422b8c1941ca9a Author: Ashish Aggarwal Date: Mon Nov 27 11:22:32 2023 -0500 Replace Application.Current with HostAnalyticsInfo.HostName check (#14574) * Fix PostDiff job * replace application.current * tests * refactor after Bogdans PR --------- Co-authored-by: Aaron (Qilong) <173288704@qq.com> commit 11b1f7c30546308e273a027c11a84936a005dd2d Author: jesusalvino <96534278+jesusalvino@users.noreply.github.com> Date: Mon Nov 27 08:55:32 2023 -0500 DYN-6313 Add ML Node AutoComplete TOU (#14625) * Updating the Agreement and Term of Use * Adding the MLNodeAuntocomplete rtf file * Persists the AgreeToMLAutocompleteTOU as preference settings * rename property * resources and control names * Clean up * Update * update --------- Co-authored-by: Jesus Alfredo Alviño Co-authored-by: Aaron (Qilong) commit 3e97cbdc8a5e6e47a7c480febd17ed1e4d047ad1 Author: Aabishkar KC Date: Wed Nov 22 12:56:04 2023 -0500 Update smoke tests workflow (#14638) commit 79cfc1364324222b7ad76f5422b8bed39b314039 Author: Deyan Nenov Date: Fri Nov 24 16:33:36 2023 +0000 fixed minor bugs - fixed a bug where the install to folder would not show the required dialog - fixed a bug where after locking the name for edit (after submitting a new package version) clearing the results would not remove the block from typing the name commit 6e4d890847cac00006f2ae01b3a7a9470473677a Merge: 17df8b661d 28130fb936 Author: Deyan Nenov Date: Fri Nov 24 15:54:05 2023 +0000 Merge branch 'pm-publishpackage-packagecontents-revert' into pm-mypackages-update commit 28130fb936864dca666c353d0916070c6c7abad1 Author: Deyan Nenov Date: Fri Nov 24 15:45:35 2023 +0000 disabled PublishingACustomNodeSetsPackageInfoCorrectly_ test - disabled this test for the moment, it contaminates the packages folder by creating a package and leading to numerous failure tests consequently commit 85994db366f4ffee68530381e9008d04633132ef Merge: 8096f65b40 b0b86ae94d Author: Deyan Nenov Date: Wed Nov 22 17:37:31 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents-revert commit 8096f65b40abbbf755a8b333703a72e7825c3394 Author: Deyan Nenov Date: Wed Nov 22 17:37:16 2023 +0000 BrowserItemViewModel dispose - implement dispose method inside the BrowserItemViewModel to unsubscribe from the ItemsOnCollectionChanged event commit b822e2c550c2d01380273ccf4cc851b232b4000a Author: Deyan Nenov Date: Wed Nov 22 13:02:50 2023 +0000 publish tab no memory leak - publish tab is not leaking commit 17df8b661ddc95bc7ab72b91334bb24c2981a7a2 Author: Deyan Nenov Date: Wed Nov 22 12:04:54 2023 +0000 clear breadcrumbs commit 7ce3c9eb48aff5320bf03ac6a049535df752b139 Author: Deyan Nenov Date: Tue Nov 21 23:25:42 2023 +0000 unsubscribe from event handlers - unsunbscribing from a few unattended event handlers - removed EntryDictionary, it wasn't used anywhere but was taking resources - unsubsribing from ele.RequestShowFileDialog -= OnRequestShowFileDialog; for each searchelementVM this time! commit 3deae086be5124d977be3f7a2a92ee35e603b0b4 Author: Deyan Nenov Date: Tue Nov 21 12:49:34 2023 +0000 wire the command commit f2ef48fe8c18ae2a7a24414403305d71f2fbd183 Author: Deyan Nenov Date: Tue Nov 21 12:40:38 2023 +0000 PublishNewVersionCommand inside PackageManagerViewModel - the design dictates that we trigger a `publish version` command from inside a packageManagerSearchElementViewModel, which is separated from the PackageViewModel that has all the necessary methods for that - we are using the PackageManagerViewModel as the highest order VM that to create a bridge between the search element and the installed package commit 379edac8895ffe37ca5993c76437b74a06e66be2 Merge: 5706467420 2676995ee9 Author: Deyan Nenov Date: Mon Nov 20 20:03:33 2023 +0000 Merge branch 'pm-publishpackage-packagecontents-ml' into pm-publishpackage-packagecontents-revert commit 2676995ee9b81e9e8ba177f10c1fe368f596a84b Author: Deyan Nenov Date: Mon Nov 20 20:03:23 2023 +0000 memory leak commit 570646742046434323649948b99a6ded64243620 Merge: 69e9fe9cc7 b658456361 Author: Deyan Nenov Date: Mon Nov 20 19:28:52 2023 +0000 Merge branch 'pm-publishpackage-packagecontents-ml' into pm-publishpackage-packagecontents-revert commit 72954cab23c2db5dab84a035e652b4f9ca106d29 Author: Deyan Nenov Date: Mon Nov 20 18:30:39 2023 +0000 refresh datacontext on change - now correctly refreshes the PublishPackageViewModel datacontext when publishing new package version commit ec0691e1e68817e914f7025deaceec84f83ae1c3 Author: Deyan Nenov Date: Mon Nov 20 10:54:48 2023 +0000 replaced bullet menu icon - now uses vector path rather than png icon (scalable) commit 35377ca490c3b66077e00ac866d35b9b60e57e88 Merge: 626730f7ca b658456361 Author: Deyan Nenov Date: Mon Nov 20 09:47:23 2023 +0000 Merge branch 'pm-publishpackage-packagecontents' into pm-mypackages-update commit b6584563617b59dbde316cbd730839a8a8664ca1 Merge: 2be4bd5dfc 96fb3f0542 Author: Deyan Nenov Date: Mon Nov 20 09:43:53 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 626730f7ca31255b18c6eee4f7aea18ed37f8c0b Author: Deyan Nenov Date: Thu Nov 16 08:37:45 2023 +0000 update mypackages ui and functionality - starting the work around MyPackages tab commit 2be4bd5dfc231b6659de189c9593f49bba135dcc Author: Deyan Nenov Date: Thu Nov 16 08:35:38 2023 +0000 remove commented out code commit 3396d3d407261ff01ab5b558c790e6a298ff455c Author: Deyan Nenov Date: Wed Nov 15 20:03:42 2023 +0000 failing tests fix - the tests were failing because another test folder was starting with a preceding alphabet letter commit 40a03360ef5bb2761ffadf2b5e97e3a9eb0e3ea1 Merge: a9be281c7c 723cef6ceb Author: Deyan Nenov Date: Wed Nov 15 18:57:13 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit a9be281c7c62033cfe0f1299c3f8ad396c33c1a8 Author: Deyan Nenov Date: Tue Nov 14 19:34:30 2023 +0000 remove unused icons commit bcb39716a0d34b54525b75d5d29766c0742c4a9c Author: Deyan Nenov Date: Tue Nov 14 18:13:45 2023 +0000 restored deleted namespaces - not sure how the namespaces got wiped with the previous commit commit f733ae18494ef6904593f18b8ba9d41f7c8e5126 Author: Deyan Nenov Date: Tue Nov 14 17:50:09 2023 +0000 comments to public properties added commit be5fdcb94a3cf3ae4f741167afecf864ca777cda Merge: 1ca1b6da8e 08e5d3f83c Author: Deyan Nenov Date: Tue Nov 14 17:39:14 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 1ca1b6da8e70ec4003f624bfccdd0cd38520a952 Merge: ab812d44d1 8af516cee3 Author: Deyan Nenov Date: Tue Nov 14 11:16:53 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit ab812d44d1a0b2d99ac82aac2dbd00b3c3738b4d Author: Deyan Nenov Date: Tue Nov 14 11:12:54 2023 +0000 remove duplicate icon.png from test folders - removed duplicate icon.png files / replaced with empty text files instead - updated tests that were failing since last changes commit 050c90613755025e9e55334632493da2754a993a Author: Deyan Nenov Date: Tue Nov 14 10:18:44 2023 +0000 comment to PublishRetainFolderStructure - added a detailed comment describing the new PublishRetainFolderStructure method commit 43f0c0863a32440ebd435a632ab19aebc9182a6d Merge: 423691ff13 f0cd05c3fd Author: Deyan Nenov Date: Tue Nov 14 10:03:24 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 423691ff1310492594b1ff14d7d659af5dbba788 Author: Deyan Nenov Date: Mon Nov 13 14:46:48 2023 +0000 fix commit 7cf3df89d7546386e647407cc23ed68aade40356 Merge: c8b6f1f7df ec16645f3d Author: Deyan Nenov Date: Mon Nov 13 12:20:12 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit c8b6f1f7df4254f75eafc25fe9c90467b3419ba7 Merge: 00163ad0d4 caa3268d4c Author: Craig Long Date: Thu Nov 9 15:23:30 2023 -0500 Merge branch 'master' into pm-publishpackage-packagecontents commit 00163ad0d47001cca0fdff61240050d45bea7872 Author: Deyan Nenov Date: Wed Nov 8 14:16:36 2023 +0000 remove empty tooltips - remove unnecessary tooltip to the content presenter - added 1 missing tooltip to line items commit c6f8db05483b6207374df0b5a364c6f99021cc0c Merge: 4432d8cdab c64fe07eb2 Author: Deyan Nenov Date: Wed Nov 8 12:35:20 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 4432d8cdab7680e412181283b4e56d1754fee475 Author: Deyan Nenov Date: Wed Nov 8 12:34:51 2023 +0000 new validation rules - updated validation rules as per Figma commit eb92b8278bab5ebbeafb1e9057c2410131888d9f Author: Deyan Nenov Date: Wed Nov 8 10:54:00 2023 +0000 starting space rule - no longer able to start with a space for all input fields - allows user to skip adding minor and build values will be replaced with default ones commit 6ba8920e78397059ee9e51508d6f5a886397fb53 Author: Deyan Nenov Date: Tue Nov 7 19:48:37 2023 +0000 numeric up/down fix and tests - added tests for numeric up/down - space is now handled and should not be allowed - new validation rule for package Name field commit 1564807b5ee69aa837369d6e6785a320933a057e Author: Deyan Nenov Date: Tue Nov 7 14:22:16 2023 +0000 rework markdown path locator - added new control when no markdown path is selected commit df6e5527e5a7a2f6bdc9d010d1452bef1c5b44f3 Author: Deyan Nenov Date: Tue Nov 7 13:41:25 2023 +0000 build version error message - added build version error message commit 817b28ac8eb1cf0e1f98c21def3c193c6e985d70 Author: Deyan Nenov Date: Tue Nov 7 13:17:21 2023 +0000 host control updated - updated the host control visuals - tooltips update commit 3a566476b550792c8aed575f986fd780b9637c4b Merge: 4ffda4316a b28faaa88f Author: Deyan Nenov Date: Tue Nov 7 12:19:59 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 4ffda4316a51bc71ccfaf886db97a163cb9d4a4b Author: Deyan Nenov Date: Tue Nov 7 12:19:51 2023 +0000 keywords tags - added keywords tags - TODO: should we replace Kewords with KewordsCollection when submitting a package? commit 578c2c2580f334c4a7c671bdee6c88eabf7cf68c Author: Deyan Nenov Date: Tue Nov 7 10:45:31 2023 +0000 remove PublishPackageReadyToPublishPage - PublishPackageReadyToPublishPage was not used, removed commit 0487df03e94a47487108772497e57d670c4264de Author: Deyan Nenov Date: Tue Nov 7 10:43:14 2023 +0000 tooltips - fixed tooltips and styles commit 88ed74a21b7e60dd7ed6d1b8fae9b772c025bd66 Author: Deyan Nenov Date: Tue Nov 7 00:07:34 2023 +0000 description removed, name validation adorner added - removed description from package validation rules - added name error validation and adorner commit bf3e344a4a51e3a9ae7d5d4e640e06854cc0e2a5 Author: Deyan Nenov Date: Mon Nov 6 22:34:45 2023 +0000 exclude unmanaged dlls - unmanaged dll files cannot be Node Library - fixed Node Library preview commit d0df24765bca1e5b8517656a9d4e9b89688feb1a Author: Deyan Nenov Date: Mon Nov 6 16:59:20 2023 +0000 publish retain folder done - finished workflow for publishing package reatining folder - changed UI finish screen to work differently depending on which workflow was taken - publish locally or online - tests added commit c1ff9657a5196bafe0b5d61d2a5f396182e35cd6 Merge: 9d6b738fd0 0304338dfe Author: Deyan Nenov Date: Mon Nov 6 10:41:41 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 9d6b738fd0c4949b8d478e1c1526634ea0324469 Author: Deyan Nenov Date: Sun Nov 5 14:07:03 2023 +0000 submit package retaining folder structure - created the second path to submitting packages online retaining folder structure - tests added commit c3bc444a0b2ac254943e765accc8a7b9b3708fc4 Author: Deyan Nenov Date: Wed Nov 1 20:35:55 2023 +0000 adding packagebuilder tests - adding tests for BuildRetainDirectory commit 2597eee0001638d0e41ad6fc51aaeb1e6237ee11 Author: Deyan Nenov Date: Tue Oct 31 14:24:00 2023 +0000 resources commit d7de724d11d7f464fce03e7ae35587f8b82d9b08 Author: Deyan Nenov Date: Tue Oct 31 12:22:27 2023 +0000 hover and tooltips - adding hover states - adding tooltips - removing old resources commit 04b8ff4c6c5553b8041e77f09201318b64d7fe1d Author: Deyan Nenov Date: Tue Oct 31 00:28:48 2023 +0000 resources commit f993ed85595a345b519c6c21266dcce90fb6be7a Author: Deyan Nenov Date: Mon Oct 30 23:01:06 2023 +0000 minor refactor commit a35b294606680b37bc2652f5cd31ff5d10eff026 Author: Deyan Nenov Date: Mon Oct 30 21:03:49 2023 +0000 rework of retain folder structure - change the logic of how to collect files under multiple root folders when using retain folder structure - keywords fix, added tests commit 2415b246c14ac7de4c61382fa267deded980a5ea Merge: b287974480 f665018c5b Author: Deyan Nenov Date: Mon Oct 30 21:02:24 2023 +0000 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit b2879744804dd9ee2b9a862a99337ac4e83b47e1 Author: Deyan Nenov Date: Mon Oct 30 15:11:18 2023 +0000 ui styling fixes - rework on the custom browser user control to correctly display dotted lines - no longer treats every assembly as NodeLibrary commit d57eb39ad110a13b70b9612b5b28b83be8f448f5 Author: Deyan Nenov Date: Mon Oct 30 00:24:52 2023 +0000 fixed custombrowsercontrol visuals - multiple ui fixes to the custom browser control commit b17a4af4ee6fdb51ce91772aacc984c15921a3ef Author: Deyan Nenov Date: Sun Oct 29 18:50:33 2023 +0000 test remove multiple - added test to assert correct removal of multiple root items - publish package clears on window close without prompt - added ellipsis for package name - center message prompts to main view commit c3de2d79651726721cabb48fafb4f38f4bbba15f Author: Deyan Nenov Date: Sun Oct 29 13:51:14 2023 +0000 tests preview items structure to created package - tests added to assert preview package structure is identical to the created package structure commit c1bd03bac60c95ba0b819b90de283a677c175371 Author: Deyan Nenov Date: Sat Oct 28 20:31:48 2023 +0100 removing items more tests added - added more tests around removing items commit 27277f2c1044ad7cf76c51956f013cca92ac074a Merge: 3f573aa5c9 4f279a91fe Author: Deyan Nenov Date: Sat Oct 28 14:59:20 2023 +0100 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 3f573aa5c9392dc73855f47bae7c35fbdea4e072 Author: Deyan Nenov Date: Tue Oct 24 15:40:40 2023 +0100 clear custom filepaths when clearing package controls - also clear custom definition filepaths commit 032b421263db4af981f47b60bbcaf648e02d8f65 Merge: 96f7edc06d 892253eb99 Author: Deyan Nenov Date: Tue Oct 24 13:20:00 2023 +0100 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit 96f7edc06d8e065b5d1b1b3b57e108d18f5c7968 Author: Deyan Nenov Date: Tue Oct 24 13:18:54 2023 +0100 navigation way, cancel prompts - now warns the user of losing changes if using cancel or navigating away commit 5fec8268a2db21149f9866fe76e1f88841924f8a Author: Deyan Nenov Date: Tue Oct 24 10:30:17 2023 +0100 retain folder structure - publish local retaining folder structure commit 6b83d44d48359d10687ff9e9057dad02c0ef459a Author: Deyan Nenov Date: Mon Oct 23 18:58:29 2023 +0100 main flow finished - finished the main flow between the pages commit 3df4cce0f6b229dd34e0b02bbd4e5798454b6dd8 Author: Deyan Nenov Date: Mon Oct 23 14:03:51 2023 +0100 clear data and ui - clearing data and ui after publishing - clearing data and ui with Cancel button commit 62c30b6517e34a5bf6ff17defeebafb0d15dbc7c Author: Deyan Nenov Date: Mon Oct 23 11:17:59 2023 +0100 consistent select all behavior - fixed checkbox behavior to be consistent when interacting with the rest of the controls commit 653461a59d9bef42431cbb5598ea94a46f46fcb9 Author: Deyan Nenov Date: Sun Oct 22 20:35:04 2023 +0100 delete item tests added - added tests for delete item - fixed an issue where removing all items would not result in cleaning the RootContent items - added detailed description for the customTreeView_SelectedItemChanged method commit 5678922a56eb590d2265bc6822218a140c5b66c3 Merge: e2cd0aa60e 989ea3c1b5 Author: Deyan Nenov Date: Wed Oct 18 18:51:43 2023 +0100 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit e2cd0aa60e0f5a9d50cdebcbc42a088402b9c1b7 Author: Deyan Nenov Date: Wed Oct 18 18:51:30 2023 +0100 customnode preview item added - we need the ability to display custom nodes as file with file paths during package creation. CustomDefinition does not have the attributes to address that, so we are adding a new 'preview' item type to server the purpose commit 0f281ab636e501b87eb4f42da6f20a05bf9147c7 Author: Deyan Nenov Date: Wed Oct 18 16:04:58 2023 +0100 assemblies show as files - assemblies now will show up with their file path, but still get picked up from their assembly resource on disk commit 05e729541ff9cc41e3b25699fbcd5772e0630a92 Author: Deyan Nenov Date: Tue Oct 17 12:16:17 2023 +0100 browser sorting - now sorts browser alphabetically - fixed disabled behavior commit fbab436c853518bf10cead2540f79c4403eabdbd Author: Deyan Nenov Date: Tue Oct 17 10:09:22 2023 +0100 preview contents, bugfix - preview contents now correctly display based on user choice (retain folder or not) - fixed a bug where CustomDefinitions would read as root item - Pages are disabled when not displayed, in order to stop handling of tasks that affect other Pages commit db74c8ba36537372ab67fc422d0e49be7f459104 Author: Deyan Nenov Date: Mon Oct 16 21:48:37 2023 +0100 remove inactive selection border background - ui tweaks commit 2ecd63a484e5c6e3f9ff8015de7e023e2bc83d19 Author: Deyan Nenov Date: Mon Oct 16 20:02:12 2023 +0100 item selection and deletion - UI added to allow users to add/remove items from current Package selection commit da0501f0b2a5e55e1762cf87a0c62dd9153bd44e Author: Deyan Nenov Date: Mon Oct 16 13:48:40 2023 +0100 delete folders working - changed `RemoveItem` method to account for folder items being removed - fixed a bug where removing an Assembly file would generate an error. Assembly files can also be added to 'additional items' commit 990188042812398d4b5a0bbed79e60e9d50c5967 Author: Deyan Nenov Date: Fri Oct 13 13:33:42 2023 +0100 testing preview functionality - added tests for the core methods of PreviewPackageBuild commit 4f704a7ee7d8ef8895d545a0161eff4f3e6dc7ea Author: Deyan Nenov Date: Tue Oct 10 15:16:15 2023 +0100 previewbuild started - started the structure for preview build commit f92297551c577dcf747fca97473d84b9f1f23238 Author: Deyan Nenov Date: Mon Oct 9 22:09:11 2023 +0100 visual style tweaks - updated files and folders icons - now only allows LibraryNode checkboxes for Assembly dll files commit 45d558c6b1e213906b99748b9bd56e5cfe145b05 Author: Deyan Nenov Date: Mon Oct 9 20:12:27 2023 +0100 tests added - tests added to assert correct functionality of collecting files and folders commit 536d00f573b366dd260c4bc219f9bbff796a6add Author: Deyan Nenov Date: Tue Oct 3 17:58:48 2023 +0100 wip commit 1cceb9eeb262d357ec1d43591508536db4c1b49b Author: Deyan Nenov Date: Tue Oct 3 16:27:13 2023 +0100 tree visual update fix - using Dispatcher fixes the async tree creation commit a8fb2dec92d23eab954c8663aeef7c0c39d55258 Author: Deyan Nenov Date: Tue Oct 3 14:21:51 2023 +0100 misc changes commit 24ce2cbaf121db665de1ff3e0f79b9e95d9ace91 Author: Deyan Nenov Date: Mon Oct 2 22:53:26 2023 +0100 connected packagecontents and rootcontents commit 32fa036ab071ce6b6c44692ad4da8213f0913ab4 Author: Deyan Nenov Date: Mon Oct 2 22:12:01 2023 +0100 added pages - added pages for the wizard-like experience when publishing a package commit 0a0c1a6d9389e999243686897ecaca0c1a717dd9 Author: Deyan Nenov Date: Mon Oct 2 16:11:15 2023 +0100 getting somewhere with browser - updated browser to only show root items commit b3aeee825d3586a7942c83ccaa0d0b5679df13b1 Author: Deyan Nenov Date: Tue Sep 26 15:44:57 2023 +0100 folder structure - correctly creates minimum depth folder structure for the files added commit 183bdd7a8f602b5588061c9b8d12960fc1975d17 Merge: ca46de8406 68608102ae Author: Deyan Nenov Date: Mon Sep 18 17:06:35 2023 +0100 Merge remote-tracking branch 'upstream/master' into pm-publishpackage-packagecontents commit ca46de8406d0d3606814ad8017c3f2804cf21e8e Author: Deyan Nenov Date: Mon Sep 18 10:41:11 2023 +0100 colors in config.js - now all colors are controlled by the COLORS object in confing.js --- .../PackageManagerSearchElementViewModel.cs | 18 ++++++++++ .../PackageManagerSearchViewModel.cs | 7 +++- .../PackageManager/PackageManagerViewModel.cs | 34 +++++++++++++++++- .../PackageManager/PublishPackageViewModel.cs | 21 +++++++++-- .../Views/Core/DynamoView.xaml.cs | 4 +++ .../PackageManagerPublishControl.xaml.cs | 30 +++++++++++++++- .../Pages/PublishPackagePublishPage.xaml.cs | 35 +++++++++++++++++-- 7 files changed, 141 insertions(+), 8 deletions(-) diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs index 783035dfe4b..f04c2d5692f 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs @@ -113,6 +113,24 @@ public PackageManagerSearchElementViewModel(PackageManagerSearchElement element, public PackageManagerSearchElementViewModel(PackageManagerSearchElement element, bool canLogin) : this(element, canLogin, true) {} + /// + /// A property showing if the currently logged-in user owns the package + /// + private bool isOwner = false; + public bool IsOnwer + { + get + { + return isOwner; + } + + internal set + { + isOwner = value; + RaisePropertyChanged(nameof(IsOnwer)); + } + } + private bool canInstall; /// /// A Boolean flag reporting whether or not the user can install this SearchElement's package. diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchViewModel.cs index 36cb8d1bd11..fd57ae6fd81 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchViewModel.cs @@ -651,8 +651,12 @@ private void PopulateMyPackages() var pkgs = PackageManagerClientViewModel.CachedPackageList.Where(x => x.Maintainers != null && x.Maintainers.Contains(name)).ToList(); foreach(var pkg in pkgs) { - var p = new PackageManagerSearchElementViewModel(pkg, false); + var p = new PackageManagerSearchElementViewModel(pkg, + PackageManagerClientViewModel.AuthenticationManager.HasAuthProvider, + CanInstallPackage(pkg.Name)); p.RequestDownload += this.PackageOnExecuted; + p.RequestShowFileDialog += this.OnRequestShowFileDialog; + p.IsOnwer = true; myPackages.Add(p); } @@ -666,6 +670,7 @@ private void ClearMySearchResults() foreach (var ele in this.SearchMyResults) { ele.RequestDownload -= PackageOnExecuted; + ele.RequestShowFileDialog -= OnRequestShowFileDialog; } this.SearchMyResults = null; diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerViewModel.cs index 8474cf4e3ce..84897abc499 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerViewModel.cs @@ -1,5 +1,8 @@ using System; using System.Collections.ObjectModel; +using System.Linq; +using Dynamo.PackageManager.ViewModels; +using Dynamo.UI.Commands; using Dynamo.ViewModels; using NotificationObject = Dynamo.Core.NotificationObject; @@ -25,7 +28,20 @@ public class PackageManagerViewModel : NotificationObject, IDisposable /// /// PublishPackageViewModel containing information about all the published packages /// - public PublishPackageViewModel PublishPackageViewModel { get; set; } + /// + private PublishPackageViewModel publishPackageViewModel; + public PublishPackageViewModel PublishPackageViewModel + { + get { return publishPackageViewModel; } + set + { + if (publishPackageViewModel != value) + { + publishPackageViewModel = value; + RaisePropertyChanged(nameof(PublishPackageViewModel)); + } + } + } /// /// Returns all installed packages @@ -37,6 +53,7 @@ public class PackageManagerViewModel : NotificationObject, IDisposable /// public ObservableCollection Filters => installedPackagesViewModel.Filters; + public DelegateCommand PublishNewVersionCommand { get; set; } //Width of the PackageManagerView the default value is 1076 public double Width @@ -90,6 +107,21 @@ public PackageManagerViewModel(DynamoViewModel dynamoViewModel, PackageManagerSe { PreferencesViewModel.SelectedPackagePathForInstall = dynamoViewModel.PreferenceSettings.SelectedPackagePathForInstall; } + + PublishNewVersionCommand = new DelegateCommand(PublishNewPackageVersionRelayCommand); + } + + + private void PublishNewPackageVersionRelayCommand(object obj) + { + var searchElement = obj as PackageManagerSearchElementViewModel; + if(searchElement != null) + { + var localPackage = LocalPackages.First(x => x.Model.Name.Equals(searchElement.Name)); + + if (localPackage == null) { return; } + localPackage.PublishNewPackageVersionCommand.Execute(); + } } private void LocalPackages_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs index 192e73c9006..008886c7046 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ComponentModel; @@ -92,7 +93,7 @@ public DynamoViewModel DynamoViewModel /// /// Package Publish entry, binded to the host multi-selection option /// - public class HostComboboxEntry + public class HostComboboxEntry : NotificationObject { /// /// Name of the host @@ -102,7 +103,19 @@ public class HostComboboxEntry /// /// Boolean indicates if the host entry is selected /// - public bool IsSelected { get; set; } + private bool _isSelected; + public bool IsSelected + { + get { return _isSelected; } + set + { + if (_isSelected != value) + { + _isSelected = value; + RaisePropertyChanged(nameof(IsSelected)); + } + } + } /// /// Constructor @@ -190,6 +203,7 @@ public bool IsNewVersion { _isNewVersion = value; RaisePropertyChanged("IsNewVersion"); + RaisePropertyChanged("CanEditName"); } } } @@ -1134,8 +1148,9 @@ private void ClearAllEntries() this.AdditionalFiles = new ObservableCollection(); this.Dependencies = new ObservableCollection(); this.Assemblies = new List(); - this.SelectedHosts = new List(); + this.KnownHosts.ForEach(host => { host.IsSelected = false; }); this.SelectedHostsString = string.Empty; + this.SelectedHosts = new List(); this.copyrightHolder = string.Empty; this.copyrightYear = string.Empty; this.RootFolder = string.Empty; diff --git a/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs b/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs index 58be0f74b2d..7e792419834 100644 --- a/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs +++ b/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs @@ -1493,6 +1493,10 @@ private void DynamoViewModelRequestPackageManager(PublishPackageViewModel model) if (packageManagerWindow.IsLoaded && IsLoaded) packageManagerWindow.Owner = this; } + if (_pkgVM != null) + { + _pkgVM.PublishPackageViewModel = model; + } packageManagerWindow.Focus(); packageManagerWindow.Navigate(Wpf.Properties.Resources.PackageManagerPublishTab); diff --git a/src/DynamoCoreWpf/Views/PackageManager/Controls/PackageManagerPublishControl.xaml.cs b/src/DynamoCoreWpf/Views/PackageManager/Controls/PackageManagerPublishControl.xaml.cs index 84bc4d07653..555ac3a8bf2 100644 --- a/src/DynamoCoreWpf/Views/PackageManager/Controls/PackageManagerPublishControl.xaml.cs +++ b/src/DynamoCoreWpf/Views/PackageManager/Controls/PackageManagerPublishControl.xaml.cs @@ -32,9 +32,35 @@ public PackageManagerPublishControl() InitializeComponent(); this.Loaded += InitializeContext; + this.DataContextChanged += PackageManagerPublishControl_DataContextChanged; + } + + private void PackageManagerPublishControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + { + if (!(this.DataContext is PublishPackageViewModel)) return; + + ResetDataContext(); + SetDataContext(); } private void InitializeContext(object sender, RoutedEventArgs e) + { + SetDataContext(); + + this.Loaded -= InitializeContext; + } + + private void ResetDataContext() + { + if (PublishPackageViewModel != null) + { + PublishPackageViewModel.PublishSuccess -= PackageViewModelOnPublishSuccess; + PublishPackageViewModel.RequestShowFolderBrowserDialog -= OnRequestShowFolderBrowserDialog; + } + + PublishPackageViewModel = null; + } + private void SetDataContext() { // Set the owner of this user control this.Owner = Window.GetWindow(this); @@ -42,7 +68,7 @@ private void InitializeContext(object sender, RoutedEventArgs e) PublishPackageViewModel = this.DataContext as PublishPackageViewModel; PublishPackageViewModel.Owner = this.Owner; - if(PublishPackageViewModel != null ) + if (PublishPackageViewModel != null) { PublishPackageViewModel.PublishSuccess += PackageViewModelOnPublishSuccess; PublishPackageViewModel.RequestShowFolderBrowserDialog += OnRequestShowFolderBrowserDialog; @@ -78,6 +104,8 @@ public void Dispose() NavButtonStacks = null; Breadcrumbs?.Clear(); + + this.DataContextChanged -= PackageManagerPublishControl_DataContextChanged; } private void InitializePages() diff --git a/src/DynamoCoreWpf/Views/PackageManager/Pages/PublishPackagePublishPage.xaml.cs b/src/DynamoCoreWpf/Views/PackageManager/Pages/PublishPackagePublishPage.xaml.cs index 84e1a796522..72004e438f8 100644 --- a/src/DynamoCoreWpf/Views/PackageManager/Pages/PublishPackagePublishPage.xaml.cs +++ b/src/DynamoCoreWpf/Views/PackageManager/Pages/PublishPackagePublishPage.xaml.cs @@ -2,6 +2,7 @@ using System.Globalization; using System.Windows; using System.Windows.Controls; +using System.Windows.Input; using System.Windows.Media; using System.Windows.Navigation; @@ -11,7 +12,7 @@ public class PackageNameLengthValidationRule : ValidationRule { public override ValidationResult Validate(object value, CultureInfo cultureInfo) { - if (value is string name && name.TrimEnd().Length > 2) + if (IsValidName((string)value)) { // Validation succeeded return ValidationResult.ValidResult; @@ -20,6 +21,11 @@ public override ValidationResult Validate(object value, CultureInfo cultureInfo) // Validation failed return new ValidationResult(false, Wpf.Properties.Resources.NameNeedMoreCharacters); } + public static bool IsValidName(string value) + { + return (value is string name && name.TrimEnd().Length > 2); + } + } @@ -136,11 +142,36 @@ private void textBoxInput_PreviewKeyDown(object sender, System.Windows.Input.Key { var textBox = sender as TextBox; if (textBox == null) return; + if (e.Key == Key.System) return; + + int caretIndex = textBox.CaretIndex; // Store the caret index // Prevents text starting with a space if (e.Key == System.Windows.Input.Key.Space && string.IsNullOrWhiteSpace(textBox.Text)) { - e.Handled = true; + e.Handled = true; + return; + } + + if (string.IsNullOrEmpty(textBox.Text)) { return; } + + // In case we are using the Backspace to remove characters, the validation error will stop the Name property from being updated + if (textBox.Name.Equals("packageNameInput") && e.Key == Key.Back && !PackageNameLengthValidationRule.IsValidName(textBox.Text.Substring(0, textBox.Text.Length - 1))) + { + e.Handled = true; + + if (!string.IsNullOrEmpty(PublishPackageViewModel.Name)) + { + // Manually remove the last character from the Name property, as the validation error will not update the Name property + PublishPackageViewModel.Name = PublishPackageViewModel.Name.Substring(0, PublishPackageViewModel.Name.Length - 1); + + // Trigger re-validation explicitly + var expression = textBox.GetBindingExpression(TextBox.TextProperty); + expression?.UpdateSource(); + + textBox.CaretIndex = caretIndex - 1 >= 0 ? caretIndex - 1 : 0; + return; + } } } }