From: Scott Baker <smbaker@gmail.com> Date: Fri, 7 Nov 2014 21:01:43 +0000 (-0800) Subject: templateize detail inline button panel, add save/continue and save/another buttons... X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=3a820aa6e0ae67f06f163e05595d399e07dfed53;p=plstackapi.git templateize detail inline button panel, add save/continue and save/another buttons, add insert button --- diff --git a/planetstack/core/xoslib/dashboards/xosAdminDashboard.html b/planetstack/core/xoslib/dashboards/xosAdminDashboard.html index b3dca1a..f70f188 100644 --- a/planetstack/core/xoslib/dashboards/xosAdminDashboard.html +++ b/planetstack/core/xoslib/dashboards/xosAdminDashboard.html @@ -20,8 +20,15 @@ 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"> diff --git a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js index 1dc3bf5..4a408e1 100644 --- a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js +++ b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js @@ -113,7 +113,9 @@ XOSApplication = Marionette.Application.extend({ app.hideLinkedItems(); $("#contentTitle").html(templateFromId("#xos-title-list")({"title": title})); $("#detail").show(); + $("#xos-listview-button-box").show(); $("#tabs").hide(); + $("#xos-detail-button-box").hide(); } }, @@ -125,6 +127,8 @@ XOSApplication = Marionette.Application.extend({ detailView = new detailViewClass({model: model}); app[regionName].show(detailView); detailView.showLinkedItems(); + $("#xos-detail-button-box").show(); + $("#xos-listview-button-box").hide(); } $("#contentTitle").html(templateFromId("#xos-title-detail")({"title": title})); @@ -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); }, - submitClicked: function(e) { - console.log("submit clicked"); - this.app.hideError(); - e.preventDefault(); + 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..."} ); var data = Backbone.Syphon.serialize(this); var that = this; diff --git a/planetstack/core/xoslib/templates/xosAdmin.html b/planetstack/core/xoslib/templates/xosAdmin.html index 8e79904..94fb0f8 100644 --- a/planetstack/core/xoslib/templates/xosAdmin.html +++ b/planetstack/core/xoslib/templates/xosAdmin.html @@ -51,7 +51,6 @@ <h3><%= title %></h3> </script> - <script type="text/template" id="xos-navbutton"> <li> <a href="<%= routeUrl %>"> @@ -61,6 +60,15 @@ </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"> @@ -93,7 +101,7 @@ <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr> <tr><td>Backend:</td><td><input type="text" name="backend_type" value="<%= backend_type %>"></td></tr> <tr><td>Admin Tenant:</td><td><input type="text" name="admin_tenant" value="<%= admin_tenant %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -129,7 +137,7 @@ <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr> <tr><td>Disk Format:</td><td><input type="text" name="backend_type" value="<%= disk_format %>"></td></tr> <tr><td>Container Format:</td><td><input type="text" name="admin_tenant" value="<%= container_format %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -173,7 +181,7 @@ <tr><td>Translation:</td><td><input type="text" name="translation" value="<%= translation %>"></td></tr> <tr><td>Shared Network Name:</td><td><input type="text" name="sharedNetworkName" value="<%= sharedNetworkName %>"></td></tr> <tr><td>Shared Network Id:</td><td><input type="text" name="sharedNetworkId" value="<%= sharedNetworkId %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -213,7 +221,7 @@ <tr><td>Ports:</td><td><input type="text" name="ports" value="<%= ports %>"></td></tr> <tr><td>Labels:</td><td><input type="text" name="labels" value="<%= labels %>"></td></tr> <tr><td>Owner:</td><td><%= idToSelect("owner",owner,"slices","name") %></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -250,7 +258,7 @@ <tr><td>Sliver:</td><td><input type="text" name="sliver" value="<%= sliver %>"></td></tr> <tr><td>Ip:</td><td><input type="text" name="ip" value="<%= ip %>"></td></tr> <tr><td>Port_id:</td><td><input type="text" name="port_id" value="<%= port_id %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -284,7 +292,7 @@ <tr><td>Network:</td><td><input type="text" name="network" value="<%= network %>"></td></tr> <tr><td>Sliver:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr> <tr><td>Ip:</td><td><input type="text" name="net_id" value="<%= net_id %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -319,7 +327,7 @@ <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr> <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr> <tr><td>Deployment:</td><td><%= idToSelect("deployment",deployment,"deployments","name") %></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -348,7 +356,7 @@ <form> <table> <tr><td>Role:</td><td><input type="text" name="role" value="<%= role %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -387,7 +395,7 @@ <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr> <tr><td>description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr> <tr><td>Version Number:</td><td><input type="text" name="versionNumber" value="<%= versionNumber %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -430,7 +438,7 @@ <tr><td>Enabled:</td><td><input type="checkbox" name="enabled" <% if (enabled) print("checked"); %>></td></tr> <tr><td>Is Public:</td><td><input type="checkbox" name="is_public" <% if (is_public) print("checked"); %>></td></tr> <tr><td>login_base:</td><td><input type="text" name="login_base" value="<%= login_base %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -476,7 +484,7 @@ <tr><td>Description:</td><td><input type="text" name="description" value="<%= description %>"></td></tr> <tr><td>Url:</td><td><input type="text" name="slice_url" value="<%= slice_url %>"></td></tr> <tr><td>Max Slivers:</td><td><input type="text" name="max_slivers" value="<%= max_slivers %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -510,7 +518,7 @@ <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr> <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr> <tr><td>Tenant Id:</td><td><input type="text" name="tenant_id" value="<%= tenant_id %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -544,7 +552,7 @@ <tr><td>User:</td><td><input type="text" name="user" value="<%= user %>"></td></tr> <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr> <tr><td>Role:</td><td><input type="text" name="role" value="<%= role %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -597,7 +605,7 @@ <tr><td>Creator:</td><td><%= idToSelect("creator",creator,"users","username") %></td></tr> <tr><td>Slice:</td><td><%= idToSelect("slice",slice,"slices","name") %></td></tr> <tr><td>Deployment:</td><td><%= idToSelect("deploymentNetwork",deploymentNetwork,"deployments","name") %></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -641,7 +649,7 @@ <tr><td>Phone:</td><td><input type="text" name="phone" value="<%= phone %>"></td></tr> <tr><td>Url:</td><td><input type="text" name="user_url" value="<%= user_url %>"></td></tr> <tr><td>Site:</td><td><%= idToSelect("site",site,"sites","name") %></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> @@ -661,7 +669,6 @@ </table> </script> - <script type="text/template" id="xosAdmin-userDeployment-listitem-template"> <td class="objectLink"><%= id %></td> <td><%= idToName(user,"users","username") %></td> @@ -676,7 +683,11 @@ <tr><td>User:</td><td><input type="text" name="user" value="<%= user %>"></td></tr> <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></td></tr> <tr><td>kuser_id:</td><td><input type="text" name="kuser_id" value="<%= kuser_id %>"></td></tr> - <tr><td colspan=2><button class="btn js-submit btn-xos-detail">Save</button></td></tr> + <%= xosInlineDetailButtonsTemplate() %> </table> </form> </script> + +<script> +xosInlineDetailButtonsTemplate = _.template($("#xos-inline-detail-buttons-template").html()); +</script>