summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-06 13:12:50 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-12 12:38:31 +0200
commit8857a1753ba94c490211b06531995b6ad88506a6 (patch)
tree1c33a4122f6d7a2652f5e3d35bd0a3a6f32a2d9e
parent8991a77656de2e904087832df646e5dfd20b05a4 (diff)
downloadaconf-8857a1753ba94c490211b06531995b6ad88506a6.tar.bz2
aconf-8857a1753ba94c490211b06531995b6ad88506a6.tar.xz
web client: type module
-rw-r--r--web/client.js36
-rw-r--r--web/type.js22
2 files changed, 34 insertions, 24 deletions
diff --git a/web/client.js b/web/client.js
index 7aacb1b..81ef869 100644
--- a/web/client.js
+++ b/web/client.js
@@ -21,13 +21,14 @@ require(
[
"acf2/path",
"acf2/statusbar",
+ "acf2/type",
"jquery",
"underscore",
"jquery-bbq",
"jquery-blockui",
"jquery-ui/sortable"
],
- function(pth, statusBar, $, _) {
+ function(pth, statusBar, type, $, _) {
$("#login").submit(function() {
$.ajax("/login", {
@@ -36,19 +37,6 @@ require(
username: $("#username").val(), password: $("#password").val()
})
}).done(function(data, status, xhr) {
-
- function isList(meta) {
- return _.contains(["list", "set"], meta.type);
- }
-
- function isCollection(meta) {
- return meta.type == "collection" || isList(meta);
- }
-
- function isTreeNode(meta) {
- return meta.type == "model" || isCollection(meta);
- }
-
var txnMgr = (function(token, saveRequired) {
var txn, changed, invalid;
@@ -106,8 +94,8 @@ require(
var def = $.Deferred();
objRequest(path).done(function(data) {
- if (isTreeNode(data.meta) && !_.size(data.data))
- data.data = isList(data.meta) ? [] : {};
+ if (type.isTreeNode(data.meta) && !_.size(data.data))
+ data.data = type.isList(data.meta) ? [] : {};
function index(name) {
return _.isArray(data.data) ? name - 1 : name;
@@ -277,7 +265,7 @@ require(
field.condition
) &&
!(mmpath in invalid) &&
- (isCollection(
+ (type.isCollection(
field
) || data.get(
field.name
@@ -290,7 +278,7 @@ require(
}
});
- else if (isCollection(data.meta) &&
+ else if (type.isCollection(data.meta) &&
data.meta.required)
invalid[mpath] = [mpath];
}
@@ -352,7 +340,7 @@ require(
var length = data.data.length;
data.set(name, null).done(function(txnValid) {
- if (isTreeNode(data.meta) &&
+ if (type.isTreeNode(data.meta) &&
data.meta.type != "set") {
delete changed[pth.join(path, name)];
@@ -390,7 +378,7 @@ require(
objRequest(path, {type: "POST", data: {
index: newIndex,
- data: isTreeNode(data.meta.members) ?
+ data: type.isTreeNode(data.meta.members) ?
pth.join(path, oldIndex) : value
}}).done(function() {
@@ -1045,7 +1033,7 @@ require(
data.set(
name,
- isTreeNode(meta.members) ? {} : null
+ type.isTreeNode(meta.members) ? {} : null
).done(function(txnValid) {
if (_.isObject(meta.removable))
meta.removable = [];
@@ -1264,7 +1252,7 @@ require(
},
widget: function(meta) {
- if (!isTreeNode(meta))
+ if (!type.isTreeNode(meta))
return this.super(Tabular, "widget", meta);
if (!this.header) return Horizontal;
this.header = false;
@@ -1275,7 +1263,7 @@ require(
var Stacked = Vertical.extend({
widget: function(meta) {
- return isTreeNode(meta) ?
+ return type.isTreeNode(meta) ?
Vertical : this.super(Stacked, "widget", meta);
}
});
@@ -1345,7 +1333,7 @@ require(
_.each(data.meta.fields, function(field) {
if (!field.visible) return;
- if (!isTreeNode(field)) extraFields = true;
+ if (!type.isTreeNode(field)) extraFields = true;
else if (data.data[field.name])
tnFields.push(field);
});
diff --git a/web/type.js b/web/type.js
new file mode 100644
index 0000000..c597c0a
--- /dev/null
+++ b/web/type.js
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2012-2014 Kaarle Ritvanen
+ * See LICENSE file for license details
+ */
+
+define(["underscore"], function(_) {
+ function isList(meta) {
+ return _.contains(["list", "set"], meta.type);
+ }
+
+ function isCollection(meta) {
+ return meta.type == "collection" || isList(meta);
+ }
+
+ return {
+ isList: isList,
+ isCollection: isCollection,
+ isTreeNode: function(meta) {
+ return meta.type == "model" || isCollection(meta);
+ }
+ };
+});