use html select in detail views
authorScott Baker <smbaker@gmail.com>
Mon, 3 Nov 2014 06:28:59 +0000 (22:28 -0800)
committerScott Baker <smbaker@gmail.com>
Mon, 3 Nov 2014 06:28:59 +0000 (22:28 -0800)
planetstack/core/xoslib/static/js/test.js
planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
planetstack/core/xoslib/templates/xosAdmin.html

index 9d55526..9de80b7 100644 (file)
@@ -48,6 +48,29 @@ idToName = function(id, collectionName, fieldName) {
     }
 };
 
+idToOptions = function(id, collectionName, fieldName) {
+    result=""
+    for (index in xos[collectionName].models) {
+        linkedObject = xos[collectionName].models[index];
+        linkedId = linkedObject["id"];
+        linkedName = linkedObject.attributes[fieldName];
+        if (linkedId == id) {
+            selected = " selected";
+        } else {
+            selected = "";
+        }
+        result = result + '<option value="' + linkedId + '"' + selected + '>' + linkedName + '</option>';
+    }
+    return result;
+};
+
+idToSelect = function(variable, id, collectionName, fieldName) {
+    result = '<select name="' + variable + '">' +
+             idToOptions(id, collectionName, fieldName) +
+             '</select>';
+    return result;
+}
+
 TestApp.on("start", function() {
      var objs = ['deployment', 'image', 'networkTemplate', 'network', 'networkSliver', 'networkDeployment', 'node', 'service', 'site', 'slice', 'sliceDeployment', 'slicePrivilege', 'sliver', 'user', 'sliceRole', 'userDeployment'];
 
index ac16b60..6216396 100644 (file)
@@ -239,6 +239,7 @@ if (! window.XOSLIB_LOADED ) {
 
         this.deployment = XOSModel.extend({ urlRoot: DEPLOYMENT_API });
         this.deploymentCollection = XOSCollection.extend({ urlRoot: DEPLOYMENT_API,
+                                                           relatedCollections: {"slivers": "deployment", "networkDeployments": "deployment", "userDeployments": "deployment"},
                                                            model: this.deployment});
         this.deployments = new this.deploymentCollection();
 
index 26119b8..0ba63ec 100644 (file)
   <form>\r
   <table>\r
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
-  <tr><td>Template:</td><td><input type="text" name="template" value="<%= template %>"></td></tr>\r
+  <tr><td>Template:</td><td><%= idToSelect("template",template,"networkTemplates","name") %></td></tr>\r
   <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><input type="text" name="owner" value="<%= owner %>"></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">Save</button></td></tr>\r
   </table>\r
   </form>\r
   <form>\r
   <table>\r
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
-  <tr><td>Site:</td><td><input type="text" name="site" value="<%= site %>"></td></tr>\r
-  <tr><td>Deployment:</td><td><input type="text" name="deployment" value="<%= deployment %>"></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">Save</button></td></tr>\r
   </table>\r
   </form>\r
   </form>\r
 </script>
 
-<!-- SlicDeployment -->
+<!-- SliceDeployment -->
 
 <script type="text/template" id="xosAdmin-sliceDeployment-list-template">
   <h3><%= title %></h3>
   <tr><td>Name:</td><td><input type="text" name="name" value="<%= name %>"></td></tr>\r
   <tr><td>instance_id:</td><td><input type="text" name="instance_id" value="<%= instance_id %>"></td></tr>\r
   <tr><td>instance_name:</td><td><input type="text" name="instance_name" value="<%= instance_name %>"></td></tr>\r
-  <tr><td>Image:</td><td><input type="text" name="image" value="<%= image %>"></td></tr>\r
-  <tr><td>Creator:</td><td><input type="text" name="creator" value="<%= creator %>"></td></tr>\r
-  <tr><td>Slice:</td><td><input type="text" name="slice" value="<%= slice %>"></td></tr>\r
+  <tr><td>Image:</td><td><%= idToSelect("image",image,"images","name") %></td></tr>\r
+  <tr><td>Creator:</td><td><%= idToSelect("creator",creator,"users","username") %></td></tr>\r
+  <tr><td>Slice:</td><td><%= idToSelect("deploymentNetwork",deploymentNetwork,"deployments","name") %></td></tr>\r
   <tr><td colspan=2><button class="btn js-submit">Save</button></td></tr>\r
   </table>\r
   </form>\r
   <tr><td>Last Name:</td><td><input type="text" name="lastname" value="<%= lastname %>"></td></tr>\r
   <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><input type="text" name="site" value="<%= site %>"></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">Save</button></td></tr>\r
   </table>\r
   </form>\r