all list and listitem views now use generic templates
[plstackapi.git] / planetstack / core / xoslib / static / js / xosAdminSite.js
index b9068b5..5274a81 100644 (file)
@@ -24,10 +24,6 @@ XOSAdminApp.addRegions({
     addChildDetail: "#xos-addchild-detail"
 });
 
-XOSAdminApp.navigateToModel = function(app, detailClass, detailNavLink, model) {
-     XOSAdminApp.Router.navigate(detailNavLink + "/" + model.id, {trigger: true});
-};\r
-\r
 XOSAdminApp.navigate = function(what, modelName, modelId) {\r
     collection_name = modelName + "s";\r
     if (what=="list") {\r
@@ -69,6 +65,14 @@ XOSAdminApp.buildViews = function() {
                                                            app: XOSAdminApp});\r
      XOSAdminApp["genericDetailView"] = genericDetailClass;\r
 \r
+     genericItemViewClass = XOSItemView.extend({template: "#xos-listitem-template",\r
+                                                app: XOSAdminApp});\r
+     XOSAdminApp["genericItemView"] = genericItemViewClass;\r
+\r
+     genericListViewClass = XOSListView.extend({template: "#xos-list-template",\r
+                                                app: XOSAdminApp});\r
+     XOSAdminApp["genericListView"] = genericListViewClass;\r
+\r
      for (var index in OBJS) {\r
          name = OBJS[index];
          tr_template = '#xosAdmin-' + name + '-listitem-template';
@@ -77,7 +81,6 @@ XOSAdminApp.buildViews = function() {
          add_child_template = '#xosAdmin-' + name + '-add-child-template';
          collection_name = name + "s";
          region_name = name + "List";
-         detailNavLink = collection_name;
 
          if ($(detail_template).length) {
              detailClass = XOSDetailView.extend({
@@ -99,20 +102,29 @@ XOSAdminApp.buildViews = function() {
          }\r
          XOSAdminApp[collection_name + "AddChildView"] = addClass;\r
 \r
-         itemViewClass = XOSItemView.extend({
-             detailClass: detailClass,
-             template: tr_template,
-             app: XOSAdminApp,
-             detailNavLink: detailNavLink,
-         });
-
-         listViewClass = XOSListView.extend({
-             childView: itemViewClass,
-             template: table_template,
-             collection: xos[collection_name],
-             title: name + "s",
-             app: XOSAdminApp,
-         });
+         if ($(tr_template).length) {\r
+             itemViewClass = XOSItemView.extend({\r
+                 template: tr_template,\r
+                 app: XOSAdminApp,
+             });
+         } else {
+             itemViewClass = genericItemViewClass;
+         }
+
+         if ($(table_template).length) {
+             listViewClass = XOSListView.extend({
+                 childView: itemViewClass,
+                 template: table_template,
+                 collection: xos[collection_name],
+                 title: name + "s",
+                 app: XOSAdminApp,
+             });
+         } else {
+             listViewClass = genericListViewClass.extend( { childView: itemViewClass,
+                                                            collection: xos[collection_name],
+                                                            title: name + "s",
+                                                           } );
+         }
 
          XOSAdminApp[collection_name + "ListView"] = listViewClass;