diff options
Diffstat (limited to 'themes/okadmin/public')
| -rw-r--r-- | themes/okadmin/public/js/okcms.js | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/themes/okadmin/public/js/okcms.js b/themes/okadmin/public/js/okcms.js index 69a8f86..c53092f 100644 --- a/themes/okadmin/public/js/okcms.js +++ b/themes/okadmin/public/js/okcms.js @@ -28,15 +28,17 @@ var OKCMS = (function(){ // data.resources[types].data[] // data.resources[types].data[0][groupBy][group] var resources = this.resources = {} - this.types = Object.keys(data.resources) - this.types.forEach(function(type){ + var plural_types = Object.keys(data.resources) + var types = this.types = [] + plural_types.forEach(function(type){ var resource = data.resources[type] resources[resource.type] = resource resource.lookup = {} + resource.index = [] + types.push( resource.type ) if (resource.groupBy) { var group_lookup = resource.data[0][resource.groupBy] var groups = Object.keys(group_lookup) - resource.index = [] groups.forEach(function(group){ var list = group_lookup[group] list.forEach(function(record){ @@ -48,6 +50,7 @@ var OKCMS = (function(){ else { resource.data.forEach(function(record){ resource.lookup[record.id] = record + resource.index.push(record) }) } }) @@ -79,13 +82,13 @@ var OKCMS = (function(){ } OKCMS.prototype.get = function(type, id){ var resource = this.getResource(type) - if (id in resource.index) { - return resource.index[id] + if (id in resource.lookup) { + return resource.lookup[id] } throw new Error ("Key not found: " + type + ":" + id) } OKCMS.prototype.new = function(type){ - var resource = this.resource(type) + var resource = this.getResource(type) var spec = this.spec(type) var record = {} Object.keys(spec).forEach(function(key){ @@ -170,8 +173,9 @@ var OKCMS = (function(){ data.id = slugify( data.title ) } $.ajax({ - url: [ "", adminRoot, type ].join("/"), + url: [ "", adminRoot, type, "" ].join("/"), type: "POST", + data: data, success: function(){ cb && cb() } @@ -180,20 +184,24 @@ var OKCMS = (function(){ OKCMS.prototype.update = function(type, data, cb){ var resource = this.getResource(type) var id = data.id - + console.log(id, [ "", adminRoot, type, id ].join("/") ) // /admin/:type/:id/ $.ajax({ - url: [ "", adminRoot, type, id ].join("/"), + url: [ "", adminRoot, type, id, "" ].join("/"), type: "PUT", data: data, success: function(){ + console.log(" OK" ) cb && cb() } }) } OKCMS.prototype.destroy = function(type, id, cb){ + if (typeof id == "object") { + id = id.id + } $.ajax({ - url: [ "", adminRoot, type, id ].join("/"), + url: [ "", adminRoot, type, id, "" ].join("/"), type: "DELETE", success: function(){ cb && cb() |
