From dabe536d315dad01153c2726df157daefa204493 Mon Sep 17 00:00:00 2001 From: Jeff Cross Date: Sat, 26 Nov 2011 16:33:51 -0700 Subject: [PATCH] Fixed models to work with new /settings service in dashboard. --- public/dashboard/js/model/app.js | 22 +++++++++---------- public/dashboard/js/model/plugin.js | 6 ++--- public/dashboard/js/router.js | 1 + .../dashboard/js/view/partial/plugin-view.js | 5 ++++- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/public/dashboard/js/model/app.js b/public/dashboard/js/model/app.js index c20cd1b..5fed749 100644 --- a/public/dashboard/js/model/app.js +++ b/public/dashboard/js/model/app.js @@ -4,26 +4,24 @@ window.App = Backbone.Model.extend({ var plugins, _pluginsFromResponse, app = []; plugins = new Plugins(); - + + //Group the plugins into an object like {plugin: [{config: object}} _pluginsFromResponse = _.groupBy(response, function(obj) { return obj.plugin; }); - _.each(_pluginsFromResponse, function (value, key, list){ - if (key !== "undefined") { - var _pluginObjects = new Backbone.Collection(); - _pluginObjects.model = PluginObject; - - _.each(value, function (element, index, list) { - _pluginObjects.add(element); + //Iterate through each plugin + _.each(_pluginsFromResponse, function (objectsArray, pluginName, list){ + + if (pluginName !== "undefined") { + var _pluginObjects = new Backbone.Collection(objectsArray, { + model: PluginObject }); plugins.add({ - //TODO: Add actual ID - _id: 0, - name: key, + name: pluginName, + plugin: pluginName, objects: _pluginObjects - }); } }); diff --git a/public/dashboard/js/model/plugin.js b/public/dashboard/js/model/plugin.js index 2d2317a..03277dc 100644 --- a/public/dashboard/js/model/plugin.js +++ b/public/dashboard/js/model/plugin.js @@ -16,12 +16,11 @@ window.Plugins = Backbone.Collection.extend({ getByPluginName: function (name) { var _plugin; this.each(function (plugin){ - if (plugin.get("name") === name) { + if (plugin.get("plugin") === name) { _plugin = plugin; return; } }); - return _plugin; } }); @@ -34,8 +33,7 @@ objects: [...] window.PluginObject = Backbone.Model.extend({ validate: function (attributes) { - if(typeof attributes._id === "undefined" - || typeof attributes.name === "undefined") { + if(typeof attributes._id === "undefined") { return { error: "error validating object", attributes: attributes }; } } diff --git a/public/dashboard/js/router.js b/public/dashboard/js/router.js index 9abbf32..5afd788 100644 --- a/public/dashboard/js/router.js +++ b/public/dashboard/js/router.js @@ -25,6 +25,7 @@ var Router = Backbone.Router.extend({ plugin: function(name, tabId) { var model = app.get("plugins").getByPluginName(name); + console.log(model); var view = new PluginView({ model: model }); diff --git a/public/dashboard/js/view/partial/plugin-view.js b/public/dashboard/js/view/partial/plugin-view.js index c041e3b..b450b83 100644 --- a/public/dashboard/js/view/partial/plugin-view.js +++ b/public/dashboard/js/view/partial/plugin-view.js @@ -5,11 +5,14 @@ window.PluginView = Backbone.View.extend({ template: 'plugin-detail-template', render: function () { + console.log('render() in PluginView'); var _self = this; $(this.el).empty(); $(this.tabsEl).empty(); this.model.get("objects").each(function(obj){ + console.log('object:'); + console.log(obj); var tabContent = _self.addTab(obj.get("name"), obj.get("_id")); if (obj.get("description")) { @@ -54,7 +57,7 @@ window.PluginView = Backbone.View.extend({ addTab: function (tabName, id) { //Create a new li to add to the tabs nav var _navItem = $("
").attr('id','tab-link-'+id); - $(_navItem).append($('').attr('href','/dashboard/#/plugins/'+this.model.get('name')+'/'+id).html(tabName)); + $(_navItem).append($('').attr('href','/dashboard/#/plugins/'+this.model.get('plugin')+'/'+id).html(tabName)); $(this.tabsEl).append(_navItem); //Create a new container to add to the content area