Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdsApp::ExportDefaultForm | (const hzString&,) |
Declared in file: hzDissemino.h
Defined in file : hdsResource.cpp
Function Logic:
Function body:
hzEcode hdsApp::ExportDefaultForm (const hzString& cname) { _hzfunc("hdsApp::ExportDefaultForm") ; ofstream os ; hzChain Z ; const hdsFldspec* pSpec ; const hdbMember* pMem ; const hdbClass* pClass ; hdsBlock* pIncl ; hzString dfltInclude ; const char* mname ; uint32_t nM ; bool bUser ; char fname[80]; char pebuf[4]; hzEcode rc = E_OK ; m_pLog->Log("Have %d classes and %d repositories\n", m_ADP.CountDataClass(), m_ADP.CountObjRepos()) ; pebuf[0]= CHAR_PERCENT ; pebuf[1]= ''s''; pebuf[2]= '':''; pebuf[3]= 0; if (m_Includes.Count()) { pIncl = m_Includes.GetObj(0); dfltInclude = pIncl->m_Refname ; } pClass = m_ADP.GetPureClass(cname) ; if (!pClass) return hzerr(E_NOTFOUND, "No such class as %s\n", *cname) ; m_pLog->Log("Doing class %s with %d members\n", *cname, pClass->MbrCount()) ; bUser = false ; if (m_UserTypes.Exists(cname)) bUser = true ; Z << "<disseminoInclude>\n" ; /* ** ** Write out a basic list page for the class ** */ Z.Printf("<xpage path="/list_%s" subject="%s" title="List %s" access="any" bgcolor="eeeeee" ops="noindex">\n" , *cname, *pClass->m_Category, *cname) ; Z << "\t<desc>None</desc>\n" ; if (dfltInclude) Z.Printf("\t<xblock name="%s"/>\n" , *dfltInclude) ; Z.AddByte(CHAR_NL) ; Z.Printf("\t<xtable repos="%s" criteria="all" rows="10000" width="90" height="500" css="main">\n" , *cname) ; Z << "\t\t<ifnone><p>Sorry no records ...</p></ifnone>\n\t\t<header>Table header ...</header>\n\t\t<footer>Table footer ...</footer>\n" ; for (nM = 0; nM < pClass->MbrCount() ; nM++) { pMem = pClass->GetMember(nM) ; mname = pMem->txtName() ; Z.Printf("\t\t<xcol member="%s" title="%s"/>\n" , mname, mname) ; } Z << "\t</xtable>\n" ; Z << "</xpage>\n" ; /* ** ** Write out a basic host page for the form for the class ** */ Z.Printf("<xpage path="/add_%s" subject="%s" title="Add %s" access="any" bgcolor="eeeeee" ops="noindex">\n" , *cname, *pClass->m_Category, *cname) ; Z << "\t<desc>None</desc>\n" ; if (dfltInclude) Z.Printf("\t<xblock name="%s"/>\n" , *dfltInclude) ; Z.AddByte(CHAR_NL) ; Z << "<style>\n.tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; }\n.tooltip .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; padding: 5px 0; border-radius: 6px; position: absolute; z-index: 1; }\n.tooltip:hover .tooltiptext { visibility: visible; }\n</style>\n\n" ; Z << "\t<table width="96%" align="center" border="0" cellspacing="0" cellpadding="0">\n\t\t<tr><td height="20"> </td></tr>\n\t\t<tr><td class="title" align="center">Title: Add a " << cname << "</td></tr>\n\t\t<tr>\n\t\t<td valign="top" align="center" class="main">\n\t\t<p>\n\t\tUse this form to create an instance of " << cname << "\n\t\t</p>\n\t\t</td>\n\t</tr>\n\t<xdiv user="public">\n\t<tr><td height="20"> </td></tr>\n\t<tr>\n\t\t<td height="20" align="center" class="main">\n\t\tPlease be aware that by submitting this form, you are consenting to the use of cookies. Please read our cookie policy to <a href="/cookies">find out more</a>\n\t\t</td>\n\t</tr>\n\t</xdiv>\n\t<tr><td height="40"> </td></tr>\n\t</table>\n\n" ; if (bUser) Z.Printf("\t<xform name="form_reg_%s" action="fhdl_phase1_%s" class="%s">\n" , *cname, *cname, *cname) ; else Z.Printf("\t<xform name="form_add_%s" action="fhdl_add_%s" class="%s">\n" , *cname, *cname, *cname) ; Z << "\t<xhide name="lastpage" value="%x:referer;"/>\n\n" ; Z << "\t<table width="56%" align="center" border="0" cellspacing="0" cellpadding="0" class="main">\n" ; for (nM = 0; nM < pClass->MbrCount() ; nM++) { pMem = pClass->GetMember(nM) ; mname = pMem->txtName() ; pSpec = pMem->GetSpec() ; if (!pSpec) { m_pLog->Log("Warning No Field specification for member %s\n", mname) ; continue ; } if (pSpec->m_Desc) Z.Printf("\t\t<tr height="18"><td class="fld"><div class="tooltip">%s<span class="tooltiptext">%s</span></div>:</td>\t<td><xfield member="%s"" , *pSpec->m_Title, *pSpec->m_Desc, mname) ; else Z.Printf("\t\t<tr height="18"><td class="fld">%s:</td>\t<td><xfield member="%s"" , *pSpec->m_Title, mname) ; Z << "\tdata="" ; Z << pebuf ; Z << mname << """ ; Z << "\tflags="req"/></td></tr>\n" ; } Z << "\t</table>\n" ; Z << "\t<table width="96%" align="center" border="0" cellspacing="0" cellpadding="0" class="fld">\n\t\t<tr height="50"><td align="center"><xbutton show="Abort"/> <xbutton show="Submit"/></td></tr>\n\t\t<tr height="50" bgcolor="#CCCCCC"><td class="vb10blue"><center>Site Name</center></td></tr>\n\t</table>\n" ; Z << "\t</xform>\n" ; Z << "</xpage>\n\n" ; if (bUser) { Z.Printf("<formhdl name="fhdl_phase1_%s" form="form_reg_%s" ops="cookie">\n" , *cname, *cname) ; Z << "\t<procdata>\n" ; Z << "\t\t<setvar name="iniCode" type="uint32_t" value="%x:usecs;"/>\n" ; for (nM = 0; nM < pClass->MbrCount() ; nM++) { pMem = pClass->GetMember(nM) ; mname = pMem->txtName() ; Z.Printf("\t\t<setvar name="%s" type="%s" value="%ce:%s;"/>\n" , mname, pSpec->m_pType->txtType() , CHAR_PERCENT, mname) ; } Z.Printf("\t\t<sendemail from="%s" to="%ce:email;" smtpuser="%s" smtppass="%s" subject="Membership Application">\n" , *m_SmtpAddr, CHAR_PERCENT, *m_SmtpUser, *m_SmtpPass) ; Z.Printf("Thank you for registering with %s. Your initial login code is %cs:iniCode;i\n\n", *m_Domain, CHAR_PERCENT) ; Z << "The code is good for 1 hour. Enter this code instead of your selected password in the login screen.\n\n" ; Z << "This email has been generated by a submission to the Registration form at " ; Z << m_Domain ; Z << ". If you have recived this in error, please ignore\n" ; Z << "\t\t</sendemail>\n" ; Z << "\t</procdata>\n" ; Z << "\t<error goto="/register"/>\n\n" ; Z.Printf("\t<response name="form_reg_%s" bgcolor="eeeeee">\n" , *cname) ; Z << "\t\t<xblock name="gdInclude"/>\n" ; Z.Printf("<xform name="formCkCorp1" action="hdlCkCorp">\n" ) ; Z << "\t<table width="96%" align="center" border="0" cellspacing="0" cellpadding="0">\n\t\t<tr><td width=5 height=25> </td></tr>\n\t\t<tr><td align=center class=title>Email Verification</td></tr>\n\t\t<tr height="250">\n\t\t<td class="main">\n\t\tThank you %s:fname; %s:lname; for your registration on belhalf of %s:orgname; to the gdpr360 XLS document processing service.\n\t\t</td>\n\t\t</tr>\n\t\t<tr height="50"><td align="center" class="fld">Code:</td><td><xfield fldspec="fs_Usec" var="testCode" flags="req"/></td></tr>\n\t\t<tr height="50"><td align="center"><xbutton show="Complete Registration"/></td></tr>\n\t\t</table>\n\t</xform>\n\t</response>\n</formhdl>\n\n" ; Z.Printf("<formhdl name="fhdl_phase2_%s" form="form_reg_%s" ops="cookie">\n" , *cname, *cname) ; Z << "\t<procdata>\n\t\t<testeq param1="%e:testCode;" param2="%s:iniCode;">\n\t\t\t<error name="InvalidCode" bgcolor="eeeeee">\n\t\t\t\t<xblock name="gdInclude"/>\n\t\t\t\t<xform name="formCkCorp2" action="hdlCkCorp">\n\t\t\t\t\t<table width="96%" align="center" border="0" cellspacing="0" cellpadding="0">\n\t\t\t\t\t\t<tr><td width=5 height=25> </td></tr>\n\t\t\t\t\t\t<tr><td align=center class=title>Oops! Wrong Code!</td></tr>\n\t\t\t\t\t\t<tr height="250"><td class="main">Please check the email again and type in or cut and paste the code.</td></tr>\n\t\t\t\t\t\t<tr height="50"><td align="center" class="fld">Code:</td><td><xfield fldspec="fs_Usec" var="testCode" flags="req"/></td></tr>\n\t\t\t\t\t\t<tr height="50"><td align="center"><xbutton show="Complete Registration"/></td></tr>\n\t\t\t\t\t</table>\n\t\t\t\t</xform>\n\t\t\t</error>\n\t\t</testeq>\n" ; Z.Printf("<addSubscriber class="%s" userName="%css:orgname;" userPass="%css:password;" userEmail="%css:email;">\n" , *cname, CHAR_PERCENT, CHAR_PERCENT, CHAR_PERCENT) ; for (nM = 0; nM < pClass->MbrCount() ; nM++) { pMem = pClass->GetMember(nM) ; mname = pMem->txtName() ; Z.Printf("\t\t\t<seteq member="%s" input="%cs%s"/>\n" , mname, CHAR_PERCENT, mname) ; } Z << "\t\t</addSubscriber>\n\t\t<logon user="%s:orgname;"/>\n\t</procdata>\n" ; Z << "\t<error name="RegistrationError" bgcolor="eeeeee">\n\t\t<xblock name="gdInclude"/>\n\t\t<div class="stdpage">\n\t\t<table bgcolor="#FFDDDD" width="100%" align="center" border="0" cellspacing="0" cellpadding="0">\n\t\t<tr><td width=5 height=25> </td></tr>\n\t\t<tr><td align=center class=title>Internal Error</td></tr>\n\t\t<tr height="160"><td> </td></tr>\n\t\t<tr>\n\t\t<td>An Internal error has occured and system administration has been notified. Please try again later.</td>\n\t\t</tr>\n\t\t<tr height="160"><td> </td></tr>\n\t\t<tr height="50"><td align="center"><xbutton show="Return to Site" goto="/index.html"/></td></tr>\n\t\t</table>\n\t\t</div>\n\t</error>\n" ; Z << "\t<response name="CorpCodeOK" bgcolor="eeeeee">\n\t\t<xblock name="gdInclude"/>\n\t\t<table width="96%" align="center" border="0" cellspacing="0" cellpadding="0">\n\t\t\t<tr><td width=5 height=25> </td></tr>\n\t\t\t<tr><td align=center class=title>Registration Complete</td></tr>\n\t\t\t<tr height="250">\n\t\t\t\t<td class="main">\n\t\t\t\tYour registration as %u:orgname; is now complete. You are logged in and may now use the document processing facility.\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr height="50"><td align="center"><xbutton show="Continue" goto="/menu"/></td></tr>\n\t\t</table>\n\t</response>\n</formhdl>\n" ; } else { Z.Printf("<formhdl name="fhdl_add_%s" form="form_add_%s">\n" , *cname, *cname) ; Z << "\t<procdata>\n" ; Z.Printf("<commit class="%s">\n" , *cname) ; for (nM = 0; nM < pClass->MbrCount() ; nM++) { pMem = pClass->GetMember(nM) ; mname = pMem->txtName() ; Z.Printf("<seteq member="%s" input="%ce:%s;"/>\n" , mname, CHAR_PERCENT, mname) ; } Z << "\t\t</commit>\n\t</procdata>\n\n" ; Z.Printf("<error goto="/add_%s"/>\n" , *cname) ; Z.Printf("<response name="%s" bgcolor="eeeeee">\n" , *cname) ; Z << "\t</response>\n</formhdl>\n" ; } Z << "</disseminoInclude>\n" ; if (Z.Size()) { sprintf(fname, "%s/%s.forms", *m_Configdir, *cname) ; m_pLog->Log("Writing form of %d bytes to %s\n", Z.Size(), fname) ; os.open(fname) ; if (os.fail()) threadLog("Could not open export forms file (classforms.dat)\n") ; else { os << Z ; if (os.fail()) threadLog("Could not write export forms file (classforms.dat)\n") ; os.close() ; } os.clear() ; } Z.Clear() ; return rc ; }