You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/11/15 18:07:10 UTC
[2/8] incubator-brooklyn git commit: catalog js-gui tweaks
catalog js-gui tweaks
* force server ordering to be respected on refresh, so new default versions show at root
* update applications as well as entities
* fix bug where sometimes on relead, policies would cause errors in browser
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/9ed1f981
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/9ed1f981
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/9ed1f981
Branch: refs/heads/master
Commit: 9ed1f9814c46b5347b9880fba0d106c156dd181f
Parents: f143310
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Nov 14 23:58:24 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Sat Nov 15 02:20:55 2014 +0000
----------------------------------------------------------------------
.../catalog/internal/BasicBrooklynCatalog.java | 2 +-
.../src/main/webapp/assets/js/view/catalog.js | 21 +++++++++++++++-----
2 files changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9ed1f981/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index 3a21114..674b380 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -604,7 +604,7 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
private void checkItemNotExists(CatalogItem<?,?> itemDto, boolean forceUpdate) {
if (!forceUpdate && getCatalogItemDo(itemDto.getSymbolicName(), itemDto.getVersion()) != null) {
throw new IllegalStateException("Updating existing catalog entries is forbidden: " +
- itemDto.getId() + ":" + itemDto.getVersion() + ". Use forceUpdate argument to override.");
+ itemDto.getSymbolicName() + ":" + itemDto.getVersion() + ". Use forceUpdate argument to override.");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9ed1f981/usage/jsgui/src/main/webapp/assets/js/view/catalog.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/view/catalog.js b/usage/jsgui/src/main/webapp/assets/js/view/catalog.js
index 2d6aa8b..7f849af 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/catalog.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/catalog.js
@@ -185,7 +185,10 @@ define([
.done(function (data, status, xhr) {
// Can extract location of new item with:
//model.url = Brooklyn.util.pathOf(xhr.getResponseHeader("Location"));
+ submitButton.button("reset");
+ self.close(); // one of the calls below should draw a different view
parent.loadAccordionItem("entities", data.id);
+ parent.loadAccordionItem("applications", data.id);
})
.fail(function (xhr, status, error) {
submitButton.button("reset");
@@ -232,6 +235,8 @@ define([
location.save()
.done(function (newModel) {
newModel = new Location.Model(newModel);
+ submitButton.button("reset");
+ self.close(); // the call below should draw a different view
parent.loadAccordionItem("locations", newModel.id);
})
.fail(function (response) {
@@ -370,9 +375,9 @@ define([
var AccordionEntityView = AccordionItemView.extend({
renderEntries: function() {
- var symbolicNameFn = function(model) {return model.get("type")};
+ var symbolicNameFn = function(model) {return model.get("symbolicName")};
var groups = this.collection.groupBy(symbolicNameFn);
- var orderedIds = _.uniq(this.collection.map(symbolicNameFn), true);
+ var orderedIds = _.uniq(this.collection.map(symbolicNameFn));
function getLatestStableVersion(items) {
//the server sorts items by descending version, snapshots at the back
@@ -429,9 +434,13 @@ define([
autoOpen: this.options.kind == "entities"
}),
"policies": new AccordionEntityView({
+ // TODO needs parsing, and probably its own model
+ // but cribbing "entity" works for now
+ // (and not setting a model can cause errors intermittently)
onItemSelected: _.partial(this.showCatalogItem, DetailsEntityHtml),
name: "policies",
singular: "policy",
+ model: Entity.Model,
autoOpen: this.options.kind == "policies"
}),
"locations": new AccordionItemView({
@@ -499,13 +508,15 @@ define([
} else {
var accordion = this.accordion[kind];
var self = this;
- accordion.collection.fetch()
+ // reset is needed because we rely on server's ordering;
+ // without it, server additions are placed at end of list
+ accordion.collection.fetch({reset: true})
.then(function() {
var model = accordion.collection.get(id);
if (!model) {
- self.setDetailsView(new CatalogItemDetailsView().renderEmpty(
- "No " + accordion.options.singular + " with id: " + id));
+ // caller probably passed the wrong kind (in case of entity v app, the caller might try both)
} else {
+ Backbone.history.navigate("/v1/catalog/"+kind+"/"+id);
activeDetailsView = kind;
accordion.activeCid = model.cid;
accordion.options.onItemSelected(kind, model);