From c2133435df9c09f975a0356a41b783f0a7ccefa3 Mon Sep 17 00:00:00 2001 From: Kirill Ishanov Date: Sun, 20 Oct 2013 04:32:23 -0700 Subject: [PATCH] Integrated new_ui 'Add Cluster' functionality with back-end Notes: * Mongo's Object('sdfsdf') is not JSON serializable, made str(doc['_id'])) to fix * In my version there is no method .asdict on recordtype, only _asdict --- .../js/controllers/validate_controller.js | 7 ++++--- config-validator-ui-concept/partials/main.html | 15 +++++++++++++-- webui.py | 5 +++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/config-validator-ui-concept/js/controllers/validate_controller.js b/config-validator-ui-concept/js/controllers/validate_controller.js index 3b0d795..ca2e660 100644 --- a/config-validator-ui-concept/js/controllers/validate_controller.js +++ b/config-validator-ui-concept/js/controllers/validate_controller.js @@ -30,9 +30,10 @@ angular.module('rubick.controllers', []). }); $scope.addCluster = function() { - $scope.newCluster.nodesCount = 20; - $scope.newCluster.status = "Available"; - $scope.clusters.push($scope.newCluster); + console.log($scope.newCluster); + $http.post('/clusters', $scope.newCluster).success(function() { + $scope.clusters.push($scope.newCluster); + }); $scope.newCluster = undefined; $('#add-cluster-modal').modal('hide'); } diff --git a/config-validator-ui-concept/partials/main.html b/config-validator-ui-concept/partials/main.html index a901999..2ef5cce 100644 --- a/config-validator-ui-concept/partials/main.html +++ b/config-validator-ui-concept/partials/main.html @@ -47,10 +47,21 @@ +
+ +
+ + + + + +
+
- +
@@ -60,7 +71,7 @@
- +
diff --git a/webui.py b/webui.py index 2bdb021..24c5285 100644 --- a/webui.py +++ b/webui.py @@ -37,7 +37,7 @@ class Cluster(recordtype('Cluster', default=None)): @classmethod def from_doc(klass, doc): - doc['id'] = doc['_id'] + doc['id'] = str(doc['_id']) del doc['_id'] return Cluster(**doc) @@ -90,11 +90,12 @@ def get_clusters(): @app.route('/clusters', methods=['POST']) def add_cluster(): + print request.data form = ClusterForm.from_json(json.loads(request.data)) if form.validate(): cluster = Cluster() form.populate_obj(cluster) - get_db()['clusters'].save(cluster.asdict()) + get_db()['clusters'].save(cluster._asdict()) return '', 201 else: return json.dumps(dict(errors=form.errors)), 422