call buttons "Open in Composer" and "Deploy" rather than "Preview" / "Finish"
and the "Open in Composer" button is highlighted if you pick a template Project: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/commit/9d3d9bb3 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/tree/9d3d9bb3 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-ui/diff/9d3d9bb3 Branch: refs/heads/master Commit: 9d3d9bb3f8346f62028fdad1df43ec60d94e73d8 Parents: 2d75ed5 Author: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Authored: Thu Feb 11 01:50:58 2016 +0000 Committer: Alex Heneveld <alex.henev...@cloudsoftcorp.com> Committed: Thu Feb 11 17:44:11 2016 +0000 ---------------------------------------------------------------------- .../assets/js/view/application-add-wizard.js | 91 +++++++++++--------- .../assets/tpl/app-add-wizard/modal-wizard.html | 4 +- 2 files changed, 50 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/9d3d9bb3/src/main/webapp/assets/js/view/application-add-wizard.js ---------------------------------------------------------------------- diff --git a/src/main/webapp/assets/js/view/application-add-wizard.js b/src/main/webapp/assets/js/view/application-add-wizard.js index ffdee6d..62d4db2 100644 --- a/src/main/webapp/assets/js/view/application-add-wizard.js +++ b/src/main/webapp/assets/js/view/application-add-wizard.js @@ -166,12 +166,39 @@ define([ setVisibility(this.$("#prev_step"), (this.currentStep > 0)) + this.isTemplate = false; + { + var yaml = (this.currentView && this.currentView.selectedTemplate && this.currentView.selectedTemplate.yaml); + if (yaml) { + try { + yaml = JsYaml.safeLoad(yaml); + hasLocation = yaml.location || yaml.locations; + if (!hasLocation) { + // look for locations defined in locations + svcs = yaml.services; + if (svcs) { + for (svcI in svcs) { + if (svcs[svcI].location || svcs[svcI].locations) { + hasLocation = true; + break; + } + } + } + } + this.isTemplate = (hasLocation ? true : false); + } catch (e) { + log("Warning: could not parse yaml template of selected item") + log(yaml); + } + } + } + // next shown for first step, but not for yaml - var nextVisible = (this.currentStep < 1) && (this.model.mode != "yaml") + var nextVisible = (this.currentStep < 1) && (this.model.mode != "yaml") && (!this.isTemplate); setVisibility(this.$("#next_step"), nextVisible) - // previous shown for step 2 (but again, not yaml) - var previewVisible = (this.currentStep == 1) && (this.model.mode != "yaml") + // preview (aka "Open in Composer") shown for step 2 or for template (but again, not yaml) + var previewVisible = (((this.currentStep < 1) && this.isTemplate) || (this.currentStep == 1)) && (this.model.mode != "yaml") setVisibility(this.$("#preview_step"), previewVisible) // now set next/preview enablement @@ -266,38 +293,9 @@ define([ nextStep:function () { if (this.currentStep == 0) { if (this.currentView.validate()) { - this.isTemplate = false; - var yaml = (this.currentView && this.currentView.selectedTemplate && this.currentView.selectedTemplate.yaml); - if (yaml) { - try { - yaml = JsYaml.safeLoad(yaml); - hasLocation = yaml.location || yaml.locations; - if (!hasLocation) { - // look for locations defined in locations - svcs = yaml.services; - if (svcs) { - for (svcI in svcs) { - if (svcs[svcI].location || svcs[svcI].locations) { - hasLocation = true; - break; - } - } - } - } - this.isTemplate = (hasLocation ? true : false); - } catch (e) { - log("Warning: could not parse yaml template") - log(yaml); - } - } - if (this.isTemplate) { - // it's a yaml catalog *template* (because it includes a location); go to composer - this.redirectToEditorTabToDeployId(this.currentView.selectedTemplate.id); - } else { - // it's a java catalog template or yaml template without a location, go to wizard - this.currentStep += 1; - this.renderCurrentStep(); - } + // next not visible if it's a template, so go to create (configure) step + this.currentStep += 1; + this.renderCurrentStep(); } else { // the call to validate will have done the showFailure } @@ -307,16 +305,21 @@ define([ }, previewStep:function () { if (this.currentView.validate()) { - var yaml; - if (this.model.mode == "yaml") { - yaml = this.model.yaml; + if (this.isTemplate) { + // it's a yaml catalog *template* (because it includes a location); go to composer + this.redirectToEditorTabToDeployId(this.currentView.selectedTemplate.id); } else { - // Drop any "None" locations. - this.model.spec.pruneLocations(); - yaml = JsYaml.safeDump(oldSpecToCamp(this.model.spec.toJSON())); + var yaml; + if (this.model.mode == "yaml") { + yaml = this.model.yaml; + } else { + // Drop any "None" locations. + this.model.spec.pruneLocations(); + yaml = JsYaml.safeDump(oldSpecToCamp(this.model.spec.toJSON())); + } + + this.redirectToEditorTabToDeployYaml(yaml); } - - this.redirectToEditorTabToDeployYaml(yaml); } else { // call to validate should showFailure } @@ -417,6 +420,7 @@ define([ this.delegateEvents(); return this; }, + // TODO tabs no longer relevant onTabChange: function(e) { var tabText = $(e.target).text(); if (tabText=="Catalog") { @@ -426,6 +430,7 @@ define([ } if (tabText=="YAML") { + // TODO this mode no longer used this.model.mode = "yaml"; } else if (tabText=="Template") { this.model.mode = "template"; http://git-wip-us.apache.org/repos/asf/brooklyn-ui/blob/9d3d9bb3/src/main/webapp/assets/tpl/app-add-wizard/modal-wizard.html ---------------------------------------------------------------------- diff --git a/src/main/webapp/assets/tpl/app-add-wizard/modal-wizard.html b/src/main/webapp/assets/tpl/app-add-wizard/modal-wizard.html index 183a4ab..427e100 100644 --- a/src/main/webapp/assets/tpl/app-add-wizard/modal-wizard.html +++ b/src/main/webapp/assets/tpl/app-add-wizard/modal-wizard.html @@ -30,6 +30,6 @@ under the License. <div class="modal-footer"> <button id="prev_step" type="button button-previous" class="btn btn-mini btn-info">Back</button> <button id="next_step" type="button button-next" class="btn btn-mini btn-info">Next</button> - <button id="preview_step" type="button button-preview" class="btn btn-mini btn-info">Preview</button> - <button id="finish_step" type="button button-finish" class="btn btn-mini btn-info">Finish</button> + <button id="preview_step" type="button button-preview" class="btn btn-mini btn-info">Open in Composer</button> + <button id="finish_step" type="button button-finish" class="btn btn-mini btn-info">Deploy</button> </div>