diff options
author | deva <deva> | 2011-07-01 11:54:26 +0000 |
---|---|---|
committer | deva <deva> | 2011-07-01 11:54:26 +0000 |
commit | 23f39df8b8edeacfa5821050abbdc855acb2edd6 (patch) | |
tree | e56f7826c361a85a3bac9e0b3206086c81114748 /server/src/transactionhandler.cc | |
parent | 2c53b5ef16626112dfc738420eec3e1963b1a343 (diff) |
removed macrotool.
add lua wrapper for praxisd.
new type attributes_t for sax parser and children.
make macros/templates use real vars instead of var map.
add data ttl on macro level.
add 'important' attribute to macrotags in templates.
Diffstat (limited to 'server/src/transactionhandler.cc')
-rw-r--r-- | server/src/transactionhandler.cc | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/server/src/transactionhandler.cc b/server/src/transactionhandler.cc index bcdd638..4b4e7ca 100644 --- a/server/src/transactionhandler.cc +++ b/server/src/transactionhandler.cc @@ -107,11 +107,8 @@ static std::string handleRequest(Transaction &transaction, Environment &env, Template *templ = tp.getTemplate(); - answer += " <template name=\""; - answer += templ->attributes["name"]; - answer += "\" title=\""; - answer += templ->attributes["title"]; - answer += "\">\n"; + answer += " <template name=\"" + templ->name + "\" title=\"" + + templ->title + "\">\n"; bool foundmacro = false; @@ -121,37 +118,42 @@ static std::string handleRequest(Transaction &transaction, Environment &env, Macro ¯o = (*mi2); if(macro.isHeader) { - answer += " <header caption=\"" + macro.attributes["caption"] + - "\"/>\n"; + answer += " <header caption=\"" + macro.caption + "\"/>\n"; mi2++; continue; } - bool completed = db->checkMacro(transaction.cpr, - macro.attributes["name"], - session.id(), - time(NULL)-Conf::db_max_ttl); + size_t oldest = time(NULL) - Conf::db_max_ttl; + if(macro.ttl != "") oldest = time(NULL) - atoi(macro.ttl.c_str()); + + bool completed = + db->checkMacro(transaction.cpr, macro.name, session.id(), oldest); answer += " <macro uid=\"42\" completed="; if(completed) answer += "\"true\""; else answer += "\"false\""; - std::map< std::string, std::string >::iterator ai = - macro.attributes.begin(); - while(ai != macro.attributes.end()) { + attributes_t attr; + attr["name"] = macro.name; + attr["version"] = macro.version; + if(macro.caption != "") attr["caption"] = macro.caption; + if(macro.requires != "") attr["requires"] = macro.requires; + attr["static"] = macro.isStatic?"true":"false"; + attr["compact"] = macro.isCompact?"true":"false"; + attr["important"] = macro.isImportant?"true":"false"; + + attributes_t::iterator ai = attr.begin(); + while(ai != attr.end()) { std::string name = ai->first; std::string value = ai->second; answer += " "+name+"=\"" + value + "\""; ai++; } - if(macro.attributes["name"] == request.macro || - (macro.attributes.find("static") != macro.attributes.end() && - macro.attributes["static"] == "true") - ) { + if(macro.name == request.macro || macro.isStatic) { foundmacro = true; - MacroParser mp(env.macrolist.getLatestVersion(macro.attributes["name"])); + MacroParser mp(env.macrolist.getLatestVersion(macro.name)); mp.parse(); Macro *m = mp.getMacro(); answer += " caption=\"" + m->widgets.attributes["caption"] + "\""; @@ -225,11 +227,11 @@ static std::string handleRequest(Transaction &transaction, Environment &env, answer += " </scripts>\n"; } - answer += widgetgenerator(transaction.cpr, session.id(), - *m, lqm, *db); + answer += widgetgenerator(transaction.cpr, session.id(), *m, lqm, + *db, oldest); } else { // only find macro title - MacroParser mp(env.macrolist.getLatestVersion(macro.attributes["name"])); + MacroParser mp(env.macrolist.getLatestVersion(macro.name)); mp.parse(); Macro *m = mp.getMacro(); answer += " caption=\"" + m->widgets.attributes["caption"] + "\""; @@ -238,15 +240,12 @@ static std::string handleRequest(Transaction &transaction, Environment &env, } if(completed) { - std::string jresume = - session.journal()->getEntry(macro.attributes["name"]); + std::string jresume = session.journal()->getEntry(macro.name); std::string state = "old"; - std::string resume = db->getResume(transaction.cpr, - macro, - time(NULL) - Conf::db_max_ttl, + std::string resume = db->getResume(transaction.cpr, macro, oldest, session.id()); - if(session.journal()->dirty(macro.attributes["name"])) { + if(session.journal()->dirty(macro.name)) { state = "dirty"; } else { if(resume == jresume) { @@ -254,7 +253,7 @@ static std::string handleRequest(Transaction &transaction, Environment &env, } else { if(jresume != "") { state = "dirty"; - session.journal()->setDirty(macro.attributes["name"]); + session.journal()->setDirty(macro.name); } else { state = "old"; } |