This is an automated email from the ASF dual-hosted git repository. iuliana pushed a commit to branch fix/smart-188 in repository https://gitbox.apache.org/repos/asf/brooklyn-ui.git
commit ed599f73ed7c9ec16ed41971b9bc1b9115e474cb Author: iuliana <[email protected]> AuthorDate: Fri Jun 4 14:47:52 2021 +0100 Added fix that does not pollute validation --- .../catalog-saver/catalog-saver.directive.js | 32 ++++++++++++---------- .../catalog-saver.modal.template.html | 2 +- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.directive.js b/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.directive.js index 052a97b..3acc373 100644 --- a/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.directive.js +++ b/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.directive.js @@ -70,24 +70,24 @@ export function saveToCatalogModalDirective($rootScope, $uibModal, $injector, $f $scope.isNewFromTemplate = () => ($scope.config.itemType !== 'template' && $scope.config.original.itemType === 'template'); $scope.isUpdate = () => !$scope.isNewFromTemplate() && Object.keys($scope.config.original).length>0; $scope.buttonTextFn = () => $scope.config.label || ($scope.isUpdate() && ($scope.config.name || $scope.config.original.name || $scope.config.symbolicName || $scope.config.original.symbolicName)) || 'Add to catalog'; - $scope.buttonText = $scope.buttonTextFn(); - + $scope.buttonText = $scope.buttonTextFn(); + $scope.activateModal = () => { let entity = blueprintService.get(); let metadata = blueprintService.entityHasMetadata(entity) ? blueprintService.getEntityMetadata(entity) : new Map(); - + if (!$scope.config.itemType) { // This is the default item type $scope.config.itemType = 'application'; } - + // Set various properties from the blueprint entity data if not already set if (!$scope.config.iconUrl && (entity.hasIcon() || metadata.has('iconUrl'))) { $scope.config.iconUrl = entity.icon || metadata.get('iconUrl'); } if (!$scope.isNewFromTemplate()) { // (these should only be set if not making something new from a template, as the entity items will refer to the template) - + // the name and the ID can be set in the UI, // or all can be inherited if root node is a known application type we are editting // (normally in those cases $scope.config will already be set by caller, but maybe not always) @@ -101,13 +101,12 @@ export function saveToCatalogModalDirective($rootScope, $uibModal, $injector, $f $scope.config.version = entity.version || metadata.get('version'); } if (!$scope.config.bundle) { - if (!$scope.config.symbolicName) { - $scope.config.symbolicName = $scope.config.name; + if ($scope.config.symbolicName) { + $scope.config.bundle = $scope.config.symbolicName; } - $scope.config.bundle = $scope.config.symbolicName; } } - + // Override this callback to update configuration data elsewhere $scope.config = (composerOverrides.updateCatalogConfig || ((config, $element) => config))($scope.config, $element); @@ -117,7 +116,7 @@ export function saveToCatalogModalDirective($rootScope, $uibModal, $injector, $f controller: ['$scope', '$filter', 'blueprintService', 'paletteApi', 'brUtilsGeneral', CatalogItemModalController], scope: $scope, }); - + // Promise is resolved when the modal is closed. We expect the modal to pass back the action to perform thereafter modalInstance.result.then(reason => { switch (reason) { @@ -143,6 +142,8 @@ export function CatalogItemModalController($scope, $filter, blueprintService, pa saving: false, force: false, }; + $scope.catalogBundleId =""; + $scope.catalogBundleBase =""; $scope.getTitle = () => { switch ($scope.state.view) { @@ -180,7 +181,7 @@ export function CatalogItemModalController($scope, $filter, blueprintService, pa if (!bundleBase || !bundleId) { throw "Either the display name must be set, or the bundle and symbolic name must be explicitly set"; } - + let bomItem = { id: bundleId, itemType: $scope.config.itemType, @@ -201,7 +202,8 @@ export function CatalogItemModalController($scope, $filter, blueprintService, pa if (brUtilsGeneral.isNonEmpty($scope.config.iconUrl)) { bomItem.iconUrl = $scope.config.iconUrl; } - + $scope.catalogBundleId = bundleId; + $scope.catalogBundleBase = bundleBase; return jsYaml.dump({ 'brooklyn.catalog': bomCatalogYaml }); } @@ -274,7 +276,7 @@ export function catalogVersionDirective($parse) { ctrl.$validators.exist = (modelValue, viewValue) => { return !angular.isDefined(matches) || ctrl.$isEmpty(viewValue) || viewValue.endsWith('SNAPSHOT') || force === true || matches.indexOf(viewValue) === -1; - }; + }; } } @@ -283,6 +285,6 @@ function templateCache($templateCache) { $templateCache.put(TEMPLATE_MODAL_URL, modalTemplate); } -function bundlizeProvider() { - return (input) => input && input.split(/[^a-zA-Z0-9]+/).filter(x => x).join('-').toLowerCase(); +function bundlizeProvider() { + return (input) => input && input.split(/[^a-zA-Z0-9]+/).filter(x => x).join('-').toLowerCase(); } diff --git a/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.modal.template.html b/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.modal.template.html index 1fc7de9..6b8898d 100644 --- a/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.modal.template.html +++ b/ui-modules/blueprint-composer/app/components/catalog-saver/catalog-saver.modal.template.html @@ -122,7 +122,7 @@ <p>What would you like to do next?</p> <button class="btn btn-default btn-block" ng-click="$dismiss('Continue editing')">Continue to edit this blueprint</button> <button class="btn btn-info btn-block" ng-click="$close(REASONS.new)">Create a new blueprint</button> - <a class="btn btn-primary btn-block" ng-href="/brooklyn-ui-catalog/#!/bundles/catalog-bom-{{config.bundle}}/{{config.version}}/types/{{config.symbolicName}}/{{config.version}}">View in catalog</a> + <a class="btn btn-primary btn-block" ng-href="/brooklyn-ui-catalog/#!/bundles/catalog-bom-{{catalogBundleId}}/{{config.version}}/types/{{catalogBundleBase}}/{{config.version}}">View in catalog</a> <button ng-if="['template', 'entity'].indexOf(config.itemType) > -1" class="btn btn-link btn-block" ng-click="$close(REASONS.deploy)">Or deploy</button> </div> </div>
