summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/widgetgenerator.cc50
1 files changed, 42 insertions, 8 deletions
diff --git a/server/src/widgetgenerator.cc b/server/src/widgetgenerator.cc
index 90d2b9e..df1dcfb 100644
--- a/server/src/widgetgenerator.cc
+++ b/server/src/widgetgenerator.cc
@@ -72,10 +72,20 @@ static std::string send_macro_widget(Macro &macro,
std::string prefilled;
time_t timestamp = 0;
-
+ time_t now = time(NULL);
+
result = tabs + "<" + widget.attributes["tagname"];
std::map< std::string, std::string >::iterator p = widget.attributes.begin();
+ PRACRO_DEBUG(prefill, "%s: %s\n",
+ widget.attributes["tagname"].c_str(),
+ widget.attributes["name"].c_str());
+
+ PRACRO_DEBUG(prefill, "0: (%s, %s, %d)\n",
+ prefilled.c_str(),
+ widget.attributes["value"].c_str(),
+ (int)timestamp);
+
// Check if the field has a map, and fill in the value if it has...
if(widget.attributes.find("map") != widget.attributes.end()) {
std::string luamap;
@@ -98,27 +108,51 @@ static std::string send_macro_widget(Macro &macro,
if(luamap != "") {
Value value = mapper.map(luamap);
- if(value.timestamp > time(NULL) - Conf::pentominos_max_ttl) {
+ if(value.timestamp > now - Conf::pentominos_max_ttl) {
widget.attributes["value"] = xml_encode(value.value);
timestamp = value.timestamp;
prefilled = xml_encode(value.source);
}
+
+ PRACRO_DEBUG(prefill, "map: (%s, %d)\n",
+ value.value.c_str(),
+ (int)value.timestamp);
+
}
+
// widget.attributes.erase(widget.attributes.find("map"));
}
+ PRACRO_DEBUG(prefill, "1: (%s, %s, %d)\n",
+ prefilled.c_str(),
+ widget.attributes["value"].c_str(),
+ (int)timestamp);
+
// Check if there is a previously stored value in the db...
- if(values.find(widget.attributes["name"]) != values.end() &&
- (prefilled == "" || values[widget.attributes["name"]].timestamp > timestamp)) {
- if(values[widget.attributes["name"]].timestamp > time(NULL) - Conf::db_max_ttl) {
- widget.attributes["value"] = xml_encode(values[widget.attributes["name"]].value);
- prefilled = "pracro";
+ if(values.find(widget.attributes["name"]) != values.end()) {
+
+ PRACRO_DEBUG(prefill, "db: (%s, %d)\n",
+ values[widget.attributes["name"]].value.c_str(),
+ (int)values[widget.attributes["name"]].timestamp);
+
+ if(prefilled == "" || values[widget.attributes["name"]].timestamp > timestamp) {
+ if(values[widget.attributes["name"]].timestamp > now - Conf::db_max_ttl) {
+ widget.attributes["value"] = xml_encode(values[widget.attributes["name"]].value);
+ timestamp = values[widget.attributes["name"]].timestamp;
+ prefilled = "pracro";
+ }
}
}
+ PRACRO_DEBUG(prefill, "2: (%s, %s, %d)\n",
+ prefilled.c_str(),
+ widget.attributes["value"].c_str(),
+ (int)timestamp);
+
while(p != widget.attributes.end()) {
if(p->first != "tagname" && p->first != "map") {
- if( ! (p->first == "name" && p->second == "") ) result += " " + p->first + "=\"" + p->second + "\"";
+ if( ! (p->first == "name" && p->second == "") )
+ result += " " + p->first + "=\"" + p->second + "\"";
}
p++;
}