diff --git a/ui/index.html b/ui/index.html index 04af0ed3e..97ae0952f 100644 --- a/ui/index.html +++ b/ui/index.html @@ -77,7 +77,7 @@

- {{item.key}} + {{item.keyWithoutParent}}

{{/link-to}} @@ -109,7 +109,7 @@
{{topModel.parentKey}} - {{ input value=newKey.key class="form-control" required=true }} + {{ input value=newKey.Key class="form-control" required=true }}
@@ -139,7 +139,7 @@

- {{item.key}} + {{item.keyWithoutParent}}

{{/link-to}} @@ -160,7 +160,7 @@

- {{model.key}} + {{model.Key}}

diff --git a/ui/javascripts/app/models.js b/ui/javascripts/app/models.js index 5e8521677..d614a23a7 100644 --- a/ui/javascripts/app/models.js +++ b/ui/javascripts/app/models.js @@ -90,20 +90,26 @@ App.Node = Ember.Object.extend({ // App.Key = Ember.Object.extend(Ember.Validations.Mixin, { validations: { - key: { presence: true }, - value: { presence: true } + Key: { presence: true }, + Value: { presence: true } }, - keyValid: Ember.computed.empty('errors.key'), - valueValid: Ember.computed.empty('errors.value'), + keyValid: Ember.computed.empty('errors.Key'), + valueValid: Ember.computed.empty('errors.Value'), + + keyWithoutParent: function() { + return (this.get('Key').replace(this.get('parentKey'), '')); + }.property('Key'), isFolder: function() { - return (this.get('key').slice(-1) == "/") - }.property('key'), + return (this.get('Key').slice(-1) == "/") + }.property('Key'), urlSafeKey: function() { - return this.get('key').replace(/\//g, "-") - }.property('key'), + console.log(this) + + return this.get('Key').replace(/\//g, "-") + }.property('Key'), linkToRoute: function() { var key = this.get('urlSafeKey') @@ -113,16 +119,16 @@ App.Key = Ember.Object.extend(Ember.Validations.Mixin, { } else { return 'kv.edit' } - }.property('key'), + }.property('Key'), keyParts: function() { - var key = this.get('key'); + var key = this.get('Key'); if (key.slice(-1) == "/") { key = key.substring(0, key.length - 1); } return key.split('/'); - }.property('key'), + }.property('Key'), parentKey: function() { var parts = this.get('keyParts').toArray(); @@ -130,7 +136,7 @@ App.Key = Ember.Object.extend(Ember.Validations.Mixin, { parts.pop(); return parts.join("/") + "/"; - }.property('key'), + }.property('Key'), grandParentKey: function() { var parts = this.get('keyParts').toArray(); @@ -139,5 +145,5 @@ App.Key = Ember.Object.extend(Ember.Validations.Mixin, { parts.pop(); return parts.join("/") + "/"; - }.property('key') + }.property('Key') }); diff --git a/ui/javascripts/app/routes.js b/ui/javascripts/app/routes.js index 2c5ed47b3..22dc81482 100644 --- a/ui/javascripts/app/routes.js +++ b/ui/javascripts/app/routes.js @@ -89,13 +89,17 @@ App.KvIndexRoute = App.BaseRoute.extend({ App.KvShowRoute = App.BaseRoute.extend({ model: function(params) { var key = params.key.replace(/-/g, "/") - objs = []; - window.fixtures.keys_full[key].map(function(obj){ - objs.push(App.Key.create({key: obj})); + return Ember.$.getJSON('/v1/kv/' + key + '?keys&seperator=' + '/').then(function(data) { + + objs = []; + + data.map(function(obj){ + objs.push(App.Key.create({Key: obj})); + }); + + return objs; }); - - return objs }, setupController: function(controller, model) { @@ -107,20 +111,45 @@ App.KvShowRoute = App.BaseRoute.extend({ App.KvEditRoute = App.BaseRoute.extend({ model: function(params) { - var key = params.key.replace(/-/g, "/") - return App.Key.create().setProperties(window.fixtures.keys_full[key]); + var object = Ember.Object.create(); + var keyName = params.key.replace(/-/g, "/") + var key = keyName; + var parentKey; + + // Get the parent key + if (key.slice(-1) == "/") { + key = key.substring(0, key.length - 1); + } + parts = key.split('/'); + parts.pop(); + if (parts.length == 0) { + parentKey = "" + } else { + parentKey = parts.join("/") + "/"; + } + + var keyPromise = Ember.$.getJSON('/v1/kv/' + keyName).then(function(data) { + object.set('key', App.Key.create().setProperties(data[0])) + return object; + }); + + var keysPromise = Ember.$.getJSON('/v1/kv/' + parentKey + '?keys&seperator=' + '/').then(function(data) { + objs = []; + data.map(function(obj){ + objs.push(App.Key.create({Key: obj})); + }); + object.set('keys', objs); + return object; + }); + + return keysPromise.then(keyPromise); }, setupController: function(controller, model) { - controller.set('content', model); + controller.set('content', model.get('key')); + controller.set('siblings', model.get('keys')); if (this.modelFor('kv.show') == undefined ) { - var key = model.get('parentKey') - objs = []; - window.fixtures.keys_full[key].map(function(obj){ - objs.push(App.Key.create({key: obj})); - }); - controller.set('siblings', objs); } else { controller.set('siblings', this.modelFor('kv.show')); }