Commit 20e300ee authored by Sven Franck's avatar Sven Franck

app: fixed setting info fields on dyno-updates

parent de0aa4e1
...@@ -4672,10 +4672,11 @@ ...@@ -4672,10 +4672,11 @@
*/ */
// TODO: overwrite direction on single state sorting // TODO: overwrite direction on single state sorting
app.sort = function (config, direction, prev, next, single) { app.sort = function (config, direction, prev, next, single) {
var i, in_array, sort_by, delay; var i, in_array, sort_by, delay, state;
// NOTE: if column title is not set, we might be sortling a list! // NOTE: if column title is not set, we might be sortling a list!
sort_by = config.element.getAttribute("data-column-title"); sort_by = config.element.getAttribute("data-column-title");
state = config.state;
if (sort_by) { if (sort_by) {
// sorting button update // sorting button update
...@@ -4694,8 +4695,8 @@ ...@@ -4694,8 +4695,8 @@
util.clearTimer(); util.clearTimer();
// check if we are already sorting by this sort_by value // check if we are already sorting by this sort_by value
for (i = 0; i < config.state.query.sort_on.length; i += 1) { for (i = 0; i < state.query.sort_on.length; i += 1) {
if (config.state.query.sort_on[i][0] === sort_by) { if (state.query.sort_on[i][0] === sort_by) {
in_array = true; in_array = true;
break; break;
} }
...@@ -4707,9 +4708,9 @@ ...@@ -4707,9 +4708,9 @@
case "desc_abc": case "desc_abc":
if (sort_by) { if (sort_by) {
if (in_array === undefined) { if (in_array === undefined) {
config.state.query.sort_on.push([sort_by, "descending"]); state.query.sort_on.push([sort_by, "descending"]);
} else { } else {
config.state.query.sort_on.splice(i, 1) state.query.sort_on.splice(i, 1)
.push([sort_by, "descending"]); .push([sort_by, "descending"]);
} }
} }
...@@ -4718,9 +4719,9 @@ ...@@ -4718,9 +4719,9 @@
case "asc_abc": case "asc_abc":
if (sort_by) { if (sort_by) {
if (in_array === undefined) { if (in_array === undefined) {
config.state.query.sort_on.push([sort_by, "ascending"]); state.query.sort_on.push([sort_by, "ascending"]);
} else { } else {
config.state.query.sort_on.splice(i, 1) state.query.sort_on.splice(i, 1)
.push([sort_by, "ascending"]); .push([sort_by, "ascending"]);
} }
} }
...@@ -4728,7 +4729,7 @@ ...@@ -4728,7 +4729,7 @@
default: default:
// need to remove a column from sorting when set to undefined // need to remove a column from sorting when set to undefined
if (sort_by && in_array) { if (sort_by && in_array) {
config.state.query.sort_on.splice(i, 1); state.query.sort_on.splice(i, 1);
} }
break; break;
} }
...@@ -4739,9 +4740,9 @@ ...@@ -4739,9 +4740,9 @@
{}, {},
{ {
"reference": config.id, "reference": config.id,
"href": config.state.href, "href": state.href,
"fragment_list": config.state.fragment_list, "fragment_list": state.fragment_list,
"layout_level": config.state.layout_level "layout_level": state.layout_level
}, },
false false
) )
...@@ -4851,31 +4852,32 @@ ...@@ -4851,31 +4852,32 @@
* @param {string} value New limit when changing number of records * @param {string} value New limit when changing number of records
*/ */
app.paginate = function (config, type, value) { app.paginate = function (config, type, value) {
var start, records, total; var start, records, total, state;
total = config.state.total; state = config.state;
total = state.total;
if (config.gadget) { if (config.gadget) {
if (config.state) { if (state) {
switch (type) { switch (type) {
case "first": case "first":
start = 0; start = 0;
records = config.state.query.limit[1]; records = state.query.limit[1];
break; break;
case "next": case "next":
start = config.state.query.limit[0] + config.state.query.limit[1]; start = state.query.limit[0] + state.query.limit[1];
records = config.state.query.limit[1]; records = state.query.limit[1];
break; break;
case "prev": case "prev":
start = config.state.query.limit[0] - config.state.query.limit[1]; start = state.query.limit[0] - state.query.limit[1];
records = config.state.query.limit[1]; records = state.query.limit[1];
break; break;
case "last": case "last":
start = total - config.state.query.limit[1]; start = total - state.query.limit[1];
records = config.state.query.limit[1]; records = state.query.limit[1];
break; break;
case "limit": case "limit":
start = config.state.query.limit[0]; start = state.query.limit[0];
records = parseInt(value, null); records = parseInt(value, null);
break; break;
} }
...@@ -4885,28 +4887,28 @@ ...@@ -4885,28 +4887,28 @@
} }
// set new limits // set new limits
config.state.query.limit = [start, records]; state.query.limit = [start, records];
// reset selected // reset selected
if (config.state.selected) { if (state.selected) {
config.state.selected = []; state.selected = [];
} }
// update gadget // update gadget
app.content.set( app.content.set(
{ {
"portal_type_source": config.state.type, "portal_type_source": state.type,
"portal_type_title": config.state.title, "portal_type_title": state.title,
"property_dict": util.mergeObject( "property_dict": util.mergeObject(
{"dynamic": true}, {"dynamic": true},
config.state.dyno_dict), state.dyno_dict),
"scheme": config.state.scheme "scheme": state.scheme
}, },
{ {
"reference": config.id, "reference": config.id,
"href": config.state.href, "href": state.href,
"fragment_list": config.state.fragment_list, "fragment_list": state.fragment_list,
"layout_level": config.state.layout_level "layout_level": state.layout_level
}, },
false false
) )
...@@ -4941,11 +4943,12 @@ ...@@ -4941,11 +4943,12 @@
info = ""; info = "";
no_total = total === undefined && no_total = total === undefined &&
app.storage_dict.property_dict.skip_total_records; app.storage_dict.property_dict.skip_total_records;
generateInfo = function (text, text_i18n) { generateInfo = function (text, text_i18n) {
return factory.element( return factory.element(
"span", "span",
{"className": "translate"}, {"className": "translate"},
{"data-i18n": "global_dict.info_dict." + text_i18n}, {"data-i18n": "global_dict." + text_i18n},
{"text": text} {"text": text}
); );
}; };
...@@ -5037,7 +5040,7 @@ ...@@ -5037,7 +5040,7 @@
} }
// initial fill or update // initial fill or update
if (slot !== undefined) { if (!slot) {
if (info_field.children.length === 0) { if (info_field.children.length === 0) {
first = document.createTextNode(info); first = document.createTextNode(info);
last = generateInfo(text_snippet, i18n_snippet); last = generateInfo(text_snippet, i18n_snippet);
...@@ -6047,13 +6050,13 @@ ...@@ -6047,13 +6050,13 @@
pass.state.query = {}; pass.state.query = {};
} }
} }
// TODO: get ALL RECORDS matching query (and make this if disappear ...) // TODO: get ALL RECORDS matching query (and make this if disappear ...)
if ((!app.storage_dict.property_dict.skip_total_records && if ((!app.storage_dict.property_dict.skip_total_records &&
pass.config_dict.skip_total_records !== true) && pass.config_dict.skip_total_records !== true) &&
((pass.grant || pass.url_dict.mode === "new") && ((pass.grant || pass.url_dict.mode === "new") &&
(pass.state && pass.state.query._id === undefined) && (pass.state && pass.state.query._id === undefined) &&
pass.config_dict.initial_query) (pass.config_dict.initial_query || pass.create === false))
) { ) {
// reset limit from sampling [0,1] and store query // reset limit from sampling [0,1] and store query
pass.state.query.limit = []; pass.state.query.limit = [];
...@@ -6080,7 +6083,6 @@ ...@@ -6080,7 +6083,6 @@
var pass = reply.pass; var pass = reply.pass;
if (!pass.skip) { if (!pass.skip) {
// set total rows // set total rows
if (reply.response) { if (reply.response) {
pass.state.total = util.parse(reply.response).data.total_rows; pass.state.total = util.parse(reply.response).data.total_rows;
...@@ -6539,7 +6541,8 @@ ...@@ -6539,7 +6541,8 @@
app.setInfo( app.setInfo(
pass.create ? wrapper.fragment : selector, pass.create ? wrapper.fragment : selector,
pass.state.query, pass.state.query,
pass.state.total pass.state.total,
pass.state.selected
); );
} }
} }
......
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