add button plumbed through to router
authorScott Baker <smbaker@gmail.com>
Sat, 8 Nov 2014 00:40:30 +0000 (16:40 -0800)
committerScott Baker <smbaker@gmail.com>
Sat, 8 Nov 2014 00:40:30 +0000 (16:40 -0800)
planetstack/core/xoslib/dashboards/xosAdminDashboard.html
planetstack/core/xoslib/static/css/xosAdminDashboard.css
planetstack/core/xoslib/static/js/xosAdminSite.js
planetstack/core/xoslib/static/js/xoslib/xosHelper.js
planetstack/core/xoslib/templates/xosAdmin.html

index f70f188..8b64877 100644 (file)
@@ -26,7 +26,7 @@
 <button class="btn btn-high btn-xos-contentButtonPanel" onclick="$('button.btn-xos-save-another').click()">Save and add another</button>
 </div>
 <div class="box save-box" id="xos-listview-button-box">
-<button class="btn btn-high btn-success btn-xos-contentButtonPanel" onclick="">Add</button>
+<button class="btn btn-high btn-success btn-xos-contentButtonPanel" onclick="$('button.btn-xos-add').click()">Add</button>
 </div>
 </div> <!-- end contentButtonPanel -->
 <div id="contentInner">
index b2d4740..ff54fee 100644 (file)
@@ -6,6 +6,10 @@
     display: none;
 }
 
+.btn-xos-list {
+    display: none;
+}
+
 #logPanel {
     display: none;
 }
index 6fb46a0..99cf851 100644 (file)
@@ -95,7 +95,7 @@ XOSAdminApp.initRouter = function() {
         name = OBJS[index];\r
         collection_name = name + "s";\r
         nav_url = collection_name;\r
-        api_command = "list" + collection_name.charAt(0).toUpperCase() + collection_name.slice(1);\r
+        api_command = "list" + firstCharUpper(collection_name);\r
         listViewName = collection_name + "ListView";\r
         detailViewName = collection_name + "DetailView";\r
 \r
@@ -103,10 +103,15 @@ XOSAdminApp.initRouter = function() {
         routes[nav_url] = api_command;\r
 \r
         nav_url = collection_name + "/:id";\r
-        api_command = "detail" + collection_name.charAt(0).toUpperCase() + collection_name.slice(1);\r
+        api_command = "detail" + firstCharUpper(collection_name);\r
 \r
         api[api_command] = XOSAdminApp.detailShower(detailViewName, collection_name, "detail", name);\r
         routes[nav_url] = api_command;\r
+\r
+        nav_url = "add" + firstCharUpper(name);\r
+        api_command = "add" + firstCharUpper(name);\r
+        api[api_command] = XOSAdminApp.addShower(detailViewName, collection_name, "detail", name);\r
+        routes[nav_url] = api_command;\r
     };\r
 \r
     XOSAdminApp.Router = new router({ appRoutes: routes, controller: api });\r
index 4a408e1..11d97d6 100644 (file)
@@ -8,6 +8,10 @@ function templateFromId(id) {
     return _.template($(id).html());
 }
 
+function firstCharUpper(s) {
+    return s.charAt(0).toUpperCase() + s.slice(1);
+}
+
 HTMLView = Marionette.ItemView.extend({
   render: function() {
       this.$el.append(this.options.html);
@@ -119,6 +123,15 @@ XOSApplication = Marionette.Application.extend({
         }\r
     },\r
 \r
+    addShower: function(detailName, collection_name, regionName, title) {\r
+        var app=this;\r
+        return function() {\r
+            detailViewClass = app[detailName];\r
+            detailView = new detailViewClass();\r
+            app[regionName].show(detailView);\r
+        }\r
+    },\r
+\r
     detailShower: function(detailName, collection_name, regionName, title) {\r
         var app=this;\r
         showModelId = function(model_id) {\r
@@ -322,6 +335,15 @@ XOSItemView = Marionette.ItemView.extend({
 XOSListView = Marionette.CompositeView.extend({
              childViewContainer: 'tbody',\r
 \r
+             events: {"click button.btn-xos-add": "addClicked",\r
+                     },
+
+             addClicked: function(e) {
+                console.log("add");
+                e.preventDefault();
+                this.app.Router.navigate("add" + firstCharUpper(this.collection.modelName));
+             },
+\r
              initialize: function() {\r
                  this.listenTo(this.collection, 'change', this._renderChildren)
 
index 94fb0f8..7eb43d1 100644 (file)
     </tr>
 </script>
 
+<script type="text/template" id="xos-inline-list-buttons-template">
+           <button class="btn js-submit btn-xos-list btn-xos-add">Add</button>
+       </td>
+    </tr>
+</script>
+
 <!-- Deployment -->
 
 <script type="text/template" id="xosAdmin-deployment-list-template">
   <h3 class="xos-list-title"><%= title %></h3>
+  <%= xosInlineListButtonsTemplate() %>
   <table class="test-table">
   <thead><tr>
      <th>id</th>
 
 <script>
 xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html());
+xosInlineListButtonsTemplate = _.template($("#xos-inline-list-buttons-template").html());
 </script>