This is run as part of the hdsApp initislization sequence. It adds the navbar handler script and the user dependent navbar menu scripts. These are places in m_rawScripts (the unzipped versions) and m_zipScripts (the zipped versions). Note. As the navigation bar is multi-lingual, this function must be called after the language files have been imported. Arguments: None

Return TypeFunction nameArguments
hzEcodehdsApp::SetupScripts(void)

Declared in file: hzDissemino.h
Defined in file : hdsScript.cpp

Function Logic:

0:START 1:unknown 2:items 3:unknown 4:items 5:unknown 6:Return hzerr(E_SETONCE,DUPLICATE CALL) 7:bBeenHere items items name Z items items tmpStr items items items items name items items items tmpStr items items tmpStr items items name items items items tmpStr items items tmpStr items items 8:unknown 9:tmpStr items name items tmpStr items items tmpStr items 10:unknown 11:pLang items items name items tmpStr items items tmpStr items items name items tmpStr items items tmpStr items 12:unknown 13:tmpStr items name items tmpStr items items tmpStr items 14:name Z items tmpStr items items items name Z items tmpStr items items items name Z items tmpStr items items items 15:unknown 16:pAG 17:unknown 18:items items name Z items tmpStr items items tmpStr items items 19:name Z items tmpStr items items tmpStr items items 20:unknown 21:pLang 22:unknown 23:name items 24:Return E_OK

Function body:

