all detail templates replaced by generic
[plstackapi.git] / planetstack / core / xoslib / static / js / xosAdminSite.js
index d265630..b9068b5 100644 (file)
@@ -61,21 +61,44 @@ XOSAdminApp.updateNavigationPanel = function() {
 };\r
 \r
 XOSAdminApp.buildViews = function() {\r
+     genericAddChildClass = XOSDetailView.extend({template: "#xos-add-template",\r
+                                                        app: XOSAdminApp});\r
+     XOSAdminApp["genericAddChildView"] = genericAddChildClass;\r
+\r
+     genericDetailClass = XOSDetailView.extend({template: "#xos-detail-template",\r
+                                                           app: XOSAdminApp});\r
+     XOSAdminApp["genericDetailView"] = genericDetailClass;\r
+\r
      for (var index in OBJS) {\r
          name = OBJS[index];
          tr_template = '#xosAdmin-' + name + '-listitem-template';
          table_template = '#xosAdmin-' + name + '-list-template';
          detail_template = '#xosAdmin-' + name + '-detail-template';
+         add_child_template = '#xosAdmin-' + name + '-add-child-template';
          collection_name = name + "s";
          region_name = name + "List";
          detailNavLink = collection_name;
 
-         detailClass = XOSDetailView.extend({
-            template: detail_template,\r
-            app: XOSAdminApp,\r
-         });\r
+         if ($(detail_template).length) {
+             detailClass = XOSDetailView.extend({
+                template: detail_template,\r
+                app: XOSAdminApp,\r
+             });\r
+         } else {\r
+             detailClass = genericDetailClass;\r
+         }\r
          XOSAdminApp[collection_name + "DetailView"] = detailClass;\r
-
+\r
+         if ($(add_child_template).length) {\r
+             addClass = XOSDetailView.extend({
+                template: add_child_template,\r
+                app: XOSAdminApp,\r
+             });\r
+         } else {\r
+             addClass = genericAddChildClass;\r
+         }\r
+         XOSAdminApp[collection_name + "AddChildView"] = addClass;\r
+\r
          itemViewClass = XOSItemView.extend({
              detailClass: detailClass,
              template: tr_template,
@@ -109,6 +132,7 @@ XOSAdminApp.initRouter = function() {
         api_command = "list" + firstCharUpper(collection_name);\r
         listViewName = collection_name + "ListView";\r
         detailViewName = collection_name + "DetailView";\r
+        addChildViewName = collection_name + "AddChildView";\r
 \r
         api[api_command] = XOSAdminApp.createListHandler(listViewName, collection_name, "detail", collection_name);\r
         routes[nav_url] = api_command;\r
@@ -126,7 +150,7 @@ XOSAdminApp.initRouter = function() {
 \r
         nav_url = "addChild" + firstCharUpper(name) + "/:parentModel/:parentField/:parentId";\r
         api_command = "addChild" + firstCharUpper(name);\r
-        api[api_command] = XOSAdminApp.createAddChildHandler(detailViewName, collection_name);\r
+        api[api_command] = XOSAdminApp.createAddChildHandler(addChildViewName, collection_name);\r
         routes[nav_url] = api_command;\r
 \r
         nav_url = "delete" + firstCharUpper(name) + "/:id";\r