Commit 485c0655 authored by Sven Franck's avatar Sven Franck

app: pagination works (again)

parent ff92ee42
......@@ -1941,6 +1941,8 @@
"logic": {
"id": spec.id || null,
"data-update": spec.dynamic ? true : null,
// NOTE: on updates, we need wrapper with generator...
"data-widget": "listview",
"data-reference": spec.reference || null,
"data-filter": spec.filter || null,
"data-input": spec.input || null,
......@@ -2276,8 +2278,8 @@
});
// header
for (i = 0; i < spec.schemes.length; i += 1) {
section = spec.schemes[i];
for (i = 0; i < spec.scheme.length; i += 1) {
section = spec.scheme[i];
switch (section.position) {
case "header":
tag = factory.element({"type": "thead"});
......@@ -2292,7 +2294,10 @@
case "body":
container.appendChild(factory.element({
"type": "tbody",
"attributes": {"data-update": "true"}
"attributes": {
"data-update": "true",
"data-widget": "table"
}
}));
break;
}
......@@ -3340,7 +3345,7 @@
new_item.external = quirk_dict.external;
}
// loop schemes
// loop scheme
for (j = 0; j < item.scheme.length; j += 1) {
segment = item.scheme[j];
row = [];
......@@ -3536,7 +3541,7 @@
section_list = [];
// Need mapping, fill helper with sections filled with (mapped) fields
// loop schemes
// loop scheme
for (j = 0; j < item.scheme.length; j += 1) {
segment = item.scheme[j];
field_list = [];
......@@ -4762,7 +4767,6 @@
}
if ((start > total && total !== undefined) || start < 0) {
console.log("DONE")
return;
}
......@@ -4773,13 +4777,18 @@
if (config.state.selected) {
config.state.selected = [];
}
console.log("fertig")
console.log("let's set content")
console.log(config)
// update gadget
app.content.set(
{
"portal_type_source": config.state.type
"portal_type_source": config.state.type,
"portal_type_title": config.state.title,
"property_dict": util.mergeObject({
"dynamic": true,
"map_children": "listItem"
},
config.state.dyno_dict),
"scheme": config.state.scheme
},
{
"reference": config.id,
......@@ -5007,6 +5016,7 @@
"id": id,
"gadget": document.getElementById(id)
};
has_form = response.gadget.getElementsByTagName("form");
return util.mergeObject(
{
......@@ -5301,6 +5311,25 @@
*/
util = {};
/**
* Inherit objects to an array of items
* @inherit
* @param {array} kids Array of elements to inherit objects
* @param {object} Objects to inherit
* @return {array} kids
**/
util.inherit = function (kids, property_dict) {
var i, kids_len, obj;
for (i = 0, kids_len = kids.length; i < kids_len; i += 1) {
for (obj in property_dict) {
if (property_dict.hasOwnProperty(obj)) {
kids[i][obj] = property_dict[obj];
}
}
}
return kids;
};
/**
* Crop a string (data field)
......@@ -5853,8 +5882,8 @@
// TODO: no docById, get element from state itself!
// TODO: find better way to determine "value"
app.content.total = function (reply) {
var pass = reply.pass, last;
console.log("total=?")
var dict, lib, pass = reply.pass, last;
if (!pass.skip) {
//pass.data_dict.field_dict = util.parse(reply.response);
......@@ -5866,34 +5895,39 @@
// create state object
} else {
dict = pass.config_dict;
lib = pass.url_dict;
pass.state = {
"type": pass.config_dict.portal_type_source,
"fragment_list": pass.url_dict.fragment_list,
"layout_level": pass.url_dict.layout_level,
"href": pass.url_dict.href,
"mode": pass.url_dict.mode,
"view": pass.config_dict.view,
"dyno_dict": dict.property_dict,
"scheme": dict.scheme,
"type": dict.portal_type_source,
"title": dict.portal_type_title,
"fragment_list": lib.fragment_list,
"layout_level": lib.layout_level,
"href": lib.href,
"mode": lib.mode,
"view": dict.view,
// HACK so it's available on storage ops
"url_pointer": pass.config_dict.property_dict.url_pointer
"url_pointer": dict.property_dict.url_pointer
};
// TODO: determine value to query based on URL (this stinks...)
if (pass.url_dict.layout_level > 0) {
last = pass.url_dict.fragment_list.slice(-1)[0];
if (lib.layout_level > 0) {
last = lib.fragment_list.slice(-1)[0];
if (!pass.url_dict.mode || last !== pass.url_dict.mode) {
if (!lib.mode || last !== lib.mode) {
pass.data_dict.value =
pass.url_dict.fragment_list[pass.url_dict.layout_level];
lib.fragment_list[lib.layout_level];
}
}
// generate query object
if (pass.config_dict.initial_query) {
pass.state.initial_query = pass.config_dict.initial_query;
if (dict.initial_query) {
pass.state.initial_query = dict.initial_query;
pass.state.query = storage.parseQuery(
pass.config_dict.initial_query,
pass.config_dict.portal_type_source,
pass.config_dict.property_dict.initial_query_url_identifier,
dict.initial_query,
dict.portal_type_source,
dict.property_dict.initial_query_url_identifier,
pass.data_dict.value
);
} else {
......@@ -5931,8 +5965,7 @@
**/
app.content.query = function (reply) {
var pass = reply.pass;
console.log("query?")
console.log(pass)
if (!pass.skip) {
// set total rows
......@@ -5996,11 +6029,9 @@
app.content.make = function (reply) {
var pass, method, type, kids, promise_list, route,
search, search_id, kid, is_html, is_dynamic, is_id, i, j, last,
encoded, wrapper, active, selector, update_target, target,
encoded, wrapper, active, selector, update_target, target, widget,
grant_child, quirk_dict, generator, pointer_results, data_total_rows;
console.log("REACHED MAKE")
console.log(reply.pass)
pass = reply.pass;
pass.config_dict = pass.config_dict || {};
type = pass.content_dict.type;
......@@ -6034,7 +6065,7 @@
"layout_level": pass.url_dict.layout_level,
"fragment_list": pass.url_dict.fragment_list,
"data_url": pass.url_dict.data_url,
"schemes": pass.config_dict.scheme,
"scheme": pass.config_dict.scheme,
"field_dict": (pass.data_dict || {}).field_dict,
"skip": pass.skip,
"purge": pass.purge
......@@ -6092,7 +6123,7 @@
kids.push(factory.util.noItems(
quirk_dict.no_show,
wrapper.base,
wrapper.count ? wrapper.count(quirk_dict.schemes[0]) : null
wrapper.count ? wrapper.count(quirk_dict.scheme[0]) : null
));
}
......@@ -6131,9 +6162,7 @@
// add auto pagination bar
if (quirk_dict.pagination) {
kids.push(
factory.util.paginationBar(quirk_dict.pagination)
);
kids.push(factory.util.paginationBar(quirk_dict.pagination));
}
// add caption
......@@ -6171,11 +6200,21 @@
}
break;
}
} else {
widget = pass.state.gadget.querySelector("[data-update]")
.getAttribute("data-widget");
wrapper = util.mergeObject(
factory.widget[widget](wrapper.property_dict),
wrapper
);
// add scheme and field_dict to list
kids = util.inherit(
pointer_results.data.rows,
{"scheme": quirk_dict.scheme, "field_dict": quirk_dict.field_dict}
);
}
}
console.log(pointer_results)
console.log(kids)
// loop over children
if (kids.length) {
......@@ -6213,14 +6252,10 @@
// inherit properties of parent (> dynamic!) and add data to kid
kid.property_dict = util.mergeObject(kid.property_dict, quirk_dict);
kid.children = pointer_results.data.rows.concat(kid.children || []);
// add scheme/fields/id to children of kid (eg listview > list items)
for (j = 0; j < kid.children.length; j += 1) {
grant_child = kid.children[j];
grant_child.scheme = quirk_dict.schemes;
grant_child.field_dict = quirk_dict.field_dict;
}
kid.children = util.inherit(
pointer_results.data.rows.concat(kid.children || []),
{"scheme": quirk_dict.scheme, "field_dict": quirk_dict.field_dict}
);
}
// HACK for setParam in login window
......@@ -6251,9 +6286,8 @@
kid = undefined;
}
// reference
if (quirk_dict.reference) {
if (!!kid.attribute) {
if (!!kid.attributes) {
kid.attributes["data-reference"] = quirk_dict.reference;
} else if (!!kid.property_dict) {
kid.property_dict.reference = quirk_dict.reference;
......@@ -6285,9 +6319,8 @@
return RSVP.all(promise_list)
.then(function (response_list) {
var k, l, target, wrapper_selector, response, content;
console.log("DONE")
console.log(promise_list)
var k, l, done_target, wrapper_selector, response, content,
content_target;
for (k = 0, l = response_list.length; k < l; k += 1) {
response = response_list[k];
......@@ -6432,7 +6465,6 @@
.fail(app.util.error);
};
/* ********************************************************************** */
/* APP UTIL */
/* ********************************************************************** */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment