Setup the webmaster menu as a tree of C-Interface articles. This creates the master page templates for viewing/managing the data model. Includes the forms and form handlers for creating/editing classes, class members and repositories.
| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hdsApp::SetupMasterMenu | (void) |
Declared in file: hzDissemino.h
Defined in file : hdsMaster.cpp
Function Logic:
Function body:
hzEcode hdsApp::SetupMasterMenu (void)
{
// Setup the webmaster menu as a tree of C-Interface articles.
//
// This creates the master page templates for viewing/managing the data model. Includes the forms and form handlers for creating/editing classes, class members and repositories.
_hzfunc("hdsApp::SetupDataModel") ;
const hdbMember* pMbr ; // Class member
const hdbDatatype* pType ; // Data type (base class)
const hdbClass* pSub ; // Sub-class
const hdbEnum* pEnum ; // Data Enum
const hdbClass* pClass ; // Class
const hdbObjRepos* pRepos ; // Repository
// hdsArticle* pRoot ; // Tree item
// hdsArticle* pHead ; // Tree heading
// hdsArticle* pItem_E ; // Tree item "Enums"
// hdsArticle* pItem_C ; // Tree item "Classes"
// hdsArticle* pItem_R ; // Tree item "Repositories"
// hdsArticle* pItemCC ; // Tree item of current class
hdsArticleCIF* pArtCIF ; // Current article
hzString root ; // Header title
hzString H ; // Header ref name
hzString X ; // Subheader ref name
hzString Y ; // sub sub header ref name
hzString R ; // Article ref name
hzString T ; // Article title
hzString S ; // Temp string
uint32_t n ; // Loop iterator
uint32_t mbrNo ; // Member number
char namBuf[16]; // Numeric based name
if (!this)
hzexit(E_SEQUENCE, "No application") ;
// Set name of hdsApp::m_DataModel to 'master'
m_DataModel.m_Groupname = "master" ;
// m_DataModel.m_USL.SetGroup(m_ArticleGroups.Count()) ;
m_ArticleGroups.Insert(m_DataModel.m_Groupname, &m_DataModel) ;
// LOAD TREE
root.Clear() ;
H = "Master_Main_Menu" ;
T = m_Appname ;
m_DataModel.AddHead(root, H, T, true) ;
root = H ;
// Add the menu items applicable at the Sphere level
H = "SphereLevel" ;
T = "Sphere Level Resources" ;
m_DataModel.AddHead(root, H, T, true) ;
R = "S.1" ; T = "Blacklisted IPs" ; pArtCIF = new hdsArticleCIF(R, T, &_masterBanned) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "S.2" ; T = "Memory Stats" ; pArtCIF = new hdsArticleCIF(R, T, &_masterMemstat) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "S.3" ; T = "Domain names" ; pArtCIF = new hdsArticleCIF(R, T, &_masterDomain) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "S.4" ; T = "Email addresses" ; pArtCIF = new hdsArticleCIF(R, T, &_masterEmaddr) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "S.5" ; T = "Strings (Fixed)" ; pArtCIF = new hdsArticleCIF(R, T, &_masterStrFix) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
// Add the resources and stats stuff
H = "AppResoures" ;
T = "Application Resources" ;
m_DataModel.AddHead(root, H, T, true) ;
R = "A.1" ; T = "Application Parameters" ; pArtCIF = new hdsArticleCIF(R, T, &_masterAppParam) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "A.2" ; T = "Config Files" ; pArtCIF = new hdsArticleCIF(R, T, &_masterCfgList) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "A.3" ; T = "Misc Fixed Files" ; pArtCIF = new hdsArticleCIF(R, T, &_masterFileList) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "A.4" ; T = "Pages" ; pArtCIF = new hdsArticleCIF(R, T, &_masterResList) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "A.5" ; T = "Article Groups" ; pArtCIF = new hdsArticleCIF(R, T, &_masterResList) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "A.6" ; T = "Site Visitors" ; pArtCIF = new hdsArticleCIF(R, T, &_masterVisList) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
R = "A.7" ; T = "Strings (Standard)" ; pArtCIF = new hdsArticleCIF(R, T, &_masterStrGen) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
// R = "A.8" ; T = "USL Assignments" ; pArtCIF = new hdsArticleCIF(R, T, &_masterUSL) ; m_DataModel.AddItem(H, R, T, pArtCIF, false) ;
// Add the Data Object Model stuff
H = "masterDOM" ;
T = "Data Object Model" ;
m_DataModel.AddHead(root, H, T, true) ;
// Any enums
// if (m_ADP.CountDataEnum()) { R = "enum" ; T = "Enums" ; pItem_E = m_DataModel.AddHead(H, R, T, true) ; }
// if (m_ADP.CountDataClass()) { R = "class" ; T = "Classes" ; pItem_C = m_DataModel.AddHead(H, R, T, true) ; }
// if (m_ADP.CountObjRepos()) { R = "repos" ; T = "Repositories" ; pItem_R = m_DataModel.AddHead(H, R, T, true) ; }
// Enums
if (m_ADP.CountDataEnum())
{
X = "enums" ;
T = "Enums" ;
m_DataModel.AddHead(H, X, T, true) ;
threadLog("%d enums\n", m_ADP.CountDataEnum()) ;
for (n = 0; n < m_ADP.CountDataEnum() ; n++)
{
pEnum = m_ADP.GetDataEnum(n) ;
if (pEnum)
{
sprintf(namBuf, "E.%d", n+1);
R = namBuf ;
T = pEnum->strType() ;
pArtCIF = new hdsArticleCIF(R, T, &_masterEnumEdit) ;
pArtCIF->m_flagVE |= VE_ACTIVE ;
m_DataModel.AddItem(X, R, T, pArtCIF, false) ;
}
}
}
// Classes
if (m_ADP.CountDataClass())
{
X = "class" ;
T = "Classes" ;
m_DataModel.AddHead(H, X, T, true) ;
threadLog("%d classes\n", m_ADP.CountDataClass()) ;
for (n = 0; n < m_ADP.CountDataClass() ; n++)
{
pClass = m_ADP.GetDataClass(n) ;
if (pClass)
{
sprintf(namBuf, "C.%d", pClass->ClassId()) ;
Y = namBuf ;
T = pClass->strType() ;
pArtCIF = new hdsArticleCIF(Y, T, &_masterClassEdit) ;
pArtCIF->m_flagVE |= VE_ACTIVE ;
m_DataModel.AddItem(X, Y, T, pArtCIF, false) ;
for (mbrNo = 0; mbrNo < pClass->MbrCount() ; mbrNo++)
{
pMbr = pClass->GetMember(mbrNo) ;
pType = pMbr->Datatype() ;
pSub = dynamic_cast<const hdbClass*>(pType) ;
if (pSub)
sprintf(namBuf, "C%d.S.%d",pClass->ClassId(), mbrNo) ;
else
sprintf(namBuf, "C%d.M.%d",pClass->ClassId(), mbrNo) ;
R = namBuf ;
T = pMbr->strName() ;
pArtCIF = new hdsArticleCIF(R, T, &_masterMbrEdit) ;
pArtCIF->m_flagVE |= VE_ACTIVE ;
m_DataModel.AddItem(Y, R, T, pArtCIF, false) ;
}
}
}
}
// Repositories
if (m_ADP.CountObjRepos())
{
X = "repos" ;
T = "Repositories" ;
m_DataModel.AddHead(H, X, T, true) ;
threadLog("%d repos\n", m_ADP.CountObjRepos()) ;
for (n = 0; n < m_ADP.CountObjRepos() ; n++)
{
pRepos = m_ADP.GetObjRepos(n) ;
if (pRepos)
{
sprintf(namBuf, "R.%d", n+1);
R = namBuf ;
T = pRepos->strName() ;
pArtCIF = new hdsArticleCIF(R, T, &_masterReposEdit) ;
pArtCIF->m_flagVE |= VE_ACTIVE ;
m_DataModel.AddItem(X, R, T, pArtCIF, false) ;
}
}
}
// CREATE PAGES and ARTICLES
threadLog("done\n") ;
return E_OK ;
}