templateize detail inline button panel, add save/continue and save/another buttons...
authorScott Baker <smbaker@gmail.com>
Fri, 7 Nov 2014 21:01:43 +0000 (13:01 -0800)
committerScott Baker <smbaker@gmail.com>
Fri, 7 Nov 2014 21:01:43 +0000 (13:01 -0800)
planetstack/core/xoslib/dashboards/xosAdminDashboard.html
planetstack/core/xoslib/static/js/xoslib/xosHelper.js
planetstack/core/xoslib/templates/xosAdmin.html

index b3dca1a..f70f188 100644 (file)
      handler for this Save button tells the save button inside the detail
      form to click itself.
 -->
-<button class="btn js-submit btn-xos-contentButtonPanel" onclick="$('button.js-submit.btn-xos-detail').click()">Save</button>
+<div class="box save-box" id="xos-detail-button-box">
+<button class="btn btn-high btn-info btn-xos-contentButtonPanel" onclick="$('button.btn-xos-save-leave').click()">Save</button>
+<button class="btn btn-high btn-xos-contentButtonPanel" onclick="$('button.btn-xos-save-continue').click()">Save and continue editing</button>
+<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>
+</div>
+</div> <!-- end contentButtonPanel -->
 <div id="contentInner">
 <div id="tabs">
 </div>
@@ -30,8 +37,8 @@
 <div id="linkedObjs2"></div>
 <div id="linkedObjs3"></div>
 <div id="linkedObjs4"></div>
-</div>
-</div>
+</div> <!-- end contentInner -->
+</div> <!-- end contentPanel -->
 
 <div id="logPanel">
 <table id="logTable">
index 1dc3bf5..4a408e1 100644 (file)
@@ -113,7 +113,9 @@ XOSApplication = Marionette.Application.extend({
             app.hideLinkedItems();\r
             $("#contentTitle").html(templateFromId("#xos-title-list")({"title": title}));\r
             $("#detail").show();\r
+            $("#xos-listview-button-box").show();\r
             $("#tabs").hide();\r
+            $("#xos-detail-button-box").hide();\r
         }\r
     },\r
 \r
