summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--acf/error.lua2
-rw-r--r--acf/persistence/backends/json.lua2
-rwxr-xr-xinstall-deps.sh2
-rw-r--r--server.lua2
-rw-r--r--web/client.js12
5 files changed, 13 insertions, 7 deletions
diff --git a/acf/error.lua b/acf/error.lua
index c2d3bb2..c3a8d63 100644
--- a/acf/error.lua
+++ b/acf/error.lua
@@ -10,7 +10,7 @@ local class = object.class
local util = require('acf.util')
-local json = require('json')
+local json = require('cjson')
local ErrorTable = class()
diff --git a/acf/persistence/backends/json.lua b/acf/persistence/backends/json.lua
index b4e5fbf..e0cd66e 100644
--- a/acf/persistence/backends/json.lua
+++ b/acf/persistence/backends/json.lua
@@ -8,7 +8,7 @@ local Cache = require('acf.persistence.backends.volatile')
local util = require('acf.persistence.util')
local copy = require('acf.util').copy
-local json = require('json')
+local json = require('cjson')
local posix = require('posix')
diff --git a/install-deps.sh b/install-deps.sh
index b624503..1e52aa5 100755
--- a/install-deps.sh
+++ b/install-deps.sh
@@ -3,7 +3,7 @@
# Copyright (c) 2012-2013 Kaarle Ritvanen
# See LICENSE file for license details
-PACKAGES="lua5.2-augeas lua5.2-crypto lua5.2-json4 lua5.2-posix lua5.2-stringy
+PACKAGES="lua5.2-augeas lua5.2-crypto lua5.2-cjson lua5.2-posix lua5.2-stringy
uwsgi uwsgi-lua"
[ "$1" = -d ] && PACKAGES="$PACKAGES bash curl"
diff --git a/server.lua b/server.lua
index 83b8969..85688e0 100644
--- a/server.lua
+++ b/server.lua
@@ -7,7 +7,7 @@ local acf = require('acf')
local mnode = acf.model.node
local isinstance = acf.object.isinstance
-local json = require('json')
+local json = require('cjson')
local stringy = require('stringy')
diff --git a/web/client.js b/web/client.js
index da995d2..d364a8d 100644
--- a/web/client.js
+++ b/web/client.js
@@ -73,10 +73,13 @@ $(function() {
return true;
}
+ function isList(meta) {
+ return _.contains(["list", "set"], meta.type);
+ }
+
function isTreeNode(meta) {
- return _.contains(
- ["collection", "list", "model", "set"], meta.type
- );
+ return isList(meta) ||
+ _.contains(["collection", "model"], meta.type);
}
@@ -112,6 +115,9 @@ $(function() {
var def = $.Deferred();
objRequest(path).done(function(data) {
+ if (isTreeNode(data.meta) && !_.size(data.data))
+ data.data = isList(data.meta) ? [] : {};
+
function index(name) {
return _.isArray(data.data) ? name - 1 : name;
}