caption for SliceSelector
[plstackapi.git] / planetstack / core / xoslib / static / js / xoslib / xosHelper.js
index 0cadf79..07ae9a9 100644 (file)
@@ -8,9 +8,6 @@ SliceSelectorOption = Marionette.ItemView.extend({
     template: "#xos-sliceselector-option",
     tagName: "option",
     attributes: function() {
-        console.log("XXX");
-        console.log(this.options.selectedID);
-        console.log(this.model.get("id"));
         if (this.options.selectedID == this.model.get("id")) {
             return { value: this.model.get("id"), selected: 1 };
         } else {
@@ -23,6 +20,7 @@ SliceSelectorView = Marionette.CompositeView.extend({
     template: "#xos-sliceselector-select",
     childViewContainer: "select",
     childView: SliceSelectorOption,
+    caption: "Slice",
 
     events: {"change select": "onSliceChanged"},
 
@@ -37,6 +35,8 @@ SliceSelectorView = Marionette.CompositeView.extend({
     sliceChanged: function(id) {
         console.log("sliceChanged " + id);
     },
+
+    templateHelpers: function() { return {caption: this.options.caption || this.caption }; },
 });
 
 FilteredCompositeView = Marionette.CompositeView.extend( {
@@ -83,8 +83,13 @@ XOSRouter = Marionette.AppRouter.extend({
             Marionette.AppRouter.prototype.navigate.call(this, href, options);
         },
     });\r
-
-Backbone.Syphon.InputReaders.register('select', function(el) {
+\r
+// XXX - We import backbone multiple times (BAD!) since the import happens\r
+//   inside of the view's html. The second time it's imported (developer\r
+//   view), it wipes out Backbone.Syphon. So, save it as Backbone_Syphon for\r
+//   now.\r
+Backbone_Syphon = Backbone.Syphon\r
+Backbone_Syphon.InputReaders.register('select', function(el) {\r
     // Modify syphon so that if a select has "syphonall" in the class, then
     // the value of every option will be returned, regardless of whether of
     // not it is selected.
@@ -403,6 +408,8 @@ XOSApplication = Marionette.Application.extend({
             that.destroyModel(model);
             if (afterDelete=="list") {
                 that.navigate("list", modelName);
+            } else if (afterDelete) {
+                afterDelete();
             }
         });
     },
@@ -499,6 +506,9 @@ XOSDetailView = Marionette.ItemView.extend({
             submitLeaveClicked: function(e) {
                 console.log("saveLeave");
                 e.preventDefault();
+                if (this.options.noSubmitButton || this.noSubmitButton) {
+                    return;
+                }
                 var that=this;
                 this.afterSave = function() {
                     that.app.navigate("list", that.model.modelName);
@@ -520,7 +530,7 @@ XOSDetailView = Marionette.ItemView.extend({
 
             save: function() {
                 this.app.hideError();
-                var data = Backbone.Syphon.serialize(this);
+                var data = Backbone_Syphon.serialize(this);
                 var that = this;
                 var isNew = !this.model.id;
 
@@ -648,6 +658,7 @@ XOSDetailView = Marionette.ItemView.extend({
                                                     addFields: this.model.addFields,
                                                     listFields: this.model.listFields,
                                                     detailFields: this.options.detailFields || this.detailFields || this.model.detailFields,
+                                                    fieldDisplayNames: this.options.fieldDisplayNames || this.fieldDisplayNames || this.model.fieldDisplayNames || {},
                                                     foreignFields: this.model.foreignFields,
                                                     detailLinkFields: this.model.detailLinkFields,
                                                     inputType: this.model.inputType,
@@ -881,7 +892,7 @@ XOSDataTableView = Marionette.View.extend( {
                 var foreignCollection = view.collection.foreignFields[fieldName];
                 mSearchText = function(x) { return idToName(x, foreignCollection, "humanReadableName"); };
             } else if (inputType[fieldName] == "spinner") {
-                mRender = function(x,y,z) { return xosDataTableSpinnerTemplate( {value: x, collectionName: view.collection.collectionName, fieldName: fieldName, id: z.id} ); };
+                mRender = function(x,y,z) { return xosDataTableSpinnerTemplate( {value: x, collectionName: view.collection.collectionName, fieldName: fieldName, id: z.id, app: view.app} ); };
             }
             if ($.inArray(fieldName, view.collection.detailLinkFields)>=0) {
                 var collectionName = view.collection.collectionName;