1 #ifndef _ots_ConfigurationGUISupervisor_h_
2 #define _ots_ConfigurationGUISupervisor_h_
4 #include "otsdaq-core/CoreSupervisors/CoreSupervisorBase.h"
5 #include "otsdaq-core/ConfigurationInterface/ConfigurationManagerRW.h"
18 static xdaq::Application*
instantiate(xdaq::ApplicationStub* s);
26 virtual void defaultPage (xgi::Input* in, xgi::Output* out)
override;
27 virtual void request (
const std::string& requestType, cgicc::Cgicc& cgiIn, HttpXmlDocument& xmlOut,
const WebUsers::RequestUserInfo& userInfo)
override;
29 virtual void setSupervisorPropertyDefaults (
void)
override;
30 virtual void forceSupervisorPropertyValues (
void)
override;
33 void handleSaveConfigurationInfoXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr, std::string& configName,
const std::string& columnCSV,
const std::string& tableDescription,
const std::string& columnChoicesCSV,
bool allowOverwrite=
false);
34 void handleDeleteConfigurationInfoXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr, std::string& configName);
36 void handleGroupAliasesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr);
37 void handleSetGroupAliasInBackboneXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupAlias,
const std::string& groupName, ConfigurationGroupKey groupKey,
const std::string& author);
38 void handleSetVersionAliasInBackboneXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& versionAlias,
const std::string& configName, ConfigurationVersion version,
const std::string& author);
39 void handleAliasGroupMembersInBackboneXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& versionAlias,
const std::string& groupName, ConfigurationGroupKey groupKey,
const std::string& author);
40 void handleVersionAliasesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr);
41 void handleConfigurationGroupsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
bool returnMembers);
42 void handleGetConfigurationGroupXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName, ConfigurationGroupKey groupKey);
43 void handleGetConfigurationGroupTypeXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& configList);
44 void handleCreateConfigurationGroupXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const std::string& configList,
bool allowDuplicates=
false,
bool ignoreWarnings=
false,
const std::string& groupComment =
"",
bool lookForEquivalent =
false);
46 void handleConfigurationsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
bool allowIllegalColumns);
47 void handleGetConfigurationXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& configName, ConfigurationVersion version,
bool allowIllegalColumns=
false);
48 void handleCreateConfigurationXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& configName, ConfigurationVersion version,
bool makeTemporary,
const std::string& data,
const int& dataOffset,
const std::string& author,
const std::string& comment,
bool sourceTableAsIs,
bool lookForEquivalent);
50 void setupActiveTablesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& modifiedTables,
bool refreshAll =
true,
bool getGroupInfo =
false, std::map<std::string /*name*/, ConfigurationVersion /*version*/>* returnMemberMap = 0,
bool outputActiveTables =
true, std::string* accumulatedErrors = 0);
51 void handleFillTreeViewXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
unsigned int depth,
bool hideStatusFalse,
const std::string& modifiedTables,
const std::string& filterList);
52 static void recursiveTreeToXML (
const ConfigurationTree& t,
unsigned int depth, HttpXmlDocument& xmldoc, DOMElement* parentEl,
bool hideStatusFalse);
53 void handleFillTreeNodeCommonFieldsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
unsigned int depth,
const std::string& modifiedTables,
const std::string& recordList,
const std::string& fieldList);
54 void handleFillUniqueFieldValuesForRecordsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
const std::string& modifiedTables,
const std::string& recordList,
const std::string& fieldList);
55 void handleFillGetTreeNodeFieldValuesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
const std::string& modifiedTables,
const std::string& recordList,
const std::string& fieldList);
56 void handleFillSetTreeNodeFieldValuesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
const std::string& modifiedTables,
const std::string& recordList,
const std::string& fieldList,
const std::string& valueList,
const std::string& author);
57 void handleFillCreateTreeNodeRecordsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
const std::string& modifiedTables,
const std::string& recordList,
const std::string& author);
58 void handleFillDeleteTreeNodeRecordsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& startPath,
const std::string& modifiedTables,
const std::string& recordList);
59 void handleFillModifiedTablesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr);
61 void handleSaveTreeNodeEditXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& configName, ConfigurationVersion version,
const std::string& type,
const std::string& uid,
const std::string& column,
const std::string& newValue,
const std::string& author);
62 void handleGetAffectedGroupsXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& rootGroupName,
const ConfigurationGroupKey& rootGroupKey,
const std::string& modifiedTables);
63 void handleGetLinkToChoicesXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& linkToTableName,
const ConfigurationVersion& linkToTableVersion,
const std::string& linkIdType,
const std::string& linkIndex,
const std::string& linkInitId);
65 void handleSavePlanCommandSequenceXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& groupName,
const ConfigurationGroupKey& groupKey,
const std::string& modifiedTables,
const std::string& author,
const std::string& planName,
const std::string& commandString);
67 void handleMergeGroupsXML (HttpXmlDocument& xmlOut, ConfigurationManagerRW* cfgMgr,
const std::string& groupANameContext,
const ConfigurationGroupKey& groupAKeyContext,
const std::string& groupBNameContext,
const ConfigurationGroupKey& groupBKeyContext,
const std::string& groupANameConfig,
const ConfigurationGroupKey& groupAKeyConfig,
const std::string& groupBNameConfig,
const ConfigurationGroupKey& groupBKeyConfig,
const std::string& author,
const std::string& mergeApproach);
69 ConfigurationVersion saveModifiedVersionXML (HttpXmlDocument& xmldoc, ConfigurationManagerRW* cfgMgr,
const std::string& configName, ConfigurationVersion originalVersion,
bool makeTemporary, ConfigurationBase* config, ConfigurationVersion temporaryModifiedVersion,
bool ignoreDuplicates =
false,
bool lookForEquivalent =
false);
72 void testXDAQContext (
void);
75 CONFIGURATION_MANAGER_EXPIRATION_TIME = 60*60*1,
76 CONFIGURATION_MANAGER_REFRESH_THRESHOLD = 60*15,
80 ConfigurationManagerRW* refreshUserSession(std::string username, uint64_t activeSessionIndex,
bool refresh);
81 std::map<std::string, ConfigurationManagerRW* > userConfigurationManagers_;
82 std::map<std::string, time_t> userLastUseTime_;
static xdaq::Application * instantiate(xdaq::ApplicationStub *s)