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

app: fixed setting info fields on dyno-updates

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