hzEcode hdsApp::SetupScripts (void)
{
   //  This is run as part of the hdsApp initislization sequence. It adds the navbar handler script and the user dependent navbar menu scripts.
   //  These are places in m_rawScripts (the unzipped versions) and m_zipScripts (the zipped versions).
   //  
   //  Note. As the navigation bar is multi-lingual, this function must be called after the language files have been imported.
   //  
   //  Arguments: None
   //  
   //  Returns: E_SETONCE Duplicate call
   //     E_OK  Operation Successful
   _hzfunc("hdsApp::setupScripts") ;
   static  bool    bBeenHere = false ; //  No repeat call
   hzChain     Z ;             //  Script chain
   hzChain     X ;             //  Zipped version
   hzChain     S ;             //  For building script names
   hdsLang*    pLang ;         //  Language
   hdsNavtree* pAG ;           //  Article group
   hzString    name ;          //  Name of script
   hzString    tmpStr ;        //  Temp string
   uint32_t    n ;             //  User type iterator
   uint32_t    x ;             //  User type iterator
   char        fnBuf[200]; //  Filename buffer
   if (!this)
       hzexit(E_CORRUPT, "No instance") ;
   if (!m_Appname)
       Fatal("No Application Name") ;
   if (bBeenHere)
       return hzerr(E_SETONCE, "DUPLICATE CALL") ;
   bBeenHere = true ;
   /*
   **  ** Navigation Bars
   **      */
   threadLog("CREATING Standard Scripts\n") ;
   threadLog("CREATING Standard Scripts for Webapp %s\n", *m_Appname) ;
   //  General script
   name = "navhdl.js" ;
   Z = _dsmScript_navbarMenu ;
   Gzip(X, Z) ;
   m_pLog->Log("Created navhdl.js script %s (sizes %d and %d)\n", *name, Z.Size(), X.Size()) ;
   tmpStr = X ;
   m_rawScripts.Insert(name, _dsmScript_navbarMenu) ;
   m_pLog->Log("Case 1\n") ;
   m_zipScripts.Insert(name, tmpStr) ;
   //  Default language
   m_pLog->Log("Default Language\n") ;
   //  Default language Navbar for public access
   name = "nav-public.js" ;
   MakeNavbarJS(Z, pLang, ACCESS_PUBLIC) ;
   Gzip(X, Z) ;
   m_pLog->Log("Created nav-public.js script %s (sizes %d and %d)\n", *name, Z.Size(), X.Size()) ;
   tmpStr = Z ;
   m_rawScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Case 1\n") ;
   tmpStr = X ;
   m_zipScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Case 2\n") ;
   //  Default language Navbar for admin access
   name = "nav-admin.js" ;
   MakeNavbarJS(Z, pLang, ACCESS_ADMIN) ;
   Gzip(X, Z) ;
   m_pLog->Log("Created nav-admin.js script %s (sizes %d and %d)\n", *name, Z.Size(), X.Size()) ;
   tmpStr = Z ;
   m_rawScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Case 1\n") ;
   tmpStr = X ;
   m_zipScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Case 2\n") ;
   //  Default language Navbar for access of each user type
   for (x = 0; x < m_UserTypes.Count() ; x++)
   {
       tmpStr = m_UserTypes.GetKey(x) ;
       sprintf(fnBuf, "nav-%s.js", *tmpStr) ;
       name = fnBuf ;
       MakeNavbarJS(Z, pLang, m_UserTypes.GetObj(x)) ; //  ut.m_Access) ;
       tmpStr = Z ;
       m_rawScripts.Insert(name, tmpStr) ;
       Gzip(X, Z) ;
       tmpStr = X ;
       m_zipScripts.Insert(name, tmpStr) ;
   }
   //  Language dependent data scripts
   for (n = 0; n < m_Languages.Count() ; n++)
   {
       pLang = m_Languages.GetObj(n) ;
       m_pLog->Log("Lang Specific - %s\n", *pLang->m_Code) ;
       //  Navbar for public access
       sprintf(fnBuf, "/%s/nav-public.js", *pLang->m_Code) ;
       name = fnBuf ;
       MakeNavbarJS(Z, pLang, ACCESS_PUBLIC) ;
       tmpStr = Z ;
       m_rawScripts.Insert(name, tmpStr) ;
       Gzip(X, Z) ;
       tmpStr = X ;
       m_zipScripts.Insert(name, tmpStr) ;
       //  Navbar for admin access
       sprintf(fnBuf, "/%s/nav-admin.js", *pLang->m_Code) ;
       name = fnBuf ;
       MakeNavbarJS(Z, pLang, ACCESS_ADMIN) ;
       tmpStr = Z ;
       m_rawScripts.Insert(name, tmpStr) ;
       Gzip(X, Z) ;
       tmpStr = X ;
       m_zipScripts.Insert(name, tmpStr) ;
       //  Navbar for access of each user type
       for (x = 0; x < m_UserTypes.Count() ; x++)
       {
           tmpStr = m_UserTypes.GetKey(x) ;
           sprintf(fnBuf, "/%s/nav-%s.js", *pLang->m_Code, *tmpStr) ;
           name = fnBuf ;
           MakeNavbarJS(Z, pLang, m_UserTypes.GetObj(x)) ; //  ut.m_Access) ;
           tmpStr = Z ;
           m_rawScripts.Insert(name, tmpStr) ;
           Gzip(X, Z) ;
           tmpStr = X ;
           m_zipScripts.Insert(name, tmpStr) ;
       }
   }
   //  LANGUAGE SELECTOR
   //  Email checker
   name = "ckExists.js" ;
   Z = _dsmScript_ckExists ;
   Gzip(X, Z) ;
   tmpStr = X ;
   m_rawScripts.Insert(name, _dsmScript_ckExists) ;
   m_zipScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Created script ckExists.js of sizes %d and %d\n", Z.Size(), X.Size()) ;
   /*
   **  ** NAVIGATION TREES
   **      */
   name = "tog.js" ;
   Z = _dsmScript_tog ;
   Gzip(X, Z) ;
   tmpStr = X ;
   m_rawScripts.Insert(name, _dsmScript_tog) ;
   m_zipScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Created script tog.js of sizes %d and %d\n", Z.Size(), X.Size()) ;
   name = "loadArticle.js" ;
   Z = _dsmScript_loadArticle ;
   Gzip(X, Z) ;
   tmpStr = X ;
   m_rawScripts.Insert(name, _dsmScript_loadArticle) ;
   m_zipScripts.Insert(name, tmpStr) ;
   m_pLog->Log("Created script loadArticle.js of sizes %d and %d\n", Z.Size(), X.Size()) ;
   for (n = 0; n < m_ArticleGroups.Count() ; n++)
   {
       pAG = m_ArticleGroups.GetObj(n) ;
       if (!pAG)
           continue ;
       S.Clear() ;
       S.Printf("navtree-%s.js", *pAG->m_Groupname) ;
       name = S ;
       //  name = "navtree-" ;
       //  name += pAG->m_Groupname ;
       //  name += ".js" ;
       //  name = "navtree-public.js" ;
       Z = _dsmScript_navtree ;
       Z.Printf("makeTree('%s');\n", *pAG->m_Groupname) ;
       tmpStr = Z ;
       m_rawScripts.Insert(name, tmpStr) ;
       Gzip(X, Z) ;
       tmpStr = X ;
       m_zipScripts.Insert(name, tmpStr) ;
       m_pLog->Log("Created script %s of sizes %d and %d\n", *name, Z.Size(), X.Size()) ;
   }
   //  Do the admin navtree
   name = "navtree-master_dme.js" ;
   Z = _dsmScript_navtree ;
   Z << "makeTree(\"adm_dme\");\n" ;
   tmpStr = Z ;
   m_rawScripts.Insert(name, tmpStr) ;
   Gzip(X, Z) ;
   tmpStr = X ;
   m_zipScripts.Insert(name, tmpStr) ;
   //  Report
   m_pLog->Log("Script Summary\n") ;
   for (n = 0; n < m_Languages.Count() ; n++)
   {
       pLang = m_Languages.GetObj(n) ;
       for (x = 0; x < m_rawScripts.Count() ; x++)
       {
           name = m_rawScripts.GetKey(x) ;
           m_pLog->Out("Lang %s: Script %s\n", *pLang->m_Code, *name) ;
       }
   }
   return E_OK ;
}