Return Type | Function name | Arguments |
---|---|---|
void | hdsApp::MasterArticle | (hzHttpEvent*,) |
Declared in file: hzDissemino.h
Defined in file : hdsMaster.cpp
Function Logic:
Function body:
void hdsApp::MasterArticle (hzHttpEvent* pE) { _hzfunc("hdsApp::MasterArticle") ; const hdbEnum* pEnum = 0; const hdbClass* pClass = 0; const hdbMember* pMbr = 0; const hdbObjRepos* pRepos = 0; hzChain Z ; hdsInfo* pInfo ; const char* pRes ; const char* i ; hzString entName ; hzString argA ; hzString argB ; hzString S ; uint32_t numId ; uint32_t mbrNo ; uint32_t n ; pInfo = (hdsInfo*) pE->Session() ; if (!pInfo) { threadLog("Forbiden\n") ; pE->SendAjaxResult(HTTPMSG_FORBIDDEN, "No Access") ; return ; } pRes = pE->GetResource() ; if (memcmp(pRes, "/masterAction", 13)) { threadLog("No such path\n") ; pE->SendAjaxResult(HTTPMSG_NOTFOUND, "No such path") ; return ; } if (!pE->QueryLen()) { threadLog("Called with no arguments\n") ; pE->SendAjaxResult(HTTPMSG_NOTFOUND, "No such path") ; return ; } argA = pE->m_mapStrings.GetKey(0); argB = pE->m_mapStrings.GetObj(0); if (argA == "editfile") { _masterCfgEdit(pE, argB) ; return ; } if (memcmp(pRes, "/master_dme-", 12)) { threadLog("No such path\n") ; pE->SendAjaxResult(HTTPMSG_NOTFOUND, "No such path") ; return ; } if (pRes[12]!=''E''&&pRes[12]!=''C''&&pRes[12]!=''M''&&pRes[12]!=''R'') { threadLog("No such path\n") ; pE->SendAjaxResult(HTTPMSG_NOTFOUND, "No such path") ; return ; } if (pRes[13]==CHAR_PERIOD) { switch (pRes[12]) { case ''E'': if (IsPosint(numId, pRes + 14)) pEnum = m_ADP.GetDataEnum(numId) ; if (pEnum) entName = pEnum->txtType() ; break ; case ''C'': if (IsPosint(numId, pRes + 14)) { for (n = 0; n < m_ADP.CountDataClass() ; n++) { pClass = m_ADP.GetDataClass(n) ; if (pClass->ClassId() == numId) { entName = pClass->txtType() ; break ; } } if (!entName) pClass = 0; } case ''M'': if (IsPosint(numId, pRes + 14)) { for (n = 0; n < m_ADP.CountDataClass() ; n++) { pClass = m_ADP.GetDataClass(n) ; if (pClass->ClassId() == numId) { entName = pClass->txtType() ; break ; } } if (!entName) pClass = 0; if (pClass) { for (i = pRes + 14;*i && *i != CHAR_PERIOD ; i++) ; if (*i == CHAR_PERIOD) { if (IsPosint(numId, i+1)) pMbr = pClass->GetMember(numId) ; } } } if (pMbr) { entName = pClass->txtType() ; entName += "::" ; entName += pMbr->strName() ; } case ''R'': if (IsPosint(numId, pRes + 14)) pRepos = m_ADP.GetObjRepos(numId) ; if (pRepos) entName = pRepos->strName() ; } } Z.Printf("<form method="POST" action="%s">\n" , pRes) ; Z << "<table width="100%" align="center" border="0" cellspacing="0" cellpadding="0" class="main">\n" ; switch (pRes[9]) { case ''E'': Z << "<tr><td align="center">Enum Editor</td></tr>\n<tr><td height="20"> </td></tr>\n</table>\n<table width="100%" align="center" border="0" cellspacing="0" cellpadding="0" class="main">\n" ; Z.Printf("<tr height="25"><td>Name: </td><td><input type="text" name="username_master" size="40" maxlen="40" value="%s"/></td></tr>\n" , *entName) ; Z << "</table>\n<table width="100%" align="center" border="1" cellspacing="0" cellpadding="0" class="main">\n" ; for (n = 0; n < pEnum->Count() ; n++) { S = pEnum->GetStr(n) ; Z.Printf("<tr><td>%d</td><td>%s</td></tr>\n", n+1,*S) ; } break ; case ''C'': Z << "<tr><td align="center">Class Editor</td></tr>\n<tr><td height="20"> </td></tr>\n</table>\n<table width="100%" align="center" border="0" cellspacing="0" cellpadding="0" class="main">\n" ; Z.Printf("<tr height="25"><td>Name: </td><td><input type="text" name="username_master" size="40" maxlen="40" value="%s"/></td></tr>\n" , *entName) ; Z << "</table>\n<table width="100%" align="center" border="1" cellspacing="0" cellpadding="0" class="main">\n<tr>\n <th>Posn</th>\n <th>Name</th>\n <th>Data type</th>\n <th>MinP</th>\n <th>MaxP</th>\n <th>Description</th>\n</tr>\n" ; for (mbrNo = 0; mbrNo < pClass->MbrCount() ; mbrNo++) { pMbr = pClass->GetMember(mbrNo) ; Z << "<tr>" ; Z.Printf("<td align="right">%d</td>" , mbrNo) ; Z.Printf("<td><a href="#" onclick="loadArticle('/master_dme-M.%d.%d');">%s</a></td>" , pClass->ClassId(), mbrNo, pMbr->txtName()) ; Z.Printf("<td>%s</td>", pMbr->Datatype()->txtType()) ; Z.Printf("<td>%s</td>", PopCtl2Txt(pMbr->PopCtl())) ; Z.Printf("<td>%s</td>", pMbr->txtDesc()) ; Z << "</tr>" ; } break ; case ''M'': if (pMbr) Z.Printf("<tr><td align="center">%s::%s</td></tr>\n" , pClass->txtType(), pMbr->txtName()) ; else Z << "<tr><td align="center">Class Member Editor</td></tr>\n" ; Z << "<tr><td height="60"> </td></tr>\n</table>\n<table width="66%" align="center" border="0" cellspacing="0" cellpadding="0" class="main">\n" ; Z << "<tr height="25"><td>Name: </td><td><input type="text" name="username_master" size="40" maxlen="40"/></td></tr>\n<tr height="25"><td>Type: </td><td><input type="select" name="password_master" size="40" maxlen="40"/></td></tr>\n<tr height="25"><td>Min Value: </td><td><input type="select" name="password_master" size="40" maxlen="40"/></td></tr>\n<tr height="25"><td>Max Value: </td><td><input type="select" name="password_master" size="40" maxlen="40"/></td></tr>\n<tr height="25"><td>Compusory: </td><td><input type="select" name="password_master" size="40" maxlen="40"/></td></tr>\n<tr height="25"><td>Multiple: </td><td><input type="select" name="password_master" size="40" maxlen="40"/></td></tr>\n" ; break ; case ''R'': if (pRes[10]==CHAR_PERIOD) { if (IsPosint(numId, pRes + 11)) pRepos = m_ADP.GetObjRepos(numId) ; } break ; } Z << "</table>\n</form>\n" ; if (entName) pE->SetHdr("x-title", entName) ; else pE->SetHdr("x-title", pRes) ; pE->SendRawChain(HTTPMSG_OK, HMTYPE_TXT_HTML, Z, 0,false) ; }