@@ -125,6 +127,8 @@ XOSApplication = Marionette.Application.extend({
                 detailView = new detailViewClass({model: model});\r
                 app[regionName].show(detailView);\r
                 detailView.showLinkedItems();\r
+                $("#xos-detail-button-box").show();\r
+                $("#xos-listview-button-box").hide();\r
             }\r
 \r
             $("#contentTitle").html(templateFromId("#xos-title-detail")({"title": title}));\r
@@ -167,7 +171,9 @@ XOSApplication = Marionette.Application.extend({
 XOSDetailView = Marionette.ItemView.extend({
             tagName: "div",
 
-            events: {"click button.js-submit": "submitClicked",
+            events: {"click button.btn-xos-save-continue": "submitContinueClicked",
+                     "click button.btn-xos-save-leave": "submitLeaveClicked",
+                     "click button.btn-xos-save-another": "submitAddAnotherClicked",
                      "change input": "inputChanged"},
 
             /* inputChanged is watching the onChange events of the input controls. We
@@ -192,10 +198,26 @@ XOSDetailView = Marionette.ItemView.extend({
                 this.app.showSuccess(result);\r
             },
 
-            submitClicked: function(e) {
-                console.log("submit clicked");
-                this.app.hideError();\r
-                e.preventDefault();\r
+            submitContinueClicked: function(e) {
+                console.log("saveContinue");
+                e.preventDefault();
+                this.save();
+            },
+
+            submitLeaveClicked: function(e) {
+                console.log("saveLeave");
+                e.preventDefault();
+                this.save();
+            },
+
+            submitAddAnotherClicked: function(e) {
+                console.log("saveAnother");
+                e.preventDefault();
+                this.save();
+            },
+
+            save: function() {
+                this.app.hideError();
                 var infoMsgId = this.app.showInformational( {what: "save " + this.model.__proto__.modelName, status: "", statusText: "in progress..."} );\r
                 var data = Backbone.Syphon.serialize(this);\r
                 var that = this;\r
index 8e79904..94fb0f8 100644 (file)
@@ -51,7 +51,6 @@
   <h3><%= title %></h3>
 </script>
 
-
 <script type="text/template" id="xos-navbutton">
   <li>
       <a href="<%= routeUrl %>">
   </li>
 </script>
 
+<script type="text/template" id="xos-inline-detail-buttons-template">
+    <tr>
+       <td colspan=2><button class="btn js-submit btn-xos-detail btn-xos-save-leave">Save</button>
+           <button class="btn js-submit btn-xos-detail btn-xos-save-continue">Save and Continue Editing</button>
+           <button class="btn js-submit btn-xos-detail btn-xos-save-another">Save and Add Another</button>
+       </td>
+    </tr>
+</script>
+
 <!-- Deployment -->
 
 <script type="text/template" id="xosAdmin-deployment-list-template">
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
   <tr><td>Backend:</td><td><input type="text" name="backend_type" value="<%= backend_type %>"></td></tr>\r
   <tr><td>Admin Tenant:</td><td><input type="text" name="admin_tenant" value="<%= admin_tenant %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>\r
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
   <tr><td>Disk Format:</td><td><input type="text" name="backend_type" value="<%= disk_format %>"></td></tr>\r
   <tr><td>Container Format:</td><td><input type="text" name="admin_tenant" value="<%= container_format %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Translation:</td><td><input type="text" name="translation" value="<%= translation %>"></td></tr>\r
   <tr><td>Shared Network Name:</td><td><input type="text" name="sharedNetworkName" value="<%= sharedNetworkName %>"></td></tr>\r
   <tr><td>Shared Network Id:</td><td><input type="text" name="sharedNetworkId" value="<%= sharedNetworkId %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Ports:</td><td><input type="text" name="ports" value="<%= ports %>"></td></tr>\r
   <tr><td>Labels:</td><td><input type="text" name="labels" value="<%= labels %>"></td></tr>\r
   <tr><td>Owner:</td><td><%= idToSelect("owner",owner,"slices","name") %></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Sliver:</td><td><input type="text" name="sliver" value="<%= sliver %>"></td></tr>\r
   <tr><td>Ip:</td><td><input type="text" name="ip" value="<%= ip %>"></td></tr>\r
   <tr><td>Port_id:</td><td><input type="text" name="port_id" value="<%= port_id %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Network:</td><td><input type="text" name="network" value="<%= network %>"></td></tr>\r
   <tr><td>Sliver:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>\r
   <tr><td>Ip:</td><td><input type="text" name="net_id" value="<%= net_id %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
   <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr>\r
   <tr><td>Deployment:</td><td><%= idToSelect("deployment",deployment,"deployments","name") %></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <form>\r
   <table>\r
   <tr><td>Role:</td><td><input type="text" name="role" value="<%= role %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
   <tr><td>description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr>\r
   <tr><td>Version Number:</td><td><input type="text" name="versionNumber" value="<%= versionNumber %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Enabled:</td><td><input type="checkbox" name="enabled" <% if (enabled) print("checked"); %>></td></tr>\r
   <tr><td>Is Public:</td><td><input type="checkbox" name="is_public" <% if (is_public) print("checked"); %>></td></tr>\r
   <tr><td>login_base:</td><td><input type="text" name="login_base" value="<%= login_base %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr>\r
   <tr><td>Url:</td><td><input type="text" name="slice_url" value="<%= slice_url %>"></td></tr>\r
   <tr><td>Max Slivers:</td><td><input type="text" name="max_slivers" value="<%= max_slivers %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr>\r
   <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>\r
   <tr><td>Tenant Id:</td><td><input type="text" name="tenant_id" value="<%= tenant_id %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>User:</td><td><input type="text" name="user" value="<%= user %>"></td></tr>\r
   <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr>\r
   <tr><td>Role:</td><td><input type="text" name="role" value="<%= role %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Creator:</td><td><%= idToSelect("creator",creator,"users","username") %></td></tr>\r
   <tr><td>Slice:</td><td><%= idToSelect("slice",slice,"slices","name") %></td></tr>\r
   <tr><td>Deployment:</td><td><%= idToSelect("deploymentNetwork",deploymentNetwork,"deployments","name") %></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   <tr><td>Phone:</td><td><input type="text" name="phone" value="<%= phone %>"></td></tr>\r
   <tr><td>Url:</td><td><input type="text" name="user_url" value="<%= user_url %>"></td></tr>\r
   <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
   </table>
 </script>
 
-
 <script type="text/template" id="xosAdmin-userDeployment-listitem-template">
   <td class="objectLink"><%= id %></td>
   <td><%= idToName(user,"users","username") %></td>
   <tr><td>User:</td><td><input type="text" name="user" value="<%= user %>"></td></tr>\r
   <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr>\r
   <tr><td>kuser_id:</td><td><input type="text" name="kuser_id" value="<%= kuser_id %>"></td></tr>\r
-  <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr>\r
+  <%= xosInlineDetailButtonsTemplate() %>\r
   </table>\r
   </form>\r
 </script>
+
+<script>
+xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html());
+</